programming-languages - 编写编程语言

标签 programming-languages

<分区>

免责声明:是的,我知道这至少需要 3 年时间。

我期待着编写一种新的解释型编程语言。在动态性、语法、对象模型等方面,我对自己想要的东西有一个非常明确的想法。

既然我有了想法,在开始之前我有几个问题:

  1. 我应该开始编写完整的规范然后实现,还是同时编写它们?
  2. 我仍然在 C 和 C++ 之间犹豫不决。 C++ 将允许更简洁的设计和更快的开发,而 C 将(可能)确保可移植到更多平台(微处理器?)。性能是必须的。
  3. 我应该在第一个工作原型(prototype)之前尝试让人们对项目感兴趣,以便他们可以合作(无论如何最终产品将是自由许可),还是继续单独工作直到我有可以运行的东西?
  4. 应该如何模块化?我确信我不会立即开始研究字节码解释器,而是先做一些更容易实现但速度较慢的事情,因此模块化是必须的,以便以后能够扩展,但我想过度使用它会影响性能和清晰度。

最佳答案

您的问题的答案在很大程度上取决于您为什么您这样做 - 主要原因。您是在尝试创建下一个 Ruby,还是学习练习?

  1. 说明:如果这是个人项目,则这不是那么重要。 PHP 因“即时”开发而名声不佳,但仍有许多人每天都在使用它。如果/当您需要帮助时,更完整的规范可能有助于让人们参与进来。

  2. 如果您想要跨平台和性能,C 是必经之路。

  3. 如果您想让人们加入,请先证明一些事情。用您的语言和博客编写一个非常酷的应用程序/讨论为什么您的语言与众不同/特别/更好。

  4. 什么的模块化,语言本身还是编译器?如果您想扩展该语言,良好的规范会有所帮助(请参阅 #1。)编译器在设计时应牢记所有最佳实践,这应有助于使其可扩展。

我听到 Dragon Book非常适合学习开发编译器。

关于programming-languages - 编写编程语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6735807/

相关文章:

Python 类静态/实例默认值

java - 初始化数组是否保留其在 C/C++ 和类似语言中的顺序?

c - 为什么这段代码会提前退出?

java - 将一个长字符串读入内存

programming-languages - F35 Lightning II飞机使用的主要编程语言是什么?

programming-languages - 我需要学习什么才能为编程语言做出贡献?

scala - 这段代码在 scala 中究竟做了什么?

python - 相同的抽象语法树是否保证相同的行为?

programming-languages - 您可以在您的语言中将哪些表情符号放入类(class)名称中?

c - C语言中的指针数组和指针数组有什么区别?