Questions tagged «language-design»

对于要求参与者设计一种语言或部分语言的挑战。

10
编写未知完整性的编程语言
设计语言时,确定一种语言是否图灵完备非常重要。对于许多深奥的编程语言来说,这也是一项非常艰巨的任务,但让它提高一个等级。让我们编写一些很难证明图灵完备的编程语言,以至于即使世界上最好的数学家也无法以任何一种方式证明它们。您的任务是设计和实现一种语言,其图灵完备性取决于数学中尚未解决的主要问题。 规则 您选择的问题必须至少在10年前提出,并且在发布此问题时必须解决。它可以是任何可证明的数学猜想,而不仅仅是Wikipedia页面上列出的猜想之一。 您必须提供语言规范以及现有语言的实现。 当且仅当猜想成立时,编程语言必须是图灵完整的。(或仅当猜想不成立时) 您必须提供一个证明,以证明根据所选的推测图灵是完整的还是不完整的。在运行解释器或编译程序时,您可能会假设访问了无限制的内存。 由于我们关注图灵完整性,因此不需要I / O,但是目标是制作最有趣的语言,以便它可能会有所帮助。 这是一场人气竞赛,因此赢得最多选票的答案将会赢得。 目标标准 一个好的答案应该做什么?这是投票时要寻找的一些东西,但在技术上不是必需的 它不应该是现有语言的简单补丁。更改现有语言以符合规范是可以的,但是不建议在条件上打补丁,因为这很无聊。正如ais523在第九字节中所说: 我更喜欢使我的esolangs的头更牢固地融入到语言中 作为独立的深奥语言应该很有趣。

15
创建仅看起来无法使用的编程语言
强盗的挑战线程在这里。 警察的挑战:设计一种似乎无法用于编程的编程语言,但可以通过某种非显而易见的机制来接受计算(或至少完成任务)。 您应该设计一种简单的编程语言,该语言从输入文件中读取代码,然后执行某些操作。您必须准备一个解决方案程序,当在解释器中运行该解决方案程序时,该程序可在输入中找到第3大数字。您需要使劫匪尽可能地难以找到解决方案。请注意,强盗可以发布完成任务的任何解决方案,而不仅仅是您想到的解决方案。 这是一次人气竞赛。警察的目标是在发布口译员后的8天幸存下来而不会被破解,从而获得尽可能多的选票。为此,以下做法应有所帮助: 准确解释您语言的语义 编写可读代码 强烈建议您不要采用以下策略: 使用加密,哈希或其他加密方法。如果您看到使用RSA加密的语言,或者除非SHA-3哈希值等于0x1936206392306,否则拒绝执行程序,请不要犹豫。 强盗的挑战:编写一个程序,当在警察的解释器中运行时,找到输入中的第三大整数。 这是相对简单的。为了破解警察的答案,您必须创建一个程序,该程序在其解释器中运行时才能完成任务。当您破解答案时,请在链接到您的帖子的警察的答案上发表一条评论,说“破解”。破解最多警察的人将赢得强盗的支持。 I / O规则 口译员应在程序的命令行中使用文件名,并在运行程序时使用标准输入和输出。 输入将以一元形式给出,且仅包含字符0和1(ASCII中的48和49)。数字N编码为N, 1s后跟a 0。0文件结束前还有一个附加内容。示例:对于序列(3,3,1,14),输入为11101110101111111111111100。 确保输入至少3个数字。所有数字均为正整数。 输出将由1程序暂停前打印的s 数来判断。其他字符将被忽略。 在以下示例中,第一行是十进制格式的输入;第二行是十进制格式的输入。第二个是实际程序输入;第三是示例输出。 1, 1, 3 101011100 1 15, 18, 7, 2, 15, 12, 3, 1, 7, 17, 2, 13, 6, 8, 17, 7, 15, 11, 17, 2 111111111111111011111111111111111101111111011011111111111111101111111111110111010111111101111111111111111101101111111111111011111101111111101111111111111111101111111011111111111111101111111111101111111111111111101100 111111,ir23j11111111111u 247, 367, …

6
语言设计:二维模式匹配
这是每两周挑战#6。主题:语言设计 这个挑战有一个聊天室。如果您想讨论想法,请加入我们! 现在换个完全不同的东西... 这两个星期,我们想尝试一种新型的挑战。在这个挑战中,您将设计一种语言!模式匹配是编程中一个非常普遍的问题,并且通常对于代码高尔夫非常有用。例如,可以使用正则表达式来检测文本行中的模式。但是,没有任何成熟的方法来描述和检测二维模式。 挑战 您将要设计一种模式匹配语言,该语言允许在文本块中描述二维模式。该运作模式你的语言将类似于正则表达式(虽然你的语言并不一定有什么共同点与正则表达式,否则): 作为输入,您将收到一个矩形文本块。您可以假设文本仅由可打印的ASCII字符(0x20至0x7E)以及换行符(0x0A)组成,以分隔网格的行。 如果根据模式说明将匹配项找到为该文本块的任何子集,则应返回或打印该匹配项。如果匹配项可以是非矩形的,则应将其填充到具有某些保留字符的矩形区域。如果存在多个有效的匹配项,则可以决定如何选择返回的匹配项(最大,最小,第一个等)。 对于某些应用程序,如果您的实现可以返回匹配项的位置而不是匹配项本身,则可能会很有用,但这不是必需的。 至少,您的语言应该能够将模式匹配为其输入的连续矩形子区域。 您的答案应包含: 一个描述语言。 一个有效的实现。它可以是程序,也可以是您选择的语言的一组功能/类。 您应该通过显示语言来解决下面提供的示例来演示您的语言。您的语言不一定必须能够匹配所有语言,但是您必须至少能够匹配其中8种语言。如果您的语言可以做一些我们没想到的花哨的事情,请随时将其包括在内。 如果您的答案是建立在现有想法的基础上的,那很好,但是请在适当的时候给予感谢。 扩展名 上面描述了有效提交必须满足的最低要求。但是,多种概括可以使这种模式匹配语言更加有用,包括但不限于: 能够将样式锚定到一个或多个边缘,以便可以检查整个输入区域是否具有特定样式。 产生所有匹配而不是一个。您可以选择重叠匹配的语义。 以非矩形文字为输入。 允许模式指定非矩形匹配。在这种情况下,应将输出填充到带有某些保留字符的矩形中。 允许图案指定带孔的匹配。 允许非连续匹配,例如两个字符以一定的偏移量出现。 轻松指定旋转和反射。 可选地,将输入循环地视为圆柱或圆环,以使相对的边缘被视为相邻。 计分 这项挑战的主要目标是产生一种有效的2D模式匹配语言,该语言将来可能会使用。这样,诸如“用于解决示例的最短组合长度”之类的评分系统将导致以牺牲通用性为代价来对某些功能进行硬编码。因此,我们认为最好将这项挑战作为人气竞赛。净投票最多的提交者获胜。尽管我们不能强迫人们投票,但以下是一些有关选民理想选择的准则: 表现力。语言可以解决各种问题,甚至超出本问题中提供的示例吗?它是否支持任何建议的扩展? 可读性。该符号的直观性(至少对于了解基本语法的人而言)? 高尔夫度。这仍然是CodeGolf.SE。对于本站点而言,拥有一种只需很少代码即可描述模式的匹配语言当然会很好。 示例问题 以下堆栈片段显示了16种示例问题,二维模式匹配语言可以解决这些问题。每个示例都包含一个简短的问题描述,然后通常后面跟一个可以找到匹配项的输入示例和一个找不到匹配项的示例(如果适用)。 如上所述,您的语言仅需要能够解决其中的8个问题。最重要的是可选的,但是当然应该增加您获得的投票数。 显示代码段 body{font-family:'Helvetica Neue',Arial,sans-serif;color:#444;font-size:13px;width:500px;line-height:1.3}h3{font-size:16px!important;line-height:1.2em!important;margin-bottom:1.2em}code{white-space:pre-wrap;padding:1px 5px;font-family:'Droid Sans Mono',Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;color:#222;background:#eee}p code{padding:1px 5px}pre{overflow:auto;width:auto;width:480px !ie7;max-height:600px;font-family:'Droid …

3
设计一台指令集计算机!
注意:我愿意悬赏任何我认为有趣的答案。 您的挑战是设计一台图灵完整的 指令集计算机(OISC): OISC是一种仅使用一条指令的抽象机-无需使用机器语言操作码。通过对单个指令的明智选择和给定的无限资源,OISC可以像具有多个指令的传统计算机一样,成为通用计算机。 这是构成图灵完整OISC的单个命令的一些示例。 规则: 您必须提供解释或证明 您必须为您的语言提供翻译。该解释器应仅受内存/时间限制(例如,必须没有用户施加的限制)。如果您没有为您的语言提供口译员(出于懒惰以外的其他原因),则必须证明可以编写该语言。口译员必须是可能的。 您必须证明其图灵完备性 您必须提供正式证明,证明您的语言是图灵完备的。一种简单的方法是证明它可以解释或具有与另一种图灵完备的语言相同的行为。要解释的最基本的语言是Brainf ** k。 例如,具有与Brainf ** k相同的命令(并且同样没有用户施加的内存限制)的普通语言是图灵完备的,因为可以在Brainf ** k中实现的任何内容都可以用该语言实现。 。 这是非常易于实现的图灵完整语言的列表。 其他OISC要求 该OISC应该只有一条指令-不能有多条指令,其中一条使图灵完成。 您的OISC可以使用您喜欢的任何语法。您应该在答案中定义什么是指令,什么是数据以及什么是无操作(例如,空格)。有创造力! 参数不仅需要是整数。例如,///是图灵完备的OISC的一个漂亮示例。 如何以及是否进行输入和输出取决于您自己。大多数OISC通过特定的内存位置实现I / O,但可能还有其他方法可以实现,因此建议您找到一个。 一个有效的答案必须在您的OISC中提供一些示例代码,方法是将其包含在帖子中,或者链接到使用该语言解决的简单挑战。 表决 选民,请记住不要反对无聊的意见。例子: Lenguage -equivalents 现有OISC的实现(答案,请创建您自己的!) “ OISC”,其中第一个参数指定要调用的命令(示例) 但是,您应该推荐有趣的创意作品,例如: 基于数学方程式的OISC 基于神经网络的图灵完备ZISC 一个OISC,其中输出I / O以不同于某些内存位置的其他方式发生 获奖 与人气竞赛一样,得票最多的答案将赢得胜利!祝好运!

3
和我一起打高尔夫
许多PPCG用户在聊天和Sandbox中都帮助创建了这一挑战,特别是Martin Ender,AdmBorkBork,Emigna和user202729 我们的社区发现有必要创建一组专门为高尔夫设计的语言,即我们所说的“高尔夫语言”。这样的语言已经从曾经辉煌的现在笨拙的GolfScript演变为光滑的简洁语言,例如Jelly和Husk。正如我们所看到的,对于一系列任务,这些语言正越来越短。因此,作为围绕高尔夫语言的显而易见的专家,我们应该一起设计一种语言,以击败其他敢于竞争的语言。介绍号角! 喇叭:从缩写BuGoL:卜 ILT 去 lfing 大号 anguage。 这项挑战将如何运作 如果您在介绍中没有得到我所提到的内容,那么这个挑战就是答案链挑战,我们每个人都为一种新型高尔夫语言的口译员提供一些帮助,从而提高了每个答案在PPCG上的竞争能力。 我将发布第一个答案,该答案由语言规范/解释器的基础组成,所有其他答案将继续。新提交的内容将提供以下内容: 语言规范的变更 最新的口译员,准确满足变更中的要求 语言的更新分数(稍后会详细介绍) 您可以通过以下三种方式之一更改规格: 您可以添加一个命令 您可以添加两个新命令 您可以编辑一个现有命令的行为 关于新解释器,您必须使用以Python编写的最新版本。它不必打高尔夫球。每个先前添加的命令必须可以使用最新的解释器以及最新的命令(您添加的命令)进行测试。更新解释器时,您也不得在任何时候使用冒犯性语言,例如注释或字符串文字等。 添加的命令可以执行您希望执行的任何操作。唯一的要求是: 它不会产生令人反感的结果 与另一个命令不同 它不会阻止示例挑战之一的完成 除了这些,它可以根据您的需要特定或通用。也可以是您想要的任何字符。如果不确定添加的内容是否构成“新命令”,请随时在评论中提问。 语言的分数 您可能已经注意到,必须在所有新提交的内容中包括该语言的分数。它的分数是阻止该挑战永远持续的原因,其定义如下: 当前分数是语言完成以下20个任务所需的字节数之和 对于每个任务,标准I / O规则都适用,标准漏洞也是如此。 20个任务: “你好,世界!” –输出字符串Hello, World! 1,2,Fizz,4,Buzz –在单独的行上输出1到100(含)之间的每个整数,其中3的倍数被替换Fizz,5的倍数被替换Buzz,两者的倍数被替换FizzBuzz 在源代码中没有任何数字的情况下生成数字2014 –在不使用源代码中任何字符的情况下输出数字20140123456789,而无需访问外部变量或随机种子 混淆后的Hello World -输出字符串Hello, World!,而无需使用任何在至少以下两个组的字符:hlwd,eor01和27(不区分大小写) 用您喜欢的编程语言唱生日快乐 –用您选择的语言输出以下内容: Happy Birthday to You Happy …

30
聪明人的海市age楼
从前,我在阅读有关Quora的问题/答案 真的有没有计算机科学学位的程序员无法通过FizzBu​​zz测试 此代码是显而易见的答案 for i in range(1, 100): if i % 3 == 0 and i % 5 == 0: print "FizzBuzz" elif i % 3 == 0: print "Fizz" elif i % 5 == 0: print "Buzz" else: print i 当然,FizzBu​​zz已经被打死了,但这并不是这个问题的实质。您会在评论中看到有人提到该答案很不错,因为很容易添加额外条件,例如将“ Jazz”打印为4的倍数。(我不同意。扩展此方案需要O(2 ** n )代码行。) 您的挑战是编写由同行判断的最漂亮的FizzJazzBuzz版本。 选民需要考虑的一些事项: 干 除法/模运算的效率 …
29 popularity-contest  code-challenge  word  popularity-contest  string  grid  language-design  code-golf  source-layout  math  fastest-algorithm  assembly  code-golf  json  code-golf  arithmetic  array-manipulation  code-golf  ascii-art  code-golf  crossword  code-golf  string  restricted-complexity  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  decision-problem  balanced-string  syntax  code-golf  grid  puzzle-solver  hexagonal-grid  code-golf  math  number  sequence  code-golf  string  decision-problem  code-golf  cryptography  king-of-the-hill  code-challenge  fastest-code  code-golf  number  code-golf  code-golf  string  code-golf  cryptography  king-of-the-hill  java  code-golf  number-theory  base-conversion  code-golf  code-golf  array-manipulation  code-golf  array-manipulation  sorting  code-challenge  restricted-source  quine  code-golf  tips  python  king-of-the-hill  code-golf  source-layout  fractal  code-golf  tips  game  king-of-the-hill  path-finding  grid  code-golf  kolmogorov-complexity  natural-language  code-golf  tips  python  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  number  combinatorics  random  integer-partitions  code-golf  string  code-golf  vim  comment  code-golf  combinatorics  counting  code-challenge  rosetta-stone  code-golf  combinatorics  sequence  subsequence  code-golf  code-challenge  restricted-source  primes  printable-ascii  popularity-contest  graphical-output  image-processing 

1
不受限制的语言
我在此站点上最喜欢的挑战之一是受限源挑战。这些挑战给计算机带来了难以处理的限制,潜在答案的来源必须通过。我非常喜欢这些挑战,一段时间以来,我一直在研究一种旨在赢得这些挑战的高尔夫语言。现在,我想向您提出挑战。您的任务是设计一种语言来解决各种受限的源任务。您将需要设计和实现一种语言,到那时,更改和新添加的内容将不具竞争性,并且所有提交的内容将在受限源挑战的严峻挑战中齐头并进。 计分 在发布挑战之前,我将提供一个要解决的简单挑战列表和一个要遵循的源限制列表。对于挑战和来源限制的每次匹配,您的语言都可以赚取0到2分。(将有10个挑战和10个限制导致总共100种组合)A语言得分 如果可以在150字节以内的限制下完成任务,则为1分 如果该解决方案是所有语言竞赛中最短的解决方案,则为2分(如果出现并列,则两种语言均获得2分) 如果他们不能在少于150个字节的限制下创建完成该任务的程序,则为0分。 您的分数将是每次可能的比赛中赢得的所有积分的总和。目标是获得最高分。其他人可能会帮助您针对每种挑战寻找解决方案并提高得分。 发布时,我将显示每个列表的4个项目,第二个答案一周后,我将显示另外8个项目。在第一周之前揭示两部分内容的任何匹配项中,您只会获得1分(最短提交数不计)。这样一来,您就可以了解语言在处理过程中的堆叠程度,但是您不能仅仅为了应对所有挑战和限制而设计语言。 我将在问题中包含预期类别的哈希值,以便您可以确定在本周内不会为了有利于任何一方而更改它们。另外,在本周结束之前,我不会告诉任何人隐藏的参数,也不要自己参加挑战。 预先存在的语言 这项挑战对所有先前存在的语言都是开放的,但是,如果您不是该语言的作者,请将您的答案作为社区Wiki,以便我们社区的其他成员可以直接为得分做出贡献。命令行标志不需要遵守任何限制,但是每个程序都应使用相同的命令行参数运行(即,应选择一个并坚持使用)。这些不会增加您的字节数。 挑战与限制 不管您使用的是什么代码页,对二进制文件的ASCII编码都实施了限制。其中一些链接到网站上的现有问题,他们从中继承挑战的io要求和限制的来源限制。您可以忽略任何“禁止内置”或在任何相关挑战上覆盖现有的元共识。 提醒一下:不要试图统治律师;我知道这是一场比赛,但是因为本质上有100种不同的子挑战,所以我无法保证所有挑战都是完全没有问题的。只是尝试去玩。 挑战性 排序整数列表 打印 Hello, world! 确定括号是否平衡 测试原始性 限制条件 仅奇数字节(每8位必须为奇数) 双字节 字节按升序排列(每个字节大于最后一个字节) 源代码是回文 其余条件的sha512哈希为: 4de5eca33c6270798606cf1412820c4ce112d8b927ef02877f36795b2b15ffacca51ea598fa89b8d6bc9f4cde53810e0e7ade30e536e52e28f40a6a13841dfc5 -

3
当生活给你柠檬时,做柠檬水
挑战 您将得到一个输入字符串,任何地方的话"Lemon"是发现它应转换到"Lemonade" ,但是在a,d和e在句子中必须借用了别的地方。 例 输入示例: 我小时候发现一个柠檬 示例输出: 我小时候就喝柠檬水 该柠檬水是由从原来的偷下标字母创建 我foun d柠檬水WH é ñ我是一个孩子 这只是一个可能的输出示例,“ e”,“ d”和“ a”可以从任何地方获取(当然单词除外lemon) 评论 •如果,或s 不足e,则必须输出给定字母可进行的操作。例如,输入将输出adbdblemonbblemond • lemon文本可能并不总是独立的(两边都有空格)。例如,您可能lemons在输入中的某处有单词,而输出应为lemonades •输入可以包含任意数量的lemons,甚至0 lemons(在这种情况下,输出将与输入相同) •您可以用大写和小写字母来制作您的柠檬水,例如leMon可以变成leMonade,而ade借用可以是任意大小写(因此也可以变成leMonADe)。您借用的信件的大小写必须保持与借用时相同。(示例输入->输出,he hAD lemOn-> h h lemOnADe) •不必是一个完整的程序,仅一个功能就可以。 •您可以假设输入仅是CP437字符集 高尔夫代码 这是代码高尔夫球,因此赢得最少的字节数! 伪测试案例 *注意:对于任何给定的输入,可能会有多个可能的输出,因此您的程序可能无法完全按照这些测试用例的方式输出,这仅仅是为了使人们可以理解逻辑: 输入:EpaD leMons 输出:p LeMonaDEs 输入:hello world 输出:hello world 输入:柠檬柠檬 输出:柠檬柠檬 *(本e,a,d字母不应该从另一个“柠檬”拍摄) 输入:HE HAD柠檬水 输出:HH …
21 code-golf  string  code-golf  parsing  internet  stack-exchange-api  code-challenge  kolmogorov-complexity  restricted-source  brain-flak  python  logic  pyth  code-golf  string  search  optimized-output  code-golf  tips  language-design  golfing-language  code-golf  tips  language-design  code-golf  number  sorting  pi  code-golf  math  number  code-golf  string  balanced-string  classification  brain-flak  code-golf  math  number-theory  decision-problem  code-golf  tips  code-golf  number  sequence  code-golf  balanced-string  brain-flak  code-golf  math  sequence  arithmetic  fibonacci  code-golf  math  parsing  code-golf  string  keyboard  code-golf  code-golf  string  source-layout  whitespace  code-golf  math  rational-numbers  code-golf  string  code-golf  string  code-golf  math  sequence  code-golf  number  floating-point  code-golf  string  decision-problem  subsequence  code-golf  string  kolmogorov-complexity  code-golf  string  permutations  balanced-string  brain-flak  code-golf  string  math  number  code-golf  string  primes  cipher  code-golf  string  ascii-art  chemistry  code-golf  ascii-art  grid  counting  code-golf  math  arithmetic  integer  code-golf  number  kolmogorov-complexity  code-golf  ascii-art  kolmogorov-complexity  sequence  metagolf  brain-flak  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  whitespace 

19
使三角计划有效
三角性是Xcoder 先生开发的一种新的esolang ,其代码结构必须遵循非常特定的模式: 对于第nth行代码,其上必须完全2n-1有程序的字符。这将导致三角形/金字塔形,第一行仅包含一个字符,其余行以2为增量增加。 每行.的左侧和右侧都必须用s 填充,以使字符以其行为中心,并且所有行都应填充为相同的长度。如果l定义为程序中的行数,则程序中的每一行的长度必须为2 * l - 1 例如,左侧的程序有效,而右侧的程序无效: Valid | Invalid | ...A... | ABCDE ..BCD.. | FGH .EFGHI. | IJKLMN JKLMNOP | OPQRS 当布置在有效结构中时,该名称变得显而易见。 任务 您的任务是将单个行字符串作为代表Triangularity代码的输入,并将其输出转换为有效代码,如上所述。 I / O规格: 输入将仅包含范围内的字符 0x20 - 0x7e 输入的长度始终是一个平方数,因此可以很好地填充。 您必须将点用于输出填充,而不要使用其他东西。 您可以通过任何可接受的方法输入和输出。这是一个代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 input ---- output g ---- g PcSa ---- .P. …
19 code-golf  string  code-golf  combinatorics  code-golf  math  number  code-golf  matrix  code-golf  string  decision-problem  code-golf  internet  code-golf  number  number-theory  integer  expression-building  code-challenge  primes  cops-and-robbers  obfuscation  code-challenge  primes  cops-and-robbers  obfuscation  code-golf  string  balanced-string  code-golf  quine  code-generation  code-golf  matrix  code-golf  tips  c#  code-golf  ascii-art  code-golf  ascii-art  source-layout  code-golf  quine  source-layout  popularity-contest  language-design  code-golf  array-manipulation  subsequence  code-golf  matrix  math  code-challenge  game  graph-theory  atomic-code-golf  code-golf  number  integer  polynomials  equation  code-golf  array-manipulation  sorting 

5
高尔夫语言存储技巧
我正在写一种高尔夫球语言。 您是否建议使用代码高尔夫球语言存储变量,堆栈,磁带,寄存器等?隐式输入呢? 粗略定义: 甲变量是简单地将一个值可以被分配到,后来由该名称检索的名(通常一个字符长在打高尔夫球的语言)。 甲寄存器就像是一个可变的,但它有自己(通常是单字节),用于设置/获取的值的命令。 甲堆栈是值,其中最近添加的值(“顶部”的值)是被改性的那些的可变长度数组/列表。 甲队列是像一个堆栈,除“上的值底部 ”是正在修改的那些。 甲带是其中每个值具有索引值的静态数组/列表。堆栈和磁带之间的主要区别在于,磁带上的值是就地修改的。 我希望知道每种方案在不同情况下以及总体上的优缺点。请避免发表意见,并带有推理的备份声明。

1
逃离柏油(警察)
这是一个 警察和强盗 围绕定义语言并证明他们已经完成图灵这一挑战。 这是警察的话题。强盗的线索在这里。 警察 作为一名警察,您将准备两件事: 编程语言或其他计算系统的正式规范。(计算系统定义如下。) 根据以下较为严格的定义,证明您的系统是Turing完整的。 您将发布您的语言说明,强盗将通过证明其图灵完整性来尝试“破解”它。如果您提交的内容在一周内没有被破解,则可以将其标记为安全并发布证明。(如果有人发现您的证明有缺陷,则您的答案可能无效,除非您可以修复它。) 这是一个 人气竞赛,因此获胜者将是投票数最多且未破解或无效的答案。挑战是无限的-我不会接受答案。 为了应对这一挑战,将计算系统定义为四件事: 一个“程序集” P。这将是一个无穷无穷的集合,例如字符串,整数,二叉树,网格上的像素配置等。(但请参见下面的技术限制。) “输入集” I,也将是可数的无限集,并且不必与P(虽然可以)相同。 “输出组” O,其类似地将是一个可数无限组,并且可以是或可以不是相同P或I 用于产生输出一个确定性的,机械程序o从程序p和输入i,其中p,i和o是的成员P,I和O分别。该过程应原则上可以在图灵机或其他抽象计算模型上实现。当然,该程序可能无法停止,具体取决于程序及其输入。 该套P,I并且O必须是这样的,你可以表达他们作为一个可计算的方式串。(对于大多数明智的选择,这无关紧要;存在此规则是为了防止您选择奇怪的集合,例如不停止的图灵机集合。) 图灵完整性将定义如下: 对于任何可计算部分功能f从I到O,存在一个程序p中P,使得给定的p和输入i,输出的是f(i)如果f(i)有一个值。(否则程序不会停止。) 上述定义中的“可计算”一词是指“可以使用图灵机来计算”。 请注意,规则110和按位循环标记都不是图灵完成的,因为它们没有所需的输入输出结构。只要我们定义I并且O是教会数字,Lambda演算就已经完成了Turing 。(这不是图灵完整的,如果我们采取I和O将在一般lambda表达式。) 请注意,您不必提供某种语言的实现,但是如果愿意,欢迎在您的答案中加入一种语言。但是,您不应该以任何方式依赖实现来定义语言-规范本身应该完整,并且如果规范和实现之间存在矛盾,则应将其视为实现中的错误。

1
创建类似Muriel的语言和实现
Muriel是一门唯一循环的语言,它是创建并执行木盒。您的工作是使用此属性创建您自己的语言,并使用预先存在的语言来实现它。 我们将定义类似Muriel的语言,如下所示: 它有一个内置命令,可以用自己的语言执行代码,类似于Muriel的@命令或python的命令exec。 图灵完成了。 如果删除内置执行命令,则该命令不再是图灵完成的。 Muriel具有类似Muriel的@内置执行命令。蓝精灵也像Muriel一样(其内置执行命令是x)。Python 不像 Muriel那样,因为如果删除,它仍然是Turing完整的exec。 您的工作是创建类似于Muriel的编程语言,然后以您选择的语言提供其实现。您的分数就是实施的长度,您要尽量减少该长度。 笔记: 您的内置执行不需要像Muriel那样完全起作用。取决于您如何处理子程序的终止,错误,作用域等。 您编写的实现的语言本身不能像Muriel那样。(这是@无效的条目。)它也必须在此帖子之前存在。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.