2008-10-28 65 views
3

我對實現解析器的知識有點生疏。編寫解析器 - 需要指南和研究論文

我不知道該地區的研究現狀,可能需要一些關於近期進展及其對錶現的影響的鏈接。

寫一個解析器通用資源也歡迎,因爲大部分的(教程,指南等)是我在大學裏我已經忘記了:)

學會了我的龍書,但僅此而已。

是否有人對ANTLR等解析器生成器及其性能有任何輸入? (即與其他發生器比較)

編輯我的主要目標是以N3符號表示的RDF/OWL/SKOS。

+0

解析器是什麼? – shoosh 2008-10-28 18:15:30

回答

7

提到龍書和antlr意味着你已經回答了你自己的問題。

如果你正在尋找其他解析器生成器,你也可以檢查boost :: spirit(http://spirit.sourceforge.net/)。

取決於你想實現你可能還需要考慮一個DSL,你可以分析自己或腳本語言一樣的噓聲,紅寶石,蟒蛇等寫什麼......

+0

我怎麼能忘記Boost.Spirit? – 2008-10-28 20:07:40

0

嗯......你的要求有點不明確。雖然這個領域有許多最新的發展,但它們都非常專業(自然,因爲該領域已經成熟)。儘管原始的解析方法並沒有真正改變。您可能想了解解析器創建工具中的更改(AntlrGold Parser,僅舉幾例)。

0

你可能還想看看另一個分析器生成器「SableCC」,它可以生成用於構建編譯器的全功能面向對象框架。

他們是一些關於基本用途的文檔herehere。由於您詢問了有關研究論文,SableCC's main developper's master thesis(1998)可用,並解釋了一些關於SableCC優勢的更多信息。

雖然當前的穩定版本是3.2,但開發分支v4是一個完整的重寫,應該實現解析器生成器的新特性。

0

如果您想爲複雜語言構建定製分析儀,請考慮我們的DMS Software Reengineering Toolkit。 見http://www.semanticdesigns.com/Products/DMS/DMSToolkit.html

這提供了非常強大的分析技術,使得它「容易」來定義你的語言 (尤其是與大多數解析器生成比較)。

傳統解析器生成器可能會幫助 進行解析,但它們在解析代碼之後發生的 進程的難解部分中提供了零幫助。 DMS提供了大量機器來支持分析和轉換代碼,一旦你解析它。

+0

Hi Ira,我找不到該工具包的任何定價信息(對C#感興趣)。它在你的網站上的某個地方? – user97562 2011-02-24 14:23:06