谁能解释(intepreter)和编译(compile)的区别

declare64 2006-08-10 03:22:32
谢谢;
我只知道解释语言,是一行一行的读程序,而速度比较慢,比如java;而c和c++都是compile的,依赖于编译器的质量了;
还有一个例外,就是python,它是属于那种情况
...全文
517 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ddstudent 2006-08-11
  • 打赏
  • 举报
回复
// 不同机器的解释器是一样的吗?VB是解释语言,那么编写了以后,怎么知道有没有语法错误,只能运行才知道了?

其实应该这样说, 程序语言本身是沒有解释或编译的分別的, 比如说 basic, 以前有 turbo basic 就是一个 basic 的编译器, 可以把 basic 编译成 exe.
但是在设计语言的时候, 是会有要用这种语言做一些什么事情的思想, 这些思想可以使得所设计出來的语言是比较适合解释或是编译, 但这並不限制某些人为一个设计是解释的语言设计一个编译器, 或是相反, 当然这样做是有一定难度的.

解译器是一边翻译一边执行的, 要找到语法错误当然也是在运行中才能做到.

// java程序(不是网页上的applet)是解释语言吗?

如上所说, 解释语言这种说法应该是有问题的, 应该说程序语言, 解释器, 编译器
你所说的 "java 程序", 是一个己经编译完的 exe 文件, 还是一个按着 java 的语法规则所写出來的文字文件呢?

// 编译是不是分为:预编译,one pass ,two pass,link这些步骤?

简单的说的话, 你可以这样理解, 要复杂的话, 还是你自己看一些编译器的书比较好

// python好像很特殊,我看thinking in C++,说是一种很特殊的语言,具体怎样,我也没看懂

沒用过 python, 所以也不是很了解
chenhu_doc 2006-08-11
  • 打赏
  • 举报
回复
顶一楼
declare64 2006-08-11
  • 打赏
  • 举报
回复
不同机器的解释器是一样的吗?VB是解释语言,那么编写了以后,怎么知道有没有语法错误,只能运行才知道了?
java程序(不是网页上的applet)是解释语言吗?
编译是不是分为:预编译,one pass ,two pass,link这些步骤?
python好像很特殊,我看thinking in C++,说是一种很特殊的语言,具体怎样,我也没看懂
rollor_phoe 2006-08-10
  • 打赏
  • 举报
回复
解释是读一行解释一行,然后再执行,执行完后,再读下一行,然后再解释一下再执行。
下次再执行时还要解释。
编译的话就是只要编译一次,下次再执行是就不用再解释了,相对来说速度较快。
ddstudent 2006-08-10
  • 打赏
  • 举报
回复
解释(intepreter)和编译(compile)的区别:
1. 解释 -- 运行时必需用解释器把程序一行一行執行, 运行比较慢, 因为是运行时才把程序解析並執行. 优点是移植性, 不同的机器只要有解释器就可以运行相同的程序.
2. 编译 -- 先把程序转成 CPU 跟操作系统认识的机械码, 執行程序就是直接執行机械码, 所以速度比较快, 但因为是机械码 (加上一些操作系统的 loader 所要的信息), 不同的 CPU 与操作系统並不能运行编译后的程序

另外还有一种是半编译的, 先把程序编译成一种中间码, 再在不同的机器运行解释器解释这种中间码.
网页上的 java 可以是解释的或是中间码的形式

python 应该是一种 script 语言, 是要用解释器的

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧