私信  •  关注

Alan Franzoni

Alan Franzoni 最近创建的主题
Alan Franzoni 最近回复了
16 年前
回复了 Alan Franzoni 创建的主题 » 使用python语法的子集加速编写c程序

cython旨在编写python扩展,而不是成熟的程序。pyrex也是如此。

尽管这和你的例子很不一样, PyPy 可能是你要找的。它使用一个python子集(称为rpython,一种更为静态的python)来为不同的后端(包括c)生成代码。

你要的是一种不同的、更简单的C语言——虽然这本身并不是一个坏主意,但世界上已经有很多不同的编程语言,如果每个人都为每个应该编写的应用程序发明一种新的方言,那将是一个相当大的问题。

如果您认为c太冗长或太低,无法满足您的需要,请尝试以下方法:

  • 用python编写程序
  • 分析它并找出哪些部件真正需要速度
  • 在定义良好的模块中隔离这些部分
  • 用pyrex或cython重写这些部分

而且您可能会获得很好的可读性、可维护性和速度。

16 年前
回复了 Alan Franzoni 创建的主题 » 支持不同版本的python

你的问题似乎有不同的答案。

首先,如果你想提供 全部的 功能 全部的 python版本是的,您可能会被困在使用尽可能小的功能子集上,因此要为python 2.4编写代码。或者,如果新的解释器是纯python的话,可以从它们背后移植特性(上下文管理器和协同程序都不是这样)。

或者你可以将版本支持分成几个功能——如果你认为有一个(可选的)功能可以从上下文管理器中获得很大的好处,那么你可以在单独的模块中使用它,只需说2.4用户没有这个功能。

为了支持python 3,请看一下2to3助手,如果您正确地编写了代码,那么您很有可能不需要维护两个独立的代码基。