搜索
有爱,有技术,有你^_^)y
╱人◕‿‿◕人╲订下契约(注册新用户)

合作站点账号登陆

QQ登录

只需一步,快速开始

快捷导航
查看: 1598|回复: 10
收起左侧

[其它] 【搬运】那些令人惊奇的的程序语言... 你见过多少~?

 关闭 [复制链接]

该用户从未签到

3

主题

14

好友

4544

积分

序章

积分
4544
发表于 2012-3-8 15:25:10 | 显示全部楼层 |阅读模式

╱人◕‿‿◕人╲定下契约

您需要 登录 才可以下载或查看,没有账号?╱人◕‿‿◕人╲订下契约(注册新用户)

x
本帖最后由 Unibrighter 于 2012-3-9 07:56 编辑

搬运过来的...CoolShell里的东西都很有意思,大家有时间可以去看下啦~


本人的处女贴:为重建做出一点贡献吧...希望在这里看到那些新的面孔还有熟悉的朋友.(18万的注册量变成了不到8万..这个打击恢复看来的确需要一段时间了..)


这个世界从来都不会缺少另类的东西,人类自然世界如此,计算机世界也一样。编程语言方面,看过CoolShell站的《6个变态的C语言Hello World程序》的朋友们一定对BT和另类不会陌生,但那都是些小儿科,真正的BT和另类要是从语言级上来完成。让我们来看看其中一个比较另类的语言BrainFuck。看到这个程序语言的名字,请不要以为这是一个搞笑的语言,这是一个“严肃事情”,请大家用“最虔诚的态度”来阅读本文。
BF语言介绍Brainfuck,是一种极小化的计算机语言,它是由Urban Müller在1993年创建的。由于“绿王八”的原因,这种语言有时被称为brainf**kbrainf***,甚至被简称为BF。这种 语言,是一种按照“Turing complete(完整图灵机)”思想设计的语言,它的主要设计思路是:用最小的概念实现一种“简单”的语言,BrainF**k 语言只有八种符号,所有的操作都由这八种符号的组合来完成。
BF基于一个简单的机器模型,除了八个指令,这个机器还包括:一个以字节为单位、被初始化为零的数组、一个指向该数组的指针(初始时指向数组的第一个字节)、以及用于输入输出的两个字节流。
下面是这八种指令的描述,其中每个指令由一个字符标识:

字符含义
>指针加一
<指针减一
+指针指向的字节的值加一
-指针指向的字节的值减一
.输出指针指向的单元内容(ASCII码)
,输入内容到指针指向的单元(ASCII码)
[如果指针指向的单元值为零,向后跳转到对应的]指令的次一指令处
]如果指针指向的单元值不为零,向前跳转到对应的[指令的次一指令处


(按照更节省时间的简单说法,]也可以说成“向后跳转到对应的[状态”。这两解释是一样的。)
(第三种同价的说法,[意思是"向前跳转到对应的]“,]意思是”向后跳转到对应的[指令的次一指令处,如果指针指向的字节非零。")
Brainfuck程序可以用下面的替换方法翻译成C语言(假设ptr是char*类型):
BrainfuckC
>++ptr;
<--ptr;
+++*ptr;
---*ptr;
.putchar(*ptr);
,*ptr =getchar();
[while (*ptr) {
]}


BF解释器因为 BrainFuck 只有八种指令,并且没有关键字,也不允许自定义标识符,因此它的编译器实现起来非常简单,初学 C 语言不久的人都可以自己编出来,尽管在座的各位每人都可以自己编一个,不过为了引起大家的兴趣,我这里还是给出大家一个官方发布的版本。这个程序只有短短 50 多行,并且完全由 ANSI C 写成,因此你随便找个 C 语言编译器,把它编译一下。

01.#include <stdio.h>;
02.  
03.int  p, r, q;
04.char a[5000], f[5000], b, o, *s=f;
05.  
06.void interpret(char *c)
07.{
08.    char *d;
09.  
10.    r++;
11.    while( *c ) {
12.        //if(strchr("<>;+-,.[]/n",*c))printf("%c",*c);
13.        switch(o=1,*c++) {
14.            case '<': p--;        break;
15.            case '>;': p++;       break;
16.            case '+': a[p]++;     break;
17.            case '-': a[p]--;     break;
18.            case '.': putchar(a[p]); fflush(stdout); break;
19.            case ',': a[p]=getchar();fflush(stdout); break;
20.            case '[':
21.                for( b=1,d=c; b && *c; c++ )
22.                b+=*c=='[', b-=*c==']';
23.                if(!b) {
24.                    c[-1]=0;
25.                    while( a[p] )
26.                    interpret(d);
27.                    c[-1]=']';
28.                    break;
29.                }
30.            case ']':
31.                puts("UNBALANCED BRACKETS"), exit(0);
32.            case '#':
33.                if(q>;2)
34.                printf("%2d %2d %2d %2d %2d %2d %2d %2d %2d %2d/n%*s/n",
35.                *a,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],3*p+2,"^");
36.                break;
37.            default: o=0;
38.        }
39.        if( p<0 || p>;100)
40.            puts("RANGE ERROR"), exit(0);
41.    }
42.    r--;
43.    //        chkabort();
44.}
45.  
46.main(int argc,char *argv[])
47.{
48.    FILE *z;
49.  
50.    q=argc;
51.  
52.    if(z=fopen(argv[1],"r")) {
53.        while( (b=getc(z))>;0 )
54.            *s++=b;
55.        *s=0;
56.        interpret(f);
57.    }
58.}


当然,如果你觉得用C语言来实现BrainFuck语言的解释器是对BrainFuck这种语言的一种侮辱的话,我们的BrainFuck社区是绝对不能容忍你有这种想法的。因为我们有一个使用100%纯brainfuck写成的一个BrainFuck编译器awibhttp://code.google.com/p/awib/
Hello World++++++++++[>+++++++>++++++++++>+++>+<<<<-] >++.>+.+++++++..+++.>++.<<+++++++++++++++. >.+++.------.--------.>+.>.怎么?看不懂吗?下面是解释:
+++ +++ +++ + initialize counter (cell #0) to 10 [ use loop to set the next four cells to 70/100/30/10 > +++ +++ + add 7 to cell #1 > +++ +++ +++ + add 10 to cell #2 > +++ add 3 to cell #3 > + add 1 to cell #4 <<< < - decrement counter (cell #0) ] >++ . print 'H' >+. print 'e' +++ +++ +. print 'l' . print 'l' +++ . print 'o' >++ . print ' ' <<+ +++ +++ +++ +++ ++. print 'W' >. print 'o' +++ . print 'r' --- --- . print 'l' --- --- --. print 'd' >+. print '!' >. print '/n'相关链接
其它另类语言如果你要觉得BF已经很BT了,那么你就错了,下面这些程序语言更BT。

WhiteSpace语言
这是一种只用空白字符(空格,TAB和回车)编程的语言,而其它可见字符统统为注释。下面是它的一个示例:

什么?你什么也没有看见,这就对了,因为这正是这门语言的独特之处。访问下面这个链接查看Hello,World示例。记得按Ctrl+A来查看程序。

LOLCODE语言
LOLCODE是一种建立在高度缩写的网络英语之上的编程语言,一般来说如果一个人能理解这种网络英语就能在未经训练的情况下读懂LOLCODE程序源代码。下面是其Hello,World例程:
HAI CAN HAS STDIO? VISIBLE "HAI WORLD!" KTHXBYE
中文编程语言
不要以为只有老外才那么BT,咱们中国也有自己的BT编程语言。
中文Basic
中文指令 对应于的Applesoft BASIC
10 卜=0 10 Y=0
20 入 水, 火 20 INPUT E, F
30 從 日 = 水 到 火 30 FOR A = E TO F
40 卜 = 卜+對數(日) 40 Y = Y + LOG (A)
50 下一 日 50 NEXT A
60 印 卜 60 PRINT Y

官网无法访问了,只能看看Wikipedia了:http://en.wikipedia.org/wiki/Chinese_BASIC
中蟒语言(中文Python)
下面的程序是不是很Cool?
#!/usr/local/bin/cpython 回答 = 读入('你认为我们永恒的技术宅社区会重建的更好吗 ? (有/没有)') 如 回答 == '会': 写 '好吧, 让我们一起努力!死掉的转世重来,没死的加油升级!' 不然 回答 == '不会': 写 '您的心情我能偶理解,但是失败和毁灭后重生的东西愈发显得它的珍贵和价值.' 否则: 写 '请认真考虑后再回答.'
差不多了,该结束了,再次说明,这是一篇很严肃的文章。

评分

参与人数 1宅币 +5 收起 理由
氺菓 + 5 o(* ̄▽ ̄*)ブ 发糖

查看全部评分

签名被小宅喵吞掉了~~~~(>_<)~~~~
回复

使用道具 举报

该用户从未签到

15

主题

93

好友

4万

积分

第二章

积分
45089
发表于 2012-3-8 17:18:04 | 显示全部楼层
我觉得最变态是中文Basic

严肃的文章.......     吗?
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

0

好友

713

积分

Continue

积分
713
发表于 2012-3-8 21:18:44 | 显示全部楼层
一群学编译原理,鼓捣编译器解析器的孩子们没事倒腾的东西。。
看看玩玩就好,实在不是人玩得了得
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

163

主题

73

好友

4万

积分

第二章

积分
45516
发表于 2012-4-4 17:17:34 | 显示全部楼层
=1348=
[url=http://www.gn00.com/forum-110-1.html]<font color="DarkOrange">跟着船长起航
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

17

好友

5603

积分

序章

积分
5603
发表于 2012-4-5 23:35:09 | 显示全部楼层
太帅气了
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

21

好友

1786

积分

Continue

积分
1786
发表于 2012-4-6 17:04:37 | 显示全部楼层
确实BT
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

7

好友

1613

积分

Continue

积分
1613
发表于 2012-4-21 08:10:04 | 显示全部楼层
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

7

好友

1613

积分

Continue

积分
1613
发表于 2012-4-21 08:10:09 | 显示全部楼层
verashira 发表于 2012-3-8 21:18
一群学编译原理,鼓捣编译器解析器的孩子们没事倒腾的东西。。
看看玩玩就好,实在不是人玩得了得 ...

同感+1
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

65

主题

132

好友

3万

积分

The Thinker

喵呜喵呜汪!

积分
37066
发表于 2012-8-20 03:23:41 | 显示全部楼层
感觉真心没有什么意义啊这些奇葩的语言……
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

签到天数: 4 天

连续签到: 1 天

[LV.2]偶尔看看I

33

主题

105

好友

2万

积分

第一章

积分
26402
发表于 2012-9-24 15:25:49 | 显示全部楼层
看.....看不懂.........
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

3

主题

23

好友

6582

积分

序章

积分
6582
发表于 2012-9-28 18:45:59 | 显示全部楼层
总是觉得那些懂语言的人都是很厉害的~
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

本版积分规则

小黑屋|手机版|技术宅(Z站|基宅) ( 粤ICP备18082987号-1 )

GMT+8, 2025-6-18 20:15 , Processed in 0.126452 second(s), 39 queries , Redis On.

Copyright © 2018 技术宅社区

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表