TRI-AdaPub Date : 1997-11-01DOI: 10.1145/269629.269638
Dong-Ik Oh, T. Baker
{"title":"Optimization of Ada '95 tasking constructs","authors":"Dong-Ik Oh, T. Baker","doi":"10.1145/269629.269638","DOIUrl":"https://doi.org/10.1145/269629.269638","url":null,"abstract":"The 1995 revision of the Ada programming language added several new features related to multitasking. These new features open up new implementation questions. In particular, it is appropriate to revisit the subject of compiler and runtime system optimization techniques for Ada multitasking. The existence of GNAT provides an opportunity to study these problems, as well as some more general and longer-standing questions. We study two areas of optimization. The first area is reduction in the number of operating system service calls. We concentrate on the use of different locking policies which control the degree of parallelism within the runtime system. The second area of optimization is to restrict the runtime system using the new pragma Restrictions. In particular, we produce a restricted RTS which excludes task abortion and the asynchronous transfer of control. Performance comparisons between different versions of GNARL are provided, and ways of managing them are also discussed.","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"63 4","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"113968068","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}
TRI-AdaPub Date : 1996-12-01DOI: 10.1145/240678.240697
J. D. Riley
{"title":"A comparison of two approaches to distributed application development in Ada: the Ada distributed systems annex and CORBA","authors":"J. D. Riley","doi":"10.1145/240678.240697","DOIUrl":"https://doi.org/10.1145/240678.240697","url":null,"abstract":"This paper compares two approaches to Distributed Application Development with Ada. One approach utilizes an Object Request Broker (ORB) based on the Common Object Request Broker Architecture (CORBA). The other approach presented employs the Ada Distributed Systems Annex (ADSA). This approach allows the development of distributed applications entirely within the Ada programming language while lem•ing the details of distributed implementation to the compiler vendor. A discussion of two demonstration projects, one using CORBA and the other using the ADSA, is provided. The strengths and weaknesses of both approaches are discussed in the context of various problem domains. It is concluded that both methods appear to be feasible approaches to Distributed Application Development. In a particular application domain one approach will often be clearly preferable to the other. Combining both approaches may be the best solution for some applications. Utilizing an ORB as an implementation medium for the ADSA is another interesting approach.","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1996-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125292726","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}
TRI-AdaPub Date : 1996-12-01DOI: 10.1145/240678.240725
Sergey Rybin, A. Strohmeier
{"title":"Ada and ASIS: justification of differences in terminology and mechanisms","authors":"Sergey Rybin, A. Strohmeier","doi":"10.1145/240678.240725","DOIUrl":"https://doi.org/10.1145/240678.240725","url":null,"abstract":"Note: Also available as Technical Report EPFL-DI No 96/203 Reference LGL-CONF-1996-013 Record created on 2005-09-20, modified on 2016-08-08","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"85 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1996-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117267608","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}
TRI-AdaPub Date : 1996-12-01DOI: 10.1145/240678.240688
Y. Kermarrec, Laurent Nana, L. Pautet
{"title":"Providing fault-tolerant services to distributed Ada 95 applications","authors":"Y. Kermarrec, Laurent Nana, L. Pautet","doi":"10.1145/240678.240688","DOIUrl":"https://doi.org/10.1145/240678.240688","url":null,"abstract":"Yvon Kermarrec and Laurent Nana Telecom Bretagne Departement Informatique F 29 285 Brest Cedex France yvon. kerm arrec@ens t-bretagne. fr laurent.nanatchamnda@enst-bretagne.fr In this paper, we present various techniques and approaches for fault tolerance. We have selected recovery blocks and have already implemented this mechanism into an Ada95 environment. We extend this notion of recovery blocks to deal with distributed applications.","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"225 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1996-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131675089","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}
TRI-AdaPub Date : 1996-12-01DOI: 10.1145/240678.240709
Huiming Yu, A. Esterline, Joseph Monroe
{"title":"Object-oriented formal specifications to support Ada 95 reuse","authors":"Huiming Yu, A. Esterline, Joseph Monroe","doi":"10.1145/240678.240709","DOIUrl":"https://doi.org/10.1145/240678.240709","url":null,"abstract":"1bis paper examines object-oriented system development, the features of Ada 95 that facilitate software reuse, and the importance of formal specification for reuse. A Black Box Reuse (BBR) approach is developed that combines object-oriented system development with tormal specification to support Ada 95 reuse. \"lbe new approach allows designers to dest,Tibe inherited objects and aggregation frameworks in a unique way. Clients can use these objects and frameworks correctly without involving implementation details. Sevl:ral exan1ples arc given to show that BBR is straighttorward and relates intuitively to Ada 95 syntax and semantics.","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"59 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1996-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123883866","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}
TRI-AdaPub Date : 1996-12-01DOI: 10.1145/240678.240710
B. Sandén
{"title":"The state-machine pattern","authors":"B. Sandén","doi":"10.1145/240678.240710","DOIUrl":"https://doi.org/10.1145/240678.240710","url":null,"abstract":"A design pattern is a grouping of a small number of objects that is likely to be useful again and again. In the context of concurrent software design in Ada 95, it is a group of tasks and protected units that is useful in many applications. State machines are common in realtime software. Their use is fairly straight-forward but non-trivial. The State-Machine pattern is intended to capture the various constellations of tasks and protected units that can be used to represent a state machine and associated activities. A number of small examples are used to illustrate different implementations.","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"103 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1996-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124582986","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}
TRI-AdaPub Date : 1996-12-01DOI: 10.1145/240678.240711
J. Cross, L. Barowski, T. D. Hendrix, Joseph C. Teate
{"title":"Control structure diagrams for Ada 95","authors":"J. Cross, L. Barowski, T. D. Hendrix, Joseph C. Teate","doi":"10.1145/240678.240711","DOIUrl":"https://doi.org/10.1145/240678.240711","url":null,"abstract":"GRASP (Graphical Representations of Algorithms, Structures, and Processes) is a software engineering tool which provides for the automatic generation of Control Structure Diagrams (CSD's) from Ada 95 source code. The CSD is intended to increase the comprehensibility of Ada 95 source code. CSD's are useful both when designing and implementing new software, as well as when reading existing source code. GRASP also serves as a graphical interface to GNAT (GNU Ada Translator), an Ada 95 compiler used by many companies, universities and colleges. Programmers may create and edit source files, generate CSD's for source code, print source code and CSD's, and compile and run Ada programs, all from within the GRASP environment. From a research point of view, we are interested in seeing how the GRASP environment in general and the CSD features in particular are used by programmers. This paper describes the CSD and the GRASP/Ada 95 environment, which is freely available. INTRODUCTION Computer professionals have long promoted the idea that graphical representations of software can be extremely useful as comprehension aids when used to supplement textual descriptions and specifications of software, especially for large complex systems [1, 2, 3, 4, 5, 6]. The general goal of the GRASP/Ada research project is the investigation, formulation and generation of graphical representations of algorithms, structures, and processes for Ada [7, 8, 9]. The research is currently focused on the generation or reverse engineering of Control Structure Diagrams (CSDs) from Ada 95 source code. The primary motivation for the generation of graphical representations is increased support for software life cycle activities ranging from design through maintenance with emphasis on visual verification and measurement. These activities should be greatly facilitated by an automatically generated set of \"formalized diagrams and graphs\" to supplement the source code and other forms of existing documentation. The GRASP/ Ada 95 software tool has the potential to be a powerful aid in any environment where Ada 95 is expected to be read and/or written. P<!nnission to make digital hard copies of all or part of this work li1r personal or dassroom usc is granted without 1;:c provided that copies arc not made or distributed li1r pmlit<)r connncrcial advantage. the copyright notice. the title of the publication and its date appear. and notice is gi,·cn that copying is by pcm1ission of ,Ctvl. Inc. To c:opy otherwise. to n:publish. to post on s~n·..:rs or h> r~distrihuh: h) lists. r.:quirl.!s prior sp!.!~iti..: p!mlission and; or a ~~~ofi I Y96 ACM 0-89791-808-8/96/00 12 3.50 143 The tool is particularly suitable for activities during detailed design, implementation, testing, maintenance and reengineering. The CSD is expected to be a valuable aid in comprehension and analysis of overall program structure and flow of control. The following sections describe the control structure diagram and the GRASP/ Ada","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"103 29","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1996-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120826084","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}
TRI-AdaPub Date : 1996-12-01DOI: 10.1145/240678.240713
A. Parrish, D. Cordes, Cynthia Y. Lester, D. Moore
{"title":"Active learning and process assessment: two experiments in an Ada-based software engineering course","authors":"A. Parrish, D. Cordes, Cynthia Y. Lester, D. Moore","doi":"10.1145/240678.240713","DOIUrl":"https://doi.org/10.1145/240678.240713","url":null,"abstract":"This paper reports on a junior-level software engineering course at the University of Alabama where students learn Ada for the first time. The course is organized around the concept of broadening the scope of students' software development experience from very small programs to larger, nontrivial applications. This course is widely perceived as difficult by students, and is generally thought of as a \"weed-out\" course for computer science majors. To increase student retention, we are currently attempting two major experiments in the course: the pervasive use of active and cooperative learning techniques and the assessment of the student programming process. This paper reports on preliminary results from both of these experiments.","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1996-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128726311","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}
TRI-AdaPub Date : 1996-12-01DOI: 10.1145/240678.240681
Helge Hagenauer, Werner Pohlmann
{"title":"Prototyping a parallel discrete event simulation system in Ada","authors":"Helge Hagenauer, Werner Pohlmann","doi":"10.1145/240678.240681","DOIUrl":"https://doi.org/10.1145/240678.240681","url":null,"abstract":"In the time warp algorithm of parallel/ distributed simulation, a process never waits for possible further input but proceeds on the basis of what has been received so far. This scheme avoids deadlock but runs the risk of missing relevant inputs and producing errors. So if and when the process receives input belonging into its past, it rolls back to a former state and cancels its unjustified interim output. Time warp assumes that messages must be attended to in temporal order, but if the next step of a simulated process does in fact not depend on temporally next input but rather on the next input of a certain kind, the strategy may lead to avoidable inefficiencies due to storage demands and rollback frequencies. We therefore propose and start to explore a generalisation, split queue time warp, that allows the use of several input channels to postpone the reception of currently not needed messages. To get some experience with the new algorithm and the programming of simulation models for it, we have implemented a prototype in Ada 83. The prototype runs on a conventional workstation and simulates shared-memory multiprocessor parallelism by interleaving process steps; the models it executes are written in Ada too. We here explain the basic algorithm, illustrate the style of model programming belonging to it, describe the implementation of our prototype and offer some language-related comments. P~nnission to make digital hard ~opies of all or part of this work tor p~rs<>nal nr ehL,smmn us~ is grant<!d without 1;:~ provid~d that C<>pi~s are not mad.: <>r distrilmt.:d lor prolit<>r cornm.:n.;ial ad,·antag.:. the copyright noti~e. the title ofthc puhlicati<m and its date appear. and noti~e is given that copving ish p.:nnission nf..C:-.·1. In~. To ~npy oth.:rwise. to repuhlish. \"' post on s.:rvers or to r~distrihuh: h> lists. r.:quir.:s prior sp~citic p.:m1ission and 'or a t;:.:. ::Ql996 ACM 0-89791-808-8/96/0012 3. 50","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"474 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1996-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122692658","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}
TRI-AdaPub Date : 1996-12-01DOI: 10.1145/240678.240715
Matthew B. Dwyer, Matthew J. Craig, Eric Runquist
{"title":"An application-independent concurrency skeleton in Ada 95","authors":"Matthew B. Dwyer, Matthew J. Craig, Eric Runquist","doi":"10.1145/240678.240715","DOIUrl":"https://doi.org/10.1145/240678.240715","url":null,"abstract":"Building high-quality concurrent software is a significant challenge. Issues such as performance, scalability, extensibility, and correctness, form a complex web of design decisions that software developers must navigate. In a number of well-understood software domains, reduction in the complexity of sequential software design has been enabled by the availability of collections of existing software components. Jn this paper, we present a component that provides similar benefits to developers of concurrent Ada 95 software that uses a replicated workers paradigm. Our strategy is to factor out concurrent aspects of a computation; this allows users to focus on the computational and data elements of an application. Our componentry supplies a skeleton in which to embed such elements that reduces the complexity and time required for software development, enables modular reasoning about correctness properties of concurrent software, and enables control of software performance characteristics. We illustrate the utility of this approach and the Ada 95 features that enable the approach, by solving a variety of concurrent programming problems using the replicated workers skeleton.","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1996-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121858174","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}