编译型语言VS解释型语言、动态语言、静态语言
2015-06-29 15:10
218 查看
将高级语言翻译成机器语言有两种方式:编译和解释。二者区别在于翻译的时间不同。
编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。因此效率比较高。比如C语言。
解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程序,每个语句都是执行的时候才翻译。
C语言是编译型的。
Java比较特殊,Java程序也需要编译,但是没有直接编译成机器语言,而是编译成字节码,然后用解释方式执行字节码。
C程序——>机器语言(编译)
Java程序——>字节码(编译)——>机器语言(解释)
本文出自 “知行合一” 博客,请务必保留此出处/article/4565297.html
动态语言:一般来说“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。
例如:JS,var a = 10; a = "abc"; a = false 这种可以在运行时修改变量类型的,属于动态语言。
编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。因此效率比较高。比如C语言。
解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程序,每个语句都是执行的时候才翻译。
C语言是编译型的。
Java比较特殊,Java程序也需要编译,但是没有直接编译成机器语言,而是编译成字节码,然后用解释方式执行字节码。
C程序——>机器语言(编译)
Java程序——>字节码(编译)——>机器语言(解释)
本文出自 “知行合一” 博客,请务必保留此出处/article/4565297.html
动态语言:一般来说“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。
例如:JS,var a = 10; a = "abc"; a = false 这种可以在运行时修改变量类型的,属于动态语言。
相关文章推荐
- Hibernate进化史-------Hibernate概要
- yuv和ycrcb的差异
- 心情随笔(二):坚持就是胜利!
- ubuntu 12.04 hadoop 单机模式平台搭建
- java.lang.annotation-jdk的注解原理与使用
- 使用python通过SSH登陆linux并操作
- iOS打电话、发短信、发邮件功能开发
- 远程桌面控制
- java 实用片段整理
- Mac环境下svn的使用
- 自定义cell,tableviewcell
- log4j与commons-logging,slf4j的关系
- Linux发行版:CentOS、Ubuntu、RedHat、Android、Tizen、MeeGo
- 用Navicat将SQL Server数据导入mysql
- 当代数学七大难题
- 第十四章 io(1)
- Leetcode|Merge Intervals
- 百度地图 导航
- Zookeeper安装与配置
- crontab 不同系统下的使用