A语言
A语言使电脑具能有人性,智慧;第一步必须统一语言;使电脑也用自然语言。这里介绍的就是一种尝试。A语言是一
种人和电脑都能理解的描述世界事物的自然语言。在高端是人可解读的自然语言,在低端又是能通过编译器汇编成
电脑能解读的机器码的汇编语言。
万物都是容器,A语中容器的符号是U。对象就是单个容器的别名。具有某些相同属性特征的容器归纳成类。因为
具体的对象是很复杂的,会有很多的属性类;所以一个对象必定属于一个或多个类。
因为事物都是具有层次的树状结构,所以智初(apo)的对象描述文档DXWD形成了一种树结构,它从“根部”开始,
然后扩展到“枝叶”;DXWD 文档必须包含根节点。在节点树中,顶端的节点成为根节点,根节点之外的每个节点都
有一个父节点,节点可以有小于256个的子节点。叶子是没有子节点的属性标签行,同级节点是拥有相同父节点的节点。
根节点是树中唯一一个没有父节点的节点。根节点最大有小于255个的子节点。
整个文档是一个文档根节点,每个标签行是一个节点或叶子(属性)。一个文档最大有64K个节点。对象是很复杂
的,一个对象会从多方面去描述从而形成多种描述文档构成的文档包。
A语言编写规范: 使文档更易读,从而更易于理解。
1. 标签行是一个节点的写法:
节点名称; // ";"是标签行结束符号。
2. 标签行是一个源代码节点的写法:
代码节点名称(); // 源代码节点构成一棵源代码节点树。描述对象的行为,状态等。main是根节点。
3. 标签行是一个属性节点的写法:只有一行的属性节点为属性标签行。
属性节点名称; // 属性节点最多有一个小于256个的属性标签行集。
4. 标签行是属性节点数组的写法:
属性节点数组名称[]; //
属性节点数组名称{ // 属性节点数组变量的结构描述。结构型数组。
BUXXZ 第一项成员变量名称 值; // 最多有255项,描述数组变量的结构。项也可是属性节点。
。。。。。。。。。。。。。
}
5. 属性标签行是属性数组的写法:
BUXXZ 属性数组名称; //
6. 属性标签行是数值变量或常量的写法:
BUXXZ 位容器名称 值; // 位容器名称与值之间最少空一格。BUXXZ说明变量的字(16位二进制)数XX。
7. 属性标签行是字符串变量或常量的写法:
字符串变量名称"字符串";// 字符串变量名称与值之间最少空一格。
8. 节点的标准写法:
节点名称{
子节点名称; // 在有些文档中可能写成 子节点名称(JDMUF);
。。。。。。。。。。。
属性节点名称; // 在有些文档中可能写成 属性子节点名称(JDMUF);
。。。。。。。。。。。
属性标签行; // 在有些文档中可能写成 属性标签行(JDMUF);
}
9. 电脑只有数字,装数值的地址 又如何能解读对象描述文档?其实电脑的编译器会对文档内的所有节点(包括
属性节点,子节点)按文档顺序统一分配一个唯一的指向数值项是X字的节点描述符数组的节点索引数值index。
JDMUF[]; 数组的每一项对应一个节点。
10. JDMUF节点描述符的定义:只对最高字节作了强制,其余字节参见其它文档中的定义。
JDMUF节点描述符部分是编译器填写,部分是用户编写。
JDMUF{
BU16JDMUF1;// 最高字的高字节JDMUF1H是指节点的深度级数,根节点是0X00。低字节JDMUF1L一般是所含的子节
// 点数,对于属性标签行则是属性标签行的类型。如样式文档中的颜色,字体,字的大小,消息等。
BU16JDMUF2;// 根节点时一般是分配到的唯一的文档对象索引值。其它就难说了。
。。。。。。。。。。。。。。。。。。。。。。。
}
11. 对象描述文档命名规则:
1、名称可以含字母、数字以及其他的字符。如中文。
2、名称不能以数字或者标点符号开始 。(第一个字符也可以是下划线,但被视作系统自定义的标识符)
3、名称不能以字符 “BU”开始 。
4、名称不能包含空格。大写字母和小写字母被认为是两个不同的字符。
5. 名称中间不能包含":"(冒号) ,名称尽量简短。
6、可使用任何名称,保留字词有:
“{}”; //节点描述大刮号对。
“()”; //函数描述小刮号对。
“[]”; //数值描述中刮号对。
“//”; //行注释符号。注释是为了便于阅读和理解;附加信息,将不会被程序解释。
“;”; //行结束符号。
还有“main”等保留字,参见其它文档中的定义。
12. 对象描述文档后缀(File Suffixes),参见其它文档中的定义。
对象描述文档源文件 .dxwd
对象代码描述文档源文件 .cs
窗口对象描述文档源文件 .ikwd
二进制代码数组可执行文件 .exe
http网页文件 .httpwd
式样文件 .css
一个文件由被空行分割而成的段落以及标识每个段落的可选注释共同组成。超过2000行的文档
难以阅读,应该尽量避免。
13. 引入语句(Import Statements)引入另一对象的属性。节点的名称中可使用"."。"."是作为对象的属性。
14. 行长度(Line Length), 行的长度不超过128个字符。一行描述一个节点。
15. 注释界定符"//",可以注释掉整行或者一行中的一部分。
16. 空行(Blank Lines)空行将逻辑相关的码段分隔开,以提高可读性。
神马意思???? 又是一门垃圾语言 本帖最后由 sankong 于 2012-5-18 01:36 编辑
// 我在这发表自己的研究心得的本意是供同行参考,也希望有人能提出具体的意见。而不是一句话否定。
// 看来是我考虑欠缺了。林子大了什么鸟都有,井底的青蛙也能叫。
// 这个项目我会继续研究下去,不过就不发表了。 帮顶楼主! 楼主应该把你的设计理念写出来,这个比具体实现细节重要 虽然也没看懂,支持楼主的精神
来自:amoBBS 阿莫电子论坛 Android客户端 你还是发到百度贴吧那种地方去吧 想法不错 这个可以有,
大家要宽容,
一张嘴就垃圾什么的,唉 同意楼上,大家心态要开放一些。
除了汉澳操作系统那种神经病和方舟子之外。 个人觉得/*....*/注释更好看点 sankong 发表于 2012-5-18 00:48 static/image/common/back.gif
// 我在这发表自己的研究心得的本意是供同行参考,也希望有人能提出具体的意见。而不是一句话否定。
// 看 ...
请问LZ是针对什么方向开发的,如果是嵌入式领域的话就算了。PL/M我感觉这种语言不错,但都黄了
如果是其他领域的话,我想应该会不错
建议楼主看看XML就知道了,是可以自己定义任何一种类型的。你说的A语不会是什么“丫妈蝶丫妈蝶丫妈蝶”吧,呵呵,纯属娱乐,请不要介意 写程序就象写中文小说一样。汇编语句就3种20多条,全用中文写程序也行。这跟XML形似而本质完全不一样! // APO应用程序框架
// 源代码节点构成一棵源代码节点树。描述对象的行为,状态等;main是根节点。
// 源代码描述文档JDMUF节点描述符的定义:由编译器据源代码描述文档生成的32位即是2字的机器指令码
// 或子程序指针。文档中的所有行都是属性节点或属性标签行。通常是汇编指令或子程序。
// 在开发APO应用程序的过程中有一些重要的步骤:
// *用A语言编写main()函数和相关的窗口函数。
// *创建菜单、对话框和其它资源并把它们放入资源窗口描述文挡。
// *使用Unicode编译器中的编辑器来创建对话框等。
// *用项目文件来编译并链接所有的A源程序和资源文件
// APO需要一个main()函数。这是应用程序开始执行和结束的地方。
main{ // 代码根节点,JDMUF根节点(进程)描述符由内核定义。
初始化函数(); // JDMUF节点描述符为由编译器产生的2字的节点指针。
SNP对象通信线程(); // 0号消息处理线程。
鼠标键盘消息处理线程();// 1号消息处理线程。
定时器消息处理线程(); // 2号消息处理线程。如需要处理定时器消息则增加这一个线程。
中断消息处理线程(); // 3号消息处理线程。如需要处理中断则增加这一个线程。
用户线程4(); // 4号用户处理线程。如需要则增加,一切随意。
。。。。。。。。。。。。。。。。。。。。。。
用户线程N(); // N(<=63)号用户处理线程。
}
//进程,线程的切换由内核执行。使用Unicode编译器,可处理中文标称。
SNP对象通信线程{ // 只处理进程间的通信消息。
。。。。。。。。。。。。。。。。。。
}
//消息循环:适用于1,2,3号消息处理线程。
BU32msg; // 消息循环表中的32位消息变量
XXX消息处理线程{
获取消息(); //从消息循环表中取消息,返回msg到R1寄存器。
转移指令(CMP(R1,0X感兴趣的消息值), DST);// 相等转移, DST为标号(地址)或绝对地址如0X1234,处理感兴趣的消息。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
}
// 不要把消息处理想的太复杂,打个简单的比方:假如你是一位接线员,在你前面的桌上有很多部电话,
// 那么你要做的是:有电话响时就接电话,没有电话响时就什么都不做。是不是很简单!其实消息处理也就
// 是这个道理。
// 消息通知一个应用程序发生了一个事件。从技术上来讲,消息不仅仅是与应用程序相关,而且是与应用
// 程序的某一特定窗口有关。与WINDOWS的所有的消息都被发往窗口不同,APO用另一方式。
// APO 不使用消息队列;也不会将消息处理方法封装到具体的对象中。APO追求的是尽可能少的代码量。
// 相当于WINDOWS操作系统功能的代码量估计不到8K字,而不会象WINDOWS的以GB为单位。8K字,4K行的代码
// 也是非常恐怖的事啊。
// 我的个性喜欢简单,对于砖头级的书本通常只看开头与目录,想进一步了解的话多半是看网上的通俗介绍
// 文章;之后靠想象。我的印象中单片机项目做过3次;VB,C#做过1次;没用过C。其它的那些对我来说都是
// 很遥远的梦。多年前,对JAVA曾有过“3分钟激情”,但看到后面的一堆砖头,小生怕怕,赶紧退缩。那要
// 浪费多少看小说,玩游戏的时间啊?几年前的一个项目,请别人来用JAVA来编写,总算了结了一点心愿。
// 说实在我看到那些鸡鸭肠子般的代码通常会想睡眠。同样,为使人脑能更清晰阅读的XML,又使我再次产生
// “3分钟激情”。而往后看,一个字”晕“。看看,那个MS已经把软件界搞到一塌糊涂了,就像精简机构一
// 样越精越复杂。天啊!我只想看到简单的能理解的“软件”,就象看小说一样。我的超脑什么时候才能实
// 现啊!这几年我做建筑节能,成果多多,推广则困难多多。即使LED驱动电源做到世界第一也是没多少用。
// 这就是我们的现状。也许MS是对的,就是要复杂化,才能捞鱼。
A语言这个名字就和电脑中的A盘一样早就该消失了,自从VB语言之后出现了强大的C语言,然后又出现了增强的C++, 在C++上又出现了C#, 后来加号实在太多了,终于出来了D语言。
楼主要发明也应该从D++或者E语言开始, 创建A语言,实在是食古不化。 LZ的思想不错!希望LZ多发发这些方面的资料!我支持你LZ! sankong 发表于 2012-5-19 15:28 static/image/common/back.gif
// APO应用程序框架
// 源代码节点构成一棵源代码节点树。描述对象的 ...
感觉像c语言啊,就是不用英语用汉字的吗,这样不是多此一举吗?不是有易语言了啊,不看好。看着像抄袭别人的思想,只是换了一层皮而已,呵呵见仁见智 楼主所谓的“A语言”中,A 表示什么?
如果没有确切的解释或者定义,俺可以认为楼主纯粹是哗众取宠。 很快就有A++了 huayuliang 发表于 2012-5-22 14:17 static/image/common/back.gif
楼主所谓的“A语言”中,A 表示什么?
如果没有确切的解释或者定义,俺可以认为楼主纯粹是哗众取宠。 ...
也是这个想法,但是没敢说出来{:lol:} 我将“智初”-具有初步智能的电脑命名为“APO",我为之设计的一种人脑与电脑都可使用的自然语言称为A语言。
APO的虚拟机器码与汇编语言已经完成, 下一步做编译器。 从网上查阅编译书籍,结论是复杂难做,无法参考。 决心从新设计, 初步估计需编写100多行。
构造与生成: 错误表, 保留字表; 机器码表,符号表。 本帖最后由 sankong 于 2012-5-22 21:33 编辑
centrineer 发表于 2012-5-22 14:06 static/image/common/back.gif
感觉像c语言啊,就是不用英语用汉字的吗,这样不是多此一举吗?不是有易语言了啊,不看好。看着像抄袭别 ...
用的是虚拟汇编语言! 一行一条指令,对应2字(32位)的机器码。从内核到编译器到应用程序都是用A语言编写。我不知道易语言是? 示例程序就是明显的C风格,不过函数名改成中文罢了,一门语言哪有这么简单创造出来的 支持LZ,不要受人影响,坚持才是真理。
不过最好不要用A语言,这个语言真的存在,还有B语言,所以里奇才会把他的C语言叫做“C语言”,呵呵,改个名字吧。 完全是我自己个人脑子里的想法
我以为 A语言 就是ASM语言
B语言 就是BASC语言
C语言 应该坚持的。
往往在做到中途的时候会在自己思考过的东西中发现规律,从而出现更好的设计。 sankong 发表于 2012-5-22 21:31 static/image/common/back.gif
用的是虚拟汇编语言! 一行一条指令,对应2字(32位)的机器码。从内核到编译器到应用程序都是用A语言编 ...
那静观楼主大作,天才往往不会被世人理解,说不定楼主真的能改写编程的未来呢,加油吧,呵呵 楼主大才 // 应用程序被限制在一个单元(64K字)内。PC指针高字由内核分配与修改,一旦用户进程造成PC指针跑飞。
// PC指针高字变动,则会引发一个异常。只有系统调用SVCALL与线程切换XIQH这2条指令改变PC指针高字时
// 不会引发一个异常。同样,如果应用程序申请并分配到的空间大小是X,一旦对空间的操作超过X,则会
// 引发一个异常。这是最基本的保护功能,不允许用户进程破坏内核与其它进程。
// 应用程序的代码大小能达到3万多行是不可能的。超强的指令集已经内含了SQL指令集,字符串指令集,
// 并行运算指令集,位管理指令集。虽然指令集是超强的,但基本上只有易于实现的3条大指令。
http://blog.sina.com.cn/u/1097224147 我没学会C语言,期待楼主能搞出来 这个转换软件 ...编译器做好了吗? 支持楼主
最牛B的语言以及编程思想是这样的
void main("想要啥自己拿啥")
{
运行起来!不能出任何错;
} 没发现它有什么用意。有什么优势? 楼主建议您找个明白一些的人讨论一下...您的基础知识有一定的问题...您这个东西不叫语言...叫Framework....中文叫"框架"....
页:
[1]