各代法度设计说话拓扑

    添加时间:2013-6-27 点击量:

    Wegner按照说话的功能和产生的时候,将一些风行的高等说话进行了分类。



    第一代 (1954-1958)



    • Fortran I

    • Algol 58

    • Flowmatic

    • IPL V



    第二代 (1959-1961)



    • Fortran II

    • Algol 60

    • Cobol

    • Lisp



    第三代 (1962-1970)



    • PL/1

    • Algol 68

    • Pascal

    • Simula



    代沟 (1970-1980)



    • C

    • Fortran 77



    面向对象 近代 (1980-1990)



    • Smalltalk 80

    • C++

    • Ada83

    • Eiffel



    框架呈现 (1990-)



    • VB

    • Java

    • Python

    • J2EE

    • .NET



    我们看看各代的拓扑布局,所谓拓扑指的是采取该说话开辟后的根蒂根基物理构成单位,以及各项目组是如何连接的。


    第一代和第二代早期编程说话的拓扑



    这些说话编写出的法度表现出相对较平的物理布局,只包含全局数据(全局变量)和子法度(函数)。


    箭头注解子法度对全局数据的依附。设计时应当将逻辑上不合功能的全局数据分隔,但说话却没有任何机制强迫确保分隔。因为全局数据对所有子法度都是可见的,是以某个不相干的子法度批改了另一个功能的全局数据就会带来意想不到的bug,甚至灾害。



    第二代后期和第三代早期法度设计说话拓扑



    根蒂根基布局和第一代差不久不多,但子法度更进一步了。子法度在1950年就发了然,作为一种抽象那时却没有被完全接管。到了第二代,子法度被认为是抽象法度功能的一种首要体式格式。


    此时子法度产生了一些变更,改进:



    1. 很多说话发了然参数传递

    2. 很多说话支撑嵌套子法度


    呈现了布局化法度设计,哄骗子法度作为根蒂根基构建块,为试图构建大型体系供给了领导。



    第三代后期法度设计说话拓扑



    与第二代比拟,此时呈现了模块,模块中包含数据和子法度,功能按模块分组,各模块中数据互不干扰。


    固然有模块的概念,但模块却很少被认为是一种首要的抽象机制,实践中它们只是用于对最有可能同时改变的子法度分组罢了。



    (基于对象和面向对象法度设计拓扑)



    数据抽象对于把握错杂性是很首要的,抽象数据类型到类型概念理论的呈现导致基于对象和面向对象说话的出生。


    从Pascal,Simula再到完周全向对象的Smalltalk。这些说话的构建块是模块,逻辑上是一组类或对象,而不是早期的子法度。基于对象或面向对象说话的应用法度发挥解析为一个图,而不是面向算法(过程)说话那样凡是是一棵树。此外,很少或根蒂根基没用有全局数据(变量)。





    读书,不要想着实用,更不要有功利心。读书只为了自身的修养。邂逅一本好书如同邂逅一位知己,邂逅一个完美之人。有时心生敬意,有时怦然心动。仿佛你心底埋藏多年的话,作者替你说了出来,你们在时光深处倾心相遇的一瞬间,情投意合,心旷神怡。
    分享到: