skip to main content
10.1145/800226.806850acmconferencesArticle/Chapter ViewAbstractPublication PagesplanConference Proceedingsconference-collections
Article
Free access

A programmer controlled approach to data and control abstraction

Published: 01 June 1983 Publication History

Abstract

Traditionally, data abstraction languages have only provided a means to extend the language “upward” to include new procedures and data types not present in the base language. This paper introduces a complementary approach, which also allows programmers to extend the language “downward” and thus to override many of the previously preempted decisions concerning the nature and implementation of various language constructs. In order to illustrate the approach, several extension examples are presented that involve control of decisions below the level of Pascal-like languages. Implementation of the programmer defined language constructs is also discussed and benchmark results are reported that show them comparable—and in many cases exceeding—in efficiency the corresponding built-in constructs of conventional languages.

References

[1]
Atkinson, Russell, Liskov, Barbara, and Scheifler, Robert, Aspects of implementing CLU. MIT, Laboratory for Computer Science, Computation Structures Group Memo 167, Oct. 1978.]]
[2]
Ford, Gary and Hansche, Brian, Optional, repeatable, and varying type parameters. SIGPLAN Notices 17, 2 (Feb. 1982), 41-48.]]
[3]
Gries, David and Gehani, Narain, Some ideas on data types in high-level languages. Comm. ACM 20, 6 (June 1977), 414-420.]]
[4]
Heimonen, Juha-Matti, VILMA—A virtual Lukko machine. University of Tampere, Dept. of Mathematical Sciences, Report C22, June 1981.]]
[5]
Heinänen, Juha, Logical architecture of Ukko—A design for experimental microprogramming. University of Tampere, Dept. of Mathematical Sciences, Report C5, July 1978 (revised April 1979).]]
[6]
Heinänen, Juha, The programming language Lukko. University of Tampere, Dept. of Mathematical Sciences, Report A54, May 1981 (revised May 1982).]]
[7]
Heinänen, Juha, Lukko extension to the level of Pascal. University of Tampere, Dept. of Mathematical Sciences, Report A71, Jan. 1982.]]
[8]
Heinänen, Juha, A data and control abstraction approach to microprogramming. Ph.D. Dissertation, Department of Electronics, Tampere University of Technology, May 1983.]]
[9]
Herriott, Robert G., A uniform view of control structures in programming languages. In Information Processing 74, North-Holland, Amsterdam, 1974, 331-335.]]
[10]
Holt, Richard C. and Wortman David B., A model for implementing Euclid modules and type templates. Proc. of the SIGPLAN Symposium on Compiler Construction, Denver, Aug. 1979, 8-12.]]
[11]
Karjalainen, Martti, Preliminary definition of MLukko. University of Tampere, Dept. of Mathematical Sciences, Report C11, Dec. 1979 (in Finnish).]]
[12]
Kogge, Peter M., An architectural trail to threaded-code systems. Computer 15, 3 (March 1982), 22-32.]]
[13]
Kurki-Suonio, R. and Heinänen, J., A data abstraction language based on microprogramming. Proc. of the 13th Annual Microprogramming Workshop, Colorado Springs, Nov.-Dec. 1980, 154-161.]]
[14]
Lampson, B. W., et. al., Report on the programming language Euclid. SIGPLAN Notices 12, 2 (Feb. 1977).]]
[15]
Landin, P. J., The mechanical evaluation of expressions. Comput. J. 6, 4 (Jan. 1964), 308-320.]]
[16]
Landin, P. J., A correspondence between Algol 60 and Church's Lambda-notation: Part I. Comm. ACM 8, 2 (Feb. 1965), 89-101.]]
[17]
Liskov, Barbara, et. al., Abstraction mechanisms in CLU. Comm. ACM 20, 8 (Aug. 1977), 564-576.]]
[18]
Nori, K. V., et. al., The PASCAL <P> compiler: Implementation notes. ETH, Institut für Informatik, Report 10, Dec. 1974.]]
[19]
Reference manual for the Ada programming language. United States Department of Defence, July 1980.]]
[20]
Shaw, Mary, Wulf, William A., and London, Ralph L., Abstraction and verification in Alphard: defining and specifying iteration and generators. Comm. ACM 20, 8 (Aug. 1977), 553-564.]]
[21]
Shaw, Mary and Wulf, Wm. A., Towards relaxing assumptions in languages and their implementations. SIGPLAN Notices 15, 3 (March 1980), 45-61.]]
[22]
Wirth, N., Modula: A language for modular multiprogramming. Software—Practice and Experience 7, 1 (1977), 3-35.]]
[23]
Wirth, N., Modula-2. ETH, Institut für Informatik, Report 40, April 1981.]]
[24]
Wirth, N., The personal computer Lilith. ETH, Institut für Informatik, Report 40, April 1981.]]
[25]
Wulf, William A., London, Ralph L., and Shaw, Mary, An introduction to the construction and verification of Alphard programs. IEEE Trans. Software Engineering SE-2, 4 (Dec. 1976), 253-265.]]
[26]
Wulf, Wm. A. (ed.), An informal definition of Alphard. Dept. of Computer Science, Carnegie-Mellon University, CMU-CS-78-105.]]
[27]
Wulf, Wm. A., Abstract data types: A retrospective and prospective view. Lecture Notes in Computer Science 88, Springer Verlag 1980, 94-112.]]

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SIGPLAN '83: Proceedings of the 1983 ACM SIGPLAN symposium on Programming language issues in software systems
June 1983
230 pages
ISBN:0897911083
DOI:10.1145/800226

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 June 1983

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

VEE05
Sponsor:
VEE05: First International Conference on Virtual Execution Environments
June 27 - 29, 1983
California, San Francisco, USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)73
  • Downloads (Last 6 weeks)12
Reflects downloads up to 16 Oct 2024

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

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media