Python的另外⼏种语⾔实现python转java代码
Python⾃⾝作为⼀门编程语⾔,它有多种实现。这⾥的实现指的是符合Python语⾔规范的Python解释程序以及标准库等。这些实现虽然实现的是同⼀种语⾔,但是彼此之间,特别是与CPython之间还是有些差别的。
下⾯分别列出⼏个主要的实现。
1.CPython:这是Python的官⽅版本,使⽤C语⾔实现,使⽤最为⼴泛,新的语⾔特性⼀般也最先出现在这⾥。
CPython实现会将源⽂件(py⽂件)转换成字节码⽂件(pyc⽂件),然后运⾏在Python虚拟机上。
2.Jython:这是Python的Java实现,相⽐于CPython,它与Java语⾔之间的互操作性要远远⾼于CPython和C语⾔之间的互操作性。
在Python中可以直接使⽤Java代码库,这使得使⽤Python可以⽅便地为Java程序写测试代码,更进⼀步,可以在Python中使⽤Swing等图形库编写GUI程序。
Jython会将Python代码动态编译成Java字节码,然后在JVM上运⾏转换后的程序,这意味着此时Python程序与Java程序没有区别,只是源代码不⼀样。
在Python 中写⼀个类,像使⽤Java 类⼀样使⽤这个类是很容易的事情。
你甚⾄可以把Jython 脚本静态地编译为Java 字节码。
⽰例代码:
from java.lang import System
System.out.write('Hello World!\n')
3.Python for .NET:它实质上是CPython实现的.NET托管版本,它与.NET库和程序代码有很好的互操作性。
4.IronPython:不同于Python for .NET,它是Python的C#实现,并且它将Python代码编译成C#中间代码(与Jython类似),然后运⾏,它与.NET语⾔的互操作性也⾮常好。
5.PyPy:Python的Python实现版本,原理是这样的,PyPy运⾏在CPython(或者其它实现)之上,⽤户程序运⾏在PyPy之上。它的⼀个⽬标是成为Python语⾔⾃⾝的试验场,因为可以很容易地修改PyPy解释器的实现(因为它是使⽤Python写的)。
6.Stackless:CPython的⼀个局限就是每个Python函数调⽤都会产⽣⼀个C函数调⽤。这意味着同时产⽣的函数调⽤是有限制的,因此Python难以实现⽤户级的线程库和复杂递归应⽤。⼀旦超越这个限制,程序就会崩溃。Stackless的Python实现突破了这个限制,⼀个C栈帧可以拥有任意数量的Python栈帧。这样你就能够拥有⼏乎⽆穷的函数调⽤,并能⽀持巨⼤数量的线程。Stackless唯⼀的问题就是它要对现有的CPython解释器做重⼤修改。所以它⼏乎是⼀个独⽴的分⽀。另⼀个名为Greenlets的项⽬也⽀持微线程。它是⼀个标准的C扩展,因此不需要对标准Python解释器做任何修改。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。