2012-04-24 21 views
4

我需要知道什么是开发一种编程语言,比如咖啡脚本,它基本上有自己的语法,但在编译变成另一种语言之后,有什么要求呢?我做了Google,但找不到正确的答案。如何开发像Coffee Script这样的编程语言?

+4

我会尽量不要听起来像一个傲慢的混蛋,但你问的事实可能意味着你现在应该不会开始这样的冒险。作出这一警告后,我希望比我更多的人能够提供介绍材料的链接。 – 2012-04-24 14:34:10

+0

也许你可以从确保你了解coffeescript编译器的工作原理开始吧? – 2012-04-24 14:40:46

回答

6
  • 一个基本​​指定类似EBNF你的语言。

    statement  = if-statement 
           | return-statement 
           | expression 
           | ... 
    
    if-statement  = "if" "(" expression ")" "{" statements "}" 
    
    return-statement = "return" expression ";" 
    
    ... 
    
  • 通过recursive descentoperator precedence了解简单parsing

  • 编写一个解析器,从源文件创建一个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

0

最初的要求是:

  • 确定目标计算机语言
  • 开发新的语言
  • 地图新的语言为目标语言的语法的语法。

您仍然有很多工作要做,但基本上,您正在将您的新语言翻译成目标语言。