zoukankan      html  css  js  c++  java
  • python入门-python解释器执行

      最近由于公司需要,接触了python这门神奇的语言,给我的感觉就是开发快速和代码简洁。

      开始还是先罗列一下解释性语言和编译性语言的差别吧0.0!

      编译性语言:是在程序运行前,需要专门的一个编译过程,如生成exehex文件等特定的机器语言文件。(必须在特定系统上)。  所以以后就可以直接运行,不用在进行编译了。但该文件不能夸操作系统系统平台,因为该文件在不同操作系统中是不识别的。

      解释性语言:不需要解释,是在程序执行的时候,运行一行翻译一行。所以每次执行都要进行解释。

      两者的本质区别

     1运行的时间不同:

      编译性语言是在程序运行前进行编译

      解释性语言在程序运行时进行解释

     2可移植性:

      编译性语言只能在特定机器上运行,不可移植

      解释性语言可实现跨平台操作

      我们知道一些编译性语言比如C、C++,他们需要先从源文件编译转换成计算机的语言,经过连接器形成可执行的二进制文件,执行时将这些二进制文件加载到内存中运行。

      一般解释性语言运行方式则和编译型语言有很大的差别。解释性语言直接从源代码运行程序,而且是一句一句的执行,那么他们是怎么让机器认识的呢?这里就要用到每门解释器语言对应的解释器啦。比如python解释器直接将源代码转换成字节码,然后再由解释器来执行这些字节码,转换成机器语言,最后就可以在机器上运行了。这些机制导致python有以下特性。

      由于每次执行时都要转化为字节码,然后在由虚拟机转化为机器语言,所以程序性能肯定会收到影响;由于程序员不要关心程序的编译和库的链接问题开发工作也更轻松;由于有python解释器和机器底层进行交互,从而让python代码和机器底层更加远了,所以python实现了跨平台。

      python针对性能问题提供了一种编译方法,编译之后可以得到pyc文件,储存了字节码,然后有一个专门的python解释器负责解释和执行字节码,这就省去了解释器将源代码转化成字节码的过程,也节省了加载模块的时间从而提高了执行效率,另外编译成pyc文件一定程度上也提高了代码的安全性。

  • 相关阅读:
    反转链表 16
    CodeForces 701A Cards
    hdu 1087 Super Jumping! Jumping! Jumping!(动态规划)
    hdu 1241 Oil Deposits(水一发,自我的DFS)
    CodeForces 703B(容斥定理)
    poj 1067 取石子游戏(威佐夫博奕(Wythoff Game))
    ACM 马拦过河卒(动态规划)
    hdu 1005 Number Sequence
    51nod 1170 1770 数数字(数学技巧)
    hdu 2160 母猪的故事(睡前随机水一发)(斐波那契数列)
  • 原文地址:https://www.cnblogs.com/njfan/p/5764793.html
Copyright © 2011-2022 走看看