关键词:
编译程序
高级语言程序 \\(\\rightarrow\\) 编译程序 \\(\\rightarrow\\) 低级语言程序(汇编语言或者机器语言)
解释程序
源程序 \\(\\rightarrow\\) 解释程序 \\(\\rightarrow\\) 输出
编译过程(5个阶段)
1. 词法分析
- 任务:输入源程序,对字符串扫描分解,识别出单词符号
- 依据原则:构词规则
- 描述工具:有限自动机
2. 语法分析
- 任务:在词法分析基础上,把单词符号串分解成各类语法单位
- 依据原则:语法规则
- 描述工具:上下文无关文法
3. 语义分析与中间代码生成
- 任务:对各类语法单位按语言的语义进行初步翻译
- 依据原则:语义规则
- 描述工具:属性文法
4. 代码优化
- 任务:对中间代码加工变换,提高目标代码的时空效率
- 依据原则:程序等价变换规则
5. 目标代码生成
- 任务:将中间代码变换成特定机器上的目标代码
目标代码三种形式
- 汇编指令代码:需要进行汇编
- 绝对指令代码:可直接运行
- 可重定位指令代码:需要链接
编译程序的结构
编译的遍
对源程序或源程序的中间结果从头到尾扫描一次
- 一遍扫描:占用内存空间大,但编译速度慢
- 多遍扫描:程序结构清晰,目标代码质量较高,但编译速度较慢
编译的前端
与源语言有关,词法分析、语法分析、语义分析与中间代码生成、与硬件无关的优化
编译的后端
与目标机器有关,与硬件有关的优化、目标代码生成
\\(\\large Tips:\\)
-
编译程序绝大部分时间花在符号表管理上
-
中间代码生成和代码优化部分不是每个编译程序都必需的
本文来自博客园,作者:风雨zzm,转载请注明原文链接:https://www.cnblogs.com/zzmxj/p/17368573.html
人工智能学习笔记一(人工智能概述)
一人工智能研究的主要内容二人工智能研究的主要方法三人工智能的基本技术 查看详情
一linux的概述
一、Linux的概述linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级的项目(c/c++/php/python/java/go)都会部署到Linux/unix系统上。常见的操作系统(windows、IOS、Android、Ma... 查看详情
一hive概述
Hive概述本章仅为绪论,无应用知识数据库类型按照存放数据方式不同,数据库分为关系型数据库和非关系型数据库。常见的关系型数据库有MySQL、Oracle、DB2、Sybase、PostareSQL、SQLServer、Access等。MySQL是学习Hive大数据技术的... 查看详情
adobepremiereprocc概述
一、AdobePremiereProCC概述使用建议一、开始二、在AdobePremiereProCC执行非线性编辑1、标准的视频剪辑工作流2、使用Premiere增强工作流premiere中含有高级音频编辑,色彩校正和分级等一系列高级视频剪辑工具(这里不写了,后面会一点... 查看详情
redis学习一大体概述
1,redis技术简介以及疑问 redis是一个开源的,内存存储的数据结构服务器。可以用做数据库,高速缓存和消息队列。他支持字符串,哈希表,列表,集合,有序集合等数据类型。可以实现数据库主从复制,数据持久... 查看详情
计算机组成原理导图一计算机系统概述
java基础总结一(概述基础知识)(代码片段)
文章目录Java基础总结一(概述、基础知识)Java概述什么是JavaJVM、JRE、JDK的关系什么是跨平台性?原理是什么什么是字节码?采用字节码的最大好处是什么字节码采用字节码的好处OracleJDK和OpenJDK的对比Java基础知... 查看详情
一:数据库概述
1.什么是数据库?数据库(DataBase,DB):是指存储数据的仓库;存储、维护和管理数据的集合。数据库管理系统(DataBaseManangementSystem,DBMS):专门用来操作和管理数据库的大型软件。2.数据库的分类根据存储介质的不同(介质主要包括... 查看详情
javascript之dom-1dhtml概述dom概述
一、DHTML概述 DHTML简介 -DHTML:DynamicHTML,动态HTML,不是一种技术、标准或规范,只是一种将目前已有的网页技术、语言标准整合运用,制作出能再下载后仍然能实时变换页面元素效果的网页设计概念 -DHTML的功能 &n... 查看详情
计算机系统概述一
一、信息就是位+上下文 1.代码源程序是由一个0和1组成的位序列,8个位被组成1组,称为字节。每个字节表示程序中的一个字符,在ASCII中即是用一个唯一的单字节大小的数字表示一个字符。源程序以字节序列的... 查看详情
机器学习:人工智能概述
文章目录人工智能概述一、人工智能应用场景二、人工智能小案例三、人工智能发展必备三要素四、人工智能、机器学习和深度学习人工智能概述一、人工智能应用场景二、人工智能小案例案例一学习链接:https://quickdraw.with... 查看详情
一.需求概述——15021640031赵帅
1.1问题的提出需求的好坏直接关系到软件的成功与否。客户提出的需求是软件系统的来源,他定义了软件系统的意图和目的。为了得到有效的需求,需要采用的有效的方法与用户的交流是很重要的。1.2不同项目的需求视图不同项... 查看详情
[一]asp.netcore概述
ASP.NETCore是一个跨平台,高性能的开源框架。ASP.NETCore是基于ASP.NET4.x系列(类似于Java的JSP时代)的重新设计的。1、特性(1)跨平台ASP.NETCore应用程序可以托管在IIS,Apache,Docker甚至自己把自己托管在进... 查看详情
javascript入门之概述一二
1、 JavaScript是什么,有什么作用?(了解)*JavaScript是因特网上最流行的脚本语言。*脚本语言不能单独使用,必须嵌入到其他语言中组合使用*JavaScript不能单独使用,必须和其他语言(HTML)结合使... 查看详情
一 spring启动时加载和初始化bean概述
SpringContext继承关系ClassPathXmlApplicationContext->AbstractXmlApplicationContext->AbstractRefreshableConfigApplicationContext->AbstractRefreshableApplicationContext->AbstractApplicationConte 查看详情
客快物流大数据项目(一百零九):springboot概述
文章目录SpringBoot概述一、什么是SpringBoot二、为什么要学习SpringBoot三、SpringBoot的特点SpringBoot概述一、什么是SpringBootSpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework同属于spring的产品:首页SpringBoot简介... 查看详情
客快物流大数据项目(一百零九):springboot概述
文章目录SpringBoot概述一、什么是SpringBoot二、为什么要学习SpringBoot三、SpringBoot的特点SpringBoot概述一、什么是SpringBootSpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework同属于spring的产品:首页SpringBoot简介... 查看详情
[ctf从0到1学习]一ctf概述(代码片段)
[CTF从0到1学习]一、CTF概述哈哈,在学校图书馆借到的一本比较好的讲CTF的书籍,因为有配套资料。感觉不错,准备研读一波。先做一个引言吧‘’首先大家能搜到这篇文章,也一定对CTF有一定了解,亦或是对... 查看详情