词法,文法,语法,语义
词法分析(Lexical analysis或Scanning)和词法分析程序(Lexical analyzer或Scanner)
词法分析阶段是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用lex等工具自动生成。
语法分析(Syntax analysis或Parsing)和语法分析程序(Parser)
语法分析是编译过程的一个逻辑阶段。语法分析的任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等.语法分析程序判断源程序在结构上是否正确.源程序的结构由上下文无关文法描述.
语义分析(Syntax analysis)
语义分析是编译过程的一个逻辑阶段. 语义分析的任务是对结构上正确的源程序进行上下文有关性质的审查, 进行类型审查.例如一个C程序片断:
int arr[2],b;
b = arr * 10;
源程序的结构是正确的.
语义分析将审查类型并报告错误:不能在表达式中使用一个数组变量,赋值语句的右端和左端的类型不匹配.
Lex
一个词法分析程序的自动生成工具。它输入描述构词规则的一系列正规式,然后构建有穷自动机和这个有穷自动机的一个驱动程序,进而生成一个词法分析程序.
Yacc
一个语法分析程序的自动生成工具。它接受语言的文法,构造一个LALR(1)分析程序.因为它采用语法制导翻译的思想,还可以接受用C语言描述的语义动作,从而构造一个编译程序. Yacc 是 Yet another compiler compiler的缩写.
源语言(Source language)和源程序(Source program)
被编译程序翻译的程序称为源程序,书写该程序的语言称为源语言.
目标语言(Object language or Target language)和目标程序(Object program or Target program)
编译程序翻译源程序而得到的结果程序称为目标程序, 书写该程序的语言称为目标语言.
中间语言(中间表示)(Intermediate language(representation))
在进行了语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或中间表示或中间代码。所谓“中间代码”是一种结构简单、含义明确的记号系统,这种记号系统复杂性介于源程序语言和机器语言之间,容易将它翻译成目标代码。另外,还可以在中间代码一级进行与机器无关的优化。
文法(Grammars)
文法是用于描述语言的语法结构的形式规则。文法G定义为四元组(,,,)。
0型文法产生的语言称为0型语言。
1型文法产生的语言称为1型语言,也称作上下文有关语言。
2型文法产生的语言称为2型语言,也称作上下文无关语言。
3型文法产生的语言称为3型语言,也称作正规语言。
词法,文法,语法,语义相关推荐
- 词法语法语义_阅读法语的开源
词法语法语义 说英语的人有很多很棒的开源资源,很容易忘记,并不是每个人都可以用英语进行交流. 因此,我一直在寻找西班牙语和法语的出色开源资源,以便在需要时可以推荐它们. 我最近看过的一个是LinuxF ...
- 编译原理课程作业-Cminus语言的词法及语法分析器实现
Cminus Compiler 编译原理课程作业-Cminus语言的词法及语法分析器实现 设计思想 词法分析 使用确定有限态自动机(DFA)实现与Lex自动分析两种方式实现. 语法分析 使用递归下降方 ...
- LLVM语法语义指令特性
LLVM语法语义指令特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元.每个模块由函数,全局变 ...
- LLVM一些编程语法语义特性
LLVM一些编程语法语义特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元.每个模块由函数.全 ...
- java词法分析_Hive源码系列(七)编译模块之词法、语法解析 (中)
这篇主要举实际案例说明怎么使用antlr工具.利用antlr生成的Lexer.Parser.TreeParser代码,获取asttree.这些都是hive获取asttree的过程,理解了这些,再理解 ...
- 词法、语法与语义相关知识
概念 http://www.juweixin.com/t/detail/148383 语法到底是什么?有人说语法是语言里的法律.法规:有人说语法是框架结构:还有人说语法就是对前人语言习惯的一种总结.以 ...
- 词法,语法,句法,语义
个人笔记,谨慎参考. 参考:<A Survey of Binary Code Similarity> 2021 下载:2021-ASurveyofBinaryCodeSimilarity. ...
- 编译原理之词法与语法(2)
书接上回(要看前面的点这里) 一.高级语言介绍 高级语言指定的是不同于机器语言与汇编语言需要经过编译才能被执行的语言,如c,c++,java,py等(我想大家都知道).对于他们是强制性.应用性.算法 ...
- NLP基础知识(语法语义、LDA、N-gram、词嵌入)
文章目录 本节课大纲 Hyper-simplified linguistics Term spotting + handling negation, uncertainty ML to expand ...
- 计算机网络中的语法 语义 时序的概念,网络iso协议及语义语法时序详解
网络iso协议及语义语法时序详解 计算机学习 网络协议的三要素 在计算机网路中,通信发生在不同系统的实体之间,,实体(entity)是能够发送和接收信息的任何事物.然而,两个实体间仅发送比特流就指望能 ...
最新文章
- map语法获取index_JavaScript中的数组遍历forEach()与map()方法以及兼容写法
- 简单的print函数的实现
- python安装包打不开
- linux网络对时命令
- js注释过后依然起作用
- 【物联网】全球SIM连接解决IoT设备换卡难问题
- 装完系统还要装什么_一键重装系统后需要干嘛
- 图床及管理工具PicGo
- 商业智能BI与业务管理决策思维之二:业务结构分析
- 苹果 AirPods 或改用 USB-C 接口,AirPods 最有用的功能就是Find My
- 系统集成项目管理|十大管理
- 学习gridsearchcv 参数以及输出+多scoring
- 电子邮件(E-mail)证据若干问题研究
- 计算机电路板 接地,pcb电路板接地怎么接
- 丑数 uva-136 丑数
- Altium Designer-打开丝印层、位号,不显示器件位号问题
- 杨幂换脸不算啥,AI还能造出“并不存在”的美食图、假简历
- Spark小象学院笔记
- qt 错误:request for member 'show' in 'showlist_ui', which is of non-class type 'ShowList*'
- 3d打印服务模型定制软胶橡胶硅胶TPU小批量复模工业级手板打样
热门文章
- 11 OpenCV图像识别之人脸识别
- sentos7忘记root密码,重置密码
- 苹果屏幕上的小圆点_iPhone点2下屏幕就能截屏,你还在用按键截屏?不会花30秒学...
- root开启有什么坏处吗,手机开启了root对手机有什么影响吗?
- 运行TomCat出现淇℃伅乱码解决方案
- 逆向 time.h 函数库 time、gmtime 函数
- 超简单的 ProgressBar + AlertDialo
- 实测腾讯高精定位:赋能车道级导航 对驶入应急车道、车道级偏航等驾驶行为及时响应
- Android 取消系统默认手机加密(全盘加密)
- Excel 中拼接多个单元格内容的方法