编程语言分类,编译型、解释型、和静态与动态
来源:互联网 发布:rends a10 2代编程 编辑:程序博客网 时间:2024/05/18 19:37
编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。
解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。
C/C++ 等都是编译型语言,而Java,C#等都是解释型语言。
虽然Java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言)。
在运行的时候,由JVM将字节码再翻译成机器语言。
注:脚本语言一般都有相应的脚本引擎来解释执行。 他们一般需要解释器才能运行。JAVAS
4.脚本语言是一种解释性的语言,例如vbscript,javas
脚本语言不需要编译,可以直接用,由解释器来负责解释。
5.脚本语言一般都是以文本形式存在,类似于一种命令.
举个例子说,如果你建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的文件.
你为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,你的程序用这种规则来理解编写人的意图,并作出回应.那么,这一套规则就是脚本语言
解释和编译是两种编译器实现方式。php也可以编译成机器码如facebook的hiphop,当然做的效果不咋地。java官方的实现反而是解释执行的。但是也有非官方的编译实现,比如已死的项目gcj等。
基本概念
静态语言(强类型语言)
静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。
例如:C++、Java、Delphi、C#等。
动态语言(弱类型语言)
动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。
例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。
强类型定义语言
强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。
弱类型定义语言
数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。
两者区别
特性
强类型语言是一旦变量的类型被确定,就不能转化的语言。
弱类型语言则反之,一个变量的类型是由其应用上下文确定的。
静态语言的优势
- 由于类型的强制声明,使得IDE有很强的代码感知能力,故,在实现复杂的业务逻辑、开发大型商业系统、以及那些生命周期很长的应用中,依托IDE对系统的开发很有保障;
- 由于静态语言相对比较封闭,使得第三方开发包对代码的侵害性可以降到最低;
动态语言的优势
- 思维不受束缚,可以任意发挥,把更多的精力放在产品本身上;
- 集中思考业务逻辑实现,思考过程即实现过程;
阅读全文
0 0
- 编程语言分类,编译型、解释型、和静态与动态
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念、分类及区别
- 编程语言的分类(编译型-解释型;动态类型-静态类型;强类型-弱类型)
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- [转载] 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 配置 Fiddler 抓取 HTTPS 请求
- npm镜像安装和使用方法
- Docker入门
- Python 猜数字游戏,解决变量类型异常问题
- SpringBoot学习-支持thymeleaf模板引擎
- 编程语言分类,编译型、解释型、和静态与动态
- Pentaho Kettle Solutions (读书笔记)【2. Kettle基本概念】
- Maven远程部署war包到Tomcat
- PHP配置可修改范围
- Linux基础入门(三)-- 学习笔记
- android 安装应用
- Oulipo
- eclipse新建service(tomcat服务器)时出错
- [JAVA] MyEclipse的XDoclet生成hbm文件