`
zhouyrt
  • 浏览: 1126515 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

各代程序设计语言拓扑

 
阅读更多

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。这些语言的构建块是模块,逻辑上是一组类或对象,而不是早期的子程序。基于对象或面向对象语言的应用程序表现为一个图,而不是面向算法(过程)语言那样通常是一棵树。此外,很少或基本没用有全局数据(变量)。

 

 

 

  • 大小: 11.8 KB
  • 大小: 18.4 KB
  • 大小: 25.8 KB
  • 大小: 21.7 KB
分享到:
评论

相关推荐

    琴生生生成式代理源码(第一部分),琴生生物机械科技工业研究所ai代理中介服务琴语言解析原型试验机代码(不含打包,构建程序)

    游戏理论前沿(信息权谋司时空管理局琴语言语料库信息情报科琴生生物机械项目组)信息经济统筹框架设计。 研究与开发组织结构 琴生生物机械科技工业研究所 书道学部 社会关系力学学院子休经济学系一尚韬竹工作室...

    envoyproxy开发手册(中文参考)

    所有的Envoy形成一个对应用透明的通 信网格,每个应用程序通过本地发送和接受消息,并不感知网络拓扑结构。这个外置进程的架构相比传统 的基于library库服务通信,有两个优势; Envoy可以与任何语言开发的应用一起...

    cherry:用Go编写的OpenFlow Controller

    该项目不是为一般目的而设计的,而是针对IT服务提供商的SDN(软件定义的网络)。 产品特点 支持OpenFlow 1.0和1.3协议 专注于与支持OpenFlow的商用交换机的兼容性 支持其中包含环路的网络拓扑 提供一些北向应用程序...

    计算机应用基础选择题.docx

    以高级语言编写的源程序要在计算机上执行,必须先要经过_ A_加工为目标程序才可执行。 A.编译程序B.操作系统C.汇编程序D.办公软件 10.若十进制数为57,则其二进制数为__ B ___。 A.111011B.111001C.110001D.110011 ...

    算法导论(part1)

    如果希望实现这些算法中的任何一个,就会发现,将书中的伪代码翻译成读者熟悉的某种程序设计语言,是一件相当直接的事。伪代码被设计成能够清晰简明地描述每一个算法。因此,我们不考虑出错处理和其他需要对读者所用...

    算法导论(part2)

    如果希望实现这些算法中的任何一个,就会发现,将书中的伪代码翻译成读者熟悉的某种程序设计语言,是一件相当直接的事。伪代码被设计成能够清晰简明地描述每一个算法。因此,我们不考虑出错处理和其他需要对读者所用...

    TCP/IP技术大全(中文PDF非扫描版)

    还介绍了如何使用TCP/IP应用程序,包括远程登录、FTP、Web浏览等。 目 录 译者序 前言 第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3...

    TCP-IP技术大全

    还介绍了如何使用TCP/IP应用程序,包括远程登录、FTP、Web浏览等。 目 录 译者序 前言 第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 ...

    TCP/IP教程TCP/IP基础

    6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章 WINS 55 7.1 NetBIOS 55 7.2 NetBIOS名字解析 57 7.3 动态NetBIOS名字解析 58 7.3.1 使用...

    TCP/IP技术大全

    6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章 WINS 55 7.1 NetBIOS 55 7.2 NetBIOS名字解析 57 7.3 动态NetBIOS名字解析 58 7.3.1 使用...

    TCP/IP详解

    6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章 WINS 55 7.1 NetBIOS 55 7.2 NetBIOS名字解析 57 7.3 动态NetBIOS名字解析 58 7.3.1 使用...

    TCPIP协议详解(4-1)

    服务器通信 161 16.8.1 LDAP数据互换格式(LDIF) 161 16.8.2 LDAP复制 162 16.9 设计LDAP服务 162 16.9.1 定义需求 162 16.9.2 设计策略 163 16.9.3 性能 164 16.9.4 网络功能 165 16.9.5 ...

Global site tag (gtag.js) - Google Analytics