Java Cython/Jython是一种独立的语言吗?
所以我花了很多时间试图弄清楚什么是Java Cython/Jython是一种独立的语言吗?,java,python,c,jython,cython,Java,Python,C,Jython,Cython,所以我花了很多时间试图弄清楚什么是Cython和Jython,而我仍然(更)像刚开始计算机编程的人一样困惑。我听说,Cython是一种扩展,但是..也是一种独立的语言 我想我理解的是: Cython/Jython就是Python,您可以分别使用C或C++/Java库,只需使用一点点Cython/Jython语法 当使用C或C++/Java编写任务更高效时,它意味着加快性能并提高代码可读性,而这是通过使用静态类型变量实现的 或者说,Cython/Jython只是某种有时使用但不独立使用的扩展?我的
Cython
和Jython
,而我仍然(更)像刚开始计算机编程的人一样困惑。我听说,Cython
是一种扩展,但是..也是一种独立的语言
我想我理解的是:
Cython
/Jython
就是Python
,您可以分别使用C
或C++
/Java
库,只需使用一点点Cython
/Jython
语法C
或C++
/Java
编写任务更高效时,它意味着加快性能并提高代码可读性,而这是通过使用静态类型变量实现的Cython
/Jython
只是某种有时使用但不独立使用的扩展?我的意思是,您仍然可以用Python
编写所有内容,然后,对于您更愿意使用C
或C++
/Java
的任务,您可以使用Cython
/Jython
?(我知道我仍然需要安装Python和类似的东西,因为它是依赖的。)
因为如果它真的更好的话,除了因为它是新的,所以还在开发中的障碍,对
C
或C++
/Java
的需求难道不会完全消失吗?因为它们与Python
一样简单,但与C
或C++
/Java
一样强大?CPython与Jython相当。它们是Python语言的实现。CPython是事实上的标准,是用C编写的。Jython是用Java编写的,在JVM上运行。它还允许在很大程度上访问Java生态系统。还有该语言的其他实现,如PyPy或Pyston
赛顿完全不同。它允许我们用C或Pyrex(Python语言的子集)为Python编写扩展。Cython加快了用它编写的部件的执行速度 Jython是Java虚拟机上Python语言的一个实现,因此Jython是Python而不是CPython。Cython是CPython的一个扩展,除了在语法上有一些相似之处外,与Python没有太多共同之处。 Jython是用于Java平台的Python语言的实现。Jython2.7实现了与CPython2.7相同的语言,以及几乎所有的核心Python标准库模块。(CPython是Python语言的C实现。) 编写Jython类似于编写标准Python。主要区别在于,由于它编译为Java字节码,因此可以与Java库进行平滑的交互。当然,它对JVM有要求,但没有全局解释器锁(著名的GIL) : Cython是Python编程语言和扩展Cython编程语言(基于Pyrex)的优化静态编译器 所以,Cython首先被认为是一个编译器。它将Python代码编译为
C
,然后编译(使用标准C
编译器)并运行
为了进一步促进与C/C++
的集成,它还扩展了用于指定类型、定义不同类型的函数以及与C/C++
代码接口的语法。一方面,这些允许Cython生成更高效的代码,通过Python VM通常所做的缓慢解释,另一方面,由于您不需要熟悉Python C-API
,因此为Python编写扩展非常容易
因此,要回答您的问题: Cython/Jython只是Python,您可以分别使用C或C++/Java库,只需使用一点Cython/Jython语法 差不多,是的。Jython是Python,它使用
Java库和基本import
语句。Cython与Python非常相似,正如您所说,它使用了一些语法来与C/C++
接口
当一个任务用C或C++/Java编写效率更高时,它意味着提高性能和代码可读性;这是通过使用静态类型变量实现的
对于Cython
这是的目标,对于Jython
则不是。这就是为什么Cython
提供了扩展语法来指定类型,而Jython
没有
这两种语言都是独立使用的(您的意思是),但是Cython通常是在分析CPU绑定的Python代码并确定瓶颈之后部署的。Ok。Jython是Python的一个实现,它将Python源代码转换为java字节码或大多数人所称的目标代码。因此,您基本上使用python语法编写程序,但编译为目标代码时,源代码的输出是java字节码
另一方面,Cython是一个实现,其中python语言中的标准模块已被翻译成C语言。在这里,当您基本上使用一个模块时,它是python标准模块,但是为了效率起见,在后台,它的C语言或执行的代码是好的,那么如果完全不同,我应该删除我问题中的Jython部分吗?所以基本上我只是用Python写,然后不用C写某些任务,我用“Cython”,它同样快,除了有两种语言的库,基本上是Python,除了一些C语法(Cython语法),但是,我实际上不能用Cython写程序。我明白了吗?Cython不一样。它为CPython工作。允许您使用类似Python的语法编写一些代码(具有静态类型和其他语法差异)。Cython将这些代码编译成C并获得性能提升。CPython和Jython只是Python,一个用C编写,一个用Java.CPyt编写