2.1 语言的翻译过程

接目录页:

2.1语言的翻译过程

    任何一种编程语言都需要从源代码(人理解)转化为机器指令(电脑)。而执行这个过程的东西,我们把其称之为翻译器(interpreter)和编译器(compiler)

2.1.1解释器

    解释器将代码转换为一2.1.些动作,并立即执行他们。

    对于解释器而言,快速的代码到执行代码转换速度、较好的交互性、适用于快速程序开发都是它的好处。但对于大项目而言,缓慢的速度使其无法被人们接收(python例外)。且由于其要求一次性输入整个源代码,限制了内存空间也不利于调试。

2.1.2编译器

    编译器直接把源代码转化为汇编或机器指令,这是一个复杂的过程,但是由于其生成后的程序较小、运行快,更拥有着可以分段编译(separate compilation)能力,使其变成了主要的编译方法。

    对于分段编译,最大的优点就是其支持独立创建程序,这样一个大项目就可以被拆分成为多个小内容,简化工作量。

2.1.3编译过程

    编译过程一般分为两步。

    首先,编译器将源码分为小的单元并按照树形结构组织起来。e.g "a + b" 中的 “a” “+” “b” 就都是叶子节点

    然后,使用代码生成器(code generator)遍历语法分析树,从而生成目标模块。

  当存在函数调用或者某个目标模块中的函数要引用另一个目标函数中的模块的时候,连接器(linker)将会帮我们执行这些操作。除此之外,连接器还将添加一个特殊的目标模块来进行程序的启动工作。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值