首选语言:C/C++,Java和Ruby.
我正在寻找一些有用的书籍/教程,如何编写自己的编译器只是为了教育目的.我最熟悉C/C++,Java和Ruby,所以我更喜欢涉及这三者之一的资源,但任何好的资源都是可以接受的.
当你拥有的是一对断线钳和一瓶伏特加酒时,一切看起来就像是Wolf Blitzer船库门上的锁.(如果你不读xkcd,用锤子和钉子代替)
我目前正在编写Clojure,Python,Java和PHP,所以我熟悉C和LISP语法以及空白事物.我知道命令式,功能性,不可变性,OOP和几种类型的系统和其他东西.现在我想要更多!
什么是采用不同方法的语言,对实际工具选择或理论理解有用?
我不想学习另一种函数式语言(Haskell)或其他命令式OOP语言(Ruby),也不想练习像Brainfuck这样不切实际的有趣语言.
我发现自己的一个非常有趣的事情是基于单声道堆栈的语言,如Factor.
只有当我觉得我理解了大多数概念并对我的所有问题都有答案时,我才想开始考虑我自己的玩具语言,以包含我所有的个人喜好.
您可以为想要编写编程或脚本语言的人提供哪些提示?我并不担心如何编程或设计编译器,而是如何使用工具和代码生成器快速开发编译器.
上次我尝试用c ++编写它,状态和语法几乎和写实际逻辑一样长.我知道以下工具会有所帮助.
我以为我可以生成c ++代码并使用gcc编译.使用上面的工具,您估计编写程序或脚本语言需要多长时间?
早在学习编写编译器时就已反复询问过这个问题的变化.以下是该主题的SO资源的不完整列表.
compiler-construction interpreter programming-languages scripting-language
这是一个很好的列表,但对于这个领域的完整newb来说,最好的是什么.一个来自更高级别背景的人(VB6,C#,Java,Python) - 不熟悉C或C++.在这个阶段,我对Lex/Yacc的手写解析更感兴趣.
如果我刚刚主修计算机科学而不是心理学,我可能会在大学里上课.那好吧.