编程语言
2016-07-06 23:36
183 查看
date: 2015-10-06 19:14:27
所有机器都有一张操作命令清单,你可以控制它,好比电水壶的开和关,这种操作命令的总和就是计算机的机器语言(machine language)
机器语言中加法命令可能是11001101,汇编语言把它改成了add,它们只能让计算机做简单的事。
高级语言,简便了编程。高级语言还有一个优点,它使得程序具有可移植性,面对不同计算机的机器语言并非完全相同,重写编译器,可使得高级语言程序通用
编译器,本身就是一个程序,将简便方式书写的程序转变成硬件可以理解的语言。
解释器,实时地将代码解释为响应的机器语言,然后一行行运行。编译器,通常是将整个程序全部翻译成机器语言,然后在运行。
编译器处理的语言代码叫源码,翻译之后产生的机器代码叫目标代码。顾客购买的软件往往是目标代码,难懂,相当于加密。
C语言是一种低层次语言,接近硬件,堪称可移植的汇编语言。低层次语言效率更高,大多数OS使用C编写的,由于硬件越来越快,使用低层次语言的需求正在减少。
静态类型语言和动态类型语言,变量类型是否必须明确,哪个好,值得讨论。
现在好像每隔一段时间就能听到一种新出现的语言,这是编程语言的战争也是编程语言的文艺复兴,并不矛盾,文艺复兴时期就是存在很多战争的。很多历史学家认为战争是文艺复兴的副产品。当时,欧洲活力旺盛可能就是因为它分成许多互相竞争的小国,它们互相毗邻,所以思想可以传递,但是它们又相互独立,使得独裁无法遏制创新的发展。中国古代,显然是独裁,遏制发展。
我们应该庆幸,活在一个编程语言的文艺复兴时代.
JIT:just in time compiler,即时编译,JIT试运行时环境的一部分,它把解释型语言的可执行文件程序集转换到原生可执行代码.
2015/10/6 19:16:25
解析
所有机器都有一张操作命令清单,你可以控制它,好比电水壶的开和关,这种操作命令的总和就是计算机的机器语言(machine language)
机器语言中加法命令可能是11001101,汇编语言把它改成了add,它们只能让计算机做简单的事。
一个操作所需要的代码越多,越难免出现bug,也越南发现它们
高级语言,简便了编程。高级语言还有一个优点,它使得程序具有可移植性,面对不同计算机的机器语言并非完全相同,重写编译器,可使得高级语言程序通用
编译器,本身就是一个程序,将简便方式书写的程序转变成硬件可以理解的语言。
解释器,实时地将代码解释为响应的机器语言,然后一行行运行。编译器,通常是将整个程序全部翻译成机器语言,然后在运行。
编译器处理的语言代码叫源码,翻译之后产生的机器代码叫目标代码。顾客购买的软件往往是目标代码,难懂,相当于加密。
C语言是一种低层次语言,接近硬件,堪称可移植的汇编语言。低层次语言效率更高,大多数OS使用C编写的,由于硬件越来越快,使用低层次语言的需求正在减少。
静态类型语言和动态类型语言,变量类型是否必须明确,哪个好,值得讨论。
现在好像每隔一段时间就能听到一种新出现的语言,这是编程语言的战争也是编程语言的文艺复兴,并不矛盾,文艺复兴时期就是存在很多战争的。很多历史学家认为战争是文艺复兴的副产品。当时,欧洲活力旺盛可能就是因为它分成许多互相竞争的小国,它们互相毗邻,所以思想可以传递,但是它们又相互独立,使得独裁无法遏制创新的发展。中国古代,显然是独裁,遏制发展。
我们应该庆幸,活在一个编程语言的文艺复兴时代.
编译型语言
C、C++,编译器->本地机器代码解释型语言
javaScript/shell/python,通过解释器执行java通过JVM执行,有点兼顾,或者叫虚拟机语言吧
区别(python/java)
python | java | java(JIT) |
---|---|---|
python解释器 | java编译器 | java编译器 |
- | JVM | JVM |
- | 解释器 | - |
C | C++ | - |
C编译器 | C++编译器 | JIT编译器 |
| -----------汇编语言------------- | | ------------汇编器-------------- | | -----------机器语言------------- | | -------------硬件---------------- |
JIT:just in time compiler,即时编译,JIT试运行时环境的一部分,它把解释型语言的可执行文件程序集转换到原生可执行代码.
java源码级编译器:
源代码
词法分析器
Token流
语法分析器
语法树(抽象)
语义分析器
注解抽象语法树
字节码生成器
JVM字节码(class文件)
JVM Execution Engine:
JVM字节码(class文件)
JIT编译器
字节码解释器
JIT编译器
机器无关优化
中间代码
机器相关优化
中间代码
寄存器分配器
中间代码
目标代码生成器
目标代码
2015/10/6 19:16:25
相关文章推荐
- 一些小点------c中两个变量交换的方法
- Python学习笔记之拷贝
- java中素数的简单判断方法
- java二分法查找数组元素
- Java ClassLoader 原理详细分析(转)
- java的string.split()分割特殊字符时注意点
- 基于注解的SpringMVC简单介绍
- Java并发编程:Lock
- spring 官方对REST的定义
- java
- Python: 爬虫方法小结[待更新!!!]
- 学习笔记-Java中的xml文件读取之JDOM解析
- Matlab: cell array
- Java基础---注解
- (转)java Exception层次结构详解
- 常见半监督方法 (SSL) 代码总结
- asp.net 部署到IIS 常见问题解决方案(404)
- springMVC视图层和控制器层之间参数传递
- Part7 模板与泛型编程 Templates and Generic Programming
- vc++6 Platform SDK February 2003