python编程语言编译
LLVM后端的numba和支持大部分C++编译器作为后端的nuitka。
Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990 年代初设计,作为一门叫做ABC语言的替代品。
Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python 也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。
Python是一门跨平台的脚本语言,Python规定了一个Python语法规则,实现了Python语法的解释程序就成为了Python的解释器。
简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。
一个现代编译器的主要工作流程:源代码 (source code) →预处理器(preprocessor) → 编译器 (compiler) →目标代码(object code) →链接器(Linker) → 可执行程序(executables)。
高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。
源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。
对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。最后运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)。
B. Python是什么编程语言,和C++比怎么样
python是解释语言,c++是编程语言。
1、编译器是off-line,解释器是on-line。编译器把整个程序读进来,进行一系列变大变小转化优化的过程,产生可执行文件,然后编译器退出,由可执行文件来读取和输出数据,python main.py这个命令会启动python虚拟机和解释器,将main.py的代码一行一行解释,只不过不同于REPL,它不会把每一行表达式的值打印出来。
2、Python是一种解释执行的语言,Python的缩进要求十分严格,通过缩进来区别代码块,C++是一种需要编译执行的语言,通过大括号来区分代码块。C++的工作方式是,首先将写好的代码保存到扩展名为.cpp的文件中,然后编译.cpp文件。编译器将C++代码转换为原生代码。然后执行这些机器代码。因此,C++非常靠近硬件。
、C++和Python都是从C语言演变出来的面向对象的编程语言,将相关数据和操作数据的方法打包成一个类,不同的类相互隔离,也可以自由组合,类是一组数据以及操这组数据的函数(方法)的集合。类是对象的抽象模板,对象是类的具体实例,给类的数据取不同的值,同一个类就产成了不同的对象。
C. python需要编译么
一个经常听见的问题,那就是:Python是解释型的语言吗?它会被编译吗?这个问题没有想象中那么好回答。和很多人认识世界一样,习惯以一个简单的模型去评判一些事物。而事实上,里面包含了很多很多的细节。
通常的说法,编译代表着将一个高级语言转化为 CPU 能执行的机器码。当你编译 C 的时候,的确是做的这样的操作。编译的结果是一个二进制可执行文件,这时你的系统可直接运行这个程序。
与此相对的,解释的意思是这样的:程序运行时每次读源文件中的一行代码,并执行相应的操作,就这样一行一行的重复下去。当然,所谓的脚本语言就是这么运行的。
但事实上,上面的定义有太多的局限。一门真正的语言,为了拥有更多有用和强大的特性,通常采用了各种各样的实现方式。我们可以将编译理解为更通用一些:将一种语言转化为另一种语言形式。通常来说,源语言比目标语言要更高级一些,比如将 C 转化为机器码。当然,JavaScript 8 到 JavaScript 5 的转化也算是一种编译。
在Python中,源代码会被编译为更低级的一种形式,我们称之为字节码。字节码是一串指令,和 CPU 的指令集类似。但是字节码并不直接被 CPU 执行,而是在虚拟机中执行的。当然,这里的虚拟机并不模仿整个操作系统的环境,只是提供了字节码执行的一个环境。
下面我们看 Python 的一小段代码以及它对应的字节码
看了字节码的内容后,我们就知道 f'...' 这种格式化字符串的形式的运行原理,就是将里面的字符串转化为一系列的字面字符串与变量,然后使用 + 号连接起来。
dis 是 Python 标准库中反汇编模块,它可以展示 Python 代码的字节码信息。上面提到的执行字节码的虚拟机,可以用任意的语言实现,包括 Python 自己。有兴趣的可以去 GitHub 上看下这个项目 nedbat/byterun 。这个项目可以用来学习,但不适用于生产环境。
不过,我们运行 Python 时完全感受不到它的编译过程,没有显示的调用什么编译程序,仅仅是简单的执行 .py 文件,编译都是需要时自动编译的。这和 JAVA 不同,当你每次写完 JAVA 代码要执行时,都要手动将其编译为 .class 文件,然后执行。也正是这个原因,JAVA 被称为编译型语言,而 Python 被叫做解释型语言。但事实上,两种语言执行时都会先编译成字节码,然后交给虚拟机执行。
Python还有一个重要的特性,就是交互式命令行。你可以敲入一行 Python 语句,然后立刻回车执行。实际上,即使是这个过程,Python 同样是先转为字节码,然后执行。而这个交互式命令行这个特性,在很多编译型语言里是没有的。同样因为没有显示的调用编译程序,很多人将执行Python源文件的程序叫做Python解释器。
即使比较简略,但还是补充下。部分编译型语言比如 C 或者 JAVA 也有交互式命令行,但这些并不是这些语言的重心。JAVA 刚开始是编译成字节码然后执行,后面有了即时编译技术( JIT )可以直接编译成机器码,与 C 类似。
从上面的描述可以看出,不管是解释还是编译,并没法完全分离开来。很多时候,我们想用一些词将现有的编程语言分个类,但事实上要办到这一点太难了。
最后要说明的是,你的代码是怎么执行的只是语言的实现问题,并非语言的特征。上文中,我们讨论的是 Python ,但实际上是 CPython 的描述。CPython 是一个解释器,之所以这么叫,是因为这个解释器是用 C 编写的,这也是 Python 默认的解释器。当然还有其它很多解释器,比如,PyPy 就是另一种解释器,使用了 JIT 技术,运行速度相比 CPython 有较大提升。
回到标题中的问题,Python之所以称为解释型语言,是因为它没有显示的调用编译操作,表现出解释型的特性比较多而已。但事实上,编译是存在的,具体怎么编译就看语言的实现了,也就是解释器的设计。
更多Python相关技术文章,请访问Python教程栏目进行学习!以上就是小编分享的关于python需要编译么的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!
D. python编程语言的集成编译环境哪个好用
1.Pydev+Eclipse–最好的免费pythonIDE
Pydev的是PythonIDE中使用最普遍的,原因很简单,它是免费的,同时还提供很多强大的功能来支持高效的Python编程。Pydev是一个运行在eclipse上的开源插件,它把python带进了eclipse的王国,如果你本来就是是一个eclipse的用户那么Pydev将给你家里一样的感觉。如果还不是,可能“日食”听起来有点吓人,但是值得你一试。
Pydev能高居榜首,得益于这些关键功能,包括Django集成,自动代码补全,多语言支持,集成的Python调试,代码分析,代码模板,智能缩进,括号匹配,错误标记,源代码控制集成,代码折叠,UML编辑和查看,和单元测试整合
Pydev是由AleksTtotic在2004年创建的,现在由FabioZadrozny进行维护。Pydev在社区用户的帮助,以及Liclipse,Squish,TraceTronic等公司/社团的赞助下持续进行更新。
虽然Pydev是最好的开源pythonIDE,但是它也和另一个名为Liclipse的产品一起打包,Liclipse是一个商业产品,同样也构建在eclipse上,提供了易用性改进和额外的主题选项。
除了python,Pydev也支持JythonandIronPython。
你可以在这里下周Pydev——pydev.org/download.html。
想了解更多,请到Pydev官网——pydev.org。
2.PyCharm–最好的商业pythonIDE
PyCharm是来自JetBrains公司的全功能python开发环境。过去的15年里JetBrains一直致力于发展顶级的开发工具,旨在让开发工作变得轻松和愉快。
PyCharm是专业的python集成开发环境,有两个版本。一个是免费的社区版本,另一个是面向企业开发者的更先进的专业版本。PyCharm的普及可以从这一事实来衡量,即有很多大品牌公司用户,像Twitter,Groupon,Spotify,eBay和Telefonica等都在用PyCharm。
大部分的功能在免费版本中都是可用的,包括智能代码补全、直观的项目导航、错误检查和修复、遵循PEP8规范的代码质量检查、智能重构,图形化的调试器和运行器。它还能与IPythonnotebook进行集成,并支持Anaconda及其他的科学计算包,比如matplotlib和NumPy。
PyCharm专业版本支持更多高级的功能,比如远程开发功能、数据库支持以及对web开发框架的支持等等。
我最喜欢PyCharm的原因是因为它支持很多的第三方web开发框架,比如Django、Pyramid、web2py、googleappengine和Flask,这些也使得它成为了一个完整的快速应用集成开发环境。
3.VIM
VIM是一个很先进的文本编辑器,在python开发者社区中很受欢迎。它是一个开源软件并遵循GPL协议,所以你可以免费的使用它。
虽然VIM是最好的文本编辑器,但是它提供的功能不亚于此,经过正确的配置后它可以成为一个全功能的Python开发环境。此外VIM还是一个轻量级的、模块化、快速响应的工具,非常适合那些很牛的程序员——编程从不用鼠标的人。
初始化配置需要花一定时间,因为你需要安装些VIM的插件,并配置让他们正常工作,最后你会发现这一切都是值得努力的。如果你在寻找一个linux系统下的pythonIDE,那么VIM将是你的不二选择。
4.WingIDE
WingIDE是另外一个商业的、面向专业开发人员的python集成开发环境,由wingware公司开发。15年来WingIDE一直都是一个非常成熟的产品,提供了最新的Python编程所需要的各种工具和特性。
WingIDE可以运行在windows、OSX和Linux系统上,支持最新版本的python,包括stacklessPython(python的增强版)。WingIDE分三个版本:免费的基础版,个人版,以及更强大的专业版。
调试功能是WingIDE的一大亮点,包括多线程调试,线程代码调试,自动子进程调试,断点,单步代码调试,代码数据检查等功能,此外还提供了在树莓派上进行远程调试的功能。
在代码管理方面,WingIDE能非常灵活的与Git、subversion、perforce、cvs、Bazaar、Mercurial等工具集成。
此外,WingIDE也支持其他更多的python框架,比如Maya、MotionBbuilder、Zope、PyQt、PySide、pyGTK、PySide、Django、matplotlib等等。
5.SpyderPython
SpyderPython是一个开源的python集成开发环境,非常适合用来进行科学计算方面的python开发。是一个轻量级的软件,是用python开发的,遵循MIT协议,可免费使用。
Spyderpython的基本功能包括多语言编辑器、交互式控制台、文件查看、variableexplorer、文件查找、文件管理等。SpyderIDE也可以运行于windows、Mac或者Linux系统之上。
虽然Spyder是一个独立的集成开发环境,能运行在windows、MacOS、MacOSX、Linux等系统之上。但是它也可以作为PyQT的扩展库,可以嵌入到PyQT的应用中去。
6.KomodoIDE
Komodo是Activestate公司开发的一个跨平台的集成开发环境,支持多种语言包括python。它是商用产品,但是提供了开源的免费版本叫KomodoEdit,能够安装在Mac、Windows和Linux系统上。
全功能的Komodo对教育机构用户是免费的,老师和教授可以将其应用于实验室及教学中。学生也可以通过较低的费用得到Komodo的授权许可。
和大多数的专业pythonIDE一样,Komodo也提供了代码重构,自动补全,调用提示,括号匹配,代码浏览器,代码跳转,图形化调试,多进程调试,多线程调试,断点,代码分析,集成测试单元等功能,并且集成其他的第三方库,比如pyWin32。
最新版本的Komodo提供了更多的功能与PyCharm、Pydev和WingIDE等其他pythonIDE形成了强烈的竞争关系,比如集成包管理器,变化跟踪,markdown浏览器,shellscope,快速书签等。
7.PTVS-BestPythonIDEforWindows
PTVS(PythonToolsforVisualStudio)集成在VisualStudio中,就像Pydev可以集成在eclipse中一样。PTVS将VisualStudio变成了一个强大的、功能丰富的python集成开发环境,并且它是开源的,完全的免费。PTVS发布于2015年,由社区和微软自己在维护。
PTVS支持几乎所有免费版本的VisualStudio,包括如下版本的VS2015和VS20013:
·CommunityEdition
·ExpressforWeb
·ExpressforDesktop
如果你是一个visualstudio用户,毫无疑问PTVS对于你来说是最好的python集成开发环境。
8.EricPython
Eric是一个开源python代码编辑器和集成开发环境,提供了很多高效编程需要的功能。它是纯python编写的,基于QtGUI并集成了强大的Scintilla编辑器功能。
Eric由DetlevOffenbach创建,遵循GPL协议,免费使用。经过多年的开发完善Eric已经成为一个常用的、功能丰富的集成开发环境。它提供了一个可靠的插件管理系统,可以通过插件来扩展功能。
Eric提供了所有的基础功能,比如调用提示、代码折叠、代码高亮、类浏览器、代码覆盖及分析等等。但是Eric的关键功能让它有了与其他商业pythonIDE竞争的能力:
·集成的任务管理
·单元测试支持–已集成
·重构
·正则表达式和Qt对话框核心插件
·可选择的从编辑器中启动第三方应用程序
·应用程序图
·项目管理
·交互式的Pythonshell
·多语言用户界面,包括英语,德语,俄语,法语,捷克语,西班牙语,意大利语,土耳其语和中文。
·以插件的方式集成版本控制工具Subversion,Mercurial和Git
·其他功能。
9.SublimeText3/AnacondaPythonIDE
SublimeText3是目前为止功能最强大的跨平台的、轻量级的代码编辑器。通过添加插件SublimeText3可以成一个全功能的pythonIDE。
Anaconda带给你最强大的功能是代码自动补全和代码检查。当然Anaconda也很注重基础功能如:各种各样的主题,快速响应的用户界面,配置简单,各种强大的功能扩展包。
10.Emacs-PythonEditorcumIDE
Emacs有属于它自己的生态系统,它是一个可扩展的并能高度定制的GNU文本编辑器。它可以配置为一个全功能的免费的python集成开发环境。
Emacs在python开发中很受欢迎,他通过python-mode提供了开箱即用的python。Emacs可以通过额外的扩展包来增加更多的高级功能。