搜索资源列表
编译原理及实践
- 目 录 译者序 前言 第1章 概论 1 1.1 为什么要用编译器 2 1.2 与编译器相关的程序 3 1.3 翻译步骤 5 1.4 编译器中的主要数据结构 8 1.5 编译器结构中的其他问题 10 1.6 &
yufafenxikejianzongshu
- 每种程序设计语言都有描述程序语法结构的规则。例如,Pascal程序由程序块(又叫分程序)构成,程序块由语句组成,语句由表达式组成,表达式由记号组成等等。这些规则可以用上下文无关文法或BNF范式(Backus-Naur Form)描述。 编译器常用的文法分析方法有自上而下和自下而上两种。正如它们的名字所示,自上而下分析器建立分析树是从根结点到叶结点,而自下而上分析器恰好反过来。它们的共同点是从左向右地扫描输入,每次一个符号。 最有效的自上而下和自下而上的分析法都只能处理上下文无关文法的子
for-else
- 本课程设计是一个编译器的设计,包括词法分析部分、语法分析部分和中间代码生成部分。词法分析部分既词法分析器的设计,词法分析是编译的基础,执行词法分析的程序称为词法分析器,也就是说编译程序中完成词法分析任务段就是词法分析器。语法分析部分为语法分析器的设计,采用LR(1)分析方法进行语法分析,判断给出的符号串是否为该文法识别的句子。中间代码生成器部分主要实现逆波兰式的生成,将用中缀式表示的算术表达式转换为用逆波兰式表示的算术表达式,并计算用逆波兰式来表示的算术表达式的值。
LR(1)Arithmetic
- LR(1)文法实现四则运算程序,支持正整数和浮点数运算,有很强大的排错能力。在VC6.0下开发,能够在G++编译器下编译运行
TINY
- 实现了一个基于LR文法的编译器,用了C++语言实现,实现了TINY文法的编译器(Implement a compiler based on LR grammar in the C++ language)