imjacob的专栏

首页博文目录订阅
正 文

历史上最好的C语言程序

(2009/2/22 18:28)

历史上最好的C语言程序:  
          1983年,在ACM图林奖颁奖大会上,杰出的计算机科学家、UNIX的鼻祖、C语言的创始人之一,图林大奖得主,Ken   Thompson,上台的第一句话便是:“我是一个程序员,在我的1040表上,我自豪地写上了我的职业。作为一个程序员,我的工作就是写程序。今天我将向大家提供一个我曾经写过的最精练的程序。”这个程序是一个自已复制自已的C语言程序,如下:  
   
  #include   <stdio.h>  
  char   s[]   =   {  
  '\t',  
  '0',  
  '\n',  
  '}',  
  ';',  
  '\n',  
  '\n',  
  'm',  
  'a',  
  'i',  
  'n',  
  '(',  
  ')',  
  '\n',  
  '{',  
  '\n',  
  '\t',  
  'i',  
  'n',  
  't',  
  '   ',  
  'i',  
  ';',  
  '\n',  
  '\n',  
  '\t',  
  'p',  
  'r',  
  'i',  
  'n',  
  't',  
  'f',  
  '(',  
  '\"',  
  'c',  
  'h',  
  'a',  
  'r',  
  '   ',  
  '\\',  
  't',  
  's',  
  '[',  
  ']',  
  '   ',  
  '=',  
  '   ',  
  '{',  
  '\\',  
  'n',  
  '\"',  
  ')',  
  ';',  
  '\n',  
  '\t',  
  'f',  
  'o',  
  'r',  
  '(',  
  'i',  
  '=',  
  '0',  
  ';',  
  's',  
  '[',  
  'i',  
  ']',  
  ';',  
  'i',  
  '+',  
  '+',  
  ')',  
  '\n',  
  '\t',  
  '\t',  
  'p',  
  'r',  
  'i',  
  'n',  
  't',  
  'f',  
  '(',  
  '\"',  
  '\\',  
  'r',  
  '%',  
  'd',  
  ',',  
  '\\',  
  'n',  
  '\"',  
  ',',  
  's',  
  '[',  
  'i',  
  ']',  
  ')',  
  ';',  
  '\n',  
  '\t',  
  'p',  
  'r',  
  'i',  
  'n',  
  't',  
  'f',  
  '(',  
  '\"',  
  '%',  
  's',  
  '\"',  
  ',',  
  's',  
  ')',  
  ';',  
  '\n',  
  '}',  
  0  
  };  
   
  main()   {  
  int   i;  
   
                  printf("char   \ts[]   =   {\n");  
                  for(i=0;s[i];i++)  
                                  printf("\r%d,\n",s[i]);  
                  printf("%s",s);  
  }  
          这个程序第一版和它“生”下的第二版式本在变量s的声明上略有不同,但在功能上完全一致,第二个版本与其后代则在形式和功能上完全一致。这个程序可能是第一个用C语言制造的Trojan   horse。该程序由UNIX创始人,C语言作者之一的Ken   Thompson书写,并在图林大奖向世人展示,应是无人能敌。

以上号称第一代,第二代如下:

第二代以后:(注释都算上!)  
  #include   <stdio.h>  
  char         s[]   =   {  
  /*0*/       9,  
  /*1*/       48,  
  /*2*/       10,  
  /*3*/       125,  
  /*4*/       59,  
  /*5*/       10,  
  /*6*/       10,  
  /*7*/       109,  
  /*8*/       97,  
  /*9*/       105,  
  /*10*/     110,  
  /*11*/     40,  
  /*12*/     41,  
  /*13*/     10,  
  /*14*/     123,  
  /*15*/     10,  
  /*16*/     9,  
  /*17*/     105,  
  /*18*/     110,  
  /*19*/     116,  
  /*20*/     32,  
  /*21*/     105,  
  /*22*/     59,  
  /*23*/     10,  
  /*24*/     10,  
  /*25*/     9,  
  /*26*/     112,  
  /*27*/     114,  
  /*28*/     105,  
  /*29*/     110,  
  /*30*/     116,  
  /*31*/     102,  
  /*32*/     40,  
  /*33*/     34,  
  /*34*/     35,  
  /*35*/     105,  
  /*36*/     110,  
  /*37*/     99,  
  /*38*/     108,  
  /*39*/     117,  
  /*40*/     100,  
  /*41*/     101,  
  /*42*/     32,  
  /*43*/     60,  
  /*44*/     115,  
  /*45*/     116,  
  /*46*/     100,  
  /*47*/     105,  
  /*48*/     111,  
  /*49*/     46,  
  /*50*/     104,  
  /*51*/     62,  
  /*52*/     92,  
  /*53*/     110,  
  /*54*/     99,  
  /*55*/     104,  
  /*56*/     97,  
  /*57*/     114,  
  /*58*/     32,  
  /*59*/     92,  
  /*60*/     116,  
  /*61*/     115,  
  /*62*/     91,  
  /*63*/     93,  
  /*64*/     32,  
  /*65*/     61,  
  /*66*/     32,  
  /*67*/     123,  
  /*68*/     92,  
  /*69*/     110,  
  /*70*/     34,  
  /*71*/     41,  
  /*72*/     59,  
  /*73*/     10,  
  /*74*/     9,  
  /*75*/     102,  
  /*76*/     111,  
  /*77*/     114,  
  /*78*/     40,  
  /*79*/     105,  
  /*80*/     61,  
  /*81*/     48,  
  /*82*/     59,  
  /*83*/     115,  
  /*84*/     91,  
  /*85*/     105,  
  /*86*/     93,  
  /*87*/     59,  
  /*88*/     105,  
  /*89*/     43,  
  /*90*/     43,  
  /*91*/     41,  
  /*92*/     10,  
  /*93*/     9,  
  /*94*/     9,  
  /*95*/     112,  
  /*96*/     114,  
  /*97*/     105,  
  /*98*/     110,  
  /*99*/     116,  
  /*100*/   102,  
  /*101*/   40,  
  /*102*/   34,  
  /*103*/   47,  
  /*104*/   42,  
  /*105*/   37,  
  /*106*/   100,  
  /*107*/   42,  
  /*108*/   47,  
  /*109*/   92,  
  /*110*/   116,  
  /*111*/   37,  
  /*112*/   100,  
  /*113*/   44,  
  /*114*/   92,  
  /*115*/   110,  
  /*116*/   34,  
  /*117*/   44,  
  /*118*/   105,  
  /*119*/   44,  
  /*120*/   115,  
  /*121*/   91,  
  /*122*/   105,  
  /*123*/   93,  
  /*124*/   41,  
  /*125*/   59,  
  /*126*/   10,  
  /*127*/   9,  
  /*128*/   112,  
  /*129*/   114,  
  /*130*/   105,  
  /*131*/   110,  
  /*132*/   116,  
  /*133*/   102,  
  /*134*/   40,  
  /*135*/   34,  
  /*136*/   37,  
  /*137*/   115,  
  /*138*/   34,  
  /*139*/   44,  
  /*140*/   115,  
  /*141*/   41,  
  /*142*/   59,  
  /*143*/   10,  
  /*144*/   9,  
  /*145*/   103,  
  /*146*/   101,  
  /*147*/   116,  
  /*148*/   99,  
  /*149*/   104,  
  /*150*/   40,  
  /*151*/   41,  
  /*152*/   59,  
  /*153*/   10,  
  /*154*/   125,  
                  0  
  };  
   
  main()  
  {  
                  int   i;  
   
                  printf("#include   <stdio.h>\nchar   \ts[]   =   {\n");  
                  for(i=0;s[i];i++)  
                                  printf("/*%d*/\t%d,\n",i,s[i]);  
                  printf("%s",s);  
                  getch();  
  }

评 论
3楼 52RD网友 发表于 2014/9/15 22:18 回复
没什么意思啊!!!
2楼 52RD网友 发表于 2009/2/24 09:55 回复
专业租售新旧微波射频光电计量检测仪器,最大最全最专业, 13570800259陈QQ976782078 频谱分析仪,网络分析仪,无线通讯综合测试仪器,信号源,示波器,光电通讯类测试仪器等
1楼 52RD网友 发表于 2009/2/23 13:30 回复
这个怎么谈的上最好??
博 主
进入imjacob的首页
博客名称:雅克的一府
日志总数:514
评论数量:901
访问次数:1870067
建立时间:2006/11/23 20:52
导 航
公 告
Locations of visitors to this page 本博客主要用于个人学习与资料收藏。当然大家应该读了之后也能学到不少东西。其中大多数资料都是来自网络,我转载时尽可能地表明文章出处与原作者姓名,但由于很多资料经多人转载,已不清楚原作者信息与出处,所以未表明相关…
评 论
链 接

ARM+LINUX 嵌入式博客
http://blog.chinaunix.net/u1/58780/index.html

嵌入式软件
http://blog.csdn.net/embeddedsoft

诚诚恳恳做人踏踏实实编程
http://blog.sina.com.cn/u/1244756857 

和我风格相似的一个blog
http://blogger.org.cn/blog/m…