TRI-AdaPub Date : 1997-11-01DOI: 10.1145/269629.269658
P. Lawlis
{"title":"Is the answer always Ada?","authors":"P. Lawlis","doi":"10.1145/269629.269658","DOIUrl":"https://doi.org/10.1145/269629.269658","url":null,"abstract":"This paper discusses a process for selecting a computer hmguage and an accompanying tool set for a sotlwsre project, as described in Gttidelittes for Choosing a Computer Language: Support for the Eiottaty Otgan~on, 2”d Edition @awlis 9Q Since the publication of the fti edition of this document and its availability on the World Wide Web, it has been the source of some skepticism. One criticism that has been levied at the language seleetion subpmes is that Ada will always be chosen However, a discumion of this criticism revezds that it is unfounded, although Ada should be in the nnming most of the time. A tool has been under development to automate the described process, and a prototype of this tool is now available. A look at the automated tool should help the reader to undemtand how the process, now named Selecting Appropriate Software Engineering Assets (SASEA), works. When used as intended the tool should provide valuable a&stance for important decisions required of a project msnager. It could also provide a cornerstone for the So&are Engineering Plan Review (SEPR) now advocated by the Department of Defense (DoD).","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"74 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130084140","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 : 1997-11-01DOI: 10.1145/269629.269642
Huiming Yu
{"title":"Using object-oriented techniques to develop reusable components","authors":"Huiming Yu","doi":"10.1145/269629.269642","DOIUrl":"https://doi.org/10.1145/269629.269642","url":null,"abstract":"This paper presents several groups of reusable components and subsystems that were designed and implemented to combine object-oriented techniques with Ada 95 features. These components and subsystems demonstrate how to use object-oriented techniques to develop reusable artifacts. The object oriented techniques of generic approach, aggregation and decomposition were adapted and Ada 95 features of abstraction, encapsulation, inheritance and polymorphism were used.","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"492 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133507861","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 : 1997-11-01DOI: 10.1145/269629.269632
Pedro de las Heras Quirós, Jesus M. Gonzalez-Barahona, José Centeno-González
{"title":"Programming distributed fault tolerant systems: the replicAda approach","authors":"Pedro de las Heras Quirós, Jesus M. Gonzalez-Barahona, José Centeno-González","doi":"10.1145/269629.269632","DOIUrl":"https://doi.org/10.1145/269629.269632","url":null,"abstract":"During the last years, several toolkits for programming faulttolerant distributed systems have been proposed. Unfortunately, most of them offer a low level interface that is difficult to program and is not well integrated with a high level language. On the other hand, the Annex E of the Ada language provides a high level framework for programming distributed systems. After carefully studying it, we have concluded that nothing prevents an implementation of the Annex E that also offers support for programming fault-tolerant distributed systems. We propose to implement most of the fault tolerance mechanisms at the Partition Communication Subsystem (PCS) level, offering to the programmer the abstraction of replicated partitions, while preserving the semantics of the Annex E. Parameters related to fault tolerance can be selected at configuration time. This approach, that we have named replicAda, tries to simplify the programming of fault tolerant distributed systems by providing high level abstractions that are well integrated with the Ada language.","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"138 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116411691","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 : 1997-11-01DOI: 10.1145/269629.269650
K. Tucker
{"title":"Debugging highly-optimized Ada with code motion (DHACM)","authors":"K. Tucker","doi":"10.1145/269629.269650","DOIUrl":"https://doi.org/10.1145/269629.269650","url":null,"abstract":"Code motion optimizatiolis present a difficult problem for source-level debuggers. The linear relationship behveen source text and generated code disappears, and there is a disparity between where a breakpoint ought to be set (as determined by the source text), and where it is actually set. Code motion can also cause variables to be non-current (contain a different value than what would be inferred from reading the source-text, Hennessy [I]). Code motion occurs as the result of optimizations such as loop-invariant, loop-unrolling, copy-propagation, constant folding, common sub-expression elimination, dead-code elimination, inlining, and generic instantiation. Although the final two do not represent code motion in its purest sense, they are cases where code has been moved from its original textual position. A general compiler enhancement for improving the debug information to handle code motion is defined in this paper. Problems with loop-invariant and loop-unrolling optimizations are outlined, and algorithms are given that utilize the additional debugging information to set breakpoints at the expected locations in these cases. An approach for dealing with currency problems introduced by loop-invariant optimization is given, as is a method of synthesizing the value of a loop-control variable that has been eliminated due to induction. Finally, a process to locate and set breakpoints at all inline expansions or generic instantiations of a subprogram is shown.","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127222114","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 : 1997-11-01DOI: 10.1145/269629.269654
Brad Balfour
{"title":"Combining Ada 95, Java byte code, and the distributed systems annex","authors":"Brad Balfour","doi":"10.1145/269629.269654","DOIUrl":"https://doi.org/10.1145/269629.269654","url":null,"abstract":"This paper desc?ibes a protoec clientiserver system which combines two technofo~‘es: the abifity to compikAa2 95 codr into Java Byte Code _ UBC) ranning on the Java I/irrualMacbine via Inaetria AppletMaagicN product and the A& 95 Distributed Systems Annex. The paper stts out thegoals ofthepr0rotypc #art and then illustrates the concepts, &sign, and tehiqaes used to create the system. Fina& the trade-o@, alternatives, btntjts and conchikmjom the protorype e&k arepresented","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127749235","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 : 1997-11-01DOI: 10.1145/269629.269639
R. Brukardt, Tom Moran
{"title":"CLAW, a high level, portable, Ada 95 binding for Microsoft Windows","authors":"R. Brukardt, Tom Moran","doi":"10.1145/269629.269639","DOIUrl":"https://doi.org/10.1145/269629.269639","url":null,"abstract":"Ada 95 provides new tools to support a compiler independent binding that 1) is friendly to Ada programmers, 2) raises the abstraction level, 3) allows resulting applications that have the look and feel of the Windows applications familiar to the end user. These capabilities should help solve Ada’s lack of convenient bindings. We have designed and implemented CLAW as a binding to Microsoft Windows NT/Windows 95 using these tools. This paper will discuss the CLAW binding’s design criteria, the use of Ada constructs to simplify Windows programming, and our observations on the use of new Ada 95 features, including those for tasking and object orientation.","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"57 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129524975","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 : 1997-11-01DOI: 10.1145/269629.269656
J. D. Riley, Sangiv Dungari, W. Pritchett
{"title":"An instance of the application download pattern: the SPAIDS software loader/verifier domain analysis and implementation","authors":"J. D. Riley, Sangiv Dungari, W. Pritchett","doi":"10.1145/269629.269656","DOIUrl":"https://doi.org/10.1145/269629.269656","url":null,"abstract":"The requirement to obtain application sofhuarefiom an external source and correctly load on a potentially embedded target is a COIWIIOI~ problem in many domains. For example, a growing solution in an internet environment is the use of a Java \" 'applet \" loaded to a target Java Virtual Machine (NM) implementation. Another applicable domain is embedded systems particularly Avionic and Vehicular Control software. Similar problems are COIIUIIOII to all these domains. These include accessing an appropriate communications medium, authenticating that the application software is virus and tamper free, and verifjng the load has occurred without error. We identii this-as the Application Download Pattern. In the Vehicular Electronics (Vetronics) field this problem is referred to as the So&are Loader/Verifier problem. We describe the SPAIDS Sofiare LoaderNerifier (Slav) project, place it in the context of the general application download pattern, and then relate lessons learned in the SLN analysis and implementation to the general problem. The domain analysis is expressed using the Unifed Modeling Language Version 1.0 (UML). The implementation directly expresses the UML model making substantial use of the Object Oriented features ofAda 95. 1. Background-The SPAIDS SUV Project When software was first introduced to Army Ground Combat Vehicles, an accessory, the Software LoaderNerifier (SIN) was introduced to load the battlefield system software into the vehicle. AS the Ground Combat Vehicle (GCV) domain has grown with various types of vehicles manufactured to support specialized missions, multiple versions of the SLN have emerged. Each type of Army GCV has its own SIJV associated with it. This has resulted in specialized training for each type of SLN, multiple baselines of software, high maintenance costs and a large number of total units to maintain. The objective of the SPAIDS SIJV project is to perform domain analysis of various platforms, to generate domain specific software and hardware reqnirements, and to design and develop a prototype SUV with reusable components to support the transition from platform-specific, SuVs to a platform-independent, generic (e.g. common software and hardware components) form. OfdlOrp~Oofthis~~O~f~ personal or cl;lssroml us0 is graatd without fee provided that c@= afe not ,,,& or di&b~ted for prolit or commercial advantage, the mPYr%@ neti=, Ihe tile of&e publication and its date appear, and nOti= b &'a ulat copying is by permission of ACM, lnc To CqPY othe> t republish, to posl on sewxs, or to redistribute to lu% re ¶ur@ Puor spific permission aedlor a f'ae. The …","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129041334","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 : 1997-11-01DOI: 10.1145/269629.269631
L. Pautet, Thomas Wolf
{"title":"Transparent filtering of streams in GLADE","authors":"L. Pautet, Thomas Wolf","doi":"10.1145/269629.269631","DOIUrl":"https://doi.org/10.1145/269629.269631","url":null,"abstract":"Note: Also available as Technical Report EPFL 97/241 Reference LGL-CONF-1997-009 Record created on 2005-09-20, modified on 2016-08-08","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116898067","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 : 1997-11-01DOI: 10.1145/269629.269636
Claude Kaiser, Jean-François Pradat-Peyre
{"title":"Comparing the reliability provided by tasks or protected objects for implementing a resource allocation service: a case study","authors":"Claude Kaiser, Jean-François Pradat-Peyre","doi":"10.1145/269629.269636","DOIUrl":"https://doi.org/10.1145/269629.269636","url":null,"abstract":"We compare two possible implementations of a resource allocation service, one using a task server, the other using a protected object. Both make use of the requeue statement, the count attribute, and also the abort statement in order to satisfy requests, depending on the parameters passed in by the calling task and on the internal state of the service. Because the schema of requeue and entries has an execution semantic based on state and transition, it can be coupled easily with a proof in terms of colored Petri nets. We consider the dining philosophers problem, which is a good illustration of the need for a resource allocation service and for which deadlockand starvation-free implementations have already been given in Ada95, though not formally proven and sometimes unfair. We give an almost forgotten solution where the dining philosophers problem is safely implemented with protected objects, whereas its implementation with a server task leads to deadlock. We provide two implementations, one of which completes a solution presented by Brosgol in Ada Europe 96 and makes it really fair. Informal proofs are given and are confirmed by Petri nets proofs. Through these examples, we show that the eggshell semantics of protected objects are basic for attaining a reliable implementation.","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114976819","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 : 1997-11-01DOI: 10.1145/269629.269646
C. Comar, Gary Dismukes, F. Gasperoni
{"title":"Targeting GNAT to the Java virtual machine","authors":"C. Comar, Gary Dismukes, F. Gasperoni","doi":"10.1145/269629.269646","DOIUrl":"https://doi.org/10.1145/269629.269646","url":null,"abstract":"The Sun Javan’ technology provides a powerful, portable framework for developing Internet applications. GNAT is a complete Ada 95 compiler that is freely available and runs on a wide range of platforms. There is a natural mapping from Ada 95 to the Java Virtual Machine (JVM), and so it is attractive to consider targeting the GNAT compiler to the JVM to gain the benefits of Ada’s maintainability and reliability for the development of fully portable Internet applications that can operate within the Java environment. We describe a mapping from Ada 95 features as compiled by GNAT into the Java Virtual Machine model, as well as showing how Ada can interface to Java and the class libraries to enable mixed-language applications.","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"72 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125756697","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}