将高级语言翻译成机器语言有两种方式:编译和解释。二者区别在于翻译的时间不同。
编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。因此效率比较高。比如C语言。
解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程序,每个语句都是执行的时候才翻译。
解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程序,每个语句都是执行的时候才翻译。
C语言是编译型的。
Java比较特殊,Java程序也需要编译,但是没有直接编译成机器语言,而是编译成字节码,然后用解释方式执行字节码。
C程序——>机器语言(编译)
Java程序——>字节码(编译)——>机器语言(解释)
本文出自 “知行合一” 博客,请务必保留此出处http://thinkpadw.blog.51cto.com/464973/96161
动态语言:一般来说“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。
例如:JS,var a = 10; a = "abc"; a = false 这种可以在运行时修改变量类型的,属于动态语言。