是否有任何实际用途的深奥语言?

luv*_*ere 18 esoteric-languages

您是否知道任何用于编写任何实用,真实世界程序的深奥语言的例子?是否存在任何模糊的计算机科学领域,其中一种深奥的语言实际上被证明对解决特定问题有用?

Jör*_*tag 63

根据定义,深奥的编程语言没有实际用途.但是,仅仅因为你不能使用它们,并不意味着它们没用.

TL;博士:

例如,当你看一些深奥的编程语言时,你可以大致将它们分成几类:一些是作为一个笑话创建的,一些是为了好玩而创建的,一些是作为图灵的tarpits创建的,但也有一些是为了证明或说明一点.而这些正是出于这个真正有用的:说明一点,也许在一个编程语言类,可能对社会或行业.即使自己没用出于实用的目的,他们使用FUL用于教育目的.

采用非确定性的深奥编程语言.这些是编程语言,对于这些编程语言,某些表达式的评估语义没有确定性地定义,但是例如概率地或基于月亮的相位或类似的东西.如果你看一下这种语言的定义,你会立刻想到:"嗯,这只是愚蠢的." 它是!(例如,Java2k中的Hello World程序几乎是一页代码,甚至不能保证每次都打印"Hello World",大部分时间都是如此.)然而,今天的大多数主流编程语言都有非确定性并发模型.IOW:只要你用Java,C#,Python,Ruby,Perl,甚至Erlang或Clojure开始一个线程,你的程序就像在深奥的Java2k中一样随机.那么,为什么我们认为一个人是愚蠢的并接受另一个正常,即使他们基本上是一样的东西?通过将非决定论推向极端,并以有趣的方式将其打包,esolangs允许我们提出这个问题.

另一个例子是Turing tarpits.Turing tarpit是一种几乎没有特征但仍然是图灵完整的esolang.这样的Turing tarpit可以用来演示两种不同的东西:你可以用它来证明它是什么让某些语言比其他语言更"强大"(在表达力方面).如果你在网上搜索,你会发现人们会问"如果Lisp比Java好得多,你为什么不给我看一些你可以用Lisp写的程序,但我不能用Java编写." 当然,这是愚蠢的:两种语言都是图灵完备的,所以没有这样的程序.然而,通过将Brain与Brainfuck进行对比,您可以证明这不是一个有意义的问题.

而你用Turing tarpits演示的另一件事是你可以通过删除功能来使语言更强大(在这两个词中:计算能力和表达能力).这听起来很明显,但有些人实际上认为微软应该从C#中删除可变状态,它会神奇地变得更强大.

通常,Turing tarpits有助于证明计算能力与编程语言的表达能力之间的区别.

esolang可能有用的其他方式是它们可以作为编程语言研究的灵感来源.想想Unlambda,顾名思义,它是一种基于lambda演算的函数式语言.换句话说:它是一种没有功能的功能语言.

最后但并非最不重要的一点是,esolangs可以迫使你从一个完全不同的角度来看问题(是的,我承认,这主要是一个尴尬的角度,但是,嘿,一些电影导演(例如希区柯克)将他们的整个职业生涯都归功于寻找从尴尬的角度来看,他们会把你的大脑戏弄成一个好的谜题.也就是说,例如,存在的全部原因和Brainfuck的名称.

  • 阅读它 - 享受它 - 伟大的帖子:) (9认同)
  • 根据定义,所有线程调度程序都是非确定性的.他是完全正确的.当然,我们会尽力通过使用互斥锁,锁,关键部分等来解决问题. (5认同)

wef*_*fwe 20

就业保障!!!


Jay*_*kul 15

真实的应用程序,嗯?

游戏" 失落的王国 "在2004年赢得了第一届年度经典2k文本冒险大赛,并且已经由作者的原作者(重新)编写和增强

Befunge中IRC机器人这个文本编辑器怎么样?而且我想如果你喜欢用深奥的语言写作,你可能会认为对C编译器或者对C编译器来说是一个非常有用的...


sho*_*osh 10

如果某种语言有实际用途,就不会被称为深奥.这两个词是相互排斥的.

  • "深奥的编程语言"的定义并非来自于正常使用中"深奥"和"编程语言"的定义,而不是"白宫"的定义与"白色"和"白色"的定义相结合.屋". (12认同)
  • 深奥并不意味着不切实际。从定义“1b. 属于或与被限制人数所知的事物有关” (2认同)

Sen*_*ran 8

理解图灵机,可计算性并具有计算理论所暗示的实际意义.如果你使用像脑****这样的深奥语言,可以收集所有实际的好处.

我相信,还有其他人.


ire*_*ses 5

一些深奥的编程语言类在理论计算机科学中有应用.

Turing tarpits用于说明可计算性理论和停止问题的某些结果.例如见工作Ianov(有一个稍微更容易总结中途下来这篇文章).

图灵机类的基本结果是另一个实际应用.例如,维基百科指出P''是第一个'无GOTO'命令式结构化编程语言,可以证明图灵完备."

二元组合逻辑是分析Kolmogorov复杂性的有用工具.