A fragment of ADA abstracting the communication and synchronization part is studied. An operational semantics for this fragment is given, emphasizing the justice and fairness aspects of the selection mechanisms. An appropriate notion of fairness is shown to be equivalent to the explicit entry-queues proposed in the reference manual. Proof rules for invariance and liveness properties are given and illustrated on an example. The proof rules are based on temporal logic.
{"title":"Rendezvous with ADA: a proof theoretical view","authors":"A. Pnueli, W. D. Roever","doi":"10.1145/3304133.3304152","DOIUrl":"https://doi.org/10.1145/3304133.3304152","url":null,"abstract":"A fragment of ADA abstracting the communication and synchronization part is studied. An operational semantics for this fragment is given, emphasizing the justice and fairness aspects of the selection mechanisms. An appropriate notion of fairness is shown to be equivalent to the explicit entry-queues proposed in the reference manual. Proof rules for invariance and liveness properties are given and illustrated on an example. The proof rules are based on temporal logic.","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"16 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":"127791781","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}
A new operating system interface based on the langauge Ada is described: the Ada Virtual Operating System (AVOS). Its goal is to provide a completely uniform user interface. All operating system commands and programs are expressed in Ada, and Ada is shown to provide sufficient expressive power to allow conventional operating system entities such as files and directories to be expressed in Ada terms.
{"title":"An Ada virtual operating system","authors":"Stephen B. Whitehill","doi":"10.1145/3304133.3304165","DOIUrl":"https://doi.org/10.1145/3304133.3304165","url":null,"abstract":"A new operating system interface based on the langauge Ada is described: the Ada Virtual Operating System (AVOS). Its goal is to provide a completely uniform user interface. All operating system commands and programs are expressed in Ada, and Ada is shown to provide sufficient expressive power to allow conventional operating system entities such as files and directories to be expressed in Ada terms.","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"12 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":"127959607","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: Operating system issues","authors":"D. Lamb","doi":"10.1145/3306122","DOIUrl":"https://doi.org/10.1145/3306122","url":null,"abstract":"","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"1147 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":"128071784","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}
A program development environment based on a high-level semantic representation of programs rather than a textual representation was investigated. Several programming languages are supported through the use of language parameterized tools. These tools are knowledgeable about each language in the environment; the tools are driven by a set of language dependent tables. Each programming language is described using a formal notation known as an annotated abstract syntax description. The description includes information about the structure of program trees for the language, the semantics of the various node types in the language, and prettyprinting rules for the language. A meta-tool was developed which translates the annotated abstract syntax (AAS) description into compact tables that can be used efficiently by language parameterized tools. The primary tool built was a language parameterized structure editor, driven by language dependent tables. The editor was parameterized into an Ada structure editor using an abstract syntax description for Ada, and tables produced by the AAS translator. The ability to parameterize the structure editor to additional languages was demonstrated by building a Pascal structure editor. It took two (summer student) days to write a complete Pascal abstract syntax description and bring up a fully functional Pascal editor. In addition to being language parameterized, the structure editor supports top-down development, it lets the user view the program at various levels of detail, and it provides interactive language consulting.
{"title":"Abstract syntax based programming environments","authors":"D. B. Leblang","doi":"10.1145/3304133.3304160","DOIUrl":"https://doi.org/10.1145/3304133.3304160","url":null,"abstract":"A program development environment based on a high-level semantic representation of programs rather than a textual representation was investigated. Several programming languages are supported through the use of language parameterized tools. These tools are knowledgeable about each language in the environment; the tools are driven by a set of language dependent tables. Each programming language is described using a formal notation known as an annotated abstract syntax description. The description includes information about the structure of program trees for the language, the semantics of the various node types in the language, and prettyprinting rules for the language. A meta-tool was developed which translates the annotated abstract syntax (AAS) description into compact tables that can be used efficiently by language parameterized tools. The primary tool built was a language parameterized structure editor, driven by language dependent tables. The editor was parameterized into an Ada structure editor using an abstract syntax description for Ada, and tables produced by the AAS translator. The ability to parameterize the structure editor to additional languages was demonstrated by building a Pascal structure editor. It took two (summer student) days to write a complete Pascal abstract syntax description and bring up a fully functional Pascal editor. In addition to being language parameterized, the structure editor supports top-down development, it lets the user view the program at various levels of detail, and it provides interactive language consulting.","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"37 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":"115833160","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: Education","authors":"P. Wegner","doi":"10.1145/3306117","DOIUrl":"https://doi.org/10.1145/3306117","url":null,"abstract":"","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"77 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":"126227102","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: Compiler front ends","authors":"W. Whitaker","doi":"10.1145/3306118","DOIUrl":"https://doi.org/10.1145/3306118","url":null,"abstract":"","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"11 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":"126857835","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}
A central part of any programming support environment is the data base that stores all project information. This paper presents the design of Adabase, a data base that manages Ada program families. Program families consist of multiple versions and configurations, and family members share a significant number of common parts. Besides Ada program modules and configurations, Adabase stores documentation and project control information. A set of high-level operations perform controlled update, propagation of interface changes, and automatic system generation. The logical data base structure is an attributed, directed graph. Since the standard, intermediate representation of Ada programs, Diana, is also an attributed, directed graph, we achieve a seamless integration of the two by formulating Ada-base in IDL, the metalanguage in which Diana is described.
{"title":"Adabase: a data base for Ada programs","authors":"W. Tichy","doi":"10.1145/3304133.3304141","DOIUrl":"https://doi.org/10.1145/3304133.3304141","url":null,"abstract":"A central part of any programming support environment is the data base that stores all project information. This paper presents the design of Adabase, a data base that manages Ada program families. Program families consist of multiple versions and configurations, and family members share a significant number of common parts. Besides Ada program modules and configurations, Adabase stores documentation and project control information. A set of high-level operations perform controlled update, propagation of interface changes, and automatic system generation. The logical data base structure is an attributed, directed graph. Since the standard, intermediate representation of Ada programs, Diana, is also an attributed, directed graph, we achieve a seamless integration of the two by formulating Ada-base in IDL, the metalanguage in which Diana is described.","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"38 3","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1982-10-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120923240","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}
This paper considers certain uses of Ada tasking---tasking idioms---that do not require the full generality of the mechanism. It describes implementation techniques for these idioms that reduce the required storage and time overheads on many operating systems. The intent is to allow programmers to use these idioms freely, without having to circumvent the tasking features of Ada in order to gain required performance.
{"title":"Implementation strategies for Ada tasking idioms","authors":"P. Hilfinger","doi":"10.1145/3304133.3304137","DOIUrl":"https://doi.org/10.1145/3304133.3304137","url":null,"abstract":"This paper considers certain uses of Ada tasking---tasking idioms---that do not require the full generality of the mechanism. It describes implementation techniques for these idioms that reduce the required storage and time overheads on many operating systems. The intent is to allow programmers to use these idioms freely, without having to circumvent the tasking features of Ada in order to gain required performance.","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"25 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":"128972897","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}
This paper presents some of the results that were achieved during the first phase of the Portable Ada Programming System (PAPS) project, actually under development by an European consortium comprising Christian Rovsing (Denmark), Dansk Datamatik Center (Denmark) and Olivetti (Italy). The focus of the document is on the runtime organisation of the system, particularly about the interrelationships among (M)APSE programs, the KAPSE and the Ada run-time support.
{"title":"Portable Ada programming system: a proposed run-time architecture","authors":"A. Fantechi, F. Gallo","doi":"10.1145/3304133.3304140","DOIUrl":"https://doi.org/10.1145/3304133.3304140","url":null,"abstract":"This paper presents some of the results that were achieved during the first phase of the Portable Ada Programming System (PAPS) project, actually under development by an European consortium comprising Christian Rovsing (Denmark), Dansk Datamatik Center (Denmark) and Olivetti (Italy). The focus of the document is on the runtime organisation of the system, particularly about the interrelationships among (M)APSE programs, the KAPSE and the Ada run-time support.","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"122 5 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":"129485000","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}