搜索资源列表
编译原理及实践
- 目 录 译者序 前言 第1章 概论 1 1.1 为什么要用编译器 2 1.2 与编译器相关的程序 3 1.3 翻译步骤 5 1.4 编译器中的主要数据结构 8 1.5 编译器结构中的其他问题 10 1.6 &
Scanner
- 一个能够分析三种整数、标识符、主要运算符和主要关键字的词法分析程序。 ㈠、基本要求: 标识符 <字母>(<字母>|<数字字符>)* 十进制整数 0 | (1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)* 八进制整数 0(1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)* 十六进制整数 0x(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)(0|1|2|3|4|5|6
wordanalysis
- 、该个词法分析器要求至少能够识别以下几类单词: a. 关键字:else if int return void while共6个,所有的关键字都是保留字,并且必须是小写; b. 标识符:识别与C语言词法规定相一致的标识符,通过下列正则表达式定义:ID = letter (letter | digit)*; c. 常数:NUM=(+ | - |ε)digit digit*(.digit digit* |ε)(e(+ | - |ε) digit digit* |ε),letter = a|
littleC
- 这是一个模拟的C语言编译器---Little C程序。可支持递归、if语句、do-while、return等语句。
do
- do-while循环编译器设计,用C++语言编写的源代码.
hc_compiler
- 由于时间紧迫及事先准备不足,编译器最后定型时暴露出不少问题及不足之处,主要有以下一些方面: 不支持数组数据类型,这是文法分析器设计时的一个疏漏,由于时间关系,最后只得把扫描器中已做好的相关的数组部分删去。 对于float数据类型的支持,直到语义分析都是正常的,也能生成相应的汇编代码,但由于我们对8086/8088指令系统本身了解不足,这样的汇编代码将只能做到含义上完全忠实于源程序,但不能运行。 对于局部变量的支持,则于时间紧迫,所有的局部变量全被处理成静态变量。使递归函数不能得到正确
Compiler
- 编译课上做的小程序,用四种分析方法分别实现(LL1,算符优先,递归下降,简单词法分析) 完成对正则文法所描述的Pascal语言子集单词符号的词法分析程序。 <标识符>→字母︱ <标识符>字母︱ <标识符>数字 <无符号整数>→数字︱ <无符号整数>数字 <单字符分界符> →+ ︱- ︱* ︱ ︱(︱) <双字符分界符>→<大于>=︱<小于>=︱<小于&g
lexicalanalysis
- 设计一个词法分析器。 【基本要求】 词法分析器基本功能是: (1) 输入源程序:输入PASCAL源程序; (2) 输出单词,输出形式为:(序号,单词,对应源程序行号,对应源程序列号); (3) 输出出错信息,输出形式为:(出错行号,出错列号,出错信息); (4) 输出符号表,输出形式为:(单词种别码,单词符号); 【测试数据】 (1)输入源程序: program example1 var a,b,c:integer x:char
dowhilee
- 1.1写出符合给定的语法do-while语句, 此语句符合LL(1)的文法,分析方法 的文法及属性文法。 1.2完成do-while语句的中间代码三地址表示的描述。 1.3写出do-while语句语法分析方法的思想,完成语法分析和语义分析程序设计。 1.4编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。-1.1 write in line with the syntax of a given do-while statement, the sta
while
- 否符合while语句的文法,或者能不能通过文法的开始符号推导出该语句。 (2) 该程序应该包括词法分析器,能对输入的语句进行词法分析,然后再对输出结果。词法分析器应能识别关键字,标示符,常量,操作符等。 (3) 该程序的语法分析器能对输入的语法进行分析,判断输入语句能否满足while循环语句的文法。通过简单优先的方法对语句进行分析,看能否能归约到文法的开始符号。 (4) 该程序的语义分析器就是对分析结果进行输出,要求输出结果是三地址形式的。-Compliance with the s
3_grammar
- C写的一个语法分析器,输入可包含main,int,void,if,else,do,while几个关键字,算符可包括+,-,*,/,++,--,==,!=,<,>,<=,>=,输出求解过程-Write a C parser, type may include main, int, void, if, else, do, while a number of keywords, operators may include+,-,*,/,++,--,==, solving pro
lex
- 用c++实现的此法分析器,包括正则表达式解析,正则到NFA转换,NFA到DFA转换,和最终的匹配,详见包中README文件-Using c++ parser to achieve this method, including regular expression analysis, while the NFA is converted, NFA to DFA conversion, and end the match, see the package README file
RANKCORE
- C programm for finding Rankcorrelation between the to data X and Y. In programm enter -1 to stop the entering data only while you are entering the X.-C programm for finding Rankcorrelation between the to data X and Y. In programm enter-1 to sto
LexicalAnalyzer
- 手工构造一个能够识别C语言的所有典型单词,如:标识符、数字、运算符,和if、while等保留字的确定有限自动机,并写出对应该自动机的程序;然后以一个简化的C语言程序为输入文件,通过所设计的基于上述自动机的词法分析程序获得输入文件中的各个单词及其内码对照表,并以文件形式保存结果(也就是TOKEN序列)。 将自己定义的各个正则表达式转化为NFA,然后将其综合为NFA ,再将NFA 转化为DFA,再将DFA转化为最少状态的DFA ,最后由DFA 转化为词法分析程序。-Manually constr
bianyi
- 1、设计题目:词法分析器的设计。 2、设计要求: 1、 使用任何一种编程语言编制一个词法分析程序。 2、 该程序能够识别的单词有5类: (1) 关键字:"long", "float", "static", "char", "short", "switch", "int", "const", "if", "then", "else", "for", "while", "break"。 (2) 常数:任何整型常数 (3) 标识符:字母打头的字母数字串。 <标识符&
lex_simple
- 简单的lex编程,详细见英文描述 Running the Lex program 1. Write the Lex specifications as described above in a file, say, prog1.l 2. On moon.cse.yzu.edu.tw, do the following: flex prog1.l (Produces lex.yy.c as the output) gcc lex.yy.c -lfl (Compi
From-beginner-to-SCM-SCM-Engineer
- ,我们开始迈入单片机的世界。在我们开始这一章具体的学习之前,有必要给大家先说明一下。在以后的系列文章中,我们将以51内核的单片机为载体,C语言为编程语言,开发环境为KEIL uv3。至于为什么选用C语言开发,好处不言而喻,开发速度快,效率高,代码可复用率高,结构清晰,尤其是在大型的程序中,而且随着编译器的不断升级,其编译后的代码大小与汇编语言的差距越来越小。而关于C语言和汇编之争,就像那个啥,每隔一段时间总会有人挑起这个话题,如果你感兴趣,可以到网上搜索相关的帖子自行阅读。不是说汇编不重要,在很
CMMCompiler
- CMM语言(c-minus-minus)语言的解释器。相对于一些基本的程序而言,本系统具有以下几个特点: 1.基本功能: 支持int,real等简单类型,支持相应简单数组; 支持while,if,else语句; 基本数值运算:+,-,*,/; 2.语句拓展 支持char,string等类型,同时支持相应类型数组,与常量声明; 完全支持for,break ;switch(case,default)continue等语句; 支持 ,++,--,+=,-=,*=,/=等
lc
- 引用原作者:这个类C编译器是我在2008年写的,完成度并不高,并没有实现指针、struct这些,不过还是实现了基本的C语言数据类型(int/char/long/short等),函数的声明、定义、调用、递归,if/for/while/goto等跳转,详细请看sample和source。 为了节省开发的时间,词法和语法分析分别采用lex和yacc编写,可以用Cygwin里面的flex和bison进行编译。另外我觉得编译成x86的bytecode比较麻烦,所以定义了一套自己的bytecode
编译原理 词法分析
- 编译原理 词法分析 [实验项目] 完成以下正则文法所描述的C和Pascal语言子集单词符号的词法分析程序。 <标识符>→字母︱ <标识符>字母︱ <标识符>数字 <无符号整数>→数字︱ <无符号整数>数字 <单字符分界符> →+ ︱- ︱* ︱; ︱(︱) <双字符分界符>→<大于>=︱<小于>=︱<小于>>︱<冒号>=︱