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年就发明了,作为一种抽象那时却没有被完全接受。到了第二代,子程序被认为是抽象程序功能的一种主要方式。
此时子程序发生了一些变化,改进:
- 很多语言发明了参数传递
- 很多语言支持嵌套子程序
出现了结构化程序设计,利用子程序作为基本构建块,为试图构建大型系统提供了指导。
第三代后期程序设计语言拓扑
与第二代相比,此时出现了模块,模块中包括数据和子程序,功能按模块分组,各模块中数据互不干扰。
虽然有模块的概念,但模块却很少被认为是一种重要的抽象机制,实践中它们只是用于对最有可能同时改变的子程序分组而已。
第四代(基于对象和面向对象程序设计拓扑)
数据抽象对于把握复杂性是很重要的,抽象数据类型到类型概念理论的出现导致基于对象和面向对象语言的诞生。
从Pascal,Simula再到完全面向对象的Smalltalk。这些语言的构建块是模块,逻辑上是一组类或对象,而不是早期的子程序。基于对象或面向对象语言的应用程序表现为一个图,而不是面向算法(过程)语言那样通常是一棵树。此外,很少或基本没用有全局数据(变量)。
相关推荐
文章首先探讨了路由表、地址转换表等有助于拓扑发现的信息表在MIB-II规范中的定义,然后设计了相应的数据结构,分别对路由和子网的拓扑发现方法进行了描述。此外,该方法使用了Java语言加以描述和实现,充分利用Java...
计算机基础知识点总结涵盖了计算机的发展历程、计算机的分类、计算机的特点、计算机的应用、计算机硬件系统、计算机工作原理、微型计算机系统的组成、操作系统、程序设计语言、计算机网络等多个方面。 一、计算机的...
这里提到的"配电网辐射网前推回代潮流计算程序(matlab)"是基于MATLAB语言实现的一种算法,适用于解决30节点以下的辐射型配电网的潮流计算问题。 首先,我们来理解一下辐射型网络。在电力系统中,辐射型网络是一种...
游戏理论前沿(信息权谋司时空管理局琴语言语料库信息情报科琴生生物机械项目组)信息经济统筹框架设计。 研究与开发组织结构 琴生生物机械科技工业研究所 书道学部 社会关系力学学院子休经济学系一尚韬竹工作室...
计算机二级等级考试主要涵盖计算机基础知识、程序设计语言、数据库应用、网页制作以及操作系统等多个方面的内容。以下是根据题目提供的部分试题解析: 1. 变量命名规则:在大多数编程语言中,变量名不能以数字开头...
高级程序设计语言如VB、VC、VFP等,与机器语言相分离,更注重抽象和易用性。语言处理程序负责将高级语言编写的源程序转换为机器语言,分为解释和编译两种方式。 【信息编码与存储】 信息的二进制表示法,如二进制...
最后,程序产品是指游戏的软件开发过程,涵盖了编程语言选择、软件架构设计、版本控制、测试和维护等环节。常见的游戏开发语言有C++、C#、Java和Python等,每种语言都有其优缺点,开发者需根据项目需求选择。良好的...
22. 程序设计语言:在使用while和do-while循环时,循环变量初始化的操作应在循环语句之前处理。 23. 办公软件:在Word中,单击垂直滚动条的按钮,可以使屏幕下滚一屏。 24. 计算机硬件:"32位微型计算机"中的32是...
在本文中,作者张吉武和谭琳介绍了他们设计的一种面向服务的分布式事件关联方法,该方法旨在解决传统事件关联技术存在的可扩展性、鲁棒性不足以及对异构环境支持不力的问题。文章首先解释了事件关联的概念以及其在...
3. 计算机应用软件:计算机应用软件是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合。计算机应用软件可以分为计算机应用软件包和用户程序。 4. 路由器:路由器的主要功能是进行路由...
19. **程序设计语言**:程序设计语言分为机器语言、汇编语言和高级语言。 20. **计算机语言分类**:计算机语言有低级语言(如机器语言、汇编语言)和高级语言(如C、Java、Python)。 单选题中,涉及了Excel单元格...
3. **程序设计语言**:熟悉至少一种编程语言,如C、C++或Python,掌握基本的语法和数据类型,以及如何编写、编译和运行程序。 4. **数据结构与算法**:学习和理解基本的数据结构,如栈、队列、树和图,以及常用的...
江苏省十二春一级计算机信息技术考试真题反映了计算机基础知识和应用能力的...这些知识点涵盖了信息技术基础、计算机硬件、操作系统、网络通信、程序设计语言和计算机网络架构等多个方面,是计算机一级考试的核心内容。
Web服务是一种基于开放标准(如XML、SOAP、WSDL和UDDI)的软件,能够跨越不同的操作系统、编程语言和网络进行通信。在TOMCAT-HOME/webapps/axis目录下创建MyMath.jws文件,这通常意味着我们要创建一个Web服务,该...
程序设计语言分为机器语言、汇编语言和高级语言。 计算机网络是指多台自主计算机通过物理连接,遵循网络通信协议,实现资源共享和信息交换。网络可以按照传输技术分为有线和无线,按地理位置分为广域网、局域网和城...
这些拓扑结构各有优缺点,例如星型拓扑易于管理和维护,而网状拓扑具有更高的容错性。 2. **鼠标组件**:鼠标的组成部分包括位置采样机构、传感器和专用处理芯片。这些部件协同工作,使得鼠标能跟踪用户的移动并将...
43. 系统软件:操作系统和程序设计语言处理程序都是系统软件。 44. 早期搜索引擎:Yahoo是最早的搜索引擎之一。 45. 计算机病毒影响:计算机病毒可以破坏硬件系统和软件。 46. 八进制数:317可能是八进制数,对应...
此外,程序设计语言从机器语言、汇编语言到高级语言如C、C++、Java和Python等的演变,也展示了计算机软件的进步。 操作系统章节则讲解了操作系统的基本功能,包括资源管理和用户接口,以及批处理、分时和实时操作...