- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三语义分析.
编译原理实验三 语义分析
1.实验目的
通过实验掌握语法制导分析的翻译理论、原理和方法,为为代码优化、生成做准备。
2.实验内容:
选择所学过的语义分析技术之一实现下面文法G的语义分析程序。
文法G:简单算术表达式的文法
E → T{+T|-T}
T → F{*F|/F}
F → (E) | a | b | c
简单算术表达式的运算分量只能是单词符号a、b、c
要求:
如果是文法正确句子,输出相应的四元组
输出是
Error 不是文法正确句子
例如
输入 a+b*c# 输出 (*,entry (b),entry (c),t1)
(+,entry (a),t1,t2)
输入 a+c+b*c-a# 输出 (+,entry (a),entry (c),t1)
(*,entry (b),entry (c),t2)
(+,t1,t2,t3)
(-,t3,entry (a),t4)
输入 d+f# 输出 error
输入 a+b*+c# 输出 error
输入 a(b)# 输出 error
3.实验要求:
上机前编写完整的实验报告,报告中要体现分析?设计?实现等几个过程;如无实验报告,则取消本次上机资格,实验成绩以0分记。
严禁相互抄袭,否则实验成绩以0分记;
有完整的源代码,源码有规范的注释,无明显的语法错误;
4.实验步骤
分析与设计
1设置语义过程
emit(char *result,char *arg1,char *op,char *ag2)
该函数功能是生成一个三地址语句送到四元式表中。
四元式表的结构如下:
struct {char result[8];
char ag1[8];
char op[8];
char ag2[8];
}quad[20];
(2) char *newtemp()
该函数回送一个新的临时变量名,临时变量名产生的顺序为T1,T2,….
Char *newtemp(void)
{
char *p;
char m[8];
p=(char *)malloc(8);
k++;
itoa(k,m,10);
strcpy(p+1,m);
p[0]=’t’;
return(p);
}
编码实现
//对字符的扫描
void scaner() {
for(n=0;n8;n++)
token[n]=NULL;
ch=prog[p++];
while(ch== ) {
ch=prog[p];
p++;
}
if((ch=ach=z)||(ch=Ach=Z)) {
if((ch=ach=c)||(ch=Ach=C)){
m=0;
while((ch=0ch=9)||(ch=ach=z)||(ch=Ach=Z)) {
token[m++]=ch;
ch=prog[p++];
}
token[m++]=\0;
p--;
syn=10;
for(n=0;n6;n++) {
if(strcmp(token,rwtab[n])==0) {
syn=n+1;
break;
}
}
}
else
coutError!endl;
}
else if((ch=0ch=9)) {
{
sum=0;
while((ch=0ch=9)) {
sum=sum*10+ch-0;
ch=prog[p++];
}
}
p--;
syn=11;
if(sum32767)
syn=-1;
}
else switch(ch)
{
case:
m=0;
token[m++]=ch;
ch=prog[p++];
if(ch==) {
syn=21;
token[m++]=ch;
}
else if(ch===)
{
syn=22;
token[m++]=ch;
}
else {
syn=23;
p--;
}
bre
您可能关注的文档
- 实验三汽车配件公司信息系统数据流程图..doc
- 实验三液体粘滞系数的测定..doc
- 实验三污泥比阻的测定..doc
- 实验三渐开线直齿圆柱齿轮参数的测定..doc
- 实验三热电偶高温气体温度的测量..doc
- 实验三牛顿环实验的MATLAB仿真..doc
- 实验三水箱液位的测量..doc
- 实验三特征造型实验..doc
- 实验三用FFT对信号作频谱分析_实验报告..doc
- 实验三用双线性变换法设计IIR滤波器..doc
- 面向2025年跨境电商数字化平台的跨境电商物流智能化研究报告.docx
- 2025年Z世代健康饮品消费趋势深度分析报告.docx
- 文旅景区淡季运营策略规划与2025年特色主题活动方案全解析.docx
- 银发旅居养老模式创新与发展趋势分析报告.docx
- 教育机构线上招生,2025年招生团队建设与人才培养报告.docx
- 临湘市忠防镇官山—肖家坡二矿矿山生态保护修复方案.pdf
- 自闭症的护理措施.pptx
- 虚拟现实技术助力2025年在线职业教育市场规模扩大与课程沉浸感研究报告.docx
- 2025年脑机接口技术在神经调控领域的转化研究进展报告.docx
- 2023年新高考地区数学名校地市选填压轴题好题汇编(27)(解析版).docx
最近下载
- 知识产权法智慧树知到期末考试答案章节答案2024年同济大学.docx VIP
- 临床医学教学模式创新与课堂互动设计.pptx
- 生猪屠宰兽医卫生检验人员理论考试题库资料及答案.pdf VIP
- 天津市静海区2024-2025学年高一下学期6月学生学业能力调研试题 地理试卷含答案.docx VIP
- 有限空间安全作业技术交底.docx VIP
- 消防设施操作员(中级监控方向)理论知识考试题库(含答案解析).pdf VIP
- 小学校园心理危机干预培训.pptx VIP
- 《内部控制与风险管理(第3版)》思考题和案例分析答案6-10章.docx VIP
- 军职在线-雷达原理-2023年春期末考试答案.docx VIP
- 佛山第六次人口普数据分析.doc VIP
文档评论(0)