天天看点

小型pascal编译器C语言代码,Pascal简单编译器

小型pascal编译器C语言代码,Pascal简单编译器
小型pascal编译器C语言代码,Pascal简单编译器

172

2018-08-21 22:49

本文设计了一个简单的编译器,包括编译器较完整的前端和后端的设计,可以对 Pascal 文法的源程序进行词法分析、语法分析、语义分析、并生成四元式中间代码,最后能生成目标代码。 文法包括变量和常量的声明,多维数组、结构体的声明和调用,过程函数和子函数的声明和调用,算术运算,逻辑运算,赋值语句,条件选择语句,循环语句。 在词法分析中,扫描器依次扫描写有源程序的文本文档中的字符,按给出的有限状态自动机转换关系拼成单词,生成 Token 序列,支持添加注释信息,以及 Pascal 语言代码中错误的位置信息。 本文用递归下降子程序的方法进行语法分析,同时进行语义分析。语义动作包括查填符号表系统,并借助符号表系统进行定义和重定义检查,类型匹配校验,数据的越界和溢出检查,值单元存储分配信息,子函数和过程函数的参数传递与校验,并生成四元式中间代码。 在编译器后端中,基于 DAG 有向无环图对基本块内的四元式序列做了优化。 最后,生成了在单寄存器下经过寄存器分配优化的目标代码。

小型pascal编译器C语言代码,Pascal简单编译器

如无法正常下载,请通过“查看联系方式”或者APP扫码,直接联系作者开放下载权限

小型pascal编译器C语言代码,Pascal简单编译器