1 / 49
文档名称:

编译原理课程设计--C-语言编译器设计.doc

格式:doc   页数:49
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

编译原理课程设计--C-语言编译器设计.doc

上传人:mkt365 2013/6/14 文件大小:0 KB

下载得到文件列表

编译原理课程设计--C-语言编译器设计.doc

文档介绍

文档介绍:编译原理课程设计报告
课题名称: C-语言编译器设计


课程设计目标
实验建立C-编译器。只含有scanner和parser部分。
分析与设计
(1)实现方法:
编程语言为C语言。
编程方法:scanner部分根据DFA图用switch-case结构实现状态转换;parser部分用递归下降分析方法实现。
(2)扫描器:
C-惯用的词法
1、语言的关键字:else if int return void while
2、专用符号:+ - * / < <= > >= == != = ; , ( ) [ ] { } /* */
3、其他标记是ID和NUM,通过下列正则表达式定义:
ID = letter letter* NUM = digit digit* letter = a|..|z|A|..|Z digit = 0|..|9
4、空格由空白、换行符和制表符组成。空格通常被忽略,除了它必须分开ID、NUM关键字。
5. 注释用通常的C语言符号/ * . . . * /围起来。注释可以放在任何空白出现的位置(即注释不能放在标记内)上,且可以超过一行。注释不能嵌套
各单词的状态转换图(DFA图如下)词法结构见文件""中。
(3)分析器:分析树结构见文件""中。
C-的BNF语法如下:
(4)代码设计说明:
程序结构:语法分析函数parse通过调用词法分析函数getToken实现语法分析。
文件和函数的设计说明:,及main函数的实现;; ,以及分析树节点初始化相关的函数newStmtNode,newExpNode(Expkind)和copyString; ,主要函数为getToken; ,函数为与文法规则对应的函数。
关键数据结构
程序代码实现
:
//实验建立C-编译器。只含有scanner和parser部分。
#include""
#include ""
#include ""
#include ""
//全局变量和标志
int lineno=0;
FILE*source;
FILE*listing;
FILE*code;
int EchoSource=TRUE;
int TraceScan=TRUE;
int TraceParse=TRUE;
int Error=FALSE;
int main(int argc,char*argv[])
{
TreeNode*syntaxTree;
char pgm[120]; //代码文件名
if(argc!=2)
{
fprintf(stderr,"usage:%s C:\ \n",argv[0]);
return -1;
}
strcpy(pgm,argv[1]);
if (strchr(pgm,'.')==NULL)
{ strcat(pgm,".tny"); }
source=fopen(pgm,"r");
if(source==NULL)
{
fprintf(stderr,"file %s not found \n",pgm);
return -1;
}
listing=stdout;
fprintf(listing,"\n PILATION: %s\n",pgm);
// while (getToken()!=ENDFILE);
EchoSource=FALSE;
TraceScan=FALSE;
syntaxTree=parse();
if(TraceParse)
{ fprintf(listing,"\nSyntax tree\n:");
printTree(syntaxTree);
}
fclose(source);
return 0;
}
:
#ifndef _GLOBALS_H_
#define _GLOBALS_H_
#include <>
#include <>
#include <>
#include <>
#ifndef FALSE

最近更新

高并发优化策略 35页

2025年安徽汽车职业技术学院马克思主义基本原.. 12页

2025年宾县幼儿园教师招教考试备考题库附答案.. 31页

2025年山东师范大学马克思主义基本原理概论期.. 12页

2025年左云县幼儿园教师招教考试备考题库带答.. 30页

2025年广州松田职业学院马克思主义基本原理概.. 12页

2025年廊坊职业技术学院单招职业技能测试题库.. 44页

2025年惠州工程职业学院单招职业技能考试题库.. 43页

2025年曲松县招教考试备考题库及答案解析(必.. 30页

2025年榆林学院马克思主义基本原理概论期末考.. 13页

2025年江西制造职业技术学院马克思主义基本原.. 12页

2025年沙洲职业工学院马克思主义基本原理概论.. 13页

2025年泉州信息工程学院马克思主义基本原理概.. 12页

2025年浙江旅游职业学院马克思主义基本原理概.. 13页

2025年温州医科大学马克思主义基本原理概论期.. 13页

2026年中医住培带教师资理论考核题库100道及答.. 40页

2026年主管中药师考试备考题100道含答案【b卷.. 38页

2025年福建省福州市单招职业适应性考试题库附.. 44页

最新全国政法队伍教育整顿知识竞赛试题库【名.. 40页

最新煤气操作证考试题100道【轻巧夺冠】 39页

2026年主管中药师考试备考题100道及完整答案 38页

2026年医学微生物学习题集含答案(模拟题) 40页

2026年湖北幼儿师范高等专科学校单招职业技能.. 43页

2026年网络安全知识竞赛题库带答案(培优a卷).. 40页

小学历史与文化知识竞赛题库100道带答案(达标.. 37页

新安全生产法知识竞赛试题库附答案 44页

最新全国政法队伍教育整顿知识竞赛试题库(综.. 40页

2025年减震器项目发展计划 60页

秋第六章高层建筑基础结构设计箱基 32页

2025年百色职业学院单招职业适应性测试题库附.. 43页