论文部分内容阅读
[摘 要] 高级编程语言的目的是使编程人员摆脱对计算机硬件知识的依赖性,从面向机器编程的方式转向面向高级语言。当然在最低级和最高级两个极端之间还存在着其他许多种语言可供应用开发者选择。
[关键词] 计算机 程序 设计语言 选择
应用软件必须采用开发者易懂的程序设计语言的格式进行编写。最低级的编程语言是目标机直接理解的机器代码;与之相反,高级编程语言是指具有自然结构和数据抽象结构的“类英语语言”。高級编程语言的目的是使编程人员摆脱对计算机硬件知识的依赖性,从面向机器编程的方式转向面向高级语言。当然在最低级和最高级两个极端之间还存在着其他许多种语言可供应用开发者选择。
一、可移植性的两种形式
从应用可移植性角度来看,一个应用的源程序可能存在两种表示形式,即源码可移植性或二进制码可移植性。
1)源码可移植性
这意味着一个应用源程序能在具有相同开发环境的不同平台上运行的编译器(或解释器)间移植,而不需修改应用源程序。
2)二进制码可移植性
这意味着一个二进制应用能在不同的平台—上移动,且尤须作任何修改。
如果一个应用是二进制码可移植的,则不影响应用在其所支撑的平台间的移植。可是,如果一个应用是源码可移植的,则应用开发和运行时间环境包括程序语言必须在其支撑平台间是可移植的;否则,该应用源码是不可移植的。
程序有不同类型和级别(例如,功能的、源程序、中间代码,解释代码和二进制码)。从可移植性观点看,在源码级和源码级以上(例如功能级)的程序可以较方便地在最广泛的平台范围内进行移植,花的代价少,可移植性的适应性、重用性和协调安全环境均较好,所以我们应把应用程序可移植放在源码级上。
为了阐明开放程序语言与开放系统环境的相关性,人们一定要充分了解应用平依赖性以及克服依赖性的方法。
二、克服应用平台依赖性
1、应用平台依赖性
利用一个特定的开发环境为一个特定的运行时间环境所产生的一个应用,有时需要作某些改变,使其能适应在支持不同开发和(或)运行时间环境的平台上运行,其原因是由以下的依赖性引起。
(1)不同的运行时间环境以不同方式运行不同的应用。编写应用过程必须充分考虑进程调度的类型和由基本操作系统所使用的应用资源管理的类型。
(2)应用可以以不同方式与不同的运行环境服务界面接口。一个应用源程序依赖于操作系统所提供的服务界面,并依赖其所涉及的其他相关应用的服务界面。
(3)不同开发环境可以要求不同应用源程序产生一个等效的可执行的应用。应用源程序依赖于创建它的开放环境。例如,用第四代语言环境所编制的一个应用,试图移向另一个不同的4GL环境时,用户必须按新的环境要求重新编写应用。
显然,应用依赖于创建它的开发环境和操作它的运行时间环境以及基本平台。这些内容的任一变化将迫使应用也作相应的改变,因此,一个应用是依赖于基本的应用平台的。仅当这些平台支持相似的开发和运行时间环境的应用界面时,应用才能在这些平台间移植。
2、克服应用平台依赖性
克服应用平台依赖性的常用方法是使用一个可移植的应用开发平台和(或)运行时间环境,它有两种选择。
(1)构建一个异构的应用环境。这个选择是为满足一组特定的应用需求,根据运行平台的配置去开发一个异构的应用开发和运行时间环境。
(2)购买一个完整的组装应用环境。这个选择意味着,根据支持平台的要求,购买—个可移植的完整的组装应用开发和运行时间环境。
购买一个商品化的组装应用环境显然比构建一个定制的异构应用环境来得容易,在价格上也比较便宜。但是,即使有一个能适合于特定需求集的组装应用环境,我们也可证明它与定制的异构环境相比较仍存在着一定的局限性。
组装的应用环境通常是受制约的,在某些情况下它提供的可选服务数量固定且有限。例如,一个典型的4GL环境提供具有网络任选的数据库和用户界面服务。此时如果用户想添加某些服务,如远程过程调用(RPC)服务,则必须使所添加的软件要能与现存的环境集成,从而构成一个含有组装单元的定制的异构环境。因此,我们仍然必须考虑一些与构建一个异构环境相关的问题,即使用户可能很想使用组装环境。
构建一个定制的异构应用环境的目的是使一个组织机构开发的应用环境能适应它的需求,即在平台和所支持的外部接口的选择上提供比组装应用环境更大的灵活性。但是,相关的开发机构必须承担对环境的维护和支持。
虽然标准语言和标准服务界面的使用是重要的,但是,单独使用这些标准往往是不充分的。这就要有——个指导使用程序设计设施风格的指南。这样,可移植应用开发可简单地表达为标准语言+标准接口+标准编程风格=可移植应用
为了避免非可移植的编程风格,一个编程风格指南应包括:
(1)可移植的编程实践;
(2)工具用法的规定。
我们也应该清醒地认识到,一个应用移植仅仅有可移植的程序设计语言是不够的,还需要操作系统环境和应用界面标准。
程序设计语言经历了四代。前三代语言是过程化的语言,目的是实现各种算法,需要描述“怎样做”;4CL是非过程化的语言,面向应用,仅须说明“做什么”。但是,当前多数4cL是以非过程化机制为主,同时兼有一些过程化机制,以便实现应用系统中需要使用的算法。此外,前三代语言注重算法描述,—次仅处理一个记录或一个数据元素,不支持对大量共享数据的处理;4CL以数据为主,以对数据集合的处理代替对单个记录或数据元素的处理,而且它与数据库密切相关,具有支持对大型数据库进行高效处理的机制。
传统的程序设计技术忽略了数据和程序之间的内在联系。用这种方法所设计出来的软件系统,其求解空间和问题空间并不一致,令人难于理解。面向对象技术的引入,使传统程序设汁技术有了一个很大进展。面向对象的方法与传统的面向过程的方法在本质上的差别是,面向对象的方法是使描述问题空间和描述解空间在结构上尽可能一致。因此面向对象的软件设计方法已经引起人们的广泛注意。
参 考 文 献
[1]王炽鸿。计算机辅助设计[M]。北京:机械工业出版社,1998。
[2]丁剑洁,基于度量的软件维护过程管理的研究[D],西北大学,2006■
[关键词] 计算机 程序 设计语言 选择
应用软件必须采用开发者易懂的程序设计语言的格式进行编写。最低级的编程语言是目标机直接理解的机器代码;与之相反,高级编程语言是指具有自然结构和数据抽象结构的“类英语语言”。高級编程语言的目的是使编程人员摆脱对计算机硬件知识的依赖性,从面向机器编程的方式转向面向高级语言。当然在最低级和最高级两个极端之间还存在着其他许多种语言可供应用开发者选择。
一、可移植性的两种形式
从应用可移植性角度来看,一个应用的源程序可能存在两种表示形式,即源码可移植性或二进制码可移植性。
1)源码可移植性
这意味着一个应用源程序能在具有相同开发环境的不同平台上运行的编译器(或解释器)间移植,而不需修改应用源程序。
2)二进制码可移植性
这意味着一个二进制应用能在不同的平台—上移动,且尤须作任何修改。
如果一个应用是二进制码可移植的,则不影响应用在其所支撑的平台间的移植。可是,如果一个应用是源码可移植的,则应用开发和运行时间环境包括程序语言必须在其支撑平台间是可移植的;否则,该应用源码是不可移植的。
程序有不同类型和级别(例如,功能的、源程序、中间代码,解释代码和二进制码)。从可移植性观点看,在源码级和源码级以上(例如功能级)的程序可以较方便地在最广泛的平台范围内进行移植,花的代价少,可移植性的适应性、重用性和协调安全环境均较好,所以我们应把应用程序可移植放在源码级上。
为了阐明开放程序语言与开放系统环境的相关性,人们一定要充分了解应用平依赖性以及克服依赖性的方法。
二、克服应用平台依赖性
1、应用平台依赖性
利用一个特定的开发环境为一个特定的运行时间环境所产生的一个应用,有时需要作某些改变,使其能适应在支持不同开发和(或)运行时间环境的平台上运行,其原因是由以下的依赖性引起。
(1)不同的运行时间环境以不同方式运行不同的应用。编写应用过程必须充分考虑进程调度的类型和由基本操作系统所使用的应用资源管理的类型。
(2)应用可以以不同方式与不同的运行环境服务界面接口。一个应用源程序依赖于操作系统所提供的服务界面,并依赖其所涉及的其他相关应用的服务界面。
(3)不同开发环境可以要求不同应用源程序产生一个等效的可执行的应用。应用源程序依赖于创建它的开放环境。例如,用第四代语言环境所编制的一个应用,试图移向另一个不同的4GL环境时,用户必须按新的环境要求重新编写应用。
显然,应用依赖于创建它的开发环境和操作它的运行时间环境以及基本平台。这些内容的任一变化将迫使应用也作相应的改变,因此,一个应用是依赖于基本的应用平台的。仅当这些平台支持相似的开发和运行时间环境的应用界面时,应用才能在这些平台间移植。
2、克服应用平台依赖性
克服应用平台依赖性的常用方法是使用一个可移植的应用开发平台和(或)运行时间环境,它有两种选择。
(1)构建一个异构的应用环境。这个选择是为满足一组特定的应用需求,根据运行平台的配置去开发一个异构的应用开发和运行时间环境。
(2)购买一个完整的组装应用环境。这个选择意味着,根据支持平台的要求,购买—个可移植的完整的组装应用开发和运行时间环境。
购买一个商品化的组装应用环境显然比构建一个定制的异构应用环境来得容易,在价格上也比较便宜。但是,即使有一个能适合于特定需求集的组装应用环境,我们也可证明它与定制的异构环境相比较仍存在着一定的局限性。
组装的应用环境通常是受制约的,在某些情况下它提供的可选服务数量固定且有限。例如,一个典型的4GL环境提供具有网络任选的数据库和用户界面服务。此时如果用户想添加某些服务,如远程过程调用(RPC)服务,则必须使所添加的软件要能与现存的环境集成,从而构成一个含有组装单元的定制的异构环境。因此,我们仍然必须考虑一些与构建一个异构环境相关的问题,即使用户可能很想使用组装环境。
构建一个定制的异构应用环境的目的是使一个组织机构开发的应用环境能适应它的需求,即在平台和所支持的外部接口的选择上提供比组装应用环境更大的灵活性。但是,相关的开发机构必须承担对环境的维护和支持。
虽然标准语言和标准服务界面的使用是重要的,但是,单独使用这些标准往往是不充分的。这就要有——个指导使用程序设计设施风格的指南。这样,可移植应用开发可简单地表达为标准语言+标准接口+标准编程风格=可移植应用
为了避免非可移植的编程风格,一个编程风格指南应包括:
(1)可移植的编程实践;
(2)工具用法的规定。
我们也应该清醒地认识到,一个应用移植仅仅有可移植的程序设计语言是不够的,还需要操作系统环境和应用界面标准。
程序设计语言经历了四代。前三代语言是过程化的语言,目的是实现各种算法,需要描述“怎样做”;4CL是非过程化的语言,面向应用,仅须说明“做什么”。但是,当前多数4cL是以非过程化机制为主,同时兼有一些过程化机制,以便实现应用系统中需要使用的算法。此外,前三代语言注重算法描述,—次仅处理一个记录或一个数据元素,不支持对大量共享数据的处理;4CL以数据为主,以对数据集合的处理代替对单个记录或数据元素的处理,而且它与数据库密切相关,具有支持对大型数据库进行高效处理的机制。
传统的程序设计技术忽略了数据和程序之间的内在联系。用这种方法所设计出来的软件系统,其求解空间和问题空间并不一致,令人难于理解。面向对象技术的引入,使传统程序设汁技术有了一个很大进展。面向对象的方法与传统的面向过程的方法在本质上的差别是,面向对象的方法是使描述问题空间和描述解空间在结构上尽可能一致。因此面向对象的软件设计方法已经引起人们的广泛注意。
参 考 文 献
[1]王炽鸿。计算机辅助设计[M]。北京:机械工业出版社,1998。
[2]丁剑洁,基于度量的软件维护过程管理的研究[D],西北大学,2006■