2016-11-07 24 views
-1

正如我們大多數人所知,創建編譯器總是一項艱鉅的任務。我真的不知道哪個庫有更好的應用程序來執行此類Java或C語言。我在這裏看到的問題是,與C相比,Java有更長的時間,但控制更加自由。 C編譯時間更短,編譯速度可能更快,但不允許對其進行太多控制。在看來,哪一個會有更好的應用呢?哪一種編譯器設計有更好的應用?

+0

'哪個庫有更好的應用來做這樣的事情',即編寫一個編譯器,是沒有意義的。你問哪個*語言*更容易*編寫一個編譯器? – EJP

回答

0

建立一個編譯器大多需要算法和數據結構不是天然由兩種語言提供的標準庫:

  • 詞素
  • 通過組合許多正則表達式成多出口狀態機的詞彙提取詞素
  • 抽象語法樹
  • 解析器
  • 流檢查語法和建築的AST
  • 控制流圖
  • 控制流程建設
  • ...更多...

差不多打造你最終定義所有這些數據類型作爲結構或對象編譯器和手持編寫代碼來實現這些想法。

因此,C或Java對於此任務都不那麼「容易」。

小心一些,C版本可能會比等效的Java版本更快。

如果你真的想快速編寫一個編譯器,你需要找到一個工具或者框架,爲你提供這些結構和算法such as our DMS Software Reengineering Toolkit,這樣你就不必全部發明它們。