|
|
发表于 2005-7-11 17:57:31
|
显示全部楼层
问题一:程序的结构都是顺序,选择,循环。这是由单处理器的硬件结构决定。即使是并行程序,也是通过一个个串行的程序联系起来的。我想硬件结构没有突破现存的模式之前,软件程序结构发生突破的可能性不大。
问题二:程序为什么复杂。编程中有句话:“自顶向下,逐步细化”,这道出其中的精髓。程序要处理的事情本身就是由很多过程组成,程序的设计过程就是把这些过程分解到单个的指令,这类似于把物质分解成原子,当然就复杂了。 代码重用可以减少重复做同样的分解过程,但是由于程序之间目标的差异性,当没有代码可以重用时,就只能按部就班。我想,代码库丰富到一定规模,同时代码库的组织和重用效率非常高的情况下,程序设计的复杂程度会大幅度下降。
问题三:改变程序结构可以提高编程效率吗?这个问题很难确切回答。我想从另一个角度来说,现在提高编程效率的方法主要还是最大限度重用已经有的代码成果,而典型的做法就是针对专门的应用领域,采用专用的开发系统。从这个角度来说,编程效率主要取决于开发系统,而和程序结构、程序语言关系不大。比如开发网站系统用.net Websphere,开发ERP用SAP等等。
问题四:通用代码生成。这个题目太大了。我想,如果这样的东东,那么可能需要具备下面一些条件:
a. 具有一个庞大的描述体系,这样才可能用简单的方式描述复杂的程序过程,类似人类语言的描述能力,因为文字、语句的复杂性,使得简短的句子可以表述大量的信息;
b. 一个庞大的代码库,保存可能用到的各种过程,而且这样的代码库不可能手工维护,感觉需要一个智能的数据库,或者说知识库;
c. 一个高效的翻译系统,可以把简单的描述转化为代码,当中可能需要层层的中间翻译过程。这个翻译系统最好有自学习、模糊匹配等功能。
从这些角度考虑,可能海量存储、高速处理、人工智能等等的很多方面要有突破才可以。 |
|