计算机的编译原理pdf,计算机编程基础--编译原理.pdf
第一章 引论(1)
1.1 什么叫编译程序
编译程序:是指这样的程序,它能够把某种
语言的程序转换成另一种语言的程序,
而后者与前者在逻辑上是等价的。如果
源语言是诸如FORTRAN、Pascal、C、Ada、
Smalltalk或Java这样的 “高级语言”,
而目标语言如汇编语言之类的 “低级语
言”这样的翻译程序则称之为编译程序。
第一章引 论
注意编译程序与解释程序的区别,一个
语言的解释程序是着样的程序:它以该语
言写的源程序作为输入,但不产生目标程
序,而是边解释边执行源程序本身。
术语 “编译”的内涵是实现从源语言表示
的算法向目标语言表示的算法的等价变换。
第一章引 论
1.2 编译过程概述
掌握编译过程的五个基本阶段,
是我们学习编译原理课程的基本内
容,把编译的五个基本阶段与英译
中的五个步骤相比较,有利于对编
译过程的理解:
第一章引 论
英译与编译的比较
1。识别出句子中的一个个 1。词法分析
单字 2。语法分析
2。分析句子的语法结构 3。语义分析中间代
3。初步翻译句子的含意 码生成
4。译文修饰 4。优化
5。写出最后译文 5。目标代码生成
第一章引 论
1。2 。1词法分析
输入源程序,对构成源程序的字符串进行
扫描和分解,识别出一个个单词(也称
单词符号,或简称符号)
在词法分析阶段工作所依循的是语言的词
法规则。描述词法规则的有效工具是正
规式和有限自动机。
第一章引 论
1。2 。2语法分析
语法分析的任务:在词法分析的基础
上,根据语言的语法规则,把单词符号
分解成各类语法单位(语法范畴),如
“短语”、“句子”、“子句”、“程
序段”等。
语法规则通常用上下文无关文法描述。
第一章引 论
1。2 。3语义分析与中间代码的产生
这一阶段通常包括两方面的工作首先
对各种语法范畴进行静态语义检查,如
果正确则进行另一方面的工作,即进行
中间代码的翻译。
通常使用属性文法描述语义规则
所谓“中间代码”是一种含义明确,
便于处理的记号系统。
中间代码除四元式外,还有三元式、
间接三元式、逆波兰记号、树形表示等。
第一章引 论
1。2 。4 优化
优化的任务在于对前段产生的中间代码
进行加工,以期在最后阶段产生更为高
效(省时间和空间)的代码
优化所依循的原则是程序的等价变换
规则
其方法有:公共子表达式的提取、循
环优化、删除无用代码等。
第一章引 论
1。2 。5 目标代码生成
这一阶段的任务:把中间代码(或经优
化处理后)变换成特定机器上的低级语言代
码。它有赖于硬件系统结构和机器指令含义。
第一章引 论
1。3 编译程序的结构
源程序
词法分析器
表
计算机的编译原理pdf,计算机编程基础--编译原理.pdf相关推荐
- 51单片机c语言程序控制,51单片机C语言编程基础及实例.pdf
基础知识: 51 单片机编程基础 第一节:单数码管按键显示 第二节:双数码管可调秒表 第三节:十字路口交通灯 第四节:数码管驱动 第五节:键盘驱动 第六节:低频频率计 第七节:电子表 第八节:串行口应 ...
- 自学python入门-自学Python编程基础学习笔记 PDF 完整超清版
一. Why. 为什么学习Python.Python这门语言用处比较广泛: 1.写测试脚本,因为PY是解释性语言,天生就有作为测试脚本语言的优势,语法简单,通俗易懂,可移植性好(底层使用C语言来编写 ...
- java 编程 pdf linux_Linux编程技术详解.pdf
Linux编程技术详解全面介绍了linux编程相关的知识,内容涵盖linux基本知识.如何建立linux开发环境.linux开发工具.linux文件系统.文件i/o操作.设备文件.进程与进程环境.守护 ...
- java原理教程,java基础之运行原理(一),java基础运行原理
java基础之运行原理(一),java基础运行原理 java的核心配置:JDK JDK主要包括三个部分 1.Jre:java的运行环境 2.Java的工具:java的编译器(java.c.exe). ...
- 计算机原理基础知识pdf,计算机原理第一章.pdf
计算机组成原理 讲授:李凌燕 学时:48 本课程考查目标 本课程对计算机专业来说是非常重要的专业基础 课. 理解单处理器计算机系统中各部件的内部工作原理.组 成结构以及相互连接方式,具有完整的计 ...
- 计算机编程基础学习笔记之-1.计算机组成原理
文章目录 思维导图 1.计算机组成原理 总览 1.计算机体系与结构 1.1 冯诺依曼体系 1.2 冯诺依曼瓶颈 1.3 现代计算机结构体系 2.计算机的层次与编程语言 2.1 程序翻译VS解释 程序翻 ...
- 【编程基础】如何自学计算机/编程 | 从零开始的代码之路
愚者困惑 智者提问 一.编程语言 二.编程技术体系 2.1 编程基础 2.1.1 操作系统 2.1.2 数据结构 2.1.3 编译原理 2.1.4 计算机组成原理 2.1.5 算法 2.2 编程语 ...
- 一个计算机专业学生几年的编程经验汇总 (该系列一共 11 篇,看完之后,java 基础绝对有不小的提升!)
Java 杂谈(一) 想来学习 Java 也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给 软件学院的同仁们,帮助大家在技术的道路上少一点弯路.说得伟大一点是希望大家为软件 学院争气,其 ...
- 微机原理和计算机组成原理一样吗_「连载」信息技术基础题型归纳之计算机组成原理3...
大学计算机信息技术基础教程题型归纳 计算机组成原理 (题型9-12 共12题型) 题型九:I/O总线与I/O接口 ★ ◆◆理论:I/O总线:I/O总线用来连接作为计算机各子系统的插件板,是各类I/O设 ...
最新文章
- 实用python技巧
- 老李谈JVM内存模型
- 四则运算2+psp0
- MATLAB飞机大战第二版,windows程序设计——飞机大战札记(单文档文件登陆界面)...
- 「浏览器插件」非常好用的JSON-View
- Seq(HDU-6672)
- 【note】Swift初见笔记
- C语言从入门到精通所需的7本书
- Java打印条码,使用热敏条码打印机
- coreldraw x4如何出血_CorelDRAW软件出血位详解
- 重磅!中国三大数学奖全揭榜,8位数学大神获奖
- c语言——求逆矩阵,伴随矩阵,行列式
- python输出数字三角形_python 数字三角形
- oracle 12c新特性 FETCH FIRST、WITH TIES 关键字详解
- 如何解决苹果电脑键盘失灵的问题
- bandwagonhost.com (***)机房网速比较
- 《C++最佳实践》翻译与阅读笔记
- apr 移植android平台,omap3530移植android4.0
- 嵌入式之linux用户空间与内核空间,进程上下文与中断上下文
- 第八章 USB 设备驱动移植
热门文章
- ajax php加载列表实例,jQuery+PHP+ajax实现加载更多内容列表
- java double 位运算_JAVA位运算等运算符总结
- CSS 定位 (Positioning)
- 64位浮点数_浮点数运算的机器误差分析
- celeron处理器_显卡和处理器哪个更重要?
- ubuntu 更新mysql后无法登陆_更新ubuntu之后无法登陆mysql
- JAVA开发出现的BUG集_Java项目开发中一些BUG的总结
- python 二项分布_Python绘制的二项分布概率图示例
- 南京工业大学python考试题库_程序设计语言(Python程序设计)答案
- 安装了email模块还是报错_Git windows安装及使用教程