簡體   English   中英

我在哪里可以學習編寫詞法分析器的基礎知識?

[英]Where can I learn the basics of writing a lexer?

我想學習如何編寫詞法分析器。 我的大學課程有一項任務,我們必須編寫一個解析器(以及 go 的詞法分析器),但這是給我們的,沒有任何指導或反饋(超出了分數),所以我並沒有真正從中學到很多東西。

在搜索了這個主題之后,我只能找到相當高級的文章,這些文章專注於我認為比我所處的位置領先幾步的領域。 我想討論為一種非常簡單的語言編寫詞法分析器的基礎知識,我可以將其用作研究對更復雜語言進行標記的基礎。

在這個階段,我對最佳實踐或優化技術並不真正感興趣,而是更喜歡關注基本要素。 有哪些好的資源可以幫助我入門?

基本上,編寫詞法分析器有兩種主要方法:

  1. 在這種情況下創建一個手寫的,我推薦這個小教程
  2. 使用一些詞法分析器生成器工具,例如lex 在這種情況下,我建議閱讀所選特定工具的教程。

另外我想推薦LLVM文檔中的Kaleidoscope 教程 它貫穿了一種簡單語言的實現,並特別演示了如何編寫一個小型詞法分析器。 有一個 C++ 和一個 Objective Caml 版本的教程。

該主題的經典教科書是 編譯器:原理、技術和工具,也稱為龍書。 然而,這可能屬於“相當高級的寫作”的范疇。

龍之書可能是該主題的權威指南,盡管它可能有點壓倒性。 語言實現模式編程語言語用學也是很好的資源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM