如何开发像Coffee Script这样的编程语言?
问题描述:
我需要知道什么是开发一种编程语言,比如咖啡脚本,它基本上有自己的语法,但在编译变成另一种语言之后,有什么要求呢?我做了Google,但找不到正确的答案。如何开发像Coffee Script这样的编程语言?
答
-
一个基本指定类似EBNF你的语言。
statement = if-statement | return-statement | expression | ... if-statement = "if" "(" expression ")" "{" statements "}" return-statement = "return" expression ";" ...
编写一个解析器,从源文件创建一个abstract syntax tree。
编写一个code generator将此AST转换为您的目标语言;或
编写interpreter仅仅评估AST。
+0
+1为普拉特语法分析器,他们是唯一最令人敬畏的解析算法恕我直言。 – delnan 2012-04-25 13:05:06
+0
@delnan:他们很棒。 – 2012-04-25 15:44:38
答
最初的要求是:
- 确定目标计算机语言
- 开发新的语言
- 地图新的语言为目标语言的语法的语法。
您仍然有很多工作要做,但基本上,您正在将您的新语言翻译成目标语言。
我会尽量不要听起来像一个傲慢的混蛋,但你问的事实可能意味着你现在应该不会开始这样的冒险。作出这一警告后,我希望比我更多的人能够提供介绍材料的链接。 – 2012-04-24 14:34:10
也许你可以从确保你了解coffeescript编译器的工作原理开始吧? – 2012-04-24 14:40:46