LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1259|回复: 15

有没有可能打破现有的语言结构?

[复制链接]
发表于 2005-7-10 11:24:40 | 显示全部楼层 |阅读模式
我所知道的语言都是采用 顺序,选择,循环结构,有没有可能打破这种结构,如果可以的话,那么程序的逻辑结构是不是可以变的更加简单呢?可能代码会变的很长很长,但可以让计算机去完成它。
发表于 2005-7-10 13:44:00 | 显示全部楼层
不能,这些逻辑结构是被数学证明过的完成事件的最基本逻辑,就好像数字电路里面的与非门一样,你可以组成非常复杂的程序,可是最底层实现还是基本逻辑。除非,你可以推翻这个数学证明。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-10 21:00:23 | 显示全部楼层
Post by gvim
不能,这些逻辑结构是被数学证明过的完成事件的最基本逻辑,就好像数字电路里面的与非门一样,你可以组成非常复杂的程序,可是最底层实现还是基本逻辑。除非,你可以推翻这个数学证明。


我的想法是 是否可以搜集好的代码,组成成一个功能上独立,逻辑结构具备完备性的代码库,然后写一个程序,来自动生成所需要程序的源代码或可执行文件,但是如果它本身的语言结构还是那么复杂的话,一个更复杂的程序,对他来说仍然要手工完成很大的工作量,就失去意义。

我想shell其实已经实现了这个程序的后端的功能,他下面有那么多优秀程序可以调用,已经形成一个代码库。

我总结程序之所以复杂,是因为他的结构,

请大家发表一下看法啊!
回复 支持 反对

使用道具 举报

发表于 2005-7-11 00:09:29 | 显示全部楼层
你说的是代码重用的问题吧?跟程序的结构似乎关系不大
回复 支持 反对

使用道具 举报

发表于 2005-7-11 07:39:59 | 显示全部楼层
如果可能的话,人就没用了
回复 支持 反对

使用道具 举报

发表于 2005-7-11 08:34:55 | 显示全部楼层
这样的代码生成方法早就有人在研究,但它只适用于需求比较明确的特定的应用领域,想把它变成一种通用的方法是非常困难的。

关于程序的复杂性,应该主要在其与应用需求相关的概念性结构,而非程序结构。如果单说程序结构,它再复杂,也是一个明确定义的规模很有限的系统,自动生成代码是不难办到的。
回复 支持 反对

使用道具 举报

发表于 2005-7-11 14:01:36 | 显示全部楼层
框架就是做这个的.有兴趣你可以试用不同的框架,如MFC、VCL、.net等等。
回复 支持 反对

使用道具 举报

发表于 2005-7-11 14:12:28 | 显示全部楼层
精简指令集与复杂指令集
回复 支持 反对

使用道具 举报

发表于 2005-7-11 16:01:29 | 显示全部楼层
Post by 弥敦路九号
精简指令集与复杂指令集

扯太远了,和指令集体系结构没有关系。
回复 支持 反对

使用道具 举报

发表于 2005-7-11 17:57:31 | 显示全部楼层
问题一:程序的结构都是顺序,选择,循环。这是由单处理器的硬件结构决定。即使是并行程序,也是通过一个个串行的程序联系起来的。我想硬件结构没有突破现存的模式之前,软件程序结构发生突破的可能性不大。

问题二:程序为什么复杂。编程中有句话:“自顶向下,逐步细化”,这道出其中的精髓。程序要处理的事情本身就是由很多过程组成,程序的设计过程就是把这些过程分解到单个的指令,这类似于把物质分解成原子,当然就复杂了。 代码重用可以减少重复做同样的分解过程,但是由于程序之间目标的差异性,当没有代码可以重用时,就只能按部就班。我想,代码库丰富到一定规模,同时代码库的组织和重用效率非常高的情况下,程序设计的复杂程度会大幅度下降。

问题三:改变程序结构可以提高编程效率吗?这个问题很难确切回答。我想从另一个角度来说,现在提高编程效率的方法主要还是最大限度重用已经有的代码成果,而典型的做法就是针对专门的应用领域,采用专用的开发系统。从这个角度来说,编程效率主要取决于开发系统,而和程序结构、程序语言关系不大。比如开发网站系统用.net Websphere,开发ERP用SAP等等。

问题四:通用代码生成。这个题目太大了。我想,如果这样的东东,那么可能需要具备下面一些条件:
a. 具有一个庞大的描述体系,这样才可能用简单的方式描述复杂的程序过程,类似人类语言的描述能力,因为文字、语句的复杂性,使得简短的句子可以表述大量的信息;
b. 一个庞大的代码库,保存可能用到的各种过程,而且这样的代码库不可能手工维护,感觉需要一个智能的数据库,或者说知识库;
c. 一个高效的翻译系统,可以把简单的描述转化为代码,当中可能需要层层的中间翻译过程。这个翻译系统最好有自学习、模糊匹配等功能。

从这些角度考虑,可能海量存储、高速处理、人工智能等等的很多方面要有突破才可以。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表