解释型语言与编译型语言有什么区别?有什么现在很多新的语言都是解释型的?

king_001 2007-07-26 02:19:05
解释型语言与编译型语言有什么区别?有什么现在很多新的语言都是解释型的?
...全文
2073 14 打赏 收藏 举报
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Alden 2012-01-19
解释型语言具有较高的可移植性,不过现在的很多语言例如Java和C#也并不是纯正的解释型语言,他们首先通过编译器前段将源代码编译成中间语言,然后通过在运行时通过解释成机器语言,这就是为什么Java和C#都需要一个运行时,而C程序不需要。
  • 打赏
  • 举报
回复
yrktcst 2012-01-19
换让大悟
  • 打赏
  • 举报
回复
qq623932737 2012-01-19
[Quote=引用 2 楼 jinglecat 的回复:]
如其名,前者边解释,边执行,后者由编译程序源代码(高级语言)编译成为目标代码(二进制机器代码),以后每次都直接执行目标代码,
简单说,前者没执行一次,都经过一次编译


解释型语言,一般动态性好
[/Quote]
+1
  • 打赏
  • 举报
回复
bwangel 2012-01-19
个人认为解释型语言最大的优点是可以 eval("....")
编译型语言结构严谨,把很多错误都拦截在编译时
  • 打赏
  • 举报
回复
webdiyer 2011-07-04
马上四年的帖子了,我都不记得我还回复过:)

===================================================
ASP.NET WebForm和ASP.NET MVC分页最终解决之道
  • 打赏
  • 举报
回复
jingjing34873 2011-07-04
编译型与解释型,两者各有利弊。前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。 但随着硬件的升级和设计思想的变革,编译型和解释型语言越来越笼统,主要体现在一些新兴的高级语言上,而解释型语言的自身特点也使得编译器厂商愿意花费更多成本来优化解释器,解释型语言性能超过编译型语言也是必然的。
  • 打赏
  • 举报
回复
「已注销」 2008-07-09
对了,只是为了跨平台,所以一般发展一个虚拟机(这个虚拟机为一种语言的源程序提供了运行环境,更更重要的是,一般虚拟机内的解释器就是翻译器,如果说虚拟机本身是为了执行,那么内置的解释器就是翻译器了,,因为要把作为高级语言的这种中间语言翻译为虚拟机能直接执行的目标语言,目标语言这是目标平台能直接执行的语言的简称)

像JVM就是这种虚拟机,架在它上面的高级语言就是JAVA,JAVA跟JVM的关系很爱昧,JVM是为了成全JAVA出现的,只要JVM实现了跨平台,那么JAVA写的代码就能跨平台,但JVM的意义不单单是作为跨平台的目的来出现的,实际上,JVM实现了一种标准的运行环境,里面有完善的GC,有完善的跳转,是一种面向JAVA语言的高级的软件机器,更更而且的是,为了让JAVA成为工业语言,为了让大家实现完美的可复用,为了让大家普遍面对一种"RUN ONCE"的语言,JVM对JAVA作了很多适应,

JAVA中,是一种综合了编译跟解释的合体,怎么说呢,首先,JVM能执行JVM目标代码,首先把*.java这种高级语言源程序翻译为(这里是通过编译翻译,JVM中也有编译器支持)*.class这种中间代码,然后JVM中的解释器把*.class再翻译为jvm的目标码,这样就能达到二个目的,1比纯解释要快2使得JAVA代码能complilr once ,run once

总而言之,编译与解释只是翻译过程,是对高级语言码到目标平台码之间的一种过程称法,动态静态语言这种说法是指运行期,,静态语言也可以被解释(像JVM执行通过其内置的解释器翻译中间码再由JVM来执行),反过来,动态语言也可以被编译,

  • 打赏
  • 举报
回复
king_001 2007-07-26
Ruby

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
  • 打赏
  • 举报
回复
webipstin 2007-07-26
就为了倒霉的跨平台
  • 打赏
  • 举报
回复
webdiyer 2007-07-26
为什么现在很多新出现的语言都是解释型的?

楼主指哪些语言?我只知道javascript和vbscript还有php等是解释性的,其它没听说过。
  • 打赏
  • 举报
回复
wxdxy 2007-07-26
现在有趋势,动态语言,比如工作流里面动态表单现在很难做,但是有了解释型就好了,只要学一样
  • 打赏
  • 举报
回复
king_001 2007-07-26
Sorry 写错了字。为什么现在很多新出现的语言都是解释型的?
  • 打赏
  • 举报
回复
Jinglecat 2007-07-26
如其名,前者边解释,边执行,后者由编译程序源代码(高级语言)编译成为目标代码(二进制机器代码),以后每次都直接执行目标代码,
简单说,前者没执行一次,都经过一次编译


解释型语言,一般动态性好
  • 打赏
  • 举报
回复
viena 2007-07-26
解释型的更灵活方便
编译型的早已经发展到极致了~
  • 打赏
  • 举报
回复
发帖
.NET社区

6.0w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • R小R
  • 喵叔哟
加入社区
帖子事件
创建了帖子
2007-07-26 02:19
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。