我厌倦了搜索,却从未找到适合我需求的编程语言(我想大多数优秀的程序员都有同样的感觉)。无论如何,我确实知道我喜欢编程语言,我想尝试开发自己的编程语言。我对它有多难以及需要多长时间的信息感兴趣(我的意思是,获得一种最低限度有用的语言)。我已经知道我需要什么资源了,但我仍然觉得如果没有全身心地投入自己(或让其他人帮助我,我认为不会发生这种情况)几乎不可能完成类似的事情。
无论如何 - 当我说“编程语言”和“最低限度有用”时,我已准备好核心语言,用于调用C代码的FFI,以及至少与Quack一样有用的Emacs IDE。
我很感激任何经验报告......
谢谢!
答案 0 :(得分:12)
无论你想做什么 - 停止它。
如果没有可以满足你的编程语言,也许是时候提高你的编程技巧了吗?
如果我是你,我会描述问题(即你需要写什么样的应用程序),并问WHICH语言最适合它。
所有超级发明通常最终被重写为更标准的语言,因此更多人可以使用它。我听说很多公司试图发明他们自己的内部语言,他们最终将它重写为C或C#,实际上可以雇佣一个可以立即开展工作的人。
糟糕的举动,真的,糟糕的举动。
答案 1 :(得分:3)
您是否想过只包含编译器的所有内容?你需要学习的知识有多大(语法,机器代码,平台约定,文件格式......)?更不用说一些非常简单的事情,比如运算符优先级,变量范围......
编译器不适合胆小的人。如果你从来没有这样做过,那么为一种非常简单的语言(比如非常简化的语言)编写翻译可能已经花了很多时间。
如果你能负担得起,那就去做吧,因为这很有趣,你会通过这样做学到很多东西。但是不要以为在几年之前你的语言不仅仅是玩具。即便如此,它肯定会错过许多其他常用语言中的许多功能。
答案 2 :(得分:2)
这真的取决于这个人。有些人写一种语法,好像他们用自己的母语写一封信。
有些人可以永远摆弄这个(像我一样)。更别说从中创建编译器或解释器了。
如果这是您的第一语言,那么在语言变得切实可行之前,这个过程可能需要一段时间。
完成此操作后,您将需要大量的库,然后才能使用它做任何有用的事情,这也需要大量的时间和奉献精神
所以,即使你是一名编译器,也会耗费大量时间。但是怀疑也很有趣
答案 3 :(得分:2)
有一个haskell教程,你可以在48小时内编写一个方案。我想说为什么魔药耗费了大约两个月但是他为它写了一个解释器和JIT编译器。所以我想说如果你知道自己在做什么,那么根据第一个有用版本的时间和天赋,需要一周到一个月或两个月。在antlr中编写语法将花费你更长的时间来学习这些工具,而不是在编写语法时如果你使它足够简单。
答案 4 :(得分:1)
我会说3到5人/年,具体取决于语言的复杂程度和编译器的优化。
如果这是个人项目,我建议使用.NET语言,以便至少可以跳过程序集生成,并将该部分放到JIT中。这将花费大量精力,同时让你以语言本身的特征为中心。
编写编译器并不困难。我知道这听起来是一项非常重要的任务,而且确实是编程中最复杂的事情之一,因为它需要你对架构,优化和一些令人讨厌的东西有很多了解,但最后就像任何其他业务一样,一旦你进入它并开始学习它就会变得更容易。
答案 5 :(得分:0)
来吧,回答这个问题的最好的人就是你自己!你知道你的编程能力和你想到的特定语言。
总的来说,我认为需要一到十年的时间。
答案 6 :(得分:0)
通过编写几个DSLs(特定于域的语言)来考虑让自己的脚湿透。您可以利用现有的Language Workbench来快速提高效率。或者,您可以使用支持编译器可扩展性的语言编写DSL,并将现有IDE用作核心语言。
答案 7 :(得分:0)
关于decade(和计数)。