编译与解释与操作系统

语言不分编译还是解释型,c语言也可以用js写出解释器。所以以下讨论的只是编译解释通过语言的实现过程。[1]
编译编译器是一次性将源码编译成机器码,但是一旦编译器确定了平台也必须确定了。解释是一行一行读翻译成机器执行的语言,可以实现跨平台。
而真的理解清楚,我认为知识基础储备也需要了解,并整理如下:

基础知识准备

  • 操作系统

    1.管理计算机硬件资源(CPU,内存,各种IO)
    2.用来给软件编程的人提供统一和简洁的编程接口。
    3.所以不同操作系统机器语言是不一样的—把代码直接编译成机器语言就不能跨平台,跨平台就得用上不同平台对应的解释器。
    对于计算机整个完整的体系结构,从下往上是硬件-操作系统-应用软件三层结构。操作系统也是软件但是作为特殊软件为应用软件提供接口,故而将操作系统称作计算机的软件平台。所以平台是操作系统。[3]

  • IDE:

    开发程序的集成开发环境,包括代码编辑器、编译器、调试器和图形用户界面工具;IDE是应用软件
    编译器:把源代码转换成低级语言的程序,编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)。常用编译器如Dev-C++。源代码为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,目标是机器语言。
    编译器与编辑器的区别:编辑器是用来写代码的,编译器是对高级语言代码翻译成相对低级语言的一段小程序/指令。
    解释器:直接把高级编程语言一行一行转译运行,重点是不会一次把整个程序转译出来,因此运行速度比较缓慢,(编译的可以直接运行免去了转译过程)它每转译一行程序就立刻运行,然后再转译下一行。
    编译:将一种语言(源码)转换成另一种语言,发生在运行之前,产物是「另一份代码」,再交给别人执行。
    解释:把程序源代码一行一行的转译加运行,发生在运行时,产物就是「运行结果」。
    调试器:用来在程序运行以后,根据运行状况来检查错误。
    编译器和调试器的区别
    编译是编译器在程序没有运行的时候检查错误。调试程序运行以后,根据运行状况来检查错误。

[4]

半解释半编译的实现

实现的语言:Java
Java是先编译成class文件,然后由JVM解释运行,所以叫半编译半解释。是把源码最终编译(javac)成二进制码,与平台无关,再将解释(java)成机器码。

编译型的实现

实现的语言:C,C++
先把源码一次性翻译成OS可以直接执行的机器指令文件,比如.exe文件,运行时直接执行该机器指令文件即可。
在特定平台运行、优化,所以性能好。

解释型的实现

实现的语言:Ruby、Python
运行时一句一句读取源码,然后翻译成机器语言执行。
需要为不同平台提供解释器,所以可以跨平台,但是因为每次运行都要解释,所以性能略差。
[2]

参考资料:
[1] 程序员小姐姐: 分享Java学习经验和Java教程, 解密初学Java的常见误区 | 编程入门
[2] 半编译半解释、编译型、解释型
[3] 什么是计算机的软件平台?为什么把操作系统称为平台?
[4] 看完这篇带你完全理清IDE、编辑器、编译器、解释器和调试器的概念

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值