3
A
回答
4
有限狀態機是命令式編程的一個例子嗎?
正則表達式和邏輯程序肯定有一個共同點:它們都有一個自然的聲明閱讀,你可以很容易地提出和回答:
被描述什麼?
使用充分表達的邏輯編程語言(和Prolog肯定屬於該類別),很容易描述給定正則表達式的含義。
但是,您將需要以獲得圖靈完備的編程語言,甚至一些超越只是普通的語言一些嚴重的擴展正則表達式。
+2
謝謝!這非常有幫助。 – user10628
2
正則表達式是一種特定於域的語言。它不指定匹配的是如何發生的,只是那會發生,因此它是在這個意義上聲明 - 有兩個相互競爭來實現正則表達式引擎,NFA和DFA的方式。事實上,其中之一就是「非確定性有限自動機」,這是聲明式編程的一個方面,特別是Prolog。在這兩種情況下,它確實只與回溯有關,但正則表達式的領域非常有限,幾乎沒有任何有意義的對應關係。
雖然你可以進入有關有限自動機語義,最終沒人用正則表達式來表達對狀態一般的計算,他們只嚴格把它們作爲其他語言中的字符串匹配一個DSL。所以它是「這是一個通用查詢」的意義上的聲明,大多數系統會做一些明智的事情。
序言顯然是一個很多比正則表達式更強大,但我可以看到你的思路,我認爲這是一個比喻還有,即使是不完美的。
相關問題
- 1. 單個正則表達式中的布爾邏輯 - 可能嗎?
- 2. 正則表達式的邏輯括號...?
- 3. 布爾邏輯的正則表達式
- 4. 邏輯標準的正則表達式
- 5. 正則表達式的邏輯和或
- 6. 邏輯與在Java正則表達式
- 7. 正則表達式findall邏輯或
- 8. 邏輯或正則表達式中
- 9. 邏輯或組正則表達式
- 10. 邏輯幫助 - java正則表達式
- 11. 邏輯或正則表達式
- 12. 邏輯或電子郵件的正則表達式
- 13. 您能爲我舉個正則表達式的例子嗎?
- 14. 包含一些邏輯的正則表達式
- 15. 如何在python中表達邏輯或正則表達式?
- 16. git的加正則表達式例子
- 17. C中的正則表達式:例子?
- 18. 邏輯OR(正則表達式)問題不是貪婪
- 19. 擊:編輯使用正則表達式
- 20. 使用正則表達式編輯
- 21. 一個簡單的例子的正則表達式
- 22. 這是一個正常的Java正則表達式行爲嗎?
- 23. grep與兩個字符串(邏輯與在正則表達式)
- 24. 將2個正則表達式與邏輯'和'
- 25. 我可以「結合」2個正則表達式與邏輯或?
- 26. 「結合」2個正則表達式與邏輯或?
- 27. 如何找到一個正則表達式模式是另一個正則表達式的子集?
- 28. 正則表達式從一個句子
- 29. 解析正則表達式模糊邏輯規則
- 30. 正則表達式中的一個表達式來選擇子
絕對:不! – CapelliC
爲什麼'prolog'標籤? – nouney
誰需要正則表達式?我們有[tag:dcg] -formalism,它涵蓋了上下文無關的語言和超越! – false