Nothing Special   »   [go: up one dir, main page]

skip to main content
article
Free access

A history of CLU

Published: 01 March 1993 Publication History

Abstract

The idea of a data abstraction has had a significant impact on the development of programming languages and on programming methodology. CLU was the first implemented programming language to provide direct linguistic support for data abstraction. This paper provides a history of data abstraction and CLU. CLU contains a number of other interesting and influential features, including its exception handling mechanism, its iterators, and its parameterized types.

References

[1]
Aieflo, Jack, An Investigation of Current Language Support for the Data Requirements of Structured Programming, Technical Memo MiT/LCS/TM-51, MIT Laboratory for Computer Science, Cambridge, MA, September 1974.
[2]
Anantharaman, S., J. Hsieng, and J. Mzali, SbReve2: A Term Rewriting Laboratory with AC- Unfailing Completion, in Proceedings of the 3rd International Conference on Rewriting Techniques and Applications, 1989. Lecture Notes in Computer Science, 355, Springer-Verlag.
[3]
Arkko, J., V. Hirvisalo, J. Kuusela, E. Nuutila and M. Tamminen, XE Reference Manual (XE Version 1.0), 1989. Dept. of Computer Science, Helsinki University of Technology, Helsinki, Finland.
[4]
Atkinson, Russell, Toward More Genera/ Iteration Methods in CLU, CLU Design Note 54, Programming Methodology Group, MIT Laboratory for Computer Science, Cambridge, MA, September 1975.
[5]
Bacon J., and K. Hamilton, Distributed Computing with RPC: The Cambridge Approach, in Barton, M., et al., eds., Proceedings of IFIPS Conference on Distributed Processing, North Holland, 1988.
[6]
Bacon J., I. Leslie, and R. Needham, Distributed Computing with a Processor Bank, in Proceedings of Workshop on Distributed Computing, Bedin: 1988. Also Springer Verlag Lecture Notes in Computer Science, 433, 1989.
[7]
Balzer, Robert M., Dataless Programming, in Fall Joint Computer Conference, 1967
[8]
Berzins, Valdis, Abstract Model Specifications for Data Abstractions, Technical Report MIT/LCS/TR-221, MIT Laboratory for Computer Science, Cambridge, MA, July 1979.
[9]
Cardelli, Luca, A Semantics of Multiple Inheritance, Information and Computation, 76, 1988, 138-164.
[10]
Chambers, Craig, and David Ungar, iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented Programs, in Proceedings of the ACM SIGPLAN "90 Conference on Programming Language Design and Implementation, June 1990.
[11]
Clark, David, The Structuring of Systems Using Upcalls, in Proceedings of the Tenth ACM Symposium on Operating Systems Principles, Orcas Island, WA: ACM 1985.
[12]
Cooper, R., Pilgrim: A Debugger for Distributed Systems, in Proceedings of IEEE 7th ICDCS, Berlin: 1987.
[13]
Craft, D., Resource Management in a Decentralised System, Operating Systems Review, 17:5, June 1983, 11-19.
[14]
Dahl, O.-J., B. Myhrhaug, and K Nygaard; The Simula 67 Common Base Language. Publication No. S-22, Norwegian Computing Center, Oslo, 1970.
[15]
Dennis, Jack, and Barbara Liskov, Semantic Foundations for Structured Programming, Proposal to National Science Foundation, 1974.
[16]
Dennis, Jack, A First Version of a Data Flow Procedure Language, Protect MAC Technical Memorandum 66, Cambridge, MA: MIT Laborato~ lot Computer Science, May 1975. Also published in Proceedings of Symposium on Programming, Institut de Programmation, University of Paris, Paris, France, April 1974, 241-271.
[17]
Dijkstra, Edsger W., Go To Statement Considered Harmful, Communications of the ACM, 11:3, March 1968, 147-148.
[18]
Dijkstra, Edsger W., The Structure of the "THE"-multiprogramming System, Communications of the ACM, 11:5, May 1968, 341-346.
[19]
Dijkstra, Edsger W., Notes on Structured Programming, in Structured Programming, Academic Press, 1969.
[20]
Earley, Jay, Toward an Understanding of Data Structures, Communications of the ACM, 14:10, October 1971,617-627.
[21]
Faltey, Stuart W., and Gre0 Piister, MDL - Primer and Manual, MIT Laboratory tot Computer Science, Cambridge, MA, 1977.
[22]
Garland, Stephen, John Guttag, and James Homing, Debugging Larch Shared Language Specitications, tEE E Transactions on Software Engineering, 16:9, September 1990, 1044-1057.
[23]
Goguen, J. A., J. W. Thatcher, E. G. Wagner, and J. B. Wright, Abstract Data-types as Initial Algebras and Correctness of Data Representations, in Proceedings of Conference on Computer Graphics, Pattern Recognition and Data Structure, May 1975.
[24]
Goodenough, John, Exception Handling: Issues and a Proposed Notation, Communications ot the ACM, 181 December 1975, 683-696.
[25]
Gutlag, John, The Specification and Application to Programming of Abstract Data Types. Technical Report CSRG-59, Computer Systems Research Group, University ot Toronto, Canada, 1975.
[26]
Guttag, John, Notes on Type Abstraction {Version 2), IEEE Transactions on Software Engineering, SE-6:1, January 1980, 13-23.
[27]
Guttag, John, Abstract Data Types and the Development o~ Data Structures, Communications of the ACM, 20:6, June 1977. Also in Proceedings of Conference on Data: Abstraction, Definition and Structure, Salt Lake City, UT, March 1976.
[28]
HerLihy, Maurice, and Barbara Liskov, A Value Transmission Method tot Abstract Data Types, ACM Transactions on Programming Languages and Systems, 4:4, October 1982, 527-551.
[29]
Hoare, C. A. R., Proof of Correctness ot Data Representations, Acta Informatica, 41 1972, 271-281.
[30]
Horning, James, Private Communication, 1991.
[31]
Ichbiah, Jean, J. Rissen, and J Heliard, The Two-Level Approach to Data Detinition and Space Management in the LIS System Implementation Language, in Proceedings of ACM SlGPLAN- SIGOPS Interface Meeting -- Programming Languages-Operating Systems, Savannah, GA: ACM, April 1973.
[32]
Kirnura, Izumi, Private Communication, 1992.
[33]
Lampson, Butler, James Mitchell, and Edward Satterthwaite, On the Transler of Control Between Contexts, in Proceedings of Symposium on Programming, Institut de Programmation, University of Paris, Paris, France: 1974.
[34]
Landin, Peter, The Mechanical Evaluation of Expressions, Computer Journal, 6:4, January 1964, 308-320.
[35]
Levin, Roy, Program Structures for Exceptional Condition Handling, Ph.D. dissertation, Dept. of Computer Science, Carnegie Mellon University, Pittsburgh, PA, 1977.
[36]
Liskov, Barbara, A Design Methodology tot Reliable Software Systems, in Proceedings of Fall Joint Computer Conference 41, Part I, IEEE, December 1972. Also published in Tutorial on Software Design Techniques, Peter Freeman and A. Wasserman, Eds., IEEE, 1977, 53-61.
[37]
Uskov, Barbara, The Design o! the Venus Operating System, Communications of the ACM, 15:3, March 1972. Also published in Software Systems Principles: A Survey, Peter Freeman. SRA Associates, Inc., Chicago 1975, 542-553.
[38]
Liskov, Badoara, Report ot Session on Structured Programming, in Proceedings of ACM SIGPLAN- SIGOPS Interface Meeting -- Programming Languages-Operating Systems, Savannah, GA: ACM, April 1973.
[39]
Liskov, Barbara, Fundamental Studies Group Progress Report, in Project MAC Progress Report X, Cambridge, MA: MIT Laboratory for Computer Science 1973.
[40]
Liskov, Barbara, and Stephen Zilles, An Approach to Abstraction, Computation Structures Group Memo 88, MIT Laboratory for Computer Science, Cambridge, MA, September 1973.
[41]
Liskov, Barbara, and Stephen Zilles, Programming with Abstract Data Types, in Proceedings of ACM SlGPLAN Conference on Very High Level Languages, ACM 1974.
[42]
Liskov, Barbara, Fundamental Studies Group Progress Report, in Project MAC Progress Report Xl, Cambridge, MA: MIT Laboratory for Computer Science 1974.
[43]
Liskov, Barbara, A Note on CLU, Computation Structures Group Memo 112, Laboratory for Computer Science, MIT, Cambridge, MA, November 1974.
[44]
Liskov, Barbara, Multiple Implementation of a Type, CLU Design Note 53, Cambridge, MA: MIT Laboratory for Computer Science, July 1975.
[45]
Liskov, Barbara, Fundamental Studies Group Progress Report, in Laboratory for Computer Science Progress Report X/I, Cambridge, MA: MIT Laboratory for Computer Science 1975.
[46]
Liskov, Barbara, Introduction Io CLU, in S. A. Schuman, ed., New Directions in Algorithmic Languages 1975, INRIA, 1976.
[47]
Liskov, Barbara, Programming Methodology Group Progress Report, in Laboratory for Computer Science Progress Report XlV, Cambridge, MA: MIT Laboratory for Computer Science 1977.
[48]
Liskov, Barbara, and Alan Snyder, Structured Exception Handling, Computation Structures Group Memo 155, MIT Laboratory for Computer Science, Cambridge, MA, December 1977.
[49]
Liskov, Barbara, Alan Snyder, Russell Atkinson, and J. Craig Schaffert, Abstraction Mechanisms in CLU, Communications of the ACM, 20:8, August 1977, 564-576. Also published as Computation Structures Group Memo 144-1, MIT Laboratory for Computer Science, Cambridge, MA, January 1977.
[50]
Liskov, Barbara, Russell Atkinson, Toby Bloom, J. Eliot Moss, J. Craig Schaffert, Robert Scheifler, and Alan Snyder, CLU Reference Manual, Computation Structures Group Memo 161, MIT Laboratory for Computer Science, Cambridge, MA, July 1978.
[51]
Liskov, Barbara, Russell Atkinson, and Robert Scheifler, Aspects of Implementing CLU, in Proceedings of the Annual Conference, ACM 1978.
[52]
Liskov, Barbara, Modular Program Construction Using Abstractions, Computation Structures Group Memo 164, MIT Laboratory for Computer Science, Cambridge, MA, September 1979.
[53]
Liskov. Barbara, and Alan Snyder, Exception Handling in CLU, IEEE Transactions on Software Engineering, SE-5:6, November 1979, 546-558.
[54]
Liskov, Barbara, Russell Atkinson, Toby Bloom, J. Eliot Moss, J. Craig Schaffert, Robert Scheitler, and Alan Snyder, CLU Reference Manual, Technical Report MIT/LCS/TR-225, MIT Laboratory tor Computer Science, Cambridge, MA, October 1979.
[55]
Liskov, Barbara, and Robert Scheiller, Guardians and Actions: Linguistic Support for Robust, Distributed Programs, ACM Transactions on Programming Languages and Systems, 5:3, July 1983, 381-404.
[56]
Liskov, Barbara, Russell Atkinson, Toby Bloom, J. Eliot Moss, J. Craig Schaffert, Robert Scheiller, and Alan Snyder, CLU Reference Manual, Springer-Vedag, 1984. Also published as Lecture Notes in Computer Science 114, G. Goos and J. Hadmanis, Eds., Springer-Verlag, 1981.
[57]
Liskov, Barbara, and John Guttag, Abstraction and Specification in Program Development, MIT Press and McGraw Hill, 1986.
[58]
Liskov, Barbara, Distributed Programming in Argus, Communications of the ACM, 31:3, March 1988, 300-312.
[59]
Liskov, Barbara, Preliminary Design of the Thor Object-Oriented Database System, Programming Methodology Group Memo 74, MIT Laboratory for Computer Science, Cambridge, MA, March 1992.
[60]
McKeag, R. M., Programming Languages for Operating Systems, in Proceedings of ACM SlGPLAN-SlGOPS Interface Meeting -- Programming Languages-Operating Systems, Savannah, GA: ACM, April 1973.
[61]
Milner, Robin, M. Tolte, and R. Harper, The Definition of Standard ML, Cambridge, MA: MIT Press, 1990.
[62]
Mitchell, James G., W. Maybury, and R. Sweet, Mesa Language Manual, Technical Report CSL-78-1, Xerox Research Center, Palo Nto, CA, February 1978.
[63]
Morris, James H., Jr., Protection in Programming Languages, Communications of the ACM, 16:1, January 1973, 15-21.
[64]
Morris, James H., Jr., Types are Not Sets, in Proceedings of the Symposium on Principles of Programming Languages, ACM 1973.
[65]
Moss, J. Eliot, Abstract Data Types in Stack Based Languages, Technical Report MIT/LCS/FR-190, Cambridge, MA: MIT Laboratory for Computer Science, February 1978.
[66]
Nelson, Greg, Private Communication, 1991.
[67]
Palme, Jacob, Protected Program Modules in Simu/a 67, FOAP Report C8372-M3 (E5), Stockholm, Sweden: Research Institute of National Delence, Division of Research Planning and Operations Research, July 1973.
[68]
Parnas, David, Information Distribution Aspects of Design Methodology, in Proceedings of/FIP Congress, North Holland Publishing Co., 1971.
[69]
Parnas, David, On the Criteria to be Used in Decomposing Systems into Modules, Communications of the ACM, 15:12, December 1972, 1053-1058.
[70]
Parnas, David, A Technique for the Specification of Software Modules with Examples, Communications of the ACM, 15, May 1972, 330-336.
[71]
Programming Methodology Group, CLU Design Notes, MIT Laboratory for Computer Science, Cambridge, MA, 1973-1979.
[72]
Programming Methodology Group, CLU Design Meeting Minutes, MIT Laboratory for Computer Science, Cambridge, MA, 1974-1979.
[73]
Randell, Brian, Towards a Methodology ol Computer Systems Design, in P. Naur and B. Randell, ed., Soltware Engineering, NATO Science Committee, 1969.
[74]
Ross, Douglas T., Uniform Referents: An Essential Property for a Software Engineering Language, in J. T. Tou, ed., Software Engineering, Academic Press, 1970.
[75]
Schaffert, J. Craig, A Formal Definition of CLU, Technical Report MIT/LCS/TR.193, MIT Laboratory for Computer Science, Cambridge, MA, January 1978.
[76]
Schaffert, Craig, T. Cooper, B. Bullis, M. Kilian and C. Wilpolt, An Introduction to Trellis/Owl, in Proceedings of ACM Conference on Object Oriented Systems, Languages and Applications, Portland, OR September 1986.
[77]
Scheifler, Robert, An Analysis of Inline Substitution for a Structured Programming Language, S.B. Thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge, MA, 1976.
[78]
Scheifler, Robert, An Analysis of Inline Substitution for a Structured Programming Language, Communications of the ACM, 20:9, September 1977.
[79]
Scheifler, Robert, A Denotational Semantics of CLU, Technical Report MIT/LCS/TR-201, MIT Laboratory for Computer Science, Cambridge, MA, June 1978.
[80]
Shaw, Mary, William Wuif, and Ralph London, Carnegie Mellon University and USC Information Sciences Institute Technical Reports, Abstraction and Verification in Alphard: Iteration and Generators, August 1976.
[81]
Shaw, Mary, William Wulf, and Ralph London, Abstraction and Verification in AIphard: Defining and Specifying Iteration and Generators, Communications of the ACM, 20:8, August 1977.
[82]
Shaw, Mary, ed., ALPHARD: Form and Content, Springer-Verlag, 1981.
[83]
Snyder, Alan and Russell Atkinson, Preliminary CLU Reference Manual CLU Design Note 39, Programming Methodology Group, MIT Laboratory for Computer Science, Cambridge, MA, January 1975.
[84]
Spitzen, Jay, and Ben Wegbreit,The Verification and Synthesis of Data Structures, Acta Informatica, 4, 1975, 127-144.
[85]
Wegbreil, Ben, D. Brosgol, G. HoJIoway, Chades Prenner, and Jay Spitzen, ECL Programmer's Manual Center for Research in Computing Technology, Harvard University, Cambridge, MA, 1972
[86]
Wegbreit, Ben, The Treatment of Data TyPes in EL 1, Center for Research in Computing Technology, Harvard University, Cambridge, MA, 1973.
[87]
Wirth, Niklaus, Program Development by Slepwise Relinement, Communications of the ACM, 14:4, April 1971, 221-227.
[88]
Wulf, William, and Mary Shaw, Global Variables Considered Harmful, SIGPLAN Notices, 8:2, February 1973, 28-34
[89]
Wulf, William, Ralph London, and Mary Shaw, An Introduction to the Construction and Verification o! AIphard Programs, IEEE Transactions on Software Engineering. SE-2:4, December 1976, 253-265. Presented at Second International Conference on Software Engineering, October 1976.
[90]
Zilles, Stephen, Procedural Encapsulation: A Linguistic Protection Technique, in Proceedings of ACM SIGPLAN-SIGOPS Interface Meeting -. Programming Languages-Operating Systems, Savannah, GA: ACM, April 1973.
[91]
Zilles, Stephen, Computation Structures Group Progress Report, in Project MAC Progress Report XI, Cambridge, MA: MIT Laboratory for Computer Science 1974,
[92]
Zilles, Stephen, Working Notes on Error Handling, CLU Design Note 6, Cambridge. MA: MIT Laboratory for Computer Science, January 1974.
[93]
Zilles, Stephen, Algebraic Specification of Data Types, Computation Structures Group Memo 119, Cambridge, MA: MIT Laboratory for Computer Science, March 1975.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 28, Issue 3
March 1993
363 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/155360
Issue’s Table of Contents
  • cover image ACM Conferences
    HOPL-II: The second ACM SIGPLAN conference on History of programming languages
    April 1993
    370 pages
    ISBN:0897915704
    DOI:10.1145/154766
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 March 1993
Published in SIGPLAN Volume 28, Issue 3

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)98
  • Downloads (Last 6 weeks)9
Reflects downloads up to 18 Dec 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

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media