[Ada Information Clearinghouse]

"Rationale for the Design of the
Ada® Programming Language"

[Ada '83 Rationale, HTML Version]

Copyright ©1986 owned by the United States Government. All rights reserved.
Direct inquiries to the Ada Information Clearinghouse at adainfo@sw-eng.falls-church.va.us.


Also see subheading below: "Languages"

[Ba 70]Balzer, R.M., Ports, A method for dynamic interprogram communication and job control, Rand Corporation (R605 ARPA) (1970).
[BFH 76]Bron, C., Fokkinga, M.M. and De Haas, A.C.M., A proposal for dealing with abnormal termination of programs, Twente University of Technology, Mem. Nr. 150, The Netherlands (Nov. 1976).
[BJ 78]Bert, D., Jacquet, P., Some Validation Problems with Parameterized Types and Generic Functions, Proc. 3rd International Symposium on Programming, Paris, Dunod (1978), pp. 279-292.
[BH 70]Brinch Hansen, P., The Nucleus of a Multiprogramming System, Comm. ACM 13,4 (April 1970), pp. 238-241.
[BH 73]Brinch Hansen, P., Operating System Principles, Prentice Hall, N.J., 1973.
[BH 75]Brinch Hansen, P., The Programming Language Concurrent Pascal, IEEE Trans. Software Eng. 1,2 (June 1975), pp. 199- 207.
[BH 77]Brinch Hansen, P., Distributed processes, a concurrent programming concept, Computer Science Department, University of Southern California - Los Angeles (1977).
[BH 78]Brinch Hansen, P., Distributed processes: A Concurrent Programming Concept, Comm. ACM 21, 11 (Nov. 1978), pp. 934- 941.
[Br 78]Brown, W.S., A Realistic Model of Floating Point Computation, Numerical Software, Vol. 3 (ed., Rice), Academic Press, 1978.
[CH 74]Campbell, R.H., Habermann, A.N., The Specification of process synchronization by path expressions, Lecture notes in computer science, Vol. 16, Springer (1974), pp. 89-102.
[Co 63]Conway, M.E., Design of a Separable Transition-Diagram Compiler, Comm. ACM 6,7 (July 1963), pp. 396-408.
[DDH 72]Dahl, O-J, Dijkstra, E.W., Hoare, C.A.R., Structured Programming, Academic Press, London 1972.
[DH 76]De Haas, A.C.M., Escape Clauses in Programming Languages, Twente University of Technology, The Netherlands (Sept. 1976).
[Di 68]Dijkstra, E.W., Cooperating Sequential Processes, in Programming languages, (ed. F. Genuys), Academic Press, London, 1968, pp. 43-112.
[Di 72]Dijkstra, E.W., Notes on Structured Programming, in Structured Programming, Academic Press, London, 1972.
[DoD 77]Department of Defense, Revised Ironman requirements for high order computer programming languages, July 1977.
[DoD 78]Department of Defense, Steelman requirements for high order computer programming languages, June 1978.
[DoD 80]Requirements for Ada Programming Support Environments: STONEMAN; February 1980. United States Department of Defense, Office of the Under Secretary of Defense for Research and Engineering. NTIS- AD- A100 404/3.
[Fo 77]Fokkinga, M.M., Axiomatization of declarations and the formal treatment of an escape construct, Twente University of Technology, Mem. Nr. 176, The Netherlands (Sept. 1977).
[Fr 77]Francez, N., Another advantage of Keyword Notation for Parameter Communication with Subprograms, Comm. ACM 20,8 (Aug. 1977), pp. 604-605.
[GH 75]Gannon, J.D., Horning, J.J., Language design for programming reliability, IEEE Trans. Software Eng. SE-1,2 (June 1975), pp. 179-191.
[GK 77]Goos, G., Karstens, P., A Comparison of Modularization Facilities in Four Languages, IFIP Working Conference on the Production of Reliable Software, Novosibirsk 1977, North Holland.
[GM 75]Geschke, C.G., Mitchell, J.G., On the problem of uniform references to data structures, IEEE Trans. Software Eng. SE- 1,2 (June 1975), pp. 207-219.
[Go 75]Goodenough, J.B., Exception Handling: Issues and a Proposed Notation, Comm. ACM 18,12 (Dec. 1975), pp. 683-696.
[Gu 77]Guttag, J., Abstract Data Types and the Development of Data Structures, Comm. ACM 20,6 (June 1977), pp. 396-404.
[GS 77]Geschke, C.M., Satterthwaite, E.H., Exception Handling in Mesa, XEROX PARC report, Palo Alto (1977).
[Ha 77]Hartmann, A.C., A Concurrent Pascal Compiler for a mini computer, Lecture Notes in Comp. Science, vol. 50, Springer Verlag (1977).
[Hab 73]Habermann, A.N., Critical comments on the programming language Pascal, Acta Informatica, 3 (1973), pp. 47-57.
[Har 76]Hardgrave, W.T., Positional versus keyword parameter communication in programming language, ACM, SIGPLAN Notices 11,5 (May 1976), pp. 52-58.
[HF 76]Hague, S.J., and Ford, B., Portability, Prediction and Correction, Software - Practice and Experience, Vol. 6 (1976), pp. 61-69.
[Hi 63]Higman,B. What everybody should know about Algol. Computer Journal 6,1 (1963), pp. 50-56.
[HLMR 74]Horning, J.J., Lauer, H.C., Melliar-Smith, P.M., Randell, B., A program structure for error definition and recovery, in Operating Systems, Gelenbe and Kaiser (Eds.), Springer Verlag, N.Y. (1974), pp. 171-187.
[Ho 74]Hoare, C.A.R., Monitors: An Operating System Structuring Concept, Comm. ACM 17, 10 (Oct. 1974), pp. 549-557.
[Ho 78]Hoare, C.A.R., Communicating sequential processes, Comm. ACM 21, 8 (Aug. 1978), pp. 666-677.
[HW 73]Hoare, C.A.R., and Wirth, N., An Axiomatic Definition of Ùhe Programming Language Pascal, Acta Informatica, ÷ol.2 (1973), pp. 335-355.
[I 79]Ichbiah, J.D, et al., Rationale of the Design of the Ada Programming Language, ACM, SIGPLAN Notices 14, 6 (June 1979), Part B.
[IF 77]Ichbiah, J.D., Ferran, G., Separate Definition and Compilation in LIS and its Implementation, Cornell Symposium on the Design of High Order Languages, in Lecture Notes in Computer Science, Springer Verlag, N.Y. (1977).
[Ka 74]Kahn, G., The semantics of a simple language for parallel programming, Proc. IFIP Congress 74, North Holland (1974).
[KBL 80]Krieg-Brueckner, B., Luckham, D.C., ANNA: Towards a Language for Annotating Ada Programs, ACM, SIGPLAN Notices 15, 11 (Nov. 1980), pp.128-138.
[Le 77]Levin, R., Program Structures for Exceptional Condition Handling (PhD Thesis), Dept. of Computer Science, Carnegie Mellon University (June 1977).
[LMS 74]Lampson, B.W., Mitchell, J.G., Satterthwaite, E.H., On the transfer of control between contexts, Lecture notes in Computer Science, Vol. 19, Robinet (Ed.) Springer Verlag, N.Y. (1974), pp. 181-203.
[LSAS 77]Liskov, B., Snyder, A., Atkinson, R., Schaffert, C., Abstraction mechanisms in CLU, Comm. ACM 20,8 (Aug. 1977), pp. 564-576.
[Or 50]Orwell, G., "1984", Harcourt, Brace and Co., N.Y. (July 1950).
[Pa 71]Parnas, D.L., Information distribution aspects of design methodology, Information Processing 71, North Holland Pub. Co., Amsterdam (1971), pp. 339-344.
[PW 74]Presser, L., White, J., Making Global Variables Beneficial, Proceedings IFIP Congress 1974 (Aug. 1974).
[PW 76]Parnas, D.L., Wurges, H., Response to Undesired Events in Software Systems, Proc. 2nd Int'l. Conf. on Software Engineering (October 1976).
[Ra 75]Randell, B., System Structure for Fault Tolerance, Proc. Int'l. Conf. on Reliable Software, Los Angeles (1975), and SIGPLAN Notices, Vol. 10,6 (Jun. 1975).
[Ro 70]Ross, D.T., Uniform referents: An essential property for a software engineering language, in Software Engineering (J.TOU, Ed.), Vol. 1, Academic Press (1970), pp. 91-101.
[SW 74]Scowen, R.S., Wichmann, B.A., The definition of comments in Programming Languages, Software - Practice and Experience, Vol. 4,2 (April 1974), pp. 181-188.
[SWKW]Symm, G.T., Wichmann, B.A., Kok, J., Winter, D.T., Guidelines for the design of large modular scientific libraries in Ada. National Physical Laboratory Report DITC 37/84 (March 1984).
[VH 75]Von Henke, F.W., On Generating Programs from Data Types: An Approach to Automatic Programming. Proc. Int'l. Symposium on Proving and Improving Programming (Arc-et-Senans) IRIA (1975), pp. 57-70.
[Wa 72]Walden, D.C., A System for Interprocess Communication in a Resource Sharing Computer Network, Comm. ACM 15,4 (April 1972), pp. 221-230.
[We 78]Welsh, J., Economic Range Checks in Pascal, Software - Practice and Experience, Vol. 8, 1 (Jan. 1978), pp. 85-98.
[Wi 71]Wirth, N., Program development by stepwise refinement, Comm. ACM 14,4 (April 1971), pp. 221-227.
[Wo 72]Woodger, M., Levels of Language, in High Level Languages, INFOTECH, State of the Art Report, No. 7 (1972), pp. 201-215.
[WSH 77]Welsh, J., Sneeringer, M.J., Hoare, C.A.R., Ambiguities and Insecurities in Pascal, Software - Practice and Experience, Vol. 7,6 (Nov. 1977), pp. 685-696.
[Za 74]Zahn, C.T., A control Statement for natural top-down structured programming, in Lecture Notes in Computer Science, No. 19, Robinet(Ed.), Springer Verlag, N.Y. (1974), pp. 170- 180.


Ada Reference Manual for the Ada programming language (ANSI/MIL- STD 1815 A). US government, Ada Joint Program Office (Jan. 1983).
Algol 60 Naur, P. (ed.), Revised Report on the algorithmic language Algol 60, Comm. ACM, Vol.6,1 (Jan, 1963), pp. 1-17.
Algol 68 Van Wijngaarden, A., et al., Revised Report on the algorithmic language Algol 68, Acta Informatica, Vol. 5, Fasc.1-3 (1975), pp. 1-236.
Alphard Wulf, W.A., London, R.L., and Shaw, M., Abstraction and verification in Alphard: Introduction to language and methodology, USC Inform. Sci. Institute Technical Report, University of Southern California, Los Angeles (1976).
Bliss-II Digital Equipment Corporation, BLISS-II Programmer's Manual, Maynard, Mass. (1974).
Clu Liskov, B., A Note on CLU, Computation Structures Group Memo 112, MIT Project MAC, Cambridge, Mass. (Nov. 1974).
Coral 66 Woodward, P.M., Wetherall, P.R., and Gorman, B., Official Definition of CORAL 66, Her Majesty's Stationery Office (1970).
CS-4 Brosgol, Ben M., et al., CS-4 Language Reference Manual and Operating System Interface, Report IR-130-2, Intermetrics, Inc., Cambridge, Mass. (Oct. 1975).
EL1 Wegbreit, B., The Treatment of Data Types in EL1, Comm. ACM, Vol. 17,5 (May, 1974), pp. 251- 264.
Euclid Lampson, B.W., Horning, J.J, London, R.L., Mitchell, J.G, and Popek, G.J., Report on the Programming Language Euclid, SIGPLAN Notices, Vol. 12,2 (Feb. 1977).
Fortran ANSI (formerly USASI) - X3.9 - 1978 (USA Standard Fortran).
Jovial Perstein, M.H., The JOVIAL (J3) Grammar and Lexicon, SDC technical report TM-555 (1966).
Lis Ichbiah, J.D., Rissen, J.P., Heliard, J.C., Cousot, P., The System Implementation Language LIS, Reference Manual, CII-HB Technical Report 4549 E/EN, CII-HB, Louveciennes, France (Dec. 1974).
Mary Rain, M., Mary Programmer's Reference Manual, R Unit, Trondheim (1974).
Mesa Mitchell, J.G., Maybury, W., Sweet, R., Mesa Language Manual, Version 5.0, Xeros PARC Report CSL-79-3(Apr. 1979).
Modula Wirth, N., Nodula: A Programming Language for Modular Multiprocessing, Software - Practice and Experience, Vol. 7,1 (June 1977), pp. 3-35.
Modula-2 Wirth, N., Programming in Modula-2, Springer Verlag (1983)
Pascal Wirth, N., The programming language Pascal, Acta Informatica, Vol. 1, No. 1 (1971), pp. 35- 63, Springer Verlag.
RTL/2 Barnes, J.G.P., RTL/2 Design and Philosophy, Heyden, London (1976).
Simula 67 Dahl, O.J., Nygaard, K., Myhrhaug, B., The Simula 67 common base language, Pub S-22, Norwegian Computing Center, Oslo (1969).
Sue Clark, B.L., Horning, J.J., The System Language for Project Sue, SIGPLAN Notices, Vol. 6,9 (Oct. 1971), pp. 79-88.
Tartan Shaw, M., Hilfinger, P., Wulf, W.A., TARTAN - Language design for the Ironman Requirements: Reference Manual, SIGPLAN Notices, Vol. 13,9 (September 1978), pp. 36-58.

Address any questions or comments to adainfo@sw-eng.falls-church.va.us.