主题:Lua 语言? -- GUNXU
语言里没有原生OOP支持,我们可以自定义OOP的语法元素,在编译器里扫描这个特征的字符串,再插入相应原生语言的代码实现OOP内部的机制.再比如应用中有许多一定设计模式的要求,设计模式的实现往往要很多写很多语句,用到一定的额外数据结构的支持,编程时费事费力,还要纠错.可是概念上,这些工作都是重复劳动,完全可以让编译器自动生成相应的代码,从而让编程者只专注于算法,核心逻辑,而不用考虑其他.这样一来,应用会简单得多.为了维持一个好的系统,我们可以把设计思想印在语言里,而引导(甚至强制)后来的编程者自觉不自觉地贯彻原始设计思想.这个哲学对我们系统的成功很有关系.因为,系统的应用变化量太大,适用性,灵活性,快速反应性,时效性要求很高,不可能用软件工程的管理模式来控制质量.只有靠"代码文化"或是同伴的互相监督制度来保证,这样一来,一个印入设计思想的语言不仅可以加速开发,还是这个"代码文化"的宪法和保障.
说上面说的可能有点玄,在举个实际一点的例子.如果我希望一段用脚本语言写的数值运算的代码有C的速度,我可以创造一个标识代码如@Accelerator(){ }, 把这段代码包含起来,在运行时把它直接编译成汇编程序(当然要有合适的接口以适应上下文),而在纠错时只是把标识代码去掉,这样可做到无缝的纠错,无缝的高效运行。在这个系统里,脚本语言的“胶水特性”恐怕就剩不下多少了。同样在利用GPU高速运算时,一个瓶颈是写Cuda代码,我们也可以用类似的技术简化应用的门槛。(这里也许有人会记起Python里的CType.但是这个构想更接近于JIT,因为我们还是在写脚本语言的语句,而不是在脚本程序中加入C语句。和JIT不同的地方是我们严格限制在@Accelerator里的原生语法只是作用在数值类型和数组类型,所以实现简单,也比JIT快)
一句话,脚本语言,编译技术已经把编程的技术门槛降的很低。在IT技术中,也许是离开关注编程,编程语言和设计模式的时候,而是把注意力转到具体的应用和问题上。经常和朋友笑说“珍视生命,远离C++",大家姑妄听之。
本帖一共被 1 帖 引用 (帖内工具实现)
- 相关回复 上下关系8
🙂请教什么是再入式编译器和非侵入性的扩展原语言? 金口玉言 字121 2011-02-11 06:42:11
🙂再入式编译器和非侵入性扩展 GUNXU 字305 2011-02-11 17:26:14
🙂能不能具体介绍一下 pastebt 字46 2011-02-11 22:18:06
🙂比如说
🙂放弃Lua,专注python 7 GUNXU 字270 2017-04-02 10:52:33
🙂关于设计模式,似乎比较有意义 pastebt 字46 2011-02-12 15:40:48
🙂外接库牵扯广 GUNXU 字63 2011-02-12 19:57:34
🙂Lua 语言强过很多静态编译语言 1 GUNXU 字864 2011-02-05 15:40:55