Peregrine 编程语言 - 一种与 Python 类似但速度与 C 语言一样快的语言。
嘿,大家好!
我是 Ethan,Peregrine 十位开发者之一。这篇文章将介绍我们最近在 Peregrine 中添加的一些更新。
关于
如果你了解 Python,你就会知道它有多简单。然而,它也带来了很大的性能下降。Python 很慢,我敢肯定每个 Python 开发者现在都知道这一点。这有点烦人。这就是 Peregrine 的用武之地。过去几个月,我和其他 8 位朋友一直在开发 Peregrine。Peregrine 的语法与 Python 非常相似,而且它会被转译成 C 语言,因此速度与 C 语言一样快。下面我编写了两个程序,一个用 Peregrine,一个用 Python。
游隼
def fib(int n) -> int :
if n <= 0:
return 1
return fib(n-1) + fib(n-2)
def main():
count = 0 # Peregrine has type inference!
int res = 0
while count < 40:
res = fib(count)
count++
函数返回类型可以省略。
Python
def fib(n):
if n <= 0:
return 1
return fib(n-1) + fib(n-2)
res = 0
for c in range(0, 40):
res = fib(c)
这两个程序几乎相同,这使得 Python 用户可以轻松切换到它们。现在,您可能会问:“Peregrine 的速度快多少?” 好吧,为了回答您的问题,以下是结果:
游隼:
执行时间:1.06 秒
Python:
执行时间:32.30 秒
可以看出,Peregrine 的速度明显快于 Python。在运行此程序时,它的速度大约是 Python 的 30 倍(无需优化)。
什么是新的?
以下是 Peregrine 的一些最新功能:
类型推断
类型推断是 Pergrine 的最新功能之一。这使得 Peregrine 代码的编写更加简单。
如果/否则/匹配
虽然这看起来像是任何编程语言的标准功能,但添加这些功能确实需要时间,这也是我承认这一点的原因。由于每种编程语言都有此功能,所以没什么好说的。
新功能
让我们进一步讨论一下 Peregrine 目前提供的功能。
代码
Ccode
允许在 Peregrine 中运行 C 代码。以下是示例:
def main():
x = 1
Ccode x++; Ccode
print("{x}\n") # prints 2
如您所见,块外声明的任何变量都Ccode
可以在块内使用Ccode
,反之亦然。这也意味着您可以导入任何 C 库Ccode
并在 Peregrine 中使用它。
内联汇编
你也可以在 Peregrine 中使用内联汇编。以下是示例:
def main():
int arg1 = 45
int arg2 = 50
int add = 0
print("It should add 45 and 50 using asm and print it\n")
asm("addl %%ebx, %%eax;" : "=a" (add) : "a" (arg1) , "b" (arg2))
printf("%lld", add)
正如预期的那样,这将打印90
。
更多的
您可以在Peregrine 测试文件夹中找到更多示例
计划功能
- 结构体
- 更多用于不同目的的装饰器
- Peregrine 中的 Python 生态系统
- 您将能够在 Peregrine 中使用任何 Python 模块
结论
Peregrine 计划于 3 月份某个时候发布 0.0.1 版本,因此请务必通过加注该repo来表示支持,并确保按下“关注”按钮,这样您就不会错过任何更新。
我们非常感谢您的贡献,所以如果您发现可以改进的地方,请提交拉取请求!您也可以查看我们的未解决的问题
非常感谢您的阅读!
文章来源:https://dev.to/ethanolchik/the-swallow-programming-language-a-python-like-language-that-s-as-fast-as-c-43j7