編譯器設計中的解析技術是什麼?
解析被稱為語法分析。它包含將標記作為原始碼排列成語法階段,編譯器使用這些階段來合成輸出,通常原始碼的語法階段由語法樹定義。有各種型別的解析技術,如下所示:

- 自頂向下解析器
它從根到葉生成語法樹。在自頂向下解析中,解析從開始符號開始,並將其更改為輸入符號。
自頂向下解析器的示例包括預測解析器、遞迴下降解析器。
預測解析器 - 預測解析器也稱為非遞迴預測解析。預測解析器是透過顯式操作啟用記錄棧來實現遞迴下降解析的有效方法。預測解析器具有輸入、棧、解析表和輸出。輸入包括要解析的字串,後跟 $,即右端標記。
遞迴下降解析器 - 一種自頂向下解析器,它執行一組遞迴過程來處理輸入而無需回溯,稱為遞迴下降解析器,解析稱為遞迴下降解析。
- 自底向上解析器
它為給定的輸入字串從葉到根生成語法樹。在語法中,輸入字串將被簡化為起始符號。
自底向上解析器的示例包括移進規約解析器、運算子優先順序解析器和 LR 解析器。
移進規約解析器 - 移進規約解析器是一種自底向上解析器。它使用棧來影響語法符號。解析器繼續將輸入符號更改到棧上,直到棧頂出現一個控制代碼。當棧頂出現一個控制代碼時,它執行規約。
運算子優先順序解析器 - 移進規約解析器可以手動為一小類語法生成。這些語法具有以下屬性:右側沒有 ϵ 或沒有兩個相鄰的非終結符。具有後一種屬性的語法稱為運算子語法。
LR 解析器 - LR 解析器是一種移進規約解析器,它使用確定性有限自動機,透過從下到上讀取棧來識別所有可行字首的集合。它決定是否有控制代碼可用。
右句型的可行字首是指包含控制代碼但控制代碼右側沒有符號的字首。因此,如果生成了一個識別右句型可行字首的有限狀態機,它就可以指導移進規約解析器中的控制代碼選擇。
有三種類型的 LR 解析器,如下所示:
簡單 LR 解析器 (SLR) - 它非常易於實現,但它無法為某些類別的語法生成表。
規範 LR 解析器 (CLR) - 它功能最強大,適用於大量語法。
前瞻 LR 解析器 (LALR) - 它的功能介於 SLR 和 CLR 之間。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP