编译原理课件第一章

编译原理课件第一章

ID:4151638

大小:2.02 MB

页数:75页

时间:2017-11-29

编译原理课件第一章_第1页
编译原理课件第一章_第2页
编译原理课件第一章_第3页
编译原理课件第一章_第4页
编译原理课件第一章_第5页
资源描述:

《编译原理课件第一章》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、程序设计语言的历史程序设计语言的组成编译器的结构XL语言编译器IntroductionWANGHanfeiSchoolofComputerWuhanUniversitySeptember8,2009chfwang-1/45-程序设计语言的历史程序设计语言的组成编译器的结构XL语言编译器1程序设计语言的历史2程序设计语言的组成字符单词语句语义3编译器的结构编译器的定义编译器的结构4XL语言编译器XL语言的形式规则词法分析器的设计递归下降语法分析器的设计语义分析及代码生成chfwang-2/45-程序设计语言的历史程序设计语言的组成编译器的结构XL语言编译器Prehistory(

2、40年代)—机器语言(GraceHopper)(Punchcard)Intel机器码写的阶乘计算程序101110000000000100000000000000000000000010111010000000100000000000000000000000000011100111011010011111110000011000001111101011111100001001000010111010111111011011000011chfwang-3/45-程序设计语言的历史程序设计语言的组成编译器的结构XL语言编译器远古(1950)—汇编语言及汇编器用文本表示机器语言机器指

3、令用助记符表示;内存地址和指令地址用标识符表示;允许有注释。汇编器完成汇编语言到机器语言的翻译。Intel汇编语言的阶乘计算程序;;输入参数N放入寄存器EBX中;;计算结果放入寄存器EAX中Factorial:moveax,1;;初始化输出result=1movedx,2;;初始化循环参数index=2L1:cmpedx,ebx;;如果index<=N...jgL2imuleax,edx;;result乘上indexincedx;;index递增1jmpL1;;转移到循环始点L2:ret;;返回chfwang-4/45-程序设计语言的历史程序设计语言的组成编译器的结构XL语言

4、编译器复兴(1957)—算术表达式的翻译FORTRAN—FORmulaTRANslator与机器无关;数学表达式,不需要计算机专业知识即可阅读和书写;编译器完成数学表达式到汇编语言到翻译。二次方程的求解InFORTRAN:;Inassemblylanguage:D=SQRT(B*B-4*A*C)mult1,b,bsubx1,d,bX1=(-B+D)/(2*A)mult2,a,cdivx1,x1,t3X2=(-B-D)/(2*A)mult2,t2,4negx2,bsubt1,t1,t2subx2,x2,dsqrtd,t1divx2,x2,t3mult3,a,2chfwang-5

5、/45-程序设计语言的历史程序设计语言的组成编译器的结构XL语言编译器曙光(60年代)—递归和循环ALGOL(ALGOrithmicLanguage)—算法语言的诞生Backus-Naur范式对语言形式描述;递归调用,控制结构和调用方式(传值与传名);现代程序设计语言的雏形。阶乘函数---用C语言书写Iteration(loops):Recursion:r=1;intfact(intn)for(i=2;i<=n;i++){if(n<=1)r=r*i;return1;elsereturnfact(n-1)*n;}chfwang-6/45-程序设计语言的历史程序设计语言的组成编译

6、器的结构XL语言编译器现代(80年代)—数据结构的自动表示ML—函数式程序设计语言抽象数据类型;数据在内存的表示由编译器控制;编译器管理内存的分配;说明式语言。阶乘函数---用ML语言书写letrecfactn=ifn<=1then1elsefact(n-1)*nchfwang-7/45-程序设计语言的历史程序设计语言的组成编译器的结构XL语言编译器1程序设计语言的历史2程序设计语言的组成字符单词语句语义3编译器的结构编译器的定义编译器的结构4XL语言编译器XL语言的形式规则词法分析器的设计递归下降语法分析器的设计语义分析及代码生成chfwang-8/45-程序设计语言的历史

7、程序设计语言的组成编译器的结构XL语言编译器字符(characters)字符组成程序语言的最小单位;字符编码。ExampleASCII,EBCDIC:’Z’-’A’+1UNICODE(UCS),UTF-7,UTF-8,ISO-Latin,GB2312MIME(MultipurposeInternetMailExtensions):mpack,munpackchfwang-9/45-程序设计语言的历史程序设计语言的组成编译器的结构XL语言编译器单词(tokens)单词(tokens)一组连续的字符,程序语

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。