过程实现方法(procedural implementation method)是指借助过程化手段将软件规约转化目标程序的方法。简称过程方法。如果对应软件规约中的各个成分,其转换目标的相应成分明确,该映射可借助过程来实现。过程方法的实现基本类似古典高级语言的编译技术,它是软件自动化较为成熟的一个实现路径。
定义软件规约是指软件所应满足的要求的陈述。它是软件开发的依据,也是软件自动化的依据。过程实现方法是指软件规约中需求作为过程进行管理,并实现目标程序。过程方法所采用的技术实质上是扩展编译技术。用过程方法实现软件系统是通过某种高级语言来描述问题规约、并借助其编译程序自动生成可执行的程序代码。虽然该方法的实现效率较高,但从非算法成分到算法性成分的转换却较难实现,高级语言的抽象成分越多,就越难编译。
软件自动化尽可能借助计算机系统实现软件开发的方法。计算机系统除泛指一般系统外,尤指用于软件开发的系统,特别是软件自动化系统。“尽可能”一词反映软件开发的自动化程度。软件开发是指除维护阶段外的软件生存全期,即从非形式的软件需求定义,经形式的软件功能规约、 软件设计规约到可执行的程序代码、调试及至确认、交付使用的全过程。
软件自动化也可狭义地理解 , 从形式的软件功能规约到可执行的程序代码这一过程的自动化。可执行的程序代码既可指低级语言程序代码,也可指高级语言程序代码。此外,自动化的程度是相对的,其高低一般因系统而异。软件自动化一词几乎和软件一词同时出现,原称自动程序设计。早在20世纪50年代,程序人员从程序设计实践中深感程序设计工作的繁琐、 不易、低效 ,便试图在可能范围内将一些机械性工作委交机器本身去做。在那时,实现高级语言的编译就是自动程序设计, 如 1956 年美国国际商业机器公司(IBM)建立的第一个实用的 FORTRAN 编译程序曾被称为自动程序设计系统。60 年代,出现了编译程序的编译程序和各种自编译程序。软件工程出现后,软件自动化的含义得到较大发展,其自动化的内容涉及到软件生存全期的各个阶段。
软件自动化分三个不同层次:一为低级自动化:自动化系统只起程序人员的作用,亦即,从软件设计规约到可执行的程序代码这一过程的自动化。二为中级自动化:自动化系统除了起程序人员的作用外,还起设计人员的作用,甚至起部分系统分析人员的作用。亦即,从形式的软件功能规约、到设计规约、直到可执行的程序代码这一过程的自动化。三为高级自动化:自动化系统除了起程序人员、 软件设计人员、 系统分析人员的作用外,还起部分领域专家的作用。亦即,从非形式的软件需求定义,经形式的软件功能规约、软件设计规约,直到可执行的程序代码这一全过程的自动化。
扩展编译技术计算机语言之所以能由单一的机器语言发展到现今的数千种高级语言,就是因为有了编译技术。 编译技术是计算机语言发展的支柱,也是计算机科学中发展最迅速、最成熟的一个分支,它集中体现了计算机发展的成果与精华。 编译技术的核心思想就是把同样的逻辑结构和思想从一种语言表示转化为另外一种语言表示。 从高级语言,甚至是运行于虚拟平台的高级语言,到机器语言,最终到硬件执行的物理信号,这一层层转化,即 编译技术,就是把高级计算机语言编写的程序代码翻译成为计算机可以运行的二进制机器语言代码的技术。对高级语言而言,由于它含有抽象级别较高的语言成分,传统编译程序不能有效地将它们直接编译成目标代码1。为此,必须放宽对传统编译的限制,即除源程序外,程序人员还可以提供附加的建议或说明,例如对抽象级别较高的语言成分选择合适的数据表示,这种方式成为扩展编译技术。扩展编译与传统编译接近之处在于:编译本身能自动进行,且产生的目标代码是可执行的。程序人员提供附加信息的目的是便于生成高效的代码。
本词条内容贡献者为:
王慧维 - 副研究员 - 西南大学