Abstract : The structure of a computer program and the extent to which that structure is visible dramatically affect the clarity of the program. Programming languages therefore contain structuring mechanisms to provide a framework within which to structure programs. This thesis describes a new program structuring mechanism, called the grid. The grid mechanism was designed to specify, represent, document and enforce the structure of large programs having a layered organisation. Layered programs arise whenever levels of abstraction, layers of protection or multiple views of objects are used, yet they are not handled adequately by other structuring mechanisms. The structure of layered program is conveniently modeled by a layered graph consisting of interacting layers, each of which is directed graph of program parts. The grid mechanism is based on this model. A grid specification identifies the layers explicitly, and specifies program structure in terms of them. Similarities between layers are exploited to simplify a specification. Differences between layers, as well as any structural irregularities or relaxation of access restrictions, are highlighted. The grid mechanism emphasises human readability. It uses some novel techniques to specify layered graph structures in a clear and concise manner, including specification of irregular structures as regular structures with explicit deviations, omission of unnecessary detail, and localisation of information. The gird can specify multiple relationships between program parts. It also serves as a structured repository for information about a program, such as documentation or the information required by source management or version control systems.
[1]
Henry Ledgard,et al.
Reference Manual for the ADA® Programming Language
,
1983,
Springer New York.
[2]
Douglas T. Ross,et al.
Structured Analysis (SA): A Language for Communicating Ideas
,
1977,
IEEE Transactions on Software Engineering.
[3]
Mark Sherman.
Paragon: Novel uses of type hierarchies for data abstraction
,
1984,
POPL '84.
[4]
Daniel H. H. Ingalls,et al.
The Smalltalk-76 programming system design and implementation
,
1978,
POPL.
[5]
Craig Schaffert,et al.
Abstraction mechanisms in CLU
,
1977,
Commun. ACM.
[6]
Mary Shaw,et al.
An introduction to the construction and verification of Alphard programs
,
1976,
ICSE '76.
[7]
Douglas T. Ross,et al.
Software design using: SADT
,
1977,
ACM Annual Conference.
[8]
H. Ossher,et al.
Fable: A programming-language solution to IC process automation problems
,
1983,
SIGPLAN '83.
[9]
Harold Ossher,et al.
Fable: A programming-language solution to IC process automation problems
,
1983,
ACM SIGPLAN Notices.
[10]
L. Peter Deutsch,et al.
Requirements for an experimental programming environment
,
1980
.
[11]
Douglas T. Ross,et al.
Structured Analysis for Requirements Definition
,
1977,
IEEE Transactions on Software Engineering.
[12]
Eric Emerson Schmidt.
Controlling large software development in a distributed environment
,
1982
.