{"title":"Session details: Applications","authors":"J. Goodenough","doi":"10.1145/3306120","DOIUrl":"https://doi.org/10.1145/3306120","url":null,"abstract":"","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"65 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-10-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123587048","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
We are implementing an Ada compiler, written in Ada, using the Diana intermediate notation. Before proceeding with the compiler, we had to decide on the detailed implementation of Diana. This paper discusses our design decisions in two important areas: the partitioning and representation of Diana node types using Ada variant records types, and the implementation of separate compilation using a software virtual memory technique. We have found these approaches both simplify the construction of a reliable and efficient compiler, and support the goals of an integrated Ada programming support environment.
{"title":"Diana as an internal representation in an Ada-in-Ada compiler","authors":"S. Taft","doi":"10.1145/3304133.3304168","DOIUrl":"https://doi.org/10.1145/3304133.3304168","url":null,"abstract":"We are implementing an Ada compiler, written in Ada, using the Diana intermediate notation. Before proceeding with the compiler, we had to decide on the detailed implementation of Diana. This paper discusses our design decisions in two important areas: the partitioning and representation of Diana node types using Ada variant records types, and the implementation of separate compilation using a software virtual memory technique. We have found these approaches both simplify the construction of a reliable and efficient compiler, and support the goals of an integrated Ada programming support environment.","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-10-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122042739","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The design and implementation of the Ada [1] programming language was commissioned by DoD with the intention of requiring most future military systems to be programmed in Ada. It is therefore necessary that Ada be precisely understood by both its users and implementers, in order to ensure the quality of systems written in Ada. In particular, since DoD must control Ada compiler implementations, a precise, well-structured, and validated formal definition of Ada can provide one of the principal standards to which these implementations must adhere. Beyond such considerations pertaining to particular programming languages such as Ada, good generic research toward the design and implementation of tools and methodologies for supporting the development of precise, readable, and accurate formal definitions has considerable relevance to the broader goals of understanding large programs and verifying their correctness.
{"title":"Testing the INRIA Ada formal definition: the USC-ISI formal semantics project","authors":"V. Kini, David F. Martin, Alley Stoughton","doi":"10.1145/3304133.3304151","DOIUrl":"https://doi.org/10.1145/3304133.3304151","url":null,"abstract":"The design and implementation of the Ada [1] programming language was commissioned by DoD with the intention of requiring most future military systems to be programmed in Ada. It is therefore necessary that Ada be precisely understood by both its users and implementers, in order to ensure the quality of systems written in Ada. In particular, since DoD must control Ada compiler implementations, a precise, well-structured, and validated formal definition of Ada can provide one of the principal standards to which these implementations must adhere. Beyond such considerations pertaining to particular programming languages such as Ada, good generic research toward the design and implementation of tools and methodologies for supporting the development of precise, readable, and accurate formal definitions has considerable relevance to the broader goals of understanding large programs and verifying their correctness.","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-10-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124148338","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
We develop conventions to be followed when creating abstract data types in Ada. These conventions define a discipline for the use of initialization, finalization, assignment, private types, and generic packages in writing transportable and interchangeable abstract data types. We illustrate the conventions by presenting several implementations of an Ada package for a typical abstract data type, Set. The implications of these conventions for compiler implementation are discussed.
{"title":"A methodology for programming abstract data types in Ada","authors":"M. Sherman, Andy Hisgen, Jonathan Rosenberg","doi":"10.1145/3304133.3304143","DOIUrl":"https://doi.org/10.1145/3304133.3304143","url":null,"abstract":"We develop conventions to be followed when creating abstract data types in Ada. These conventions define a discipline for the use of initialization, finalization, assignment, private types, and generic packages in writing transportable and interchangeable abstract data types. We illustrate the conventions by presenting several implementations of an Ada package for a typical abstract data type, Set. The implications of these conventions for compiler implementation are discussed.","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"97 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-10-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133996900","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Session details: Kapse issues","authors":"R. Brender","doi":"10.1145/3306116","DOIUrl":"https://doi.org/10.1145/3306116","url":null,"abstract":"","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-10-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130992739","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Ada requires compilers (and their linkers) to choose an order of elaboration (OOE) for the library units of a program being prepared for execution. July 1980 Ada [Ada-80] further requires that this order be chosen so that no formal access-before-elaboration (F-ABE) situation result. The proposed revisions to Ada following the ANSI canvass [Ada-82] have eliminated this requirement but now provide that an actual access-before-elaboration (A-ABE) shall cause the exception SOME_ERROR to be raised. This paper will define F-ABE and A-ABE, will discuss rationales for both the old and the new rules, and will discuss implications of the new rules in relation to other language features proposed for inclusion in 1982 Ada. The algorithms used in IAPC-20, the Intermetrics Ada Prototype Compiler for TOPS-20, which implement the July 1980 rules regarding F-ABE and OOE, will also be discussed and sketched.
{"title":"On the access-before-elaboration problem in Ada","authors":"Peter A. Belmont","doi":"10.1145/3304133.3304149","DOIUrl":"https://doi.org/10.1145/3304133.3304149","url":null,"abstract":"Ada requires compilers (and their linkers) to choose an order of elaboration (OOE) for the library units of a program being prepared for execution. July 1980 Ada [Ada-80] further requires that this order be chosen so that no formal access-before-elaboration (F-ABE) situation result. The proposed revisions to Ada following the ANSI canvass [Ada-82] have eliminated this requirement but now provide that an actual access-before-elaboration (A-ABE) shall cause the exception SOME_ERROR to be raised. This paper will define F-ABE and A-ABE, will discuss rationales for both the old and the new rules, and will discuss implications of the new rules in relation to other language features proposed for inclusion in 1982 Ada. The algorithms used in IAPC-20, the Intermetrics Ada Prototype Compiler for TOPS-20, which implement the July 1980 rules regarding F-ABE and OOE, will also be discussed and sketched.","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"52 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-10-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122118504","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Proceedings of the AdaTEC Conference on Ada","authors":"","doi":"10.1145/3304133","DOIUrl":"https://doi.org/10.1145/3304133","url":null,"abstract":"","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120984012","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}