首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写程序设计语言

编写程序设计语言
EN

Stack Overflow用户
提问于 2011-07-18 16:02:51
回答 3查看 949关注 0票数 3

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

我期待着写一种新的解释编程语言。从动态性、语法性、对象模型等方面来说,我对自己想要的东西有一个很好的认识。

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

  1. 我应该开始编写完整的规范,然后实现,还是一直都写?
  2. 我仍然怀疑C和C++之间的关系。C++将允许更清洁的设计和更快的开发,而C将(可能)确保移植到更多的平台(微处理器?)。表演是必须的。
  3. 在第一个工作原型之前,我应该试着让人们对这个项目感兴趣,这样他们就可以合作了(最终的产品将是一个自由的许可),还是一直单独工作直到我有了运行的东西?
  4. 它应该是多么模块化?我确信,我不会立即开始处理字节码解释器,而是先进行一些容易实现但速度较慢的工作,因此,为了能够在以后进行扩展,模块化是必不可少的,但我认为过度使用它会影响性能和清晰度。
EN

回答 3

Stack Overflow用户

发布于 2011-07-18 16:12:35

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

  1. 说明:如果这是一个个人项目,这并不重要。PHP因为开发“动态”而受到不好的评价,但是很多人每天都在使用它。如果/当您需要帮助时,更完整的规范可能会帮助人们参与进来。
  2. 如果你想要跨平台和性能,C是最好的选择。
  3. 如果你想让人们加入,首先要证明一些事情。用你的语言和博客写一个很酷的应用程序,谈谈为什么你的语言是不同的/特别的/更好。
  4. 模块化的什么,语言本身还是编译器?如果您想扩展该语言,那么一个好的规范将有所帮助(参见#1)。编译器的设计应该考虑到所有的最佳实践,这将有助于使其可扩展。

我听说龙书对学习开发编译器很有好处。

票数 1
EN

Stack Overflow用户

发布于 2011-07-18 16:14:01

  1. 除非您与实现一起编写规范,否则您的规范将被破坏。
  2. 如果您认为C++将为您提供更干净的设计和更快的开发,那么您可能应该使用它。
  3. 你将很难让任何人对一个项目感兴趣,除非你的语言有什么独特之处。
  4. 如果您认为您的语言将永远需要字节码解释器(您确实说“性能是必须的”),您应该在完成语言设计之前研究现有字节码解释器的功能。
票数 1
EN

Stack Overflow用户

发布于 2011-07-18 18:33:27

我认为你为自己设定了太多的目标。你说“性能是必须的”,但在评论中你说你的目标是“学到很多关于语言设计的知识”,而且你不太可能在一个真正的项目中使用它。创建新的编程语言是为了解决问题;更准确地说,它们的创建是为了帮助人们以更好的方式表达问题的解决方案。设计一种语言而不认真、密集、持续地使用它,就像编写没有任何测试用例的软件:您可能最终会遇到一些无法使用的东西。

如果你想尝试语言设计,那么找到一个问题--一个你关心的问题--现有的语言不会让你以你想要的方式解决问题。然后尽你所能得到一个有效的实现,并开始使用它编写和运行程序。您不需要手工构建的JIT编译器,其运行时是用非常糟糕的程序集代码编写的。如果您的目标是JVM或.NET,您将得到一个非常高性能的GC、可伸缩的线程系统、库和许多其他免费的好东西,即使它干扰了您对______的出色想法。

另一方面,如果你只想让某件事情运行得很快,不要同时设计一种语言。只要找到一个你喜欢的,学习实现策略,看看你是否能做得更好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6735807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档