云游仙境
神圣柯曼帝国总参谋长
  
- 贡献度
- 6423
- 金元
- 17592
- 积分
- 31481
- 精华
- 3
- 注册时间
- 2009-4-1
|
本帖最后由 ddsman 于 2011-4-19 11:49 编辑
Befunge
第一个不和谐语言Befunge。维基上面说——这门语言由Chris Pressey在1993年创造,本意为设计一种为难编译器的语言……结果马上出现了一批编译器。Befunge的代码是二维的。它用 < > v ^ 这四个符号来控制一个指针在代码中移动,指针经过一个字符或数字则把它压入一个栈,四则运算符号的功能就是弹出栈顶两个元素进行计算后把结果压回去。用 _ 和 | 来表示有条件的方向选择:当栈顶元素为0时向右(上)走,否则向左(下)走。& 和 ~ 分别用于读入数字或字符并压入栈,句号和逗号分别表示将栈顶元素作为整数或字符输出。最后以一个@符号表示程序结束。Befunge代码的注释不需要任何符号标明,你可以把注释写在程序的任何地方,只要运行时指针不会经过它就行了。
下面这段Hello World代码:<下面一个是算圆周率的代码,非常的壮观:
<通常认为Befunge是第一个基于“二维控制流”的语言,后来衍生出的一大批类似的语言都是受的Befunge影响。例如PingPong语言就是把Befunge的四种箭头符号换成正反斜杠,控制指针移动方向90度旋转,起一个反弹的作用。
Chef
Chef如其名一样“主厨”(Wiki link),这门语言主要是为了让程序代码看起来像菜谱。这可以使得我们的程序员更像是大厨了,呵呵。该语言于2002年由David Morgan-Mar推出,核心是栈操作,特征就是——一套完整的Chef代码就是一个菜谱,程序名就是菜名,变量声明就是罗列原材料,后面一系列栈操作,就是菜肴的制作方法。把程序编写比作调和鼎鼐,有点意思,家庭主妇(或者“准家庭主妇”)试试看,权且当作人生预习。
用Chef编写Hello World代码如下:(在其网站上还有一个斐波拉契数的例子)<代码解读——原材料名显然可以随便改成别的原料,哪怕用单个字母也可以,不过少了点趣味性,但原料前面代表数量的数字不能改,那是ASCII代码。接下来菜肴制作方法就是把一个个字母和符号(都是ASCII)压入栈(就是代码中的“Put XXX into the mixing bowl”,从最后一个感叹号开始压),最后再把你做的菜托出上桌。
顺便说下,David Morgan-Mar已经设计出8种非主流编程语言了,还有一个不和谐的操作系统Petrovich。 参看这位大哥的——DM’s Esoteric Programming Languages(下面会介绍这位老大搞出来的语言)
Shakespeare
Shakespeare语言正如其名,其要让你的程序像“莎士比亚”的剧本一样充满艺术气息。
这个语言于2001年由Karl Hasselstrom和Jon Aslund联合推出,Shakespeare的代码完全模仿莎士比亚的戏剧。它也是一个基于栈的程序语言,程序中出场的每一个人物都代表一个栈。Shakespeare的代码自由度很高,因此同一个程序你可以写出完全不同的代码出来。
Shakespeare的Hello World代码如下(就是一部比较完整的“罗密欧与朱丽叶”的戏剧,作好心理准备)。“剧本”内容很无聊,就是一帮人在莫名其妙地称赞某些东西,里头还有古英语词汇,莎翁要是见了,可能会吐血。这里面Hello World或其ASCII码体现在全剧时不时出现的“The difference between……”句里面,根据各指代物品的好坏(比如鲜花算好的,牛粪算坏的)代表各数字,再进行各种运算最后相减(“The difference”暗指减法),得出一个字母或符号的ASCII码表。发明这个语言的人真是BT啊。<
BIT
BIT语言也是 David Morgan-Mar 搞出来的。程序员在拥有访问所有数据的全部权限。这是一款强大的编程工具。在高级程序语言中,该工具可以操作这些令人费解的数据。
看看下面这段代码,其展示了BIT的强大之处——代码和注释的完美统一。(很像BASIC)<当然,对于空格和换行符,显得太冗余了,去掉他们也没有问题。<
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都是阳,则是阳,否则是阴 |
Piet
David Morgan-Mar 发明的用位图编程的Piet语言也是BT到了极致,你还记得前两的那个“我的hello world编不过去”文章中的那个强人用windows的画图程序编程的例子吗?呵呵Piet完全是用位图编程的语言。
下面这个图片就是其Hello World的示例: 
再看看斐波拉契数列的程序示例: 
这里还有更多的示例:http://www.dangermouse.net/esoteric/piet/samples.html
Malbolge
Malbolge语言,是最早的一个以代码丑陋为目标而设计出的程序语言,你几乎不可能读懂Malbolge的代码。它共有8条指令,所有运算都基于3进制,控制程序流的唯一指令是无条件跳转。其是BenOlmstead在1998年引进公共领域的深奥程序语言,名称来源于“the eighth circle of hell in Dante’s Inferno”,之后更名为Malbolge。
这被认为是地狱级的编程语言。
看看它的Hello World程序:
关于Unlambda语言,David Madore是这个语言的发明人,他于1976年8月3日生于法国,其是法国-加拿大籍数学家和计算机科学爱好者)。在unlambda里,所有东西都是函数。基本操作就是S, K, 和I三个组合子。当然,unlambda也加入一些扩展,让程序稍微好些一点。<
Ook!
Ook! 语言也是David Morgan-Mar 发明的,与Brainfuck类似, 但用单词“Ook!”,“Ook.” 和“Ook?”代替。我们来看一个Hello World的一个示例:<下面是一些转换器和解释器:
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程序,当然现在已经无法编译了。<
INTERCAL
INTERCAL语言(Wikipedia)全称是“Compiler Language With No Pronounceable Acronym”。自认为是“超级黑客”的人可以试试用这个语言写程序。由老牌黑客Don Woods 和 James M. Lyon 在1972年发明,其是用来讽刺当时的那些编程语言。今天 这个语言有两个版本,一个是由牛人Eric S. Raymond维护的C-INTERCAL,另一个是Claudio Calvelli 维护的CLC-INTERCAL。(注:在自由软件启蒙阶段,Eric S. Raymond以如椽之笔呼啸而出,其核心著作被业界成为”五部曲”:《黑客道简史》(A Brief History of Hackerdom)、 《大教堂和市集》(The Cathedral and the Bazaar)、《如何成为一名黑客》(How To Become A Hacker)、《开拓智域》(Homesteading the Noosphere)、《魔法大锅炉》(The Magic Cauldron)。其中最著名的当然还是《大教堂和市集》,它在自由软件运动中的地位相当于基督教的《圣经》。而用黑客们的话说,这是”黑客藏经阁”的 第一个收藏。)
来看看其Hello World的程序:<
HQ9++
HQ9++语言同样是David Morgan-Mar 发明的,其带有四个指令的joke语言。
PerlYuYan
PerlYuYan语言是一个能令人使用中文文言文开发程式 Perl 程式的 Perl 模块,由唐凤于2002年一月发表。它是中文编程语言的尝试。作者利用中文的特质,将许多指令改成以一个中国汉字来表示,因而造成了文言语法的感觉。
看看下面的这段代码,相当的文言文啊。有兴趣可以去CPAN上下载回来玩玩。<还有下面这个五言。<参考:
看过这些,我我还有什么好说的呢,什么C/C++/Java,神马都是浮云了……(全文完) |
|