csharp进阶练习题:Esolang口译#1 - 介绍Esolangs和我的第一个解释(MiniStringFuck)【难度:2级】:
- 对于这个习题的其余部分,我会建议考虑"他妈的"是不可亵渎.*
Esolang口译#1 - 介绍Esolangs和我的第一个解释(MiniStringFuck)
关于本系列习题
"Esolang口译"是习题系列最初开始作为三个分开的,独立的esolang解释习题撰写由@donaldsebleung,其所有共享一个类似格式和均稍微间有关.在[同胞的CodeWarrior(https://www.codewars.com/users/nickkwest)的影响,这些相互关联的三个高级习题逐渐演变成今天所被称为"Esolang口译"系列.
该系列产品是一个高层次的习题系列旨在通过实施口译各种挑战明亮的头脑,敢于程序员[深奥的编程语言/ Esolangs(http://esolangs.org),主要是[Brainfuck(HTTP:// esolangs.org/wiki/Brainfuck)衍生物,但不限于它们,给定某一Esolang一定规格.也许唯一的例外是该系列的第一个习题这是旨在向大家介绍/品酒师为他们深奥的编程语言和书面翻译的世界.
什么是深奥的编程语言?
* 如果您在Brainfuck解决这个习题,你可能已经熟悉的东西的Esolang是可以随意跳过描述的这部分.*
一个[深奥的编程语言(http://esolangs.org),或者称为** ** Esolang,是通常不是设计用于严重的实际使用非正式的计算机编程语言.有几个主要目标/绝大多数这些语言中的主题:
- ** 实现图灵完整性在尽可能少的命令(指令)作为可能的.** 目前已被证明是图灵完全,[Brainfuck](http://esolangs.org/一些实施Esolangs的维基/ Brainfuck)是最流行的所有这些的,包含不超过8个不同的命令.尽管仅具有8的命令,它已被客观证明是图灵完全.然而,Brainfuck不是图灵完备的编程语言与最少的命令. Boolfuck,其上的位操作(
0
s和1
s),包含** 7个命令Brainfuck的衍生物** 只,也被证明是图灵完备通过从Brainfuck减少.另一个鲜为人知的Esolang称为[埃特(http://codewars.com/wiki/Etre)包含尽可能少的** 3个** 命令还已经通过明斯基机在埃特翻译被证明是图灵完备. - ** 为了用作难以程序在尽可能** 著名BrainfuckEsolang是众所周知的一个** 图灵那tarpit ** - 即,一个图灵完备的编程语言,它是非常难写在现实中有用的程序.然而,Brainfuck是绝对不是最难Esolang到程序,例如,其近亲,Boolfuck,其在比特(上面提到的)操作是更难程序中.也出现了实施Esolangs其是少数所以很难计划在从来没有人成功地在它从头开始编写一个程序 - 从这些语言产生的唯一程序从计算机问世!
- ** 作为一个笑话.** 许多Esolangs那里仅被发明作为一个笑话.实例包括OOK!和Bitxtreme.
虽然没有明确的定义,以当编程语言是深奥的(或没有),Esolangs一般可以通过以下功能/特性鉴定:
1.简约 - 有尽可能少的指令
2.播放新概念 - 例如,Befunge,另一种非常受欢迎Esolang,在** 两个维度解释** 相对于解释通常的线性方式码
3.主题 - 这是许多笑话Esolangs的特质.例如,有些人可能会被塑造像莎士比亚戏剧和其他类似的烹饪食谱
4.不明确的记录 - 许多Esolangs那里没有非常详细与整个互联网上也许只有几码的例子进行说明.有些Esolangs还没有得到落实呢!
5.包含不完整的规格 - 新Esolangs每天都在发明的.在互联网上的一些Esolangs仍然是一个工作在进步,他们的命令和行为尚未敲定.
然而,Esolangs一般是有趣的节目中,实验和写口译.一个伟大的交易,可在计算机科学的某些概念和理论只是通过研究和精心设计的Esolang如Brainfuck或Befunge编程学习.
接下来的时候,我会向你介绍一种简单,简约Esolang叫** ** MiniStringFuck.
语言
MiniStringFuck是著名的Brainfuck,其含有一个** 存储器单元的衍生物** 因为只有其数据存储的形成,而不是30,000个细胞在Brainfuck的存储器中的磁带.在MiniStringFuck ** 的存储单元** 最初开始于0
. MiniStringFuck仅包含2命令,而不是8:
- ‘+’ - 增量的存储单元.如果达到
256
,换到0
. .
- 输出的存储单元的ASCII值
例如,这里是一个MiniStringFuck程序,将输出字符串``“你好,世界!”:
++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++.+++++++++++++++++++++++++++ ++.+++++++ .. +++.++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++