一.低级语言和高级语言

计算机硬件只能识别由0,1字符序列组成的机器指令,因此机器指令是最基本的计算机语言。用机器语言编制程序效率低,可读性差,也难以理解修改和维护。因此,人民设计了汇编语言,用容易记忆的符号代替0,1序列,来表示机器指令中的操作码和操作数。但汇编语言是面向机器的语言,其书写格式在很大程度上取决于特定计算机的机器指令。机器语言和汇编语言被称为低级语言。

人们开发了功能更强,抽象级别更高的语言以支持程序设计,因此就产生了面向各类应用的程序设计语言,即高级语言,常见

的有Java,Python,C,C++,PHP等,这类语言与人们使用的自然语言比较接近,大大提高了程序设计的效率。

二.连接程序

连接程序是将不同的目标文件中编辑或汇编的代码收集到一个可直接执行的文件中。

三.汇编程序

汇编语言是为特定计算机设计的面向机器的符号化程序设计语言。用汇编语言编写的程序称为汇编语言源程序。因为计算机不能直接识别和运行符号语言程序,所以要用专门的汇编程序进行翻译。

汇编程序就是把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。汇编语言源程序由三类语句组成:指令语句,伪指令语句和宏指令语句。

汇编程序一般需要扫描两次完成汇编过程:将每一条可执行汇编语句转换成对应的机器指令;处理源程序中出现的伪指令和宏指令。

四.编译程序

把用高级程序设计语言书写的源程序翻译成等价的计算机汇编语言或机器语言书写的目标程序的翻译程序叫编译程序。

包括词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成,符号表管理,出错处理阶段,符号表管理和出错管理伴随整个翻译阶段。

(1)词法分析:编译过程的第一个阶段,对源程序从前到后逐个字符扫描,从中识别出一个个“单词”符号,词法分析输出的单词常以二元组的方式输出,即单词种类和单词自身的值。

(2)语法分析:是在词法分析的基础上,通过语法规则将单词符号序列分解成各类语法单位,判断整个输入串是否构成一个语法上正确的程序。

(3)语义分析:包括检查源程序是否包含静态语义错误,并收集类型信息供后面的代码生成阶段使用。

(4)出错管理:分为静态错误和动态错误。动态错误发生在程序运行时,例如变量取零作除数,引用数组元素下标越界等。静态错误指编译时发现的程序错误,分为语法错误和静态语义错误,语法错误包括单次拼写错误,标点符号错误,缺少操作数等,静态语义错误指语义分析时发现的运算符与运算对象类型不合法。

五.解释程序

另一种语言处理程序,在词法,语法,语义分析方面和编译程序的原理基本相同,但是在运行用户程序时,它直接执行源程序或源程序的内部形式。因此,不产生目标程序。

效率:编译比解释高

解释有灵活性和可移植性。

连接程序,汇编程序,编译程序和解释程序相关推荐

  1. 编译程序、解释程序、汇编程序和编译、解释的概念

    计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过"翻译程序"翻译成机器语言形式的目标程序,计算机才能识别和执行.这种"翻译"通常有 ...

  2. 源程序、目标程序、汇编程序、编译程序、解释程序

    源程序.目标程序.汇编程序.编译程序.解释程序之间的关系 翻译程序是这样一种程序:它能把用甲种语言编写的程序翻译成在功能上与之等价的用乙种语言编写的程序.我们把甲种语言称为源语言,把乙种语言称为目标语 ...

  3. 翻译程序、汇编程序、编译程序、解释程序的区别与联系

    翻译程序.汇编程序.编译程序.解释程序的区别与联系 先总结一下:翻译就是包括编译与解释,翻译功能就是把程序转化为同等的更低级语言:编译跟解释作用的对象就是高级语言,汇编操作对应的是汇编语言,作用是汇编 ...

  4. 编译程序和解释程序有哪些区别?

    编译程序,解释程序,汇编程序是3种语言处理程序.其区别主要为: 汇编程序(为低级服务)是将汇编语言书写的源程序翻译成由机器指令和其他信息组成的目标程序. 解释程序(为高级服务)直接执行源程序或源程序的 ...

  5. 编译程序与解释程序的区别

    高级程序设计语言主要可以分为两类:编译执行的语言和解释执行的语言,对应的程序即为编译程序和解释程序,那么这两个之间的区别是什么呢? 根本区别 编译程序和解释程序的根本区别在于是否产生低级语言形式的目标 ...

  6. 编译程序和解释程序有什么区别?

    1. 编译程序和解释程序的区别: 编译型是使用编译器编译后生成计算机硬件可直接执行的指令,解释型是在运行时才由解释器逐语句去执行. 编译型代表:C&C++,C#,Java,解释型代表:html ...

  7. 编译程序与解释程序区别

    目录 前言 一.编译程序定义 二.解释程序定义 总结 前言 举例: A想去外国看演出,但是他不会英文,只能花钱去请翻译. B给出了两种解决办法: 1.购买一本已经翻译完成的英语书,可以直接借用这本书进 ...

  8. 编译程序和解释程序的区别

    编译程序和解释程序的区别 1.解释程序是高级语言翻译程序的一种,它将源语言书写的源程序作为输入,解释一句就提交给计算机执行一句,并不形成目标程序. 2.编译程序把高级语言源程序作为输入,进行翻译转换, ...

  9. 高级语言?编译程序?解释程序?目标代码?

    编译程序?解释程序? 编译程序解释程序啥作用?将高级语言翻译成可以目标代码,使得目标代码可以在机器上运行 高级语言? 作为一门高级语言,javascript肯定不能是在电脑上直接运行的,肯定有java ...

  10. MASM32连接程序时error A2006: undefined symbol : u

    为了检测Windows操作系统是32位还是64位的,用MASM32编写了一个调用Windows API函数GetNativeSystemInfo的程序(完整代码附后),GetNativeSystemI ...

最新文章

  1. 阿里、腾讯、美团、小米……各公司月饼大PK,看完简直想哭泣!
  2. 阿里面试 Java 都问什么?万字总结!
  3. idea没法识别java文件,idea文件左下角有个j的符号并是黄色
  4. MyBatisPlus中进行通用CRUD全局策略配置
  5. web安全---XSS漏洞之标签使用2
  6. 疫情之下的“催化剂”:在线经济崛起 房产数字化变革加速
  7. jetty;linux 目录结构
  8. BroadcastReceiver广播接受者简单使用
  9. Linux之远程连接服务器ssh、telnet
  10. Java之校园卡管理系统
  11. 用户故事与敏捷方法—用户故事不良症兆
  12. 淘宝商品评论API接口
  13. linux下多节点之间免密钥访问
  14. 搜狗高级测试经理诸葛东明谈基于AI图像识别的输入法性能测试实践
  15. 采购杀毒软件 确保网络信息安全
  16. 为activity设置主题theme
  17. 一起从零开始学VUE(1) VUE基本使用步骤和指令
  18. 面试宝典之高分回答面试题(二)
  19. 智能照明控制系统助力某商业综合体实现“双碳”
  20. PnP PowerShell获取SharePoint数据

热门文章

  1. 51单片机c语言延时一秒,单片机C语言的延时
  2. VUE项目 高德地图使用热力图--实例
  3. mysql中的预留字段_数据库设计误区:备用字段 / 保留字段 / 预留字段
  4. linux ext4 磁盘修复,修复损坏的 ext4 大分区数据
  5. 最大子段和C语言实现
  6. iOS开发笔记--宏定义的黑魔法 - 宏菜鸟起飞手册
  7. 图数据库 Titan 快速入门
  8. vbs格式编程教程基础
  9. 南京邮电大学电子电路课程设计可编程音乐自动演奏电路
  10. android自定义壁纸制作,如何为Android制作自己的自定义壁纸 | MOS86