西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識 → Loglan邏輯綜合可發(fā)音語言

Loglan邏輯綜合可發(fā)音語言

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:本站整理時間:2010/8/23 9:59:54字體大小:A-A+

作者:佚名點擊:48次評論:0次標(biāo)簽: 邏輯 驗證 語法

  • 類型:其它游戲大。677KB語言:英文 評分:5.0
  • 標(biāo)簽:
立即下載
3 頁 下面是處理好的正則文法
下面是處理好的正則文法:

A → a | e | i | o | u
MOD → ga | ge | gi | go | gu
BA → ba | be | bi | bo | bu
DA → da | de | di | do | du
LA → la | le | li | lo | lu
NAM → {all names}
PREDA → {all predicates} | PREDA PREDA
<sentence> → <statement> | <predclaim>
<predclaim> → <predname> BA <preds> | DA <preds>
<preds> → <predstring>
<predname> → LA <predstring> | NAM
<predstring> → PREDA | <predstring> A <predstring>
<predverb> → <predname> <verbpred>
<statement> → <predverb> <predname> | <predverb>
<verbpred> → MOD <predstring>

根據(jù)這個文法就可以快速的判斷語句的正確性了。先將輸入的所有字符串轉(zhuǎn)換為單詞(包括謂詞和小單詞)或名稱,可根據(jù)最后一個字母是否元音來判斷是單詞還是名稱,如果是名稱就直接轉(zhuǎn)為NAM,如果是單詞則需按上面的文法查表(有不用查表的小技巧,詳見代碼)。整個句子都轉(zhuǎn)換完成后,就要按照順序?qū)Ψ栠M行推導(dǎo),過程如下:

PREDA → PREDA PREDA
<predstring> → <predstring> PREDA
<predstring> → PREDA
<predname> → NAM
<predname> → LA <predstring>
<verbpred> → MOD <predstring>
<preds> → <predstring> A <predstring>
<preds> → <predstring>
<predclaim> → <predname> BA <preds> | DA <preds>
<predverb> → <predname> <verbpred>
<statement> → <predverb> <predname> | <predverb>
<predclaim> → <sentence>
<statement> → <sentence>

如果最后能推得sentence,說明句法是正確的,否則就是錯誤的。推導(dǎo)的方法其實就是對動態(tài)數(shù)組進行插入和刪除的操作:如果一個符號可以直接推導(dǎo)出另一個符號,則直接改寫為推導(dǎo)出的符號;如果一個符號和前綴一起能推導(dǎo)出另一個符號,就將前綴刪除,當(dāng)前符號改寫為推導(dǎo)出的符號;后綴的情況還有前后綴一起推導(dǎo)的情況也是一樣。具體算法詳見代碼的注釋,非常詳細。

程序中狀態(tài)轉(zhuǎn)換表的順序與上述推導(dǎo)順序相同(某些次序可以顛導(dǎo),不影響結(jié)果的正確性,可能程序中略有不同)。符號枚舉類型中的符號名為符號的縮寫,對應(yīng)如下:

UN: 未知/出錯
PS: predstring
P: preds
PN: predname
SE: sentence
VP: verbpred
PV: predverb
PC: predclaim
ST: statement

其它符號名與題目給出的相同。

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)