我想写我自己的语言。

我发现了一些选项,但是随意提出更多。

  • JVM
  • 鹦鹉
  • OSA

很多种语言的使用JVM,但是除非你写Java上的语言,所有权力的标准库给你会觉得丑;这不是很好的动态的东西。

鹦鹉似乎是一个很好的VM发展中的语言,但它有一点点被遗弃的/未完成/爱好项目闻到它。

OSA是什么权力Applescript,不是特别众所周知的虚拟机,但是,我使用的是Mac,它提供了良好的系统集成。

CLR+Mac似乎没有一个很好的结合...

我的语言将是一个面向对象的功能并行的数据流的语言有强烈的打字和一个混合的Python和口齿不清的语法。听起来不错,是吗?

[编辑]
我接受蟒蛇现在,但我想听到更多有关OSA和鹦鹉。

有帮助吗?

解决方案

一种办法,我已经打了是使用的蟒蛇 ast 模块,以建立一个抽象的法树代表代码运行。蟒蛇 compile 功能可以编制一个AST到蟒蛇码, exec 然后可以运行。这是一位高于直接产生码,但是你将要处理的一些怪癖的Python语言(例如,根本区别之间的发言和表达方式).

在这样做我还写了一个"deparse"模块,该模块的企图转换成一个AST回到同等Python源代码,只是进行调试。你可以找到代码 psil 库如果你有兴趣。

其他提示

看看 编程.这不是一个纯粹的虚拟机作为此,更多的一个框架,有它自己的红外,允许你建立高级别的虚拟机。有不错的东西一样静的码分析和准时支持

  • Lua有一个小小的、精心编写和快速的虚拟机
  • 蟒蛇VM-你真的可以附加一个新的语言,它如果你想要的。或者写信(使用?) 像tinypy其是小型和简单的实施Python虚拟机。

这两个选项以上已经获得有用的标准图书馆,这将保存你的工作,并编码中相对较清洁和模块化C,因此它们应该不难。

这就是说,我不同意那只鹦鹉是被遗弃的/爱好。这是相当成熟的,并有一些非常强大的开发工作。此外,它是专门虚拟机设计是通过有针对性多动态的语言。因此,在设计灵活的做法。

你有没有考虑Pypy?从我读,除了被一条巨蟒JIT编译器,它也有能力处理其他语言。例如,有的是 一教程 这解释了如何创建一个>,[.>,]通过移动指针JIT编译器使用Pypy.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top