2012-04-24 20 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

最初的要求是:

  • 確定目標計算機語言
  • 開發新的語言
  • 地圖新的語言爲目標語言的語法的語法。

您仍然有很多工作要做,但基本上,您正在將您的新語言翻譯成目標語言。