编译原理课程设计_算术表达式的语法分析及语义分析程序设计.doc
2022-05-31 22:04:42 139KB 文档资料
附录c 编译程序实验 实验目的:用c语言对一个简单语言的子集编制一个一遍扫描的编译程序,以加深对编译原理的理解,掌握编译程序的实现方法和技术。 语法分析 C2.1 实验目的 编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析. C2.2 实验要求 利用C语言编制递归下降分析程序,并对简单语言进行语法分析. C2.2.1待分析的简单语言的语法 实验目的 通过上机实习,加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法. 实验要求 采用递归下降语法制导翻译法,对算术表达式、赋值语句进行语义分析并生成四元式序列。 实验的输入和输出 输入是语法分析提供的正确的单词串,输出为三地址指令形式的四元式序列。 例如:对于语句串 begin a:=2+3*4;x:=(a+b)/c end# 输出的三地址指令如下: (1) t1=3*4 (2) t2=2+t1 (3) a=t2 (4) t3=a+b (5) t4=t3/c (6) x=t4 算法思想 1设置语义过程 (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); } (2)主程序示意图如图c.10所示。 (2) 函数lrparser在原来语法分析的基础上插入相应的语义动作:将输入串翻译成四元式序列。在实验中我们只对表达式、赋值语句进行翻译。 语义分析程序的C语言程序框架 int lrparser() { int schain=0; kk=0; if(syn=1) { 读下一个单词符号; schain=yucu; /调用语句串分析函数进行分析/ if(syn=6) { 读下一个单词符号; if(syn=0 && (kk==0)) 输出(“success”); } else { if(kk!=1 ) 输出 ‘缺end’ 错误;kk=1;} else{输出’begin’错误;kk=1;} } return(schain); int yucu() { int schain=0; schain=statement();/调用语句分析函数进行分析/ while(syn=26) {读下一个单词符号; schain=statement(); /调用语句分析函数进行分析/ } return(schain); } int statement() { char tt[8],eplace[8]; int schain=0; {switch(syn) {case 10: strcpy(tt,token); scanner(); if(syn=18) {读下一个单词符号; strcpy(eplace,expression()); emit(tt,eplace,””,””); schain=0; } else {输出’缺少赋值号’的错误;kk=1; } return(schain); break; } } char *expression(void) {char *tp,*ep2,*eplace,*tt; tp=(char *)malloc(12);/分配空间/ ep2=(char *)malloc(12); eplace=(char *)malloc(12); tt =(char )malloc(12); strcpy(eplace,term ());/调用term分析产生表达式计算的第一项eplace/ while(syn=13 or 14) { 操作符 tt= ‘+’或者‘—’; 读下一个单词符号; strcpy(ep2,term());/调用term分析产生表达式计算的第二项ep2/ strcpy(tp,newtemp());/调用newtemp产生临时变量tp存储计算结果/ emit(tp,eplace,tt,ep2);/生成四元式送入四元式表/ strcpy(eplace,tp); } return(eplace); } char *term(void)/仿照函数expression编写/ char *factor(void) {char *fplace; fplace=(char *)malloc(12); strcpy(fplace, “ ”); if(syn=10) {strcpy(fplace,,token);/将标识符token的值赋给fplace/ 读下一个单词符号; } else if(syn=11) {itoa(sum,fplace,10); 读下一个单词符号; } else if (syn=27) {读下一个单词符号; fplace=expression();/调用expression分析返回表达式的值/ if(syn=28) 读下一个单词符号; else{输出‘}’错误;kk=1; } } else{输出‘(’错误;kk=1; } return(fplace); }
2022-05-28 20:31:26 671KB 语法分析 语义分析 词法分析
1
语义分析器 Java编程语言的子集的语义分析器。 :语义分析(也包括上下文敏感分析)是编译器构造过程中的一个过程,通常在解析后从源代码中收集必要的语义信息。 它通常包括类型检查,或确保在使用前声明了一个变量,该变量无法用扩展Backus–Naur形式描述,因此在解析过程中不容易检测到。 先决条件: 该应用程序是使用Java构建的,因此您应该在计算机上安装才能运行它。 特征: 词法分析。 语法分析(解析)。 语义分析。 用法: 将此存储库下载或克隆到您的计算机。 编译并运行带有命令行参数的任何Tester类(Testlexer,TestParser或TestSemantic)都指向测试文件路径。 javac Testlexer . java java Testlexer test_file_path 或者 javac TestParser . java java TestP
2022-05-17 11:03:24 38KB java parser compiler lexer
1
本文提出了一种基于循环神经网络的语义完整性分析方法,通过判断句子是否语义完整,将长文本切分成多个语义完整句.首先,对文本进行分词,映射为相应的词向量并进行标注,然后将词向量和标注信息通过循环窗口和欠采样方法处理后,作为循环神经网络的输入,经过训练最后得到模型.实验结果表明,该方法可以达到91.61%的准确率,为主观题自动评分工作提供了基础,同时对语义分析、问答系统和机器翻译等研究有一定的帮助.
1
【课程简介】 本课程适合所有需要学习机器学习技术的同学,课件内容制作精细,由浅入深,适合入门或进行知识回顾。 本章为该课程的其中一个章节,如有需要可下载全部课程 全套资源下载地址:https://download.csdn.net/download/qq_27595745/85252312 【全部课程列表】 第1章 机器学习和统计学习 共75页.pptx 第2和12章 感知机和统计学习方法总结 共27页.pptx 第3章 k-近邻算法 共69页.pptx 第4章 贝叶斯分类器 共79页.pptx 第5章 决策树 共98页.pptx 第6章 Logistic回归 共75页.pptx 第7章 SVM及核函数 共159页.pptx 第8章 adaboost 共75页.pptx 第9章 EM算法 共48页.pptx 第10章 隐马尔科夫模型 共64页.pptx 第11章 条件随机场 共63页.pptx 第13章 无监督学习概论 共27页.pptx 第14章 聚类方法 共52页.pptx 第15章 奇异值分解 共66页.pptx 第16章 主成分分析 共67页.pptx 第17章 潜在语义
2022-05-04 12:05:40 2.49MB 机器学习 学习 文档资料 人工智能
【课程简介】 本课程适合所有需要学习机器学习技术的同学,课件内容制作精细,由浅入深,适合入门或进行知识回顾。 本章为该课程的其中一个章节,如有需要可下载全部课程 全套资源下载地址:https://download.csdn.net/download/qq_27595745/85252312 【全部课程列表】 第1章 机器学习和统计学习 共75页.pptx 第2和12章 感知机和统计学习方法总结 共27页.pptx 第3章 k-近邻算法 共69页.pptx 第4章 贝叶斯分类器 共79页.pptx 第5章 决策树 共98页.pptx 第6章 Logistic回归 共75页.pptx 第7章 SVM及核函数 共159页.pptx 第8章 adaboost 共75页.pptx 第9章 EM算法 共48页.pptx 第10章 隐马尔科夫模型 共64页.pptx 第11章 条件随机场 共63页.pptx 第13章 无监督学习概论 共27页.pptx 第14章 聚类方法 共52页.pptx 第15章 奇异值分解 共66页.pptx 第16章 主成分分析 共67页.pptx 第17章 潜在语义
2022-05-04 12:05:39 1.7MB 机器学习 统计学习 语义分析
安全技术-网络信息-在线社会化网络的语义分析和语义社会网的构建吴超.pdf
2022-05-02 11:00:32 5.33MB 文档资料 安全 网络
编译原理实验报告,内有三种练习。附赠源代码。实验1:词法分析;实验2:语法分析;实验3:语义分析与中间代码生成
1
李子柒油管评论数据完整版.csv (用于语义分析)是李子柒关于粽子端午节那期视频的评论数据。包含了,评论日期时间,点赞数量,评论,用户id
2022-03-28 21:01:59 1.08MB 语义分析
1
语义分析器,编译原理课程设计,c++,c,很不错的哦
1