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