创建类似Muriel的语言和实现


9

Muriel是一门唯一循环的语言,它是创建并执行木盒。您的工作是使用此属性创建您自己的语言,并使用预先存在的语言来实现它。

我们将定义类似Muriel的语言,如下所示:

  1. 它有一个内置命令,可以用自己的语言执行代码,类似于Muriel的@命令或python的命令exec
  2. 图灵完成了。
  3. 如果删除内置执行命令,则该命令不再是图灵完成的。

Muriel具有类似Muriel的@内置执行命令。蓝精灵也像Muriel一样(其内置执行命令是x)。Python 不像 Muriel那样,因为如果删除,它仍然是Turing完整的exec

您的工作是创建类似于Muriel的编程语言,然后以您选择的语言提供其实现。您的分数就是实施的长度,您要尽量减少该长度。

笔记:

  1. 您的内置执行不需要像Muriel那样完全起作用。取决于您如何处理子程序的终止,错误,作用域等。
  2. 您编写的实现的语言本身不能像Muriel那样。(这是@无效的条目。)它也必须在此帖子之前存在。

一个穆里尔样的语言?
alephalpha

@JerryJeremiah我的编辑内容是否更清楚?
PyRulez

@alephalpha该Wiki说:“不加^,其余程序的大小将始终减小,最终停止。” 如果是这样,那么是的,Underload类似于Muriel。
PyRulez

如果您的目标语言有多个eval命令怎么办?(例如Python execeval)是否要求删除所有它们以失去TCness?
CalculatorFeline

1
@PyRulez我认为这应该是流行竞赛,而不是代码高尔夫球,因为否则实现语言的选择将使其成为变色龙的挑战
Uriel

Answers:


3

Python 3和“ Underload的最小TC子集,但字符更改为2019,反转且0顶部带有”,156个字节

c=input()
n=1
t=c
s=[]
while c:
 *c,i=c
 if n:
  if"6">i:n+=int(i)-1
  if n:t=[i]+t
  else:s+=[t];t=[]
 elif"2"==i:n=1
 elif"2">i:s+=s[-1:]
 else:c+=s.pop()

在线尝试!

页眉中的说明,页脚中的注释代码。


3
RIP 大图
Uriel
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.