今天早上五点我突然自己醒了,广语言灵感源源不段,马上就爬起来,找到笔与纸,一下子用红笔写满一张纸,那些内容是关于广语言的思想、目的、目标,现在这些算是基本确认,有种完美的自大快感。也许,自己已经确信这是一种通往人工智能语言的方式,核心是“极广、极简、极易、极强”。(有点大道至简、大道至易的味道)
以前我一直说广语言并不是一种真正意义上的新语言,而是一种基于现有各种语言与脚本实施自然语言执行与编程的编程新范式。由于昨晚看了新买周爱民那本《javascript语言精髓与编程实践(第二版)》还有前天学了一天的lua有今早的突然自己醒来。如果javascript、lua、lisp算是语言,那么广语言就算是一种语言。因为,javascript是用c++实现,而广语言是用javascript、as3、php等语言与脚本实现,同样是在另一种语言上做一种新语言。lua是用c实现,广语言涉及更广,在同一种语言里,会包含javascript、html5、mysql、css、php、 java、c、c++、as3、php、java、perl、ruby、lisp、vb、bat、shell、lua、c#、易语言、erlang、F#、object-c等实现(注:目前主要是先实现“javascript、html5、mysql、css、php”这五种),原则上也是使用这些语言自身去实现以及解释与执行。而语法与一些特性会与lisp很相近,这是在我没有了解lisp之前就确认下来,目的就是用同一种语法去做所有的事,现在广语言的语法就是【广参】,【广】是指一个汉字或一个单词,后面就是【参】数,多个参数用逗号“,”分隔,或智能自动分隔,第一期会使用小学须掌握的2501个汉字作为函数名,比如“上”就是上那个网站,比如“听”就是听音乐。如果必须需要两个汉字的,比如“平方”,那么调用函数名也是“平”,而方作为参数,在【平】的函数里再判断参数的第一个字是不是“方”,如果是则调用【平】函数的内建函数“平方”来处理,如果不是,则把参数平分,即相当于除以2。
广语言的之所以“广”,是因为想通过一种方式完成各种语言或脚本能做的所有事情或者说完成计算机能做的所有事情,也可以与原始的方式混合,即现有的代码你可以直接重用于广环境下,也可以直接使用原始语言/脚本的编程方式与广式混合编写,通常是由首行判断不同的语言以及是否为广式,如果不是广式则不对代码进行“广译”(即转换为目标语言或脚本)。因此当你的代码一开始用“function”后,里面最好不要用广式代码,除非你设置了“强制使用广译”。如果是用“函”后,则会执行“广译”但这样会对效率产生一定的影响。这时你会问,为什么影响效率还需要用这种方式,原因是广语言的目标先是极广(能让不同的语言用同一种关键字以及写法)、然后是极简(能用一个字就不用二个字,这样虽然违背了自然语言用词的习惯,但加上“别名”的方式,你也可以用语或随意的多字,用一个字是为了任何时候都没有二义)、再是极易(不需要学英文也可以编程,传统的方式很多是英文,所以本土化后能让更多的人参与其中,而高手通常是来自人民群众)、最后是极强(能实现一切、能集众人的成果与智慧),而没有提到“极快”,这也许是下一个目标,但不是广语言现阶段能实现的,只能是让你学习一种又一种语言时做到快,在不同语言中切换是做到快,但这并不是运行效率上的快。
既然脚本语言可以叫语言,那么用脚本语言写的通用语言脚本也应该可以叫语言(就让我脸皮厚一次吧)。现在也许只是一种DSL(领域专用语言),用于ria4.com 的微聊、编程以及微信上,但这显然不是创造这种编程方式的目的。由于我的英文水平低,所以当初是希望创造一种用本土语言编程的方式(即汉语编程),后来是希望让普通人也能轻易学会编程这种新时代很重要的技能,也就偏向了用“自然语言执行与编程”的方式,再后来发现微博能让信息在收听下传播,与我想让某个人可以很快地利用别人的成果这种途径很相近,所以就有了现在的各种集源众包的社会化编程共享机制。
正如我刚才多次表达这句“自然语言执行与编程”的话那样,先是“自然语言执行”里用到相关技术,再在“自然语言编程”里用到,所以前期,其实执行函数是通过消除符号的使用,消除其他语法只保留一种“广参”的语法而实践,比如“上百度”、“听ria4.mp3”等来实践,中期会把这种方式直接用在函数以及程序用自然语言编程上,后期会利用微博式的集源开发、收听、共享等机制,决定函数的多态、优先级以及利用“人”实现“人工的智能”(注意中间有个“的”字),让在广博(一种专用于集源分享代码的微博)上能众包式开发程序,实现代码也来一次web2.0,即人人为我,我为人人,每一个人写的代码都能即时让其他人使用、复制、修改、扩展,更广泛地实现共享众人的编程智慧。
如果有兴趣的,可以打开 http://ria4.com 点【微聊】,输入【听】或【听纯音乐.mp3】或【听http://ria4.com/mp3/ok.mp3】或【上百度】或【加3,4】试试。
从今天起,我开始在csdn记录这种自创的语言,希望能让“人去学习与适应编程语言”的时代能向“编程语言要去适应各种各样的人”的时代过渡。面向过程、面向对象、面向切面,下一个面向,我想就是“面向人”。现在广语言是用通过转为js php html5 mysql css等原生代码的方式执行,以后会在Google_JavaScript引擎(V8)、SpiderMonkey、Narcissus等基础上开发一个自主的广语言解释引擎,由此引擎直接解释执行。
///////////////////////////////////////