level 12
以下为序号,并非排名
1.BIT语言
以下为BIT语言的一段程序
LINE NUMBER ONE CODE READ GOTO ONE ZERO
LINE NUMBER ONE ZERO CODE VARIABLE ZERO EQUALS THE JUMP REGISTER GOTO ONE ONE
LINE NUMBER ONE ONE CODE READ GOTO ONE ZERO ZERO
LINE NUMBER ONE ZERO ZERO CODE VARIABLE ONE EQUALS THE JUMP REGISTER GOTO ONE ZERO ONE
LINE NUMBER ONE ZERO ONE CODE THE JUMP REGISTER EQUALS OPEN PARENTHESIS VARIABLE ZERO NAND VARIABLE ONE CLOSE PARENTHESIS NAND OPEN PARENTHESIS VARIABLE ZERO NAND VARIABLE ONE CLOSE PARENTHESIS GOTO ONE ONE ZERO IF THE JUMP REGISTER IS EQUAL TO ONE GOTO ONE ZERO ZERO ZERO IF THE JUMP REGISTER IS EQUAL TO ZERO
LINE NUMBER ONE ONE ZERO CODE PRINT ONE GOTO ONE ONE ONE
LINE NUMBER ONE ONE ONE CODE PRINT ZERO
LINE NUMBER ONE ZERO ZERO ZERO CODE THE JUMP REGISTER EQUALS OPEN PARENTHESIS VARIABLE ZERO NAND VARIABLE ZERO CLOSE PARENTHESIS NAND OPEN PARENTHESIS VARIABLE ONE NAND VARIABLE ONE CLOSE PARENTHESIS GOTO ONE ZERO ZERO ONE IF THE JUMP REGISTER IS EQUAL TO ZERO GOTO ONE ZERO ONE ZERO IF THE JUMP REGISTER IS EQUAL TO ONE
LINE NUMBER ONE ZERO ZERO ONE CODE PRINT ZERO
LINE NUMBER ONE ZERO ONE ZERO CODE PRINT ONE
当然,对于空格和换行符,显得太冗余了,去掉他们也没有问题。
LINENUMBERONECODEREADGOTOONEZEROLINENUMBERONEZEROCODEVARIABLEZEROEQUALSTHEJUMPR
EGISTERGOTOONEONELINENUMBERONEONECODEREADGOTOONEZEROZEROLINENUMBERONEZEROZEROCO
DEVARIABLEONEEQUALSTHEJUMPREGISTERGOTOONEZEROONELINENUMBERONEZEROONECODETHEJUMP
REGISTEREQUALSOPENPARENTHESISVARIABLEZERONANDVARIABLEONECLOSEPARENTHESISNANDOPE
NPARENTHESISVARIABLEZERONANDVARIABLEONECLOSEPARENTHESISGOTOONEONEZEROIFTHEJUMPR
EGISTERISEQUALTOONEGOTOONEZEROZEROZEROIFTHEJUMPREGISTERISEQUALTOZEROLINENUMBERO
NEONEZEROCODEPRINTONEGOTOONEONEONELINENUMBERONEONEONECODEPRINTZEROLINENUMBERONE
ZEROZEROZEROCODETHEJUMPREGISTEREQUALSOPENPARENTHESISVARIABLEZERONANDVARIABLEZER
OCLOSEPARENTHESISNANDOPENPARENTHESISVARIABLEONENANDVARIABLEONECLOSEPARENTHESISG
OTOONEZEROZEROONEIFTHEJUMPREGISTERISEQUALTOZEROGOTOONEZEROONEZEROIFTHEJUMPREGIS
TERISEQUALTOONELINENUMBERONEZEROZEROONECODEPRINTZEROLINENUMBERONEZEROONEZEROCOD
EPRINTONE
2013年08月24日 06点08分
2
我用我的英语水平看出来则是二进制因为几乎没有看到two three之类的只有zero onezeroone的
2013年08月25日 13点08分
回复 战栗の :。。。我完全看不懂
2013年08月25日 15点08分
level 12
2.BF语言,全称Brainfu【ck,由于屏蔽的缘故,又称brainf***,brainf**k
BF语言一共有只8指令
字符 含义
> 指针加一
< 指针减一
+ 指针指向的字节的值加一
- 指针指向的字节的值减一
. 输出指针指向的单元内容(ASCII码)
, 输入内容到指针指向的单元(ASCII码)
[ 如果指针指向的单元值为零,向后跳转到对应的]指令的次一指令处
] 如果指针指向的单元值不为零,向前跳转到对应的[指令的次一指令处
以下为helloworld
+++[>+++>+++>+++>+<<<-] ... >
网上有一个BF的编译器,C语言写的仅仅50来行
2013年08月24日 06点08分
4
不是编译器,是解释器,手抖了一下
2013年08月24日 06点08分
LZ不写一个编译器对得起大家么
2013年08月24日 07点08分
回复 大帅又衰 :?
2013年08月24日 07点08分
回复 大帅又衰 :解释器在6L
2013年08月24日 07点08分
level 12
以下为BF解释器C语言源码
#include <stdio.h>;
int p, r, q;
char a[5000], f[5000], b, o, *s=f;
void interpret(char *c)
{
char *d;
r++;
while( *c ) {
//if(strchr("<>;+-,.[]\n",*c))printf("%c",*c);
switch(o=1,*c++) {
case '<': p--; break;
case '>;': p++; break;
case '+': a[p]++; break;
case '-': a[p]--; break;
case '.': putchar(a[p]); fflush(stdout); break;
case ',': a[p]=getchar();fflush(stdout); break;
case '[':
for( b=1,d=c; b && *c; c++ )
b+=*c=='[', b-=*c==']';
if(!b) {
c[-1]=0;
while( a[p] )
interpret(d);
c[-1]=']';
break;
}
case ']':
puts("UNBALANCED BRACKETS"), exit(0);
case '#':
if(q>;2)
printf("%2d %2d %2d %2d %2d %2d %2d %2d %2d %2d\n%*s\n",
*a,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],3*p+2,"^");
break;
default: o=0;
}
if( p<0 || p>;100)
puts("RANGE ERROR"), exit(0);
}
r--;
// chkabort();
}
main(int argc,char *argv[])
{
FILE *z;
q=argc;
if(z=fopen(argv[1],"r")) {
while( (b=getc(z))>;0 )
*s++=b;
*s=0;
interpret(f);
}
}
2013年08月24日 07点08分
6
level 12
6.Befunge
第一个变态语言Befunge。维基上面说这门语言由Chris Pressey在1993年创造,本意为设计一种为难编译器的语言……结果马上出现了一批编译器。Befunge的代码是二维的。它用 < > v ^ 这四个符号来控制一个指针在代码中移动,指针经过一个字符或数字则把它压入一个栈,四则运算符号的功能就是弹出栈顶两个元素进行计算后把结果压回去。用 _ 和 | 来表示有条件的方向选择:当栈顶元素为0时向右(上)走,否则向左(下)走。& 和 ~ 分别用于读入数字或字符并压入栈,句号和逗号分别表示将栈顶元素作为整数或字符输出。最后以一个@符号表示程序结束 。Befunge代码的注释不需要任何符号标明,你可以把注释写在程序的任何地方,只要运行时指针不会经过它就行了。
下面这段Hello World代码:
> v
v ,,,,,"Hello"<
>48*, v
v,,,,,,"World!"<
>25*,@
这是一门二维的语言【严肃
网上有一段圆周率的代码,各位可以去看看
2013年08月24日 07点08分
11
level 12
7.Chef
Chef如其名一样“主厨”(Wiki link),这门语言主要是为了让程序代码看起来像菜谱。这可以使得我们的程序员更像是大厨了,呵呵。该语言于2002年由David Morgan-Mar推出,核心是栈操作,特征就是一套完整的Chef代码就是一个菜谱,程序名就是菜名,变量声明就是罗列原材料,后面一系列栈操作,就是菜肴的制作方法。把程序编写比作调和鼎鼐,有点意思,家庭主妇(或者“准家庭主妇”)试试看,权且当作人生预习。
用Chef编写Hello World代码如下:(在其网站上还有一个斐波拉契数的例子)
Hello World Souffle.
Ingredients.
72 g haricot beans
101 eggs
108 g lard
111 cups oil
32 zucchinis
119 ml water
114 g red salmon
100 g dijon mustard
33 potatoes
Method.
Put potatoes into the mixing bowl.
Put dijon mustard into the mixing bowl.
Put lard into the mixing bowl.
Put red salmon into the mixing bowl.
Put oil into the mixing bowl.
Put water into the mixing bowl.
Put zucchinis into the mixing bowl.
Put oil into the mixing bowl.
Put lard into the mixing bowl.
Put lard into the mixing bowl.
Put eggs into the mixing bowl.
Put haricot beans into the mixing bowl.
Liquefy contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
Serves 1.
代码解读
原材料名显然可以随便改成别的原料,哪怕用单个字母也可以,不过少了点趣味性,但原料前面代表数量的数字不能改,那是ASCII代码。接下来菜肴制作方法就是把一个个字母和符号(都是ASCII)压入栈(就是代码中的“Put XXX into the mixing bowl”,从最后一个感叹号开始压),最后再把你做的菜托出上桌。
怎么样,这道hello world合你胃口吗?
2013年08月24日 07点08分
12
level 12
9.Haifu
Haifu程序语言也是David Morgan-Mar 搞出来的。从命名上就可以看出来它是一个汉语拼音。正是如此,作者想使用东方的哲学来创造一种编程的语言。其中还有Yin(阴)和 Yang(阳)——相当于布尔变量中的True/False,当然,也有金(Metal)木(Wood)水(Water)火(Fire)土(Earth)。呵呵。
Wood: tree, grass, cherry, oak.
Fire: flame, ash, smoke, embers.
Earth: soil, mountain, rock, plain.
Metal: sword, iron, plough, knife.
Water: rain, snow, river, ice.
自然出现了一张关系表:
元素关系 操作
B 生A A+B
B 克 A A-B
B 怕 A A/B
B 爱 A A*B
B 就是 A 如果A和B都是阳,则是阳,否则是阴
我开始怀疑创始人一个道士……你呢
2013年08月24日 07点08分
17
level 12
13.Ook!
Ook! 语言也是David Morgan-Mar 发明的,与Brainfuck类似, 但用单词“Ook!”,“Ook.” 和“Ook?”代替。我们来看一个Hello World的一个示例:
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.
下面是一些转换器和解释器:
Java Ook!-to-BrainF*** 和 BrainFu【ck-to-Ook! 转换器.
Ook! Ruby解释器.
Ook! Python解释器.
Ook! .Net 编译器叫Ook#
Ook! perl 解释器.
等我看懂后,我可以去死了…………
2013年08月24日 08点08分
22
level 12
14.TMMLPTEALPAITAFNFAL
你没看错,上面这一排毫无意义的字母是一个语言的名称。它是The Multi-Million Language Project To End All Language Projects And Isn’t That A Fine Name For A Language的缩写。TMMLPTEALPAITAFNFAL语言没有固定的语法规则,每一天都是不同的语法。例如,2000年10月13日你可以使用DIV但不能使用MOD;到了10月14日时你可以使用MOD了但DIV又不能用了。因此,你今天写的程序运行起来完全正常,但是到了明天就无法编译了。下面是一个TMMLPTEALPAITAFNFAL的Hello World程序,当然现在已经无法编译了。
DECLARE CELL 100 AS READPOS
DECLARE 10 AS NEWLINE
WRITE CHAR NEWLINE
COPY "Hello, World" TO CELL 0
COPY 0 TO READPOS
WHILE READPOS INDIRECT DO GOSUB 300
WRITE CHAR NEWLINE
RETURN
LINE 300: WRITE CHAR READPOS INDIRECT
ADD 1 TO READPOS
RETURN
还有这样的语言,我绝对是疯了…………编个程序还要查日历吗¥%……¥*(&&(……
2013年08月24日 08点08分
23
level 12
16.HQ9++
HQ9++语言同样是David Morgan-Mar 发明的,其带有四个指令的joke语言。
H: 输出 “hello,world”
Q: 输出程序员的源代码
9: 打印 “99 Bottles of Beer” 的歌词
+: 累加器
对于这个,我不想说了…………
2013年08月24日 08点08分
27
HQ9+和HQ9++是不同的东西,HQ9++多一个++操作,并且是面向对象的……
2013年08月24日 08点08分
回复 zjfaok :……
2013年08月24日 08点08分
回复 zjfaok :额……………………
2013年08月24日 08点08分