- 5
- 0
- 约 54页
- 2017-02-04 发布于江苏
- 举报
编译原理及实现 任课教师:韦艳艳 联系电话E-mail:ybwyy2006@ 编译原理---课前思考 为什么有些语言规定标识符不能超过8个字符?而有些语言对标识符的长度无限制? 为什么有些语言能实现递归,而有些语言不能? C语言规定数组下界为0,上界为声明的数减1,为什么? 嵌套的IF语句规定ELSE与上面最近的IF配对,为什么? 为什么有些程序运行一段时间后会导致内存溢出? 为什么Java实现了“一次编写,到处运行”? …… 各章节内容 学习要求 参考书目 课程学习网站 题 外 话 基本:完成课程学习,通过考试,获得学分。 提高:能够将所学知识和内容用于解决实际问题。 飞跃:通过编译原理的学习,改进思维方式,为将来的工作打好基础,终身受益。 学习内容: 1.1 程序设计语言 1.2 翻译程序 1.3 编译程序的组成 1.4 编译程序的结构 1.5 编译程序的前后处理器 1.6 TEST语言与编译器 第1章 编译概述 学习重点: 1、编译程序 2、编译程序与解释程序的根本区别 3、典型的编译程序模型及其各组成 部分的功能 回顾:程序与程序设计语言 程序:为实现特定目标或解决特定问题而用计算机语言编写的指令序列的集合。 常见的程序设计语言: C++, Java, C, FORTRAN, Pascal, Lisp, Basic, ML等 1.1 程序设计语言(p1) 1、机器语言(最低形式,属低级语言) 特点:程序中的每条指令都是用二进制代码直接表示的,由它构成机器的指令系统,机器能直接识别和直接执行,但机器语言程序难写、难读、难修改,编程的工作量大,对程序员的要求高。 机器语言程序示例: 3、高级语言 特点:它独立于机器,比较接近自然语言,因而容易学习和掌握,且编写程序效率高,编写出的程序易读、易理解、易修改、易移植,但机器不能直接识别和直接执行。 3、翻译程序在计算机系统中的所在层 编译程序 vs. 解释程序 看起来,编译器似乎完全能代替汇编啊! 回答是No。 Why? 高级语言通过编译器转化成的机器语言,受限于高级语言,其效率和功能上都有限制。比如不能过分操作内存。但通过汇编器转化过来的机器语言,效率高,且用汇编语言,可直接和CPU对话! 汇编可以反汇编(逆向编译),即: 程序(二进制机器语言)通过反汇编器(compiler),可转化为汇编代码(文本) 但永远不能转化为高级语言的源代码! 编译过程 自然语言的翻译(如把英文翻译为中文 ) 识别出句子中的一个个单词; 分析句子的语法结构; 根据句子的含义进行初步翻译; 对译文进行修饰; 写出最后的译文。 1.4 编译程序的结构(p7) 把编译程序分为前端和后端的优点是便于编译程序的构造和移植。 例如,有K种高级语言、L种目标机器,如果不分前端和后端,就需要建立K*L套编译程序,而分成前端和后端,只需要建立K(前端)+L(后端)套编译程序。 1.6 TEST语言与编译器(p10) 一、TEST语言 TEST语言程序是由一对花括号括起来的语句序列,它在语法上相当于C语言的函数体。 声明语句:只能是简单的整型变量 控制语句:if、while和for语句 表达式语句:布尔表达式和算术表达式 算术运算符: +、-、*、/ 比较运算符: 、=、、=、==和!= 输入语句:read语句 输出语句:write语句 注释语句:用“/*”和“*/”括起来,但注释不能嵌套。 二、TEST编译器 三、TEST机 习题 (p11) 1、词法分析程序(又称扫描器) 词法分析依次读入源程序中的每个字符,依据语言的构词规则,识别出一个个具有独立意义的最小语法单位,即“单词”,并用整数码或有意义的记号来表示每个单词的词性是保留字、标识符、分界
您可能关注的文档
最近下载
- 反应机理(研)-高等无机化学.ppt VIP
- 218SS-PKE 摩托车操作说明书.pdf
- 2025年高考甘肃卷物理真题.docx VIP
- 凯恩帝K1TBIII-A-As数控系统用户手册.pdf
- 杭州电子科技大学信息工程学院2025-2026学年《概率论与数理统计2》第一学期期末试题(B).docx VIP
- 第2章 有理数的运算(单元测试·培优卷)含答案-2024人教版七年级数学上册.pdf VIP
- 中考1600词汇对照表(英译汉).doc VIP
- 杭州电子科技大学2025-2026学年《概率论与数理统计2》第一学期期末试题(B).docx VIP
- 香农三大定理详解.ppt VIP
- 【初中物理】专项练习:物体的密度及其测定40题(附答案).pdf VIP
原创力文档

文档评论(0)