skip to main content
article
Open access

Encapsulation constructs in systems programming languages

Published: 01 April 1984 Publication History
First page of PDF

References

[1]
BIRTWISTLE, G. Simula Begin. Auerbach, Pennsauken, N.J., 1973.
[2]
BRINCH HANSEN, P. The programming language Concurrent Pascal. IEEE Trans. So{tw. Eng. SE-1 (1975), 199-207.
[3]
BRINCH HANSEN, P. The Architecture of Concurrent Programs. Prentice-Hall, Englewood Cliffs, N.J., 1977.
[4]
ICHmAH, J.D., HELIARD, J.C., ROUBINE, O., BARNES, J.G.P., KRIEG-BRUECKNER, B., AND WICHMANN, B.A. Rationale for the design of the Ada programming language. SIGPLAN Not. 14, 6, part B (June 1979).
[5]
KERNIGHAN, B.W., AND PLAUGER, P.J. The UNIX programming environment. So{tw. Pract. Exper. 9 (1979), 1-15.
[6]
KERNIGHAN, B.W., AND RITCHIE, D.M. The C Programming Language. Software Series. Prenrice-Hall, Englewood Cliffs, N.J., 1978.
[7]
LISKOV, B.H., ATKINSON, R., BLOOM, T., Moss, E., SCHAFFERT, J.C., SCHIEFLER, R., SYNDER, A. CLU Re{erence Manual. Lecture Notes in Computer Science, vol 114. Springer Verlag, New York, 1981.
[8]
MATETI, P. Pascal versus C: A Subjective Comparison. Lecture Notes in Computer Science, vol. 79. Springer Verlag, New York, 1980, pp. 37-70.
[9]
MITCHELL, J.G., MAYBURY, W., AND SWEET, R. Mesa language manual. Xerox Palo Alto Research Center, Paid Alto, Calif., 1978.
[10]
SHAW, M., Ed. Alphard: Form and Content. Springer Verlag, New York, 1981.
[11]
SHERMAN, M., HISOEN, A., AND ROSENBERO, J. A methodology for programming abstract data types in Ada. In Proceedings of the AdaTec Conference on Ada (Arlington, Va., Oct 6-8), 1982, pp. 66-75.
[12]
SILBERSCHATZ, A., KIEBURTZ, R.B., AND BERNSTEIN, J.A. Extending Concurrent Pascal to allow dynamic resource management. IEEE Trans. So{tw. Eng. SE-3 (1977), 210-217.
[13]
UNITED STATES DEPARTMENT OF DEFENSE. Military standard Ada programming language. ANSI/MIL-STD 1815A. American National Standards Institute, 1983.
[14]
WELSH, J., AND BUSTARD, D.W. Pascal-Plus--Another language for modular multiprogramruing. So{tw. Pract. Exper. 9 (1979), 947-958.
[15]
WELSH, J., AND LISTER, A. A comparative study of task communication in Ada. So{tw. Pract. Exper. 11 (1981), 257-290.
[16]
WIRTH, N. Programming in Modula-2, Springer Verlag, New York, 1983.

Cited By

View all

Recommendations

Reviews

Allen Lewis Springer

This excellent paper examines certain encapsulation constructs of system programming languages which are essentially machine-independent languages. Thus languages like C and BLISS are excluded from discussion. Ada is the main language examined, and an extension of it is used for the examples. Other languages examined include Pascal Plus, Concurrent Pascal, Modula-2, MESA, and CLU. The paper asserts that two language constructs, Simula-like classes and Ada-like packages, are needed to support: (1) management of dynamically allocated resources, (2) establishment of reliable and secure interfaces, (3) sharing of resources at the user level, and (4) a high-level representation of the hardware environment. The paper describes the class and package constructs, and shows how neither can satisfactorily replace the other while still retaining efficiency, security, and several other needed properties. The main body of the paper is an outline of a “direct” implementation of a UNIX-style file system. The UNIX file system, and almost all others, are normally implemented indirectly. That is, files do not appear as separate data types, and system code is hidden behind hardware protection schemes where possible, in order to provide security. In a direct scheme, the file system would be simply another set of routines and data types are written in the same language that the user programs in. Security is provided by the language constructs. One advantage of a direct scheme is the efficiency of not needing to pass control through a state switching mechanism, which is common with hardware protection mechanisms. If extensions are implemented to system services when system modification is not allowed, the programmer may have only the “direct” technique available. Also, there are many areas besides file systems where the discussed encapsulation constructs are likely to be needed. A direct mechanism can be secure if all the languages and system facilities that the programmer can use enforce the security rules. This would be unrealistic in the usual general purpose operating systems, but could fit the single language “embedded systems” that Ada is aimed at. Although the direct implementation of a file system is an unusual choice for an operating system, it is still an excellent choice as an example because of its familiarity. The language issues are far larger than whether a file system should be implemented in a particular way. Many issues of language design are examined and the programming examples are extensive. The authors are to be commended for choosing a large and realistic example to demonstrate their judgements about language design. It is considerably more convincing than the usual paper with toy examples. Toy examples do not demonstrate sound technological design decisions well, since it is too easy for the reader to assume that differences of opinion are due to taste. This paper is highly recommended to anyone interested in the design of programming languages, and to those interested in the problems of writing systems in high-level languages.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 6, Issue 2
April 1984
168 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/2993
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 April 1984
Published in TOPLAS Volume 6, Issue 2

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)65
  • Downloads (Last 6 weeks)11
Reflects downloads up to 17 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media