CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  非技术区

发布阴阳八卦语言

楼主universee(吾乃太极语言之父)2006-07-04 16:46:17 在 C/C++ / 非技术区 提问

发布阴阳八卦语言  
  发布阴阳八卦语言  
   
  发布阴阳八卦语言,阴阳八卦语言其实包含着两种语言——阴阳语言和八卦语言。  
   
  阴阳语言所做的事情是在代码的阴阳两界转换,文本型代码属于阳界,人易读,二进制型代码属于阴界,机器易读。  
  阴阳语言编译器所做的事情是把db   xxxx;dd   xxxxx,xx;dw     xxxx……之类的代码变成二进制的,就这一件事。任何二进制文件格式都可以用阴阳语言来描述,如coff,pe,elf,a.out,还有*.doc,*.dat,*.*……。  
   
  八卦语言功能类似ASM,语法类似C/C++,而且ASM码与机器码间的映射关系可以在程序中完全自定义,一句ASM翻译成什么样的机器码完全是自己动态定义的,这样八卦语言可以支持任何CPU。  
  八卦语言编译器支持的CPU如下:  
  intel   80x86,8088,4004,Pentium   xxx,celeron   xxx,Itanium   1/2,Xeon   ,Xeon   MP,     ……  
  Sun   SPARC   xxx,UltraSPARC   IIIi,   UltraSPARC   III,UltraSPARC   IV   ……  
  IBM   POWER   970   ,POWER   970   FX   ,cell   ……  
  Cray   xxxx,SGI     xxxx,Motorolar   xxxxx  
  ………………  
  对了,还有:  
  支持java虚拟机,.net虚拟机(这个有难度,因为代码中包含名字,但却仍然是可行的)  
  支持所有的嵌入式系统,  
  支持想象中的CPU,  
  支持任何已知的CPU及未知的CPU,  
  支持任何已经设计出来的CPU及任何尚未设计出来的CPU。  
  (注意:如果某种CPU指令是不能被写出来的那么可能就支持不了)  
  支持一切可写的CPU指令集,  
  还可以再怎么说呢?我刚才还想起来了一些,现在却想不起来了,  
  ……  
  哈哈,写到这里,我自己都笑的肚子疼啦,怎么这么好玩呢,简直成了娱乐八卦啦。  
   
  不过原理其实很简单,就是正交完备字符串变换子集就可以了。  
  (是不是已经有人这样做了?我记得TASM可以用宏支持MMX、SSE,不过TASM是不是达到完备程度就不知道了)  
   
  八卦语言把代码编译成{dx   xxx....}格式,传给阴阳语言,阴阳语言再灵活的套上pe,elf,a.out……各种格式,从而可以在一个系统下生成任何其他系统下的代码。  
   
  而且这样还可以很容易的支持同一程序中包含许多种类的CPU代码,这样的程序可以把不同的部分运行在不同的CPU上,这对于计算机集群是很有用的。  
   
  很舒服的是:八卦语言用类C/C++的{}做区域,不用begin   end格式——还是{}这种象形文字来的比英文字母强。  
   
  还有更好的呢,在八卦语言中,ASM也可以模板啦,我把C++那一套模板机制也引进ASM中。还有宏机制也大大增强,其实我一直就感觉到宏的能力远远比模板能力强,只不过人们远远没发现宏的能力。比如说C++   Templates中的meta   programming,那么别扭的用递归实现了循环,但是我直接用宏做循环编译不行吗?类似MASM中的循环编译。C++   Templates尽管是   turning   complete的,但不可否认的是表义能力太弱了,这样的代码往往很难写与维护。我在设计太极语言时是这样考虑的,专门用一种语言本身来控制代码生成之描述,那么用什么语言呢——就用太极语言本身。其实在太极语言编译器中是用解释运行的太极语言程序在控制太极语言的编译,于是能让代码自己描述自己的编译,比如说  
   
  char   *   str="aaaaaa";  
  explain  
  (  
  int   n=f(str);  
  if(n<10)  
  {  
    int   fc(int   a,int   b)  
    {  
      return   a+b;  
    }  
  }  
  else    
  {  
          int   fc(int   a,int   b)  
          {  
      return   a-b+f("taiji");  
          }  
  }  
  );  
   
  int   f(char   *   str)  
  {  
    return   str[0];//return   strlen(str);也行。想怎么写就怎么写。  
  }  
   
  explain表示其后()中的编译时会被解释执行,与条件编译比较相似。  
  这里的f函数既会被解释执行又会在编译时生成代码。  
   
  还有循环编译,等等,总之,是把整个太极语言的本身嵌入太极语言的编译描述过程中去,实现自描述型编译。  
   
  而这部分的实现是在独立的一遍预编译中,往八卦语言上一套,就是用太极语言描述八卦语言的编译。往阴阳语言上一套,就是用太极语言描述阴阳语言的编译。  
  (稍有一些小改动)  
   
  当然解释运行以控制编译的太极语言为了实现与完全编译的太极语言嵌入区分,有一些接口上的小改动。  
   
  还有一点,在太极语言中函数与类名字空间是一个“集合”,而在C/C++中却是一个“向量”。  
  C/C++中的函数与类必须先定义或声明再使用,这就有了顺序,所以是一个向量(好象并不怎么严格)。而在太极语言中是这样设计的:一个编译单位中前后函数与类都是可见的,从而使用函数与类都不必先定义或声明,只要它在这个编译单位中会出现就可以了,所以是集合。  
   
  还有太极语言的类成员函数可以不必在类中声明(虚函数除外)。  
  在类中声明成员函数有一个缺点是如果有变动必须更改两个地方,违背了“唯一性原则”。而且这样往类中添加成员函数时很困难,比如我想往CString中添加一个成员函数又不改动MFC库怎么办?只要在语言中添加这么一个规则就可以了:类成员函数可以不必在类中声明(虚函数除外)。  
   
  当然使用时在编译单位中一定要有这个类成员函数的声明  
   
  比如  
  -----------  
  //mycstring.h  
  int   CString::fc(...);  
  ....  
  --------------  
  -------------  
  //1.u  
  ....  
  include("mfc/CString.h");  
  include("mycstring.h");  
  ....  
  CString   a;  
  a.fc(...);  
  -------------  
   
  当然了这样仍然要保持mycstring.h与mycstring.cpp中的CString::fc同形,如果有更改了还是要改两个地方,但是这个却可以非常容易的用工具自动同步,比类中声明的同步要容易的多。  
   
  (更多关于太极语言的介绍请见我以前的文章)  
   
   
  太极语言——八卦语言——阴阳语言,这就实现了完整的一套编译系统。  
   
  八卦语言八面玲珑,是非常容易自定义的,可以做任何CPU的ASM。  
  阴阳语言我一开始设计时还没想到直接套用太极语言描述的宏编译系统,那时设计了一些“阴阳怪调”的东西,比如各种校验码的生成等等,后来直接套用太极语言描述的宏编译系统,这些就都用嵌入式函数来做了。  
   
  一会我把八卦语言的x86机器配置文件发上来,可以支持MMX和SSE的。  
   
  问题点数:0、回复次数:18Top

1 楼wanderfox()回复于 2006-07-04 16:56:37 得分 0

呵呵,潜力贴Top

2 楼hai1039(天下)回复于 2006-07-04 17:10:49 得分 0

八卦和我们用的计算机以及二进制没有多大关系,如果有人认为"乾"代表111,"坤"代表000之类的话,那么请问对应二进制的加减乘除,移位,与,或,异或等运算是什么?  
  没有这些运算规则,就无所谓二进制和计算机  
  Top

3 楼hyq1986(func)(我是一只大蘑菇,咿呀咿呀哟~)回复于 2006-07-04 17:47:50 得分 0

快使用八卦语言,狠狠哈黑,快使用太极语言,咿呀咿呀!Top

4 楼Darkpurple(深紫-我最喜欢的颜色)回复于 2006-07-04 20:07:29 得分 0

楼主真是CSDN第一搞笑高手,“道可道,非常道;名可名,非常名……呜呼呜呼……”  
  Top

5 楼lexchou(龍子龍孫)(本人已死)(有事烧纸)回复于 2006-07-04 20:36:59 得分 0

没特色,都是这些语言一个抄一点东西  
   
   
  编译器哪里下载呢?Top

6 楼Bruce_Q(無名英雄)回复于 2006-07-04 21:06:52 得分 0

yong   qi   ke   jia   !!Top

7 楼mmmcd(超超)回复于 2006-07-04 22:18:30 得分 0

六十四卦语言何时推出?Top

8 楼DelphiGuy()回复于 2006-07-04 23:00:20 得分 0

楼主创造了世界第一的吹牛语言是肯定的。:)  
  Top

9 楼SamuelKevin(曼陀罗)回复于 2006-07-04 23:42:24 得分 0

在阶级斗争、生产斗争和科学实验三大革命运动的实践中,常常要用到分母是一百的分数。例如:先锋电机厂无产阶级革命派掌权后,坚决执行毛主席提出的“抓革命,促生产”的指示,今年第二季度的总产值比去年同期增长百分之六十八,六月份的总产值相当于去年同期的百分之二百;东方红纺织厂,今年上半年棉纱的总产量,完成了上半年生产计划的百分之二百零九点七;无产阶级文化大革命以来,农村中呈现出一片大好形势。光明生产队夏熟作物的总产量今年  
  比去年增长百分之七点九。象上面这些表示一个数是另一个数的百分之几的数,叫做百分数。  
   
    百分数通常采用一种简便的写法,就是去掉分数线和分母,在分子后面加上百分号“%”。例如:百分之六十八写成68%,百分之二百写成200%,百分之一百零九点七写成109.7%,百分之七点九写成7.9%。  
  Top

10 楼SamuelKevin(曼陀罗)回复于 2006-07-04 23:43:19 得分 0

接上边的  
  请用太极语言编写出以下程序  
  (1)上海照相机二厂无产阶级革命派夺权后,二月份主要产品比去年同期增长百分之六十。  
   
    (2)吴泾化工厂实现了革命的大联合,五月份主要产品合成氨的产量,比四月份增长了百分之十三。  
   
    (3)红旗电讯仪表厂无产阶级革命派夺权前,由于党内一小撮走资本主义道路酌当权派的破坏,1月中旬只完成全月计划的百分之二十八。夺权后,无产阶级革命派坚决响应毛主席提出“抓革命促生产”的伟大号召,下旬完成了全月计划的百分之八十一点六。  
   
    (4)从1966年到1967年全国粮食征购计划到2月20日止,已经完成了百分之一百零四点五六。  
   
    (5)上海工业战线上的无产阶级革命派,高举毛泽东思想伟大红旗,“抓革命,促生产”,工业生产呈现一片大好形势。今年一到五月份的工业总产值比去年同期增长百分之四。  
   
    (6)重型机械厂实现革命的大联合,促进了生产的发展,四、五两个月完成的总产值相当于一季度的百分之八十四。  
  Top

11 楼cattlenzq(吃狼的豆腐(不要给分了,散起来真麻烦!))回复于 2006-07-05 01:34:07 得分 0

换汤不换药。。。。。。。。。。。。。Top

12 楼akirya(坏[其实偶不是什么所谓的坏人])回复于 2006-07-05 13:25:06 得分 0

哈哈~   搞笑Top

13 楼xpdai(我是××语言他爹)回复于 2006-07-05 13:51:39 得分 0

偶准备发布九卦新闻Top

14 楼spacraft(Wo Cow! ++ root@linux)回复于 2006-07-06 10:09:03 得分 0

………………  
   
  ★个人小站■■■■■■■■☆  
  ■http://networks.3322.org■  
  ☆■■■■■■■■欢迎访问★Top

15 楼Oversense(步步文)回复于 2006-07-06 11:07:00 得分 0

 
   
  阴阳八卦语言   还是挺先进的  
   
  Top

16 楼universee(吾乃太极语言之父)回复于 2006-07-06 17:24:41 得分 0

对了,还有:  
  支持java虚拟机,.net虚拟机(这个有难度,因为代码中包含名字,但却仍然是可行的)  
  支持所有的嵌入式系统,  
  支持想象中的CPU,  
  支持任何已知的CPU及未知的CPU,  
  支持任何已经设计出来的CPU及任何尚未设计出来的CPU。  
  (注意:如果某种CPU指令是不能被写出来的那么可能就支持不了)  
  支持一切可写的CPU指令集,  
  还可以再怎么说呢?我刚才还想起来了一些,现在却想不起来了,  
  ……  
  哈哈,写到这里,我自己都笑的肚子疼啦,怎么这么好玩呢,简直成了娱乐八卦啦。  
   
  ---------------------------  
  帮我想想,还可以怎么说呢?Top

17 楼universee(吾乃太极语言之父)回复于 2006-07-06 17:26:19 得分 0

刚才还忽然想起来。用C++编程序,编译为JAVA虚拟机码,跑在JAVA虚拟机上,也是一件挺有趣的事情啊。Top

18 楼lexchou(龍子龍孫)(本人已死)(有事烧纸)回复于 2006-07-06 21:06:20 得分 0

楼主估计和sinox有一腿Top

相关问题

关键词

得分解答快速导航

  • 帖主:universee

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo