skip to main content
article
Free access

Beyond programming languages

Published: 01 July 1979 Publication History

Abstract

As computer technology matures, our growing ability to create large systems is leading to basic changes in the nature of programming. Current programming language concepts will not be adequate for building and maintaining systems of the complexity called for by the tasks we attempt. Just as high level languages enabled the programmer to escape from the intricacies of a machine's order code, higher level programming systems can provide the means to understand and manipulate complex systems and components. In order to develop such systems, we need to shift our attention away from the detailed specification of algorithms, towards the description of the properties of the packages and objects with which we build. This paper analyzes some of the shortcomings of programming languages as they now exist, and lays out some possible directions for future research.

References

[1]
Belady, L.A. Large software systems. Res. Rep. RC 6966 (#29862), IBM Thomas J. Watson Res. Ctr., Yorktown Heights, N.Y., Jan. 1978.]]
[2]
Dijkstra, E.W. On the interplay between mathematics and programming. Unpublished lecture, EWD641, 1977.]]
[3]
Fisher, D.A. DoD's common programming language effort. Computer (March 1978), 25-33.]]
[4]
Wulf, W.A. Some thoughts on the next generation of programming languages. In Perspectives on Computer Science, A.K. Jones, Ed., New York, Academic Press, 1977.]]
[5]
Bobrow, D., and Raphael, B. New programming languages for AI research, Computing Surveys 6, 3 (Sept. 1974), 153-174.]]
[6]
Bobrow, D., and Winograd, T. An overview of KRL, a knowledge representation language, Cognitive Science 1, 1 (Jan. 1977), 3-46.]]
[7]
Bobrow, D., Winograd, T., and the KRL research group. ExperienCe with KRL-0: One cycle of a knowledge representation language, Fifth Int. Joint Conf. on Artif. Intell., pp. 223-227.]]
[8]
Brachman, R. What's in a concept: Structural foundations for semantic networks, Int. J. Man-Machine Studies 9 (Sept. 1977), 127- 152.]]
[9]
Davis, R. Knowledge about representations as a basis for system construction and maintenance. In Pattern Directed Inference Systems, D.A. Waterman, Ed., Academic Press, New York, 1978.]]
[10]
Fikes R., and Hendrix, G. A network-based knowledge representation and its natural deduction system. Fifth Int. Joint Conf. on Artif. lntell., pp. 235-246.]]
[11]
Goldstein I., and Roberts, B. Nudge, a knowledge-based scheduling program. MIT AI-Memo 405, M.I.T., Cambridge, Mass., Feb. 1977.]]
[12]
Hayes, P. Some problems and non-problems in representation theory. AISB Conf. 1974, pp. 63-79.]]
[13]
Hayes, P. In Defense of Logic. Fifth Int. Joint Conf. on Artif. Intell., pp. 559-565.]]
[14]
Levesque, H. A procedural approach to semantic networks. TR- 105 Dept. of Comptr. Sci., U. of Toronto, Canada, 1977.]]
[15]
Woods, B. What's in a link? In Representation and Understanding, Bobrow and Collins, Eds., 1975.]]
[16]
Ashcroft, E.A., and Wadge, W.W. Lucid, a non-procedural language with iteration. Comm. A CM 20, 7 (July 1977), 519-526.]]
[17]
Burstall, R.M., and Goguen, J.A. Putting specifications together. Fifth Int. Joint Conf. on Artif. Intell., 1977.]]
[18]
Dickover, M.E., McGowan, C.L., and Ross, D.T. Software design using SADT. Proc. 1977 ACM Nat. Conf., Seattle, pp. 125-133.]]
[19]
Dijkstra, E.W. A Discipline of Programming. Prentice Hall, Englewood Cliffs, New Jersey, 1976.]]
[20]
Holback-Hanssen, E., Handlykken, P., and Nygaard, K. System description and the delta language. Delta Proj. Rep. #4, Norwegian Comptg. Ctr. Pub. #523, Oslo, Sept. 1975.]]
[21]
Knuth, D. The Art of Computer Programming. Vol. 1, Fundamental Algorithms. Addison-Wesley, Reading, Mass., 1968.]]
[22]
Neuhold E.J., Ed. Formal Description of Programming Languages. North-Holland Pub. Co., Amsterdam, 1978.]]
[23]
Tennent, R.D. The denotational semantics of programming languages. Comm. ACM 19, 8 (Aug. 1976), 437-453.]]
[24]
Earley, J. High level operations in automatic programming. SIGPLAN Notices 9, 4 (1974), pp. 34-42.]]
[25]
Falkoff, A.D., and Iverson, K.E. The design of APL. IBM J. Res Develop. (1973), 324--334.]]
[26]
Goldsmith, C. The design of a procedureless programming language. SIGPLAN Notices 9, 4 (1974), pp. 13-24.]]
[27]
Kowalski, R. Predicate calculus as a programming language. Information Processing 75, North-Holland Pub. Co., Amsterdam, 1975.]]
[28]
Leavenworth, B. and Sammet, J. An overview of nonprocedural languages. SIGPLAN Notices 9, 4 (1974), pp. 1-12.]]
[29]
Reynolds, J. GEDANKEN--A simple typeless language based on the principles of completeness and the reference concept. Comm. ACM 13, 5 (May 1970), 308-319.]]
[30]
Schwartz, J. On programming: An interim report on the SETL project. Installment I: Generalities. N.Y.U. Courant Inst., New York, Feb. 1973.]]
[31]
Birtwistle, Dahl, Myhrhaug, and Nygaard. SIMULA BEGIN, Auerbach, Philadelphia, Pa., 1973.]]
[32]
Davis, R. Generalized procedure calling and content directed invocation. Proc. ACM Conf. on AI and Programming Languages, Aug. 1977.]]
[33]
Geschke, C.M., Morris Jr., J.H., Satterthwaite, E.H. Early experience with Mesa. Comm. ACM 20, 8 (Aug. 1977), 540-552.]]
[34]
Geschke, C.M., and Mitchell, J.G. On the problem of uniform references to data structures. IEEE Trans. on Software Eng. (June 1975), 207-219.]]
[35]
lngalls, Dan. The Smalltalk-76 programming system: Design and implementation. Conf. Rec. of the Fifth Annual ACM Symp. on Principles of Programming Languages, Tucson, Arizona, Jan. 1978. pp. 9-16.]]
[36]
Liskov, B., Snyder, A., Atkinson, R., and Schaffert, C. Abstraction mechanisms in CLU. Comm. A.CM 20, 8 (Aug. 1977), 564-576.]]
[37]
Pratt, V. The competence/performance dichotomy in programming. Fourth ACM Symp. on the Principles of Programming Languages, 1977, pp. 194-200.]]
[38]
Shaw, M., Wulf, W.A., and London, R.L. Abstraction and verification in Alphard: Defining and specifying iteration and generators. Comm. ACM 20, 8 (Aug. 1977), 553-562.]]
[39]
Steele, G. LAMBDA, the ultimate imperative. MIT-AI Memo 353, M.I.T., Cambridge, Mass., March 1976.]]
[40]
Steele, G. LAMBDA, the ultimate declarative. MIT-AI Memo 379, M.I.T., Cambridge, Mass., Nov. 1976.]]
[41]
Goodenough, J. Exception handling: issues and a proposed notation. Comm. ACM 18, 12 (Dec. 1975), 683-696.]]
[42]
Holt, A. Introduction to occurrence systems. In Associative Information Techniques, Jacks, Ed., Elsevier, 1971, pp. 175-203.]]
[43]
Humby, E. Programs from Decision Tables. McDonald/Elsevier, 1973.]]
[44]
Lauer, P.E., and Campbell, R.H. A description of path expressions by Petri nets. Second ACM Symp. on Principles of Programming Languages, 1975, pp. 95-105.]]
[45]
Morgan, H.L. Event sequenced programming. Tech. Rep. 119 Dept. of Operations Research, Cornell U., Ithaca, N.Y., July 1970.]]
[46]
Reiger, C. The commonsense algorithm as a basis for computer models of human memory, inference, belief and contextual language comprehension. In Theoretical Issues in Natural Language Processing, Shank and Nash-Webber, Eds., 1976, pp. 180-195.]]
[47]
Rychener, M. Production systems: A case for simplicity in AI control structures. Draft of paper submitted to ACM 1977 Nat. Conf.]]
[48]
Sacerdoti, E. The non-linear nature of plans. Fourth Int. Joint Conf. on Artif. lntell., pp. 206-214.]]
[49]
Barnett, J. Module linkage and communication in large systems. In Speech Recognition, D.R. Reddy, Ed., pp. 500-520.]]
[50]
Feldman, J.A. High level programming for distributed computing. Comm. ACM 22, 6 (June 1979), 353-368.]]
[51]
Hewitt, C., and Smith, B. Towards a programming apprentice. 1EEE Trans. Software Eng. SE-1 (March 1976), 26-45.]]
[52]
Hoare, C.A.R. Communicating sequential processes. Comm. ACM. 21, 8 (Aug. 1978), 666-677.]]
[53]
Lampson, Mitchell, and Satterthwaite. On the transfer of control between processes. Proc. of Programming Symposium, Paris, April 1974; Lecture Notes in Computer Science 19, Springer-Verlag, 1974, pp. 181-203.]]
[54]
Lesser, V. Parallel procesing in speech understanding systems: A survey of design problems. In Speech Recognition, D.R. Reddy, Ed., 1975, pp. 481-499.]]
[55]
Levin, M., et al. The Lisp 1.5 Programmer's Manual, M.I.T., Cambridge, Mass. 1965.]]
[56]
Sandewall, E. Programming in an interactive environment: The "Lisp" experience. Computing Surveys 10, 1 (March 1978), 35-71.]]
[57]
Teitelman, W. A display oriented programmer's assistant. Fifth Int. Joint Conf. on Artif. Intell., 1977, pp. 905-915.]]
[58]
Teitelman, W., et al. Interlisp Reference Manual-Xerox PARC, 1978.]]

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Communications of the ACM
Communications of the ACM  Volume 22, Issue 7
July 1979
51 pages
ISSN:0001-0782
EISSN:1557-7317
DOI:10.1145/359131
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 July 1979
Published in CACM Volume 22, Issue 7

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. programming
  2. programming languages
  3. programming systems
  4. systems development

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)304
  • Downloads (Last 6 weeks)65
Reflects downloads up to 09 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