我正在嘗試爲處理lambda微積分的語言編寫一個小型編譯器。這是語言的模棱兩可的定義,我發現:我的Lambda微積分語法明確無誤嗎?
E →^v . E | E E | (E) | v
符號^,(,)和v令牌。 ^表示lambda,v表示變量。 形式^ v.E的表達式是一個函數定義,其中v是函數的形式參數,E是它的主體。如果f和g是lambda表達式,那麼lambda表達式fg代表函數f對參數g的應用。
我試圖寫這個語言的明確語法,在假設函數應用程序是關聯的,例如fgh =(fg)h,並且該函數應用程序綁定比。,例如,(^ x ^。ŸXY)^ ZZ =(。^ X(^ŸXY))^ ZZ
這裏是我到目前爲止,但我不知道這是否是正確的:
E -> ^v.E | T
T -> vF | (E) E
F -> v | epsilon
有人可以幫忙嗎?
1)明確的語法不是全部和最終的全部。 – 2013-03-02 04:34:19
2)你爲什麼要用手工來代替使用免費的語法工具,其中許多工具可以在網上免費使用? – 2013-03-02 04:35:12
小心把我指向一個好的?我對此很新。 – 2013-03-02 05:07:35