Browse Prior Art Database

Modular Programming in PL/M

IP.com Disclosure Number: IPCOM000131284D
Original Publication Date: 1978-Mar-01
Included in the Prior Art Database: 2005-Nov-10
Document File: 9 page(s) / 34K

Publishing Venue

Software Patent Institute

Related People

William Brown: AUTHOR [+3]

Abstract

Various methodologies have been used to control the high -- and rising -- cost of developing software products. Among these, one technique that has proved effective entails constructing programs from small, well-defined modules. This technique, called modular programming, can be used in any programming language; however, without language support to enforce module boundaries, errors often occur. The PL/M language and compiler are designed to bring the advantages of modular programming to microprocessor software systems. Since the fundamental PL/M language facility for organizing a program is the module, software systems can be partitioned into manageable units. The PL/M module can hold data and procedures and, if properly used, provide encapsulation of programming abstractions. In this way it is related to several other language mechanisms that provide for grouping operations logically related to a single data structure -- for example, the Simula class,' the Alphard forms the CLU clusters and the Mesa modules

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 14% of the total text.

Page 1 of 9

THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.

This record contains textual material that is copyright ©; 1978 by the Institute of Electrical and Electronics Engineers, Inc. All rights reserved. Contact the IEEE Computer Society http://www.computer.org/ (714-821-8380) for copies of the complete work that was the source of this textual material and for all use beyond that as a record from the SPI Database.

Modular Programming in PL/M*

William Brown

Intel Corporation

Various methodologies have been used to control the high -- and rising -- cost of developing software products. Among these, one technique that has proved effective entails constructing programs from small, well-defined modules. This technique, called modular programming, can be used in any programming language; however, without language support to enforce module boundaries, errors often occur.

The PL/M language and compiler are designed to bring the advantages of modular programming to microprocessor software systems. Since the fundamental PL/M language facility for organizing a program is the module, software systems can be partitioned into manageable units. The PL/M module can hold data and procedures and, if properly used, provide encapsulation of programming abstractions. In this way it is related to several other language mechanisms that provide for grouping operations logically related to a single data structure -- for example, the Simula class,' the Alphard forms the CLU clusters and the Mesa modules

Modularity

The basic motivation for modularizing a software system is to divide the system into partitions understandable to the implementer. There are many techniques for designing a partitioning. The oldest one applies a functional decomposition of the system into subroutines or procedures. However, in truly large systems, such decomposition usually results in a large number of procedures which, though easily understood, have complex interdependencies.

1

Encapsulation.

Another technique, suggested by Parnas,5 is based on encapsulation of information. A software system is partitioned in terms of the abstractions which make it most understandable. Thus, a text editor might be expressed as manipulations of strings or a logic simulation as a structure of logic cells. By encapsulating, or hiding, the implementation details of the abstraction, interdependencies are limited to the properties of the abstraction (for example, concatenate, find, etc., for strings, or inputs and outputs for logic cells). Thus, the system is more understandable.

Hiding information also enhances the long-term utility of the system by making programs easier to maintain and modify. First, the source text is encapsulated so that any program changes are localized. Second, if the engineering requirements of the system change, the implementation of the abstraction can be replaced without affecting any other part of the system. For example, the

1 # Adapted from a paper presented at C...