? 支持模块化软件构建的原则
Journal of Computer Science and Technology
Quick Search in JCST
 Advanced Search 
      Home | PrePrint | SiteMap | Contact Us | Help
 
Indexed by   SCIE, EI ...
Bimonthly    Since 1986
Journal of Computer Science and Technology 2017, Vol. 32 Issue (1) :3-10    DOI: 10.1007/s11390-017-1702-6
Special Section on Dataflow Architecture << Previous Articles | Next Articles >>
支持模块化软件构建的原则
Jack B. Dennis, Fellow, ACM, IEEE
Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge MA 02139, U.S.A
Principles to Support Modular Software Construction
Jack B. Dennis, Fellow, ACM, IEEE
Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge MA 02139, U.S.A

摘要
参考文献
相关文章
Download: [PDF 163KB]  
摘要 大型软件系统的构建通常由独立编写的组件--程序模块,组装而成来。对于要协同工作的软件组件而言,它们应共享一套用于表示结构化数据,如值数组和文件的数据类型组和原则。这些用于生成和操作数据对象的通用工具是由计算机系统的体系架构(包括硬件、操作系统和实时代码)所提供的。这些工具对于软件组件及其相互间的协作极其重要,因此必须有精确的规约,用于验证应用软件的正确性和系统行为的正确性。我们称此规约为程序执行模型(PXM)。显而易见,由计算机系统所实现的PXM的特性对于应用程序员实施模块化软件构建的能力有重要的影响。本文探讨了程序执行模型的概念,并提出了一套PXM为模块化软件建设提供坚实基础所必须满足的原则。本文的结论是,有可能构建这样的计算机系统:这些系统实现一个PXM,在该模型中,任何并发程序都可以被使用和复原,作为一个组件来构建更重大的并发程序。
关键词程序执行模型   数据流模型   codelet   抽象体系结构   平行计算     
Abstract: The construction of large software systems is always achieved through assembly of independently written components-program modules. For these software components to work together, they must share a common set of data types and principles for representing structured data such as arrays of values and files. This common set of tools for creating and operating on data objects is provided by the infrastructure of the computer system:the hardware, operating system and runtime code. Because the nature and properties of these tools are crucial for correct operation of software components and their inter-operation, it is essential to have a precise specification that may be used for verifying correctness of application software on one hand, and to verify correctness of system behavior on the other. We call such a specification a program execution model (PXM). It is evident that the properties of the PXM implemented by a computer system can have serious impact on the ability of application programmers to practice modular software construction. This paper discusses the concept of program execution models and presents a set of principles that a PXM must satisfy to provide a sound basis for modular software construction. Because parallel program execution on computer systems with many processing units is an essential part of contemporary computing environments, the expression of parallelism and modular software construction using components involving parallel operations is included in this treatment. The conclusion is that it is possible to build computer systems that implement a PXM within which any parallel program may be used, unmodified, as a component for building more substantial parallel programs.
Keywordsprogram execution model   data flow model   codelet   abstract architecture   parallel computing     
Received 2016-12-14;
本文基金:

The research results reported here were supported in part by the National Science Foundation (NSF) of USA under Award 12-17498.

About author: Jack B. Dennis is Professor of Computer Science and Engineering, Emeritus, at Massachusetts Institute of Technology (MIT). Prof. Dennis received his education at MIT, completing the undergraduate degree program in electrical engineering and earning the doctorate in 1958 for a thesis entitled "Mathematical Programming and Electrical networks" that links the two fields of operations research and electrical circuits. He joined the MIT faculty in the Department of Electrical Engineering and was appointed full professor in 1969. He is widely known for his contributions in the field of computer system architecture, in particular virtual memory concepts, data flow models of computing, and computer system designs that embody these ideas. Since 1987 he has been working as an independent consultant and research scientist on projects that involve parallel computer hardware and software and their interaction. Professor Dennis has guided the doctoral research of more than 25 MIT graduate students. He has been an organizer of major professional conferences, and has served many times on program committees and as a reviewer of technical papers. He is currently an active member of IFIP Working Group 2.8:Functional Programming. Prof. Dennis is a member of the National Academy of Engineering, and was awarded the ACM/IEEE Eckert-Mauchly Award for 1984. He is a Fellow of the ACM and IEEE. In 2012 Prof. Dennis was awarded the IEEE John von Neumann Medal "for fundamental abstractions to implement protection in operating systems and for the dataflow programming paradigm".
引用本文:   
Jack B. Dennis.支持模块化软件构建的原则[J]  Journal of Computer Science and Technology , 2017,V32(1): 3-10
Jack B. Dennis.Principles to Support Modular Software Construction[J]  Journal of Computer Science and Technology, 2017,V32(1): 3-10
链接本文:  
http://jcst.ict.ac.cn:8080/jcst/CN/10.1007/s11390-017-1702-6
Copyright 2010 by Journal of Computer Science and Technology