码迷,mamicode.com
首页 > 其他好文 > 详细

<自考学习记录> 课程代码6370《编译技术》<2>

时间:2018-05-07 17:39:28      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:自考

1.2 编译过程概述
编译程序,是从输入源程序开始到输出目标程序为止的整个过程。
一个编译程序的整个工作过程是划分成阶段进行的,每个阶段将源程序的一种表示形式转换成另一种表示形式。
整个过程可以划分成5个阶段:词法分析、语法分析、中间代码生成、代码优化、目标代码生成。
另外还有两项重要的工作:表格管理和出错处理,这两项工作与上述5个阶段都有联系。
表格管理:保存源程序的各种信息,编译过程中各个阶段工作涉及到的构造、查找或更新有关的信息。
出错处理:编译过程中发现源程序有错误,编译程序应报告错误的性质和错误发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的剩余部分能继续被编译下去。
现在从源程序在不同阶段所被转换成的表示形式的不同来介绍各个阶段的任务:
词法分析:
词法分析的任务是从左到右将一个个字符读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词,这里所谓的单词是指逻辑上紧密相连的一组字符,这些字符具有具体含义:比如标识符是由字母字符开头,后跟字母、数据字符的字符序列组成的一种单词,此外还有算符、界符等。
例:begin var sum,first,count:real;
词法分析阶段将构成这段程序的字符组成了如下单词序列:
1.保留字 begin 2.保留字 var 3.标识符 sum
4.逗号 , 5.标识符 first 6.逗号 , 7.标识符 count
8.冒号 : 9.保留字 real 10.分号 ;
这些单词间的空格在词法分析阶段都被过滤掉了。
单词符号是语言的基本组成成分,是人们理解和编写程序的基本要素,识别和理解这些要素无疑也是翻译的基础。
如同英文翻译成中文,如果你对英语单词不理解或对构词法不熟悉,那就谈不上进行正确的翻译。
在词法分析阶段工作中所依循的是语言的构词规则。
语法分析:
语法分析的任务是在词法分析的基础上根据语言的语法规则把单词符号串分解成各类语法单位。
未完待续(;′?ω?`人)

<自考学习记录> 课程代码6370《编译技术》<2>

标签:自考

原文地址:http://blog.51cto.com/13550568/2113604

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!