ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:627KB ,
资源ID:17898614      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17898614.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理实验报告Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

编译原理实验报告Word文件下载.docx

1、6)概念图工具 Keystone ConceptMap v3.74 - 俺下载我个人觉得1)比较好用,文件小,也是汉化版的,是初学者的最佳选择,更是英语不好的人的选择。而其他的软件很大,不易懂。7.选择一款你认为比较优秀的概念图软件,给出概念图体会编译器的功能理解编译器的功能例举你所使用过的编译器,并从中选择一个最熟悉的,写出从编写到运行一个应用程序的全过程。1 实验目的:编译器,是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能解读、运行的低阶机器语言的程序。编译器将原始程序(Source program)作为输入,翻译产生使用目标语言(Target language)的等价程序。源代

2、码一般为高阶语言 (High-level language), 如 Pascal、C+、Java 等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)2.实验内容:目前我学过的编译器主要有visual c+ 6.0、C#、Masm5.0、6.15,主要操作:源代码 (source code) 预处理器 (preprocessor) 编译器 (compiler) 汇编程序 (assembler) 目标代码 (object code) 连接器 (Linker) 可执行程序 (executables)编译是从源代码(通常为高阶语言)

3、到能直接被计算机或虚拟机执行的目标代码(通常为低阶语言或机器语言)的翻译过程。程序清单如下:/ 交换两个数.cpp : 定义控制台应用程序的入口点。#include stdafx.hiostreamusing namespace std;class exchangeprivate: intx,y;public: void ex() coutx;请输入y的值:y; int temp; temp=x; x=y; y=temp;x=x y=y ;exchangeexcint _tmain() exc.ex(); return 0;绘制编译原理课程学习概念图学会利用概念图复制和巩固本课程中所讲授的知识

4、编译原理课程每个章节的内容讲解完之后,根据自己的理解为其绘制学习概念图每章课程结束后一周3第一章:如下图第三章:正则表达式的使用1.实验目的:体会正则表达式的使用设计一个Windows窗体用于填写个人资料,出生日期自动从身份证号码中提取,在提交时检查以下内容:(检查不合格时弹出消息框提)1) 检查用户名是否由6-18个字符组成,组成用户名的字符只能是英文大小写字母、数字、下划线;2) 检查真实姓名是否由2-4个汉字组成;3) 检查Email格式;4) 检查电话号码是否由11个数字(手机号)或8位数字(固定电话)或区号加固定电话号码组成;5) 检查邮政编码是否由6位数字组成;6) 检查身份证号码

5、是否符合18位数字。3.实验要求:实验平台说明,提交源程序代码和实验结果截图4.验收时间:第8周实验平台基于Microsoft Visual Studio 2010 官方中文旗舰版的编译器C#语言操作下并用Windows窗体完成的。1、下图是实验中的重要截图2、以下是实验代码:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows

6、.Forms;usingSystem.Text.RegularExpressions;namespacecomplierpublicpartialclassForm1 : FormpublicForm1()InitializeComponent();privatevoidbutton1_Click(objectsender, EventArgse)if (!Regex.IsMatch(this.textBox1.Text, a-zA-Zd_6,18)MessageBox.Show(用?户名?须?由6到18位?英文?大小?写字母?,数y字下?划?线?组成!);elseRegex.IsMatch(

7、this.textBox2.Text, u4e00-u9fa52,4真?实姓?2到4位?汉o字Regex.IsMatch(this.textBox3.Text, (d15$)|(d18$)|(d17(d|X|x)$)身份Y证有D误Regex.IsMatch(this.textBox4.Text, (?=.8,)(?=.*A-Z)(?=.*a-z)(?=.*0-9)(?=.*W).*$密码?为a强?if (textBox5.Text != textBox4.Text)两次不?一致?Regex.IsMatch(this.textBox6.Text, a-z0-9+(._-*a-z0-9)*(a-z

8、0-9+-a-z0-9*a-z0-9+.)1,63a-z0-9+$邮箱?格?式正y确Regex.IsMatch(this.textBox7.Text, (d11)|(d7,8)|(d4|d3)-(d7,8)$)电话号?Regex.IsMatch(this.textBox8.Text, (d6)编应|为a6位?privatevoidtextBox9_TextChanged(objectsender, EventArgse)trystringbirthday = ;stringsex = if (textBox3.Text.Length = 18)/处|理的从中D得到生日和性?别e代birthda

9、y = textBox3.Text.Substring(6, 4) + - + textBox3.Text.Substring(10, 2) + + textBox3.Text.Substring(12, 2);sex = textBox3.Text.Substring(14, 3);if (textBox3.Text.Length = 15)birthday = 19 + textBox3.Text.Substring(6, 2) + + textBox3.Text.Substring(8, 2) + + textBox3.Text.Substring(10, 2);sex = textBo

10、x3.Text.Substring(12, 3);textBox9.Text = birthday;catchreturn;privatevoidgroupBox1_Enter(objectsender, EventArgse)熟练掌握课程中涉及到的算法通过为算法绘制流程图达到对算法的深刻理解为课程各章节中出现的核心算法绘制程序流程图3.验收时间:每章节完成后1周3.如图:编写词法分析程序体会词法分析程序的工作原理和功能编写一个词法分析程序,实现的功能是:输入一个C语言程序,经该词法分析程序处理后,输出单词记号序列。提交程序清单(包含注释),提交输入一个C语言程序用词法分析程序处理后的运行结果

11、截图以及运行环境配置说明。4.验收时间:第12周(1)使用环境:windows下vc+6.0或vs2010(在vs2010里运行需要加#include这个头文件而vc+6.0里不要)(2)程序清单:#include #include#define MAX 22charch = string key15=begin,endifthenelsewhilewriteread,do, callconstcharuntilprocedurerepeatintIskey(string c) /关键字判断int i;for(i=0;iMAX;i+) if(pare(c)=0) return 1;return

12、 0;intIsLetter(char c) /判断是否为字母if(ca)|(c0c9) return 1;voidanalyse(FILE *fpin)stringarr=while(ch=fgetc(fpin)!=EOF) arr=if(ch=|ch=tn)else if(IsLetter(ch)while(IsLetter(ch)|IsDigit(ch) if(ch) ch=ch+32;arr=arr+ch;ch=fgetc(fpin);fseek(fpin,-1L,SEEK_CUR);if (Iskey(arr)coutarrt$关键字else coutt$普通标识符else if(I

13、sDigit(ch)while(IsDigit(ch)|ch=.IsDigit(fgetc(fpin)coutt$无符号实数else switch(ch)case+:- :*/cht$运算符break;(),t$界符ch=fgetc(fpin);) cout=else coutbreak;)coutt$输入控制符else if(ch=t$输出控制符elsecoutdefault : coutin_fn;if(fpin=fopen(in_fn,r)!=NULL) break;文件路径错误!n*分析如下*analyse(fpin);fclose(fpin);按任意键结束int a;a;(3)截图:

14、熟悉YACC的使用方法了解YACC的使用方法 借助互联网查找YACC的使用方法,并撰写使用说明手册第16周、YACC定义:yacc是开发编译器的一个有用的工具,采用LALR(1)语法分析方法。Yacc最初由AT&T的Steven C. Johnson为Unix操作系统开发,后来一些兼容的程序如Berkeley Yacc,GNU bison,MKS yacc和Abraxasyacc陆续出现。它们都在原先基础上做了少许改进或者增加,但是基本概念是相同的。由于所产生的解析器需要词法分析器配合,因此Yacc经常和词法分析器的产生器一般就是Lex联合使用。IEEE POSIX P1003.2 标准定义了

15、Lex和Yacc的功能和需求。、使用说明()yacc是一个语法分析程序的自动生成器。()yacc文件构成说明部分%规则部分%程序部分%与%是说明部分的起始符和与结束符。终端和非终端符号终端符号:代表一类在语法结构上等效的标记。终端符号有三种类型:命名标记:这些由 %token 标识符来定义。按照惯例,它们都是大写。字符标记:字符常量的写法与 C 相同。例如, - 就是一个字符标记。字符串标记:写法与 C 的字符串常量相同。例如, 就是一个字符串标记。lexer返回命名标记。非终端符号:是一组非终端符号和终端符号组成的符号。按照惯例,它们都是小写。终端符号的书写方式%token tname1 t

16、name2.tname1,tname2都分别表示不同的终端符号。%token tname1 integer1integer1表示终端符号tname1的内部编码值。当选用第一种方式时,当终结符为名字时,其编码值由257开始。并按先后顺序,增量为1。文字符号的编号就是其在符号表中的数值。当按第二种方式时,终结符的编码由用户指定。()union的定义和类型定义利用union的定义和类型定义,就可以使yacc提供其他类型的返回值。具体做法是在说明部分给出一个union的定义,使其包括所期望的数据类型。在类型定义节里,对每个具有这种特殊要求的终结符或者非终结符与union中所定义的成员名进行相互搭配。%

17、unioninttype_type;charchar_type; QTREE *tree_type;%type IStree_typetlist()结合性与优先级优先级与结合性定义由下面的形式给出关键字1 终结符表1关键字2 终结符表2其中关键字用来定义跟在它后边的终结符号的结合性%left 定义跟在它后面的终结符为左结合。%right 定义跟在它后面的终结符为右结合。%nonassoc定义跟在它后面的终结符无结合性。终结符优先级定义由行序来确定。1 由同一关键字引出的,出现在同一行的终结符具有相同的优先级。2 后行的优先级总是高于前行。测试一个完整的编译器前端程序理清编译器前段程序各阶段的程序实现思路 将教材394页中给出的一个完整的编译器前端,加以调试和验证 提交源程序代码和执行结果评测图

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1