解释执行的语言相比编译执行的语言有什么优缺点?

来源:互联网 发布:人工智能怎么读 编辑:程序博客网 时间:2024/06/14 02:41
程序由语句或指令组成,计算机只能执行低级语言中 的指令(汇编语言的指令要先转成机器码才能执行), 高级语言要执行就必须先翻译成低级语言, 翻译的方法有两种--编译和解释,虽然有这样的不便,但高级语言有一个好处是平台无关性。什 么是平台?一种平台,就是一种体系结构,就是一种指令集,就是一种机器语言,这些都可看作是 一一对应的。

所以可从执行效率和平台的无关性来说。

解释执行的语言:
优点:
1.解释执行不依赖于平台,因为编译器会根据不同的平台进行解析。
2.开发速度快,出现严重BUG的几率小。
缺点:
1.解析需要时间,不生成目标程序而是一句一句的执行的方式会造成计算机资源的浪费,即执行效率低。
2.解释语言还有个致命伤---源代码必须交给用户。


编译执行的语言:
优点:
1.相比解释执行编译执行效率高,占用资源小,适合复杂程序。
缺点:
2.兼容性差,例如在windows平台上写的编译程序一般不可以在unix平台上运行。当然,如果只是简单的scanf,printf是可以的,但是像指针,内存分配,文件操作,多线程等,在一些相对复杂的系统问题就严重了。 更可怕的是拿源码到unix环境下编译通过了,但是运行却出问题,这种问题最要人命。 所以一般的做法都是这个程序会用在什么系统,就到什么系统环境去开发