SSL:愚蠢的堆栈语言

2021-03-13 20:14:33

跳转到导航跳转到搜索愚蠢的傻瓜(或SSL)是由Lebster创建的深奥编程语言,其中所有操作都在堆栈上进行 从第1项中减去堆栈上的第二项,然后将结果推向堆栈 从用户作为一个字符输入,将该字符ASCII代码推入堆栈中 如果堆栈上的第1项等于第二项,请将1按到堆栈,否则按下0 第二项划分堆栈上的第1项,将结果推入堆栈上 如果堆栈上的第一个项目为0,则跳转到相应的' U' 在程序中,否则没有任何东西 如果堆栈上的第1项不是0,则跳回对应的' t' 在程序中,否则没有任何东西

H#SET XQ#复制x(z)d#递减z(y)t#开头循环m#乘以y x l #wap结果和y d#diglemend yu#结束loopb #pop剩余0x#play(x!)

#注意:在tio.run上效果最佳。当运行通过命令行时,它运行如此速度,您可以' t真正看到任何数字.Axiqvvdflxlwwltgavvvfbxu

我创建了一个脚本,可以将任何字符串转换为将打印该字符串的SSL程序。你可以在tio.run上找到它

您可以使用该网站在线运行SSL代码,但由于在JavaScript中编程,它比Tio.Run在JavaScript中编程,而且它本身比保存Python解释器更慢。

导入Sys,Ref = Open(Sys.argv [1]," R"); prg = f.read(); f.ccose(); stack = [] prg =(re.compile(& #39;#(?=。*)。*',re.ignorecase).sub("" prg))prg =(re.compile(' [^ abcdefghijklmnopqrstuvwxyz ] *',re.ignorecase).sub("" prg))prgpos = 0shouldskip = falsewhille prgpos< len(pr):如果应该是sclskip:showskip = false else:char = prg [ prgpos] .lower()如果char ==" a&#34 ;: stack.insert(0,0)elif char ==" b&#34 ;: stack.pop(0)elif char == " c&#34 ;: stack.insert(0,堆栈[0] - 堆栈[1])elif char ==" d&#34 ;:堆栈[0] - = 1 elif char ==& #34; e&#34 ;: stack.insert(0,堆栈[0]%堆栈[1])Elif Char ==" f&#34 ;:打印(Chr(堆栈[0]),END =& #34;")elif char ==" g&#34 ;: stack.insert(0,堆栈[0] +堆栈[1])Elif Char ==" H&#34 ;: stack.insert(0,int(输入(" \ nnumber:")))Elif char ==" i&#34 ;:堆栈[0] + = 1 elif char ==&# 34; J&#34 ;: stack.insert(0,ORD(" \ ninput:")[0]))Elif char ==" k&#34 ;:如果堆栈[ 0] == 0:应该kip = true elif char ==" l&#34 ;: temp = stact [1]堆栈[1] =堆栈[0]堆栈[0] = temp elif char ==" m&#34 ;: stack.insert(0 ,(堆栈[0] *堆栈[1]))Elif char ==" n&#34 ;: stack.insert(0,int(堆栈[0] ==堆栈[1]))Elif Char == " o&#34 ;: stack.pop(堆栈[0])elif char ==" p&#34 ;: stack.insert(0,堆栈[0] /堆栈[1])elif char = =" q&#34 ;: stack.insert(0,堆栈[0])elif char ==" r&#34 ;: stack.insert(0,len(堆栈))elif char ==& #34; s&#34 ;: temp = stact [堆栈[0]]堆栈[堆栈[0]] =堆栈[0]堆栈[0] = temp elif char ==" t&#34 ;: if堆栈[0] == 0:打开= 0 prgpos + = 1,而prgpos< len(prg):如果prg [prgpos] ==" u"并打开== 0:中断Elif PRG [prgpos] ==" t&#34 ;:打开+ = 1 elif prg [prgpos] ==" u&#34 ;:打开 - = 1 prgpos + = 1 elif char ==" u&#34 ;:如果堆栈[0]!= 0:关闭= 0 prgpos - = 1,而prgpos> = 0:如果prg [prgpos] ==" t" t" t" t&# 34;关闭== 0:中断Elif PRG [PRGPOS] ==" U&#34 ;:关闭+ = 1 ELIF PRG [PRGPOS] ==" T&#34 ;:关闭 - = 1 prgpos - = 1 elif char ==" v&#34 ;:堆栈[0] + = 5 elif char ==" w&#34 ;:堆栈[0] - = 5 elif char ==" x& #34 ;:打印(堆栈[0],end ="")elif char ==" y&#34 ;: stack = [] elif char ==" z&#34 ;:sys.exit(0)else:print("字符无效:",char,"在",prgpos); sys.exit(0)prgpos + = 1

这个js脚本可以采取打印的ssl程序,并可以告诉您它将打印的内容,但它只适用于由与此处相同规则生成的脚本