Erlang是一种约束逻辑编程语言吗?

Chi*_*ron 17 erlang prolog constraint-programming

由于Erlang基于Prolog,这是否意味着Erlang是一种约束逻辑语言?
Erlang是否有Prolog的构建块:事实,规则和查询

Jus*_*ehy 26

没有.

Erlang的语法与Prolog的语法非常相似,但语义却截然不同.Erlang的早期版本是使用Prolog编写的,但今天的Erlang不再有意义地被称为"基于Prolog".

Erlang不包括经常用于逻辑编程的Prolog的回溯或其他功能.您当然可以在其他语言上实现Prolog,而Erlang比其他语言更容易选择.这可以在Robert Virding的"Erlog​​"项目中看到:

https://github.com/rvirding/erlog


小智 7

是.

Erlang的第一个版本不是用Prolog编写的,它是用一种专用逻辑编程语言编写的.这些语言降低了Prolog的回溯,因此名称"承诺选择"意味着一旦做出选择,就不可能回溯并尝试另一种.这样做是为了简化逻辑编程的形式并发.查看它的另一种方法是并发进程将约束应用于变量,但是作为逻辑变量并因此不可重新分配这些是连续约束而不是值的变化.约束可以为变量分配一个部分值,包含稍后将分配的另一个变量.这是Erlang的基础模型.约束逻辑编程倾向于用于版本,其中约束还可以包括关于具有预期数值的变量的可能范围的数学陈述.

Erlang的语法显示了它的逻辑编程遗产,但重要的是理解它通过提交的选择逻辑编程语言选择了这一点,这些编程语言是从Prolog中提取的,而不是直接来自Prolog.虽然在20世纪80年代设计了几种忠诚的选择逻辑编程语言,但他们无法摆脱Prolog的阴影,并被与日本第五代失败计划的失败联系在一起,也被竞争的开发团队所挫败.微小差异因此没有建立标准.

Erlang的开发人员引入了一种语法糖,它为代码提供了更多功能外观,并做出了营销决策,将其推广为功能而非逻辑编程语言,这使得它不会被第五代后期逻辑编程解雇所拖累.