Advertisement

A reminder for language designers

  • Frederic Richard
  • Henry F. Ledgard
Section V - Workshop Position Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 54)

Abstract

Current programming languages offer limited support in the development and maintenance of programs. These languages do not always account for the human limitations of their users. Notably, few languages really promote ease of readability. This paper suggests nine design principles for the development of readable high level languages. Each principle is backed up by a discussion and several examples. Among the issues discussed are the limitation of the overall complexity, the design of function and procedure facilities, the design of data type facilities, and the correspondence between syntax and semantics.

Keywords

language design programming languages readibility program validation program maintenance 

CR Categories

4.2 4.22 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. CDC 71.
    Control Data Corporation. Simula Reference Manual. Publication No 602348000 (1971).Google Scholar
  2. CONFERENCE ON DATA ABSTRACTION 76.
    Conference on Data: Abstraction, Definition, and Structure. March 22–24, Salt Lake City, Utah. Sigplan Notices, Vol 11, Special Issue (April 1976),pp.1–190.Google Scholar
  3. DEREMER AND KRON 76.
    DeRemer, F., and Kron, H. Programming-in-the-large versus Programming-in-the-small. IEEE Transactions on Software Engineering, Vol SE-2, No 2 (June 1976), pp. 80–86.Google Scholar
  4. DIJKSTRA 68.
    Dijkstra, E.W. Goto Statement Considered Harmful. Comm. of the ACM, Vol 11, No 3 (March 1968) pp.147–148.Google Scholar
  5. ECMA/ANSI 74.
    European Computer Manufacturers and American National Standards Institute. PL/I. ECMA/TC10/ANSI.X3J3. BASIS 1–12 (July 1974).Google Scholar
  6. GANNON AND HORNING 75.
    Gannon, J.D., and Horning, J.J. Language Design for Programming Reliability. IEEE Transactions on Software Engineering Vol SE-1, No 2 (June 1975) pp.179–191.Google Scholar
  7. GRIES AND GEHANI 76.
    Gries, D., and Gehani, N. Some Ideas on Data Types in High Level Languages. Conference on Data: Abstraction, Definition and Structure. Sigplan Notices, Vol 11, Special Issue (April 1976), p.120.Google Scholar
  8. GUTTAG 76.
    Guttag, J. Abstract Data Types and the Development of Data Structures. Conference on Data: Abstraction, Definition and Structure. Siplan Notices, Vol 11, Special Issue (April 1976), p.72.Google Scholar
  9. HOARE 72.
    Hoare, C.A.R. Hints on Programming Language Design. Computer Science Department. Stanford University. Tech. Rep. STAN-CS-74-403 (December 1973) pp.1–32.Google Scholar
  10. HOARE 75.
    Hoare, C.A.R. Recursive Data Structures. International Journal of Computer and Information Sciences, Vol 4, No 2 (1975) pp.105–132.Google Scholar
  11. JENSEN AND WIRTH 74.
    Jensen, K., and Wirth, N. PASCAL User Manual and Report. Lectures Notes in Computer Science NO 18, Springer Verlag (1974).Google Scholar
  12. KNUTH 67.
    Knuth, D.E. The Remaining Trouble Spots in Algol 60. Comm. of the ACM, Vol 10, No 10 (October 1967) pp.611–618.Google Scholar
  13. KNUTH 74.
    Knuth, D.E. Stuctured Programming with Go To Statements. Computing Surveys, Vol 6, No 4 (December 1974) pp.261–302.Google Scholar
  14. KOSTER 76.
    Koster, C.H.A. Visibility and Types. Conference on Data: Abstraction, Definition, and Structure. Sigplan Notices, Vol 11, Special Issue (April 1976), pp.179–190.Google Scholar
  15. LEDGARD AND MARCOTTY 75.
    Ledgard, H.F., and Marcotty, M. A Genealogy of Control Structures. Comm. of the ACM, Vol 18, No 11 (November 1975) pp.629–639.Google Scholar
  16. MURACH 71.
    Murach, M. Standard COBOL. SRA (1971)Google Scholar
  17. NAUR 63.
    Naur, P. (Editor) Revised Report on the Algorithmic Language Algol 60. Comm. of the ACM, vol 6, No 1 (January 1963) pp.1–17.Google Scholar
  18. REYNOLDS 70.
    Reynolds, J.C. GEDANKEN: A Simple Typeless Language Based on the Principle of Completeness and the Reference Concept. Comm. of the ACM, Vol 13, No 5 (May 1970) pp.308–319.Google Scholar
  19. WEIL 65.
    Weil, R.L. Jr. Testing the Understanding of the Difference between Call by Name and Call by Value in Algol 60. Comm. of the ACM, Vol 8, No 6 (June 1965) p378.Google Scholar
  20. WEINBERG, GELLER AND PLUM 75.
    Weinberg, G.M., Geller, D.P., and Plum, T.W-S. IF-THEN-ELSE Considered Harmful. Sigplan Notices, Vol 10, No 8 (August 1975) pp.34–44.Google Scholar
  21. WEISSMAN 67.
    Weissman, C. Lisp 1.5 Primer. Dickenson Publishing Company (1967).Google Scholar
  22. WIRTH 74.
    Wirth, N. On the Design of Programming Languages. Information Processing 74. North Holland Publishing Company (1974) pp.386–393.Google Scholar
  23. WULF, RUSSEL AND HABERMANN 71.
    Wulf, W.A., Russel, D.B., and Habermann, A.N. BLISS: a Language for Systems Programming. Comm. of the ACM, Vol 14, No 12 (December 1971) pp.780–790.Google Scholar
  24. WULF AND SHAW 73.
    Wulf, W., and Shaw, M. Global Variables Considered Harmful. Sigplan Notices, Vol 8, No 2 (February 1973) pp.28–34.Google Scholar
  25. X3J3 76.
    American National Standards Committee X3J3. Draft proposed ANS FORTRAN. Sigplan Notices, Vol 11, No 3 (March 1976).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1977

Authors and Affiliations

  • Frederic Richard
    • 1
  • Henry F. Ledgard
    • 1
  1. 1.Computer and Information Science DepartmentUniversity Of MassachusettsAmherstUSA

Personalised recommendations