用汇编语言实现的编程语言

8 assembly programming-languages forth

最近我偶然发现了JONESFORTH,它是用普通汇编语言实现的Forth编程语言的解释器.

我发现这个实现很有趣,因为它显示了如何用汇编语言实现一种语言,尽管我理解实现一种语言可能是一种严重的可移植性权衡.

所以我想知道是否有任何其他编程语言用汇编语言实现,其源代码仍然可用(甚至可能仍在积极开发中)?

thk*_*ala 7

虽然可以在汇编中编写语言实现,但对于大多数语言而言,出于各种原因这样做是不可取的:组装代码非常难以开发和维护,并且根据定义它是不可移植的.

也就是说,某些语言更容易生成以下内容:

  • Brainfuck生成装配实现非常容易

  • Forth在汇编中有许多实现,这就是为什么它被用在几个非PC工作站的固件中的原因.您可以在此处找到各种平台的一些装配实现.

  • 许多BASIC解释器都是用汇编语言编写的 - 事实上,对于70年代末和80年代早期的各种家用电脑中的大多数BASIC实现来说,这可能是正确的.有些可以在这里找到.

  • 因其可读性而取笑是有点意思:这实际上是程序员的错. (3认同)

Apa*_*ala 7

自1.0以来,Turbo Pascal的几个版本都是用汇编语言编写的.这是将编辑器,编译器,调试器和编译后的程序安装到64 KB RAM中的唯一方法,它提供了前所未见的超快编辑 - 编译 - 调试速度.


小智 6

Pico Lisp最近(在过去几年中)从C转换为x86-64汇编程序.这是我能想到的唯一一个在"现代"时代进行的例子.还有一些从汇编程序引导的旧Lisps仍在使用中.实际上等了,最近有人在ARM汇编程序中编写了一个Scheme(http://armpit.sourceforge.net/index.html).我不知道为什么他们会做这样一个疯狂的事情,我没有密切关注它.当然,用C语言编写并添加一些asm函数来实现call/cc等是很常见的.

20世纪80年代的BDS C编译器是用8080编译器编写的,源代码几年前发布,但它主要是历史兴趣.