我對這本教科書很難接受,而且我的教授認爲回答問題對已經知道進入課堂的材料的學生是不公平的(從這個人獲得的反饋是一個數據挖掘過程本身)。無論如何,我的問題圍繞着CFG(正式語言/函數式編程類)的派生。如何選擇在CFG派生中使用哪個規則?
Given a context free grammar that looks like:
S-> a|B
B-> b|C
C-> c
找到最左邊的推導。是簡單的嗎?因爲S-> a是S-> a | B中最左邊的規則。或者我只是斷定推導可以是a,b或c?我真的很困惑要選擇哪個規則,我一直在按照左右順序排列這些問題,以便對每個(最左邊)變量分析的規則進行選擇,但是這個規則沒有遞歸在它,所以我不知道該怎麼做。我非常感謝這方面的任何見解,我已經觀看了視頻並閱讀了這本書,但似乎沒有人會談論這種情況。謝謝。
此外,我們的書:http://cglab.ca/~michiel/TheoryOfComputation/TheoryOfComputation.pdf
查找* what *的最左邊派生。 – rici
「語法的典型最左派生。」我知道如何做的一個例子就像是S-> aSc | b。解決方案是S => aSc => aaScc => aabcc - 然後我可以在LL解析/ PDA中使用aabcc作爲字符串。 – zodian
維基百科對「最左派生」的含義進行了合理解釋:https://en.wikipedia.org/wiki/Context-free_grammar#Derivations_and_syntax_trees請注意,除非某些產品右手邊有多個非終端,在部分推導中將永遠不會有多個非終端,因此所有派生都將是最左邊*和最右邊。 – rici