python语⾔编译过程_程序编译过程
程序编译过程
程序的编译过程与语⾔类型有关
语⾔可分为解释性语⾔和编译语⾔,解释性语⾔⼊Python、JavaScript;编译语⾔⽐如C/C++;半解释语⾔如Java等;编译性语⾔编译后能直接在机器执⾏,效率⾼。解释性语⾔运⾏于解释器上,效率依赖于解释器,但跨平台性好。
python转java代码C/C++语⾔编译主要分为四个阶段
1. 预处理替换,此阶段由编译器完成
2. 编译过程,优化⽣成中间代码,此阶段由编译器完成
3. 汇编:讲汇编代码翻译成机器指令,此阶段由汇编器完成
4. 链接:将⽂件中的各种函数与静态库、动态库⽂件相连接,⽣成执⾏⽂件由机器执⾏,此阶段由链接器完成
名词解释
静态链接:在程序执⾏之前完成链接
动态链接:在程序执⾏时进⾏链接
Java程序编译过程
Java属于半解释性语⾔,运⾏于虚拟机,主要分为两步
1. 编译:源码编译成class⽂件(字节码),此过程由编译器完成。
2. 运⾏:字节码由JVM(java虚拟机)⽣成模板代码⽂件并执⾏,边解释边执⾏。
Java运⾏过程
1. 类的加载:加载 --> 验证 --> 准备 --> 解析 --> 初始化,类信息最终被加载到⽅法区
2. 执⾏类:JVM到专属⼊⼝,持有指针加载运⾏
Python程序执⾏过程
Python属于解释性语⾔,运⾏于python解释器(CPython、PyPy、IPython等),边解释边执⾏,其执⾏过程如下:
1. 语法分析、词法分析:由解释器完成
2. 编译过程:⽣成PyCodeObject对象,将import的⽂件⽣成pyc⽂件(字节码):由解释器完成
3. 执⾏:由解释器完成。
语⾔的其他分类:
除此之外,语⾔还会分为
动态语⾔:在运⾏期间才去做数据类型检查的语⾔(⽐如Python)
静态语⾔:在编译期间内检查数据类型等,如C++
按照类型分为
强类型语⾔:⼀旦⼀个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型,如C++、Java、Python
弱类型语⾔:数据类型可以被忽略的语⾔。它与强类型定义语⾔相反, ⼀个变量可以赋不同数据类型的值,如Vb、Php
按照语⾔级别分类
⾼级语⾔:有类、⽅便移植,如Java、C++、Python等
低级语⾔:如汇编等
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论