- 1、本文档共43页,可阅读全部内容。
- 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节课第一章
第一章 绪论 1.1 编译过程概述 1.2 编译程序的逻辑结构 1.3 编译程序的组织 第一章 绪论 程序设计语言分低级语言和高级语言两类。 低级语言:机器语言、汇编语言及其它面向机器的程序设计语言;其特点为对计算机的依赖性强、直观性差、编写程序的工作量大,对程序设计人员要求较高。 高级语言:有几百种之多,常用的有BASIC、FORTRAN、PASCAL、C、JAVA等,高级语言在算法描述能力、编写和调试效率上均比低级语言优越。 但高级语言与机器之间有一“鸿沟”:机器不能理解高级语言! 因此,要在计算机上实现高级语言,需使该语言能让计算机所理解。 方法:对程序进行翻译或进行解释。 翻译:在计算机中放置一能由计算机直接执行的翻译程序,它将某程序设计语言(源语言)所编写的程序(源程序)作为加工对象,将其翻译成为与之等价的另一种语言(目标语言)的程序(目标程序)。 可见,计算机执行某高级语言程序,需经两个阶段,即编译阶段和运行阶段。 在执行时,一般应有一些辅助子程序配合。 如:数据格式转换子程序、标准函数、动态存储分配子程序等等,由它们构成的子程序库称为运行系统。 编译系统=编译程序+运行系统 编译程序与解释程序 高级语言程序也可通过解释程序来执行。 解释程序:以源程序为输入,在执行过程中不再产生目标程序,而是边解释边执行。 解释程序运行效率不高。 目前,纯粹的解释程序已不多见,通常是将编译和解释作某种程度的结合。 本课程的目的 编译程序是现今任何计算机系统的最重要的系统程序。 本课程的目的,在于向大家介绍设计和构造编译程序的基本原理和基本方法,其中许多方法也适用于构造解释程序或汇编程序。 1.1 编译过程概述 翻译外文书刊与编译工作比较 编译程序的构成 编译程序主要由八个部分构成: 1.词法分析程序(扫描器 scanner) 2.语法分析程序(分析器 parser) 3.语义分析程序 4.中间代码生成程序 5.代码优化程序 6.目标代码生成程序 7.错误检查和处理程序 8.各种信息表格的管理程序 一个微型PASCAL语言的定义 为了便于说明,引入一个微型PASCAL语言(PASCAL/M)的定义。它只有如下四种语句: 1)PROGRAM语句; 2)说明语句; 3)BEGIN-END语句; 4)赋值语句; 每个PASCAL/M语句都以PROGRAM语句开头,后跟说明语句,再跟以一个BEGIN-END语句,在其内部可以有若干赋值语句。 程序1-1 一个PASCAL源程序source PROGRAM source; {This little source program is used to illustrate compiling procedure } VAR x,y,z:integer; a:integer; BEGIN { This program has only 4 statement } x:=23+5; z:=x DIV -3; y:=z+18*3; a:=x+(y-2) DIV 4 END. 1.2.1 词法分析程序(扫描器) 词法分析程序的任务是: 1)识别出源程序的各个基本语法单位(单词或语法符号); 2)删除无用的空白字符及其它与输入介质相关的非实质性字符(空格、回车等); 3)删除注释; 4)进行词法检查,报告所发现的错误。 扫描器输出以单词为单位的单词流。 例如,以特殊符号“#”分隔的单词流: # PROGRAM # source # ; # VAR # x # , # y # , # z # : # integer # ; # a # : # integer # ; # BEGIN # x # := # 23 # + # 5 # ; # z # := # x # DIV # - # 3 # ; # y # := # z # + # 18 # * # 3 # ; # a # := # x # + # ( # y # - # 2 # ) # DIV # 4 # ; # END # . # 单词流的内部表示 注意,前面的单词流形式只是我们为说明原理便于阅读而假定的形式。 为了让计算机能够方便地识别和使用,在实际中的常用方法是将单词计算机内部表示为一个有序对( Class, Value )。 Class为一整型数,用于标识该单词的类别; Value用于存放单词的值。 单词流的内部表示 例如对于source程序,可将其单词分为四类: (1) 保留字 (2) 专用符号 (3) 标识符 (4) 整数 这样,source程序相应的单词流为: ( 1 , ’PAROGRAM’ )
您可能关注的文档
- [通信工程专业主要为研究信号的产生.docx
- [李浪毕业论文.doc
- [第二章土地市场.ppt
- [李海娟教学设计小学英语六年级上册第五单元.doc
- [通信工程人物访谈.docx
- [李清照与张爱玲的女性意识.doc
- [通信大数据行业前景预测及投资战略研究报告.docx
- [通信工程学院2012篮球赛策划外联版.doc
- [编写完美简历061113.ppt
- [李清照词的艺术特点.doc
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
最近下载
- GB 55021-2021 既有建筑鉴定与加固通用规范.pdf VIP
- 非煤矿山安全生产执法检查方案.pptx
- 3DMax中英文对照表2.doc
- 2024年四川省德阳市中考生物试题卷(含答案解析).docx
- 苏教版四下简便计算练习题.doc VIP
- 北京市第一零一中学2023-2024学年八年级下学期期中数学试题(原卷版).pdf VIP
- 2025年单招生活常识题目答案大全 .pdf VIP
- 湖北省武汉市2025届高三上学期元月调考数学试题(学生版+解析版).docx
- 卡萨帝 洗衣机 双子云裳洗干一体机 C8 HU12G1 使用说明.pdf
- 2023届高考英语新时政热点阅读 10 人工智能(含解析).docx
文档评论(0)