skip to main content
article
Free access

Programming-in-the large versus programming-in-the-small

Published: 01 April 1975 Publication History

Abstract

We distinguish the activity of writing large programs from that of writing small ones. By large programs we mean systems consisting of many small programs (modules), possibly written by different people.
We need languages for programming-in-the-small, i.e. languages not unlike the common programming languages of today, for writing modules. We also need a “module interconnection language” for knitting those modules together into an integrated whole and for providing an overview that formally records the intent of the programmer(s) and that can be checked for consistency by a compiler.
We explore the software reliability aspects of such an interconnection language. Emphasis is placed on facilities for information hiding and for defining layers of virtual machines.

References

[1]
Clark, B.L, and Horning, J.J. "The system language for project SUE." SIGPLAN Notices 6, 9 (October 1971).]]
[2]
Dijkstra, E.W. "Notes on structured programming." In: Dahl, O.J., Dijkstra, E.W., and Hoare, C.A.W. "Structured Programming." Academic Press, London, New York, 1972.]]
[3]
George, J.E., and Sager, G.R. "Variables—Bindings and protection." SIGPLAN Notices 8, 12 (December 1973).]]
[4]
Guttag, J. "The use of type for the definition of abstract data objects." Dept. of Computer Science, Univ. of Toronto, Ontario, Canada (March 1974).]]
[5]
Hoare, C.A.R. "Proof of correctness of data representations." Acta Informatica 1, 271-281 (1972).]]
[6]
Hoare, C.A.R. "Hints on programming language design." Memo AIM-224, Computer Science Dept., Stanford University (December 1973). Also in: Proc. Symposium on Principles of Programming Languages, Boston (October 1973).]]
[7]
Ichbiah, J.D. "Visibility and separate compilations." Proc. of IFIP WG 2.4, La Grande Motte, France (May 1974).]]
[8]
Knuth, D.E. "Semantics of context-free languages." Mathematical Systems Theory 2, 2 (1968).]]
[9]
Liskov, B.H. "A design methodology for reliable software systems." Proc. Fall Joint Computer Conference, 191-199 (1972).]]
[10]
Liskov, B.H., and Zilles, S. "Programming with abstract data types." Proc. Symposium on Very High Level Languages, SIGPLAN Notices 9, 4 (April 1974).]]
[11]
Maynard, J. "Modular Programming". Petrocelli Books, New York, 1972.]]
[12]
Mills, H.D. "Chief programmer teams: Techniques and procedures." IBM Internal Report (January 1970).]]
[13]
Parnas, D.L. "Information distribution aspects of design methodology." Technical Report, Dept. Computer Science, Carnegie-Mellon Univ. (February 1971).]]
[14]
Parnas, D.L. "A technique for software module specifications with examples." CACM 15, 5 (May 1972).]]
[15]
Presser, L., and White, J.R. "Linkers and loaders." ACM Computing Surveys 4, 3 (September 1972).]]
[16]
Richards, M. "The BCPL reference manual." Memo 69/1, The University Mathematical Laboratory, Cambridge, England (January 1969).]]
[17]
Weinberg, G.M. "The psychology of computer programming." Van Nostrand Reinhold Co., New York, 1971.]]
[18]
White, J.R., and Presser, L. "A tool for enforcing system structure." Report CS-11, Dept. of E.E., Univ. of California, Santa Barbara (April 1972).]]
[19]
Wirth, N., and Hoare, C.A.R. "A contribution to the development of ALGOL." CACM 9, 6 (June 1966).]]
[20]
Wulf, W., and Shaw, M. "Global variable considered harmful." SIGPLAN Notices 8, 2 (February 1973).]]

Cited By

View all
  • (2022)Expressions in Java: Essential, Prevalent, Neglected?Proceedings of the 2022 ACM SIGPLAN International Symposium on SPLASH-E10.1145/3563767.3568131(41-51)Online publication date: 29-Nov-2022
  • (2019)A Model-Driven Method for Fast Building Consistent Web Services from OpenAPI-Compatible ModelsModel-Driven Engineering and Software Development10.1007/978-3-030-11030-7_2(9-33)Online publication date: 1-Feb-2019
  • (2018)Redesigning CHIML: Orchestration Language for Chimera- Framework2018 Third International Conference on Informatics and Computing (ICIC)10.1109/IAC.2018.8780513(1-7)Online publication date: Oct-2018
  • Show More Cited By

Index Terms

  1. Programming-in-the large versus programming-in-the-small

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 10, Issue 6
    International Conference on Reliable Software
    June 1975
    563 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/390016
    Issue’s Table of Contents
    • cover image ACM Conferences
      Proceedings of the international conference on Reliable software
      April 1975
      567 pages
      ISBN:9781450373852
      DOI:10.1145/800027

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 April 1975
    Published in SIGPLAN Volume 10, Issue 6

    Check for updates

    Author Tags

    1. Accessibility
    2. External name
    3. Information hiding
    4. Linking
    5. Module interconnection language
    6. Project management tool.
    7. Protection
    8. Scope of definition
    9. System hierarchy
    10. Virtual machine
    11. Visibility

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)717
    • Downloads (Last 6 weeks)58
    Reflects downloads up to 09 Sep 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2022)Expressions in Java: Essential, Prevalent, Neglected?Proceedings of the 2022 ACM SIGPLAN International Symposium on SPLASH-E10.1145/3563767.3568131(41-51)Online publication date: 29-Nov-2022
    • (2019)A Model-Driven Method for Fast Building Consistent Web Services from OpenAPI-Compatible ModelsModel-Driven Engineering and Software Development10.1007/978-3-030-11030-7_2(9-33)Online publication date: 1-Feb-2019
    • (2018)Redesigning CHIML: Orchestration Language for Chimera- Framework2018 Third International Conference on Informatics and Computing (ICIC)10.1109/IAC.2018.8780513(1-7)Online publication date: Oct-2018
    • (2018)Review of the Recent Research on Automatic Text Summarization in Bahasa Indonesia2018 Third International Conference on Informatics and Computing (ICIC)10.1109/IAC.2018.8780512(1-6)Online publication date: Oct-2018
    • (2016)Staged model evolution and proactive quality guidance for model librariesSoftware Quality Journal10.1007/s11219-015-9298-y24:3(675-708)Online publication date: 1-Sep-2016
    • (2015)Patterns of cooperative technology development and transfer for software-engineering-in-the-largeProceedings of the Second International Workshop on Software Engineering Research and Industrial Practice10.5555/2821387.2821396(32-38)Online publication date: 16-May-2015
    • (2015)How scale affects structure in Java programsACM SIGPLAN Notices10.1145/2858965.281430050:10(675-694)Online publication date: 23-Oct-2015
    • (2015)How scale affects structure in Java programsProceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2814270.2814300(675-694)Online publication date: 23-Oct-2015
    • (2015)Patterns of Cooperative Technology Development and Transfer for Software-Engineering-in-the-LargeProceedings of the 2015 IEEE/ACM 2nd International Workshop on Software Engineering Research and Industrial Practice10.1109/SERIP.2015.14(32-38)Online publication date: 17-May-2015
    • (2014)The Change Impact Analysis in BPM Based Software Applications: A Graph Rewriting and Ontology Based ApproachEnterprise Information Systems10.1007/978-3-319-09492-2_17(280-295)Online publication date: 25-Jul-2014
    • Show More Cited By

    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