有什么配置语言是图灵完备的吗?

2020-04-17 10:43:30 +08:00
 vevlins

重点是配置语言,类似于 json 、yaml 这种类型。

6390 次点击
所在节点    程序员
37 条回复
aliipay
2020-04-17 10:48:55 +08:00
lua [:doge]
murmur
2020-04-17 10:49:47 +08:00
gradle 算么
runze
2020-04-17 10:52:43 +08:00
jsonnet 、xml(xslt)
或者你可以用图灵完备的语言来当作配置,比如 js 、lua
DGideas
2020-04-17 10:58:00 +08:00
The notion of Turing completeness does not apply to languages such as XML, HTML, JSON, YAML and S-expressions, because they are typically used to represent structured data, not describe computation. These are sometimes referred to as markup languages, or more properly as "container languages" or "data description languages".
DGideas
2020-04-17 10:58:23 +08:00
不过可以考虑一下 Makefile
wangyzj
2020-04-17 11:01:56 +08:00
图灵完备
新知识
gkiwi
2020-04-17 11:05:45 +08:00
求个图灵完备的一句话清晰解释,总感觉印象模糊。
cmdOptionKana
2020-04-17 11:06:47 +08:00
我猜你想要的不是配置语言,而是插件语言,比如用于 vim 的 vimscript, 用于 emacs 的 elisp 等。
cmdOptionKana
2020-04-17 11:08:54 +08:00
一般有这种需求的,lua 是一个很好的选择,因为它容易内嵌,体积小。
Cbdy
2020-04-17 11:17:15 +08:00
groogy
hahaayaoyaoyao
2020-04-17 11:22:01 +08:00
@gkiwi 我的理解是自我无性生殖
fanhed
2020-04-17 11:28:09 +08:00
我觉得楼主的需求还是用一个预处理来解决吧, 预处理生成配置文件, 然后再被读入
ConradG
2020-04-17 11:31:56 +08:00
Json 和 Yaml 就是图灵完备的啊,你把每一项看成一个状态,每个子项看成下一个状态不就行了[:doge]
InkStone
2020-04-17 11:33:37 +08:00
@gkiwi 不那么精确地讲,能模拟 brainfuck 的语言就是图灵完备的。
otakustay
2020-04-17 11:36:58 +08:00
我感觉 CSS 快要图灵完备了呢
DGideas
2020-04-17 11:49:20 +08:00
@gkiwi 我们称某编程语言是图灵完备的,旨在表示它能完成等价于通用图灵机的工作,即考虑以下四点:
(a). 具有能够等价于移动图灵机纸带的能力:比如编程语言提供的重复控制流,如 while 、if ... goto 等。
(b). 具有能够等价于读写图灵机纸带内容的能力:拥有变量机制,能够读写(任意的)变量,拥有能够“引用”其他变量的能力(比如引用或指针)。
(c). 具有模仿有限状态机的能力:能够表示有限个状态以及在这些状态之间的转移和动作等行为。
(d). 具有停机状态:程序应当能在有限步骤后结束运行。

本回答参考了 user3067516 在 Software Engineering Stack Exchange 上的回答: https://softwareengineering.stackexchange.com/a/305248/363321
btnokami
2020-04-17 11:56:33 +08:00
groovy 。。。
krjt
2020-04-17 11:58:09 +08:00
感觉最接近的可能是 Dhall: https://dhall-lang.org/
虽然不是 Turing-complete 但是足够 programmable 。
ljwrer
2020-04-17 11:58:10 +08:00
sass
gaoryrt
2020-04-17 12:25:44 +08:00
然后应该有人来科普一下哥德尔不完备定理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/663342

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX