ADA Volume 24 USER Number 2 JOURNAL June 2003

Contents Page Editorial Policy for Ada User Journal 66 Editorial 67 News 68 Conference Calendar 109 Forthcoming Events 114 Articles S Tucker Taft “Object-Oriented Programming Enhancements in Ada 200Y” 119 Ada-Europe 2002 Sponsors 128 Ada-Europe Associate Members (National Ada Organizations) Inside Back Cover

Ada User Journal Volume 24, Number 2, June 2003 66 Editorial Policy for Ada User Journal

Publication Original Papers Commentaries Ada User Journal – The Journal for the Manuscripts should be submitted in We publish commentaries on Ada and international Ada Community – is accordance with the submission software engineering topics. These published by Ada-Europe. It appears guidelines (below). may represent the views either of four times a year, on the last days of individuals or of organisations. Such March, June, September and All original technical contributions are articles can be of any length – December. Copy date is the first of the submitted to refereeing by at least two inclusion is at the discretion of the month of publication. people. Names of referees will be kept Editor. confidential, but their comments will Opinions expressed within the Ada Aims be relayed to the authors at the discretion of the Editor. User Journal do not necessarily Ada User Journal aims to inform represent the views of the Editor, Ada- readers of developments in the Ada The first named author will receive a Europe or its directors. programming language and its use, complimentary copy of the issue of the general Ada-related software Journal in which their paper appears. Announcements and Reports engineering issues and Ada-related We are happy to publicise and report activities in Europe and other parts of By submitting a manuscript, authors grant Ada-Europe an unlimited license on events that may be of interest to our the world. The language of the journal readers. is English. to publish (and, if appropriate, republish) it, if and when the article is Although the title of the Journal refers accepted for publication. We do not Reviews to the Ada language, any related topics require that authors assign copyright to Inclusion of any review in the Journal are welcome. In particular papers in the Journal. is at the discretion of the Editor. any of the areas related to reliable Unless the authors state explicitly A reviewer will be selected by the software technologies. otherwise, submission of an article is Editor to review any book or other taken to imply that it represents publication sent to us. We are also The Journal publishes the following prepared to print reviews submitted types of material: original, unpublished work, not under consideration for publication else- from elsewhere at the discretion of the • Refereed original articles on where. Editor. technical matters concerning Ada and related topics. News and Product Announcements Submission Guidelines Ada User Journal is one of the ways in All material for publication should be • News and miscellany of interest to which people find out what is going on sent to the Editor, preferably in the Ada community. in the Ada community. Since not all of electronic format. The Editor will only accept typed manuscripts by prior • Reprints of articles published our readers have access to resources arrangement. elsewhere that deserve a wider such as the World Wide Web and Prospective authors are encouraged to audience. Usenet, or have enough time to search through the information that can be contact the Editor by email to • Commentaries on matters relating found in those resources, we reprint or determine the best format for to Ada and software engineering. report on items that may be of interest submission. Contact details can be to them. found near the front of each edition. • Announcements and reports of Example papers conforming to conferences and workshops. Reprinted Articles formatting requirements as well as some word processor templates are • Reviews of publications in the While original material is our first available from the editor. There is no field of software engineering. priority, we are willing to reprint (with limitation on the length of papers, the permission of the copyright holder) though a paper longer than 10,000

• Announcements regarding material previously submitted words would be regarded as standards concerning Ada. elsewhere if it is appropriate to give it exceptional. a wider audience. This includes papers Further details on our approach to published in North America that are these are given below. not easily available in Europe. We have a reciprocal approach in granting permission for other publications to reprint papers originally published in Ada User Journal.

Volume 24, Number 2, June 2003 Ada User Journal 67 Editorial In this issue of the Ada User Journal we continue our close watch on the on-going Ada language revision process. Experience with Ada 95 has brought about the urge to push the language forward along the two main avenues of its advanced support: high-integrity real-time programming and object-oriented programming (OOP). After covering the former topic, we now turn our attention to the latter and have the pleasure of hosting S Tucker Taft, who illustrates for us the rationale and the outline of the proposed completion of the OOP language support in Ada 200Y. Our readers should know that the editing of the News section is by far the most effort-intensive part of the volunteer-based production of the Ada User Journal. Interestingly, this is so because of the health of the language user community and the impressive wealth of information that flows in the various channels monitored by our News editor. Over the last year we have seen the News section often account for about half of every 64-page issue. The feedback we receive suggests that our readers find the News section useful and informative. They should as well know that the section contents are only a small fragment (but hopefully a representative overview) of a much larger, some 30 times larger, material, which is to be logged, linked and excerpted. All in all a major effort, which may sometimes take longer than anticipated. Please, bear with us while we continue this effort to produce an enjoyable and timely journal.

Tullio Vardanega Padova June 2003 Email: [email protected]

Ada User Journal Volume 24, Number 2, June 2003 68 News Dirk Craeynest (ed) Offis nv/sa and K.U.Leuven. Email [email protected] A leading European developer of Ada 95 meet these requirements, Wind River is technology, ACT Europe offers native, investing in technology that will meet the Contents embedded and safety-critical Ada demands of IA Directive 8500.2. [...] page solutions on a large variety of systems. Ada-related Organizations 68 Embedded Systems and Real Time The company specializes in project systems are all an important past of the Ada-related Events 68 support and consulting for users of GNAT Ada and Education 71 military infrastructure and will be a Pro Development Environment for Ada foundation for our future infrastructure. Ada-related Resources 72 95, a programming language designed for Ada-related Tools 75 Wind River will present their High embedded systems. ACT Europe also Reliability, Safety and Secure Solutions Ada-related Products 82 develops components of GNAT Pro Ada and Linux 87 for Embedded Developers. They will technology including the GtkAda discuss how their architecture strategy Ada and Microsoft 88 graphical toolkit, the new GNAT References to Publications 89 addresses those programs that must meet Programming System (GPS) IDE, and the high integrity, safety-critical, and high- Ada Inside 90 GNAT Pro High Integrity Edition. Ada in Context 97 assurance requirements for the Ada 95, , With members that span the globe, the and C++ programming languages. ARA is a trade association of companies The AE 653 operating system/software Ada-related whose products and services represent engineering environment is utilized for more than 90 percent of the Ada avionics applications and many other Organizations development tools marketplace. applications requiring temporal/spatial For more information on Ada and on separation. It serves as a baseline for ACT Europe Joins Ada ACT Europe, please see Wind Rivers' work in the formal methods Resource Association http://www.adaic.org. Or write to Ann supporting the Common Criteria Brandon, Communications Director, Ada Evaluation Assurance Level (EAL) / URL: http://www.adaic.org/news/acte- Resource Association, Multi Level Security (MLS) and Multiple ara.html [email protected]. Levels of Independent Security (MILS) Subject: ARA News Release requirements instrumental in Ada Resource Association Adds ACT Communications Security (COMSEC), Europe to Global Membership Ada-related Events Avionics, Unmanned Aerial Vehicles [The announcements reported below are a (UAV), and other mission critical Salt Lake City -- Software Technology selection of the many Ada-related events applications. [...] Conference (April 30, 2003) -- organized by local groups. If you are Clyde Roby's Presentation Available The Ada Resource Association (ARA) is organizing such an event, feel free to pleased to announce the addition of its inform us as soon as possible. If you At the DC SIGAda meeting on 9 January newest member, ACT Europe, which attended one please consider writing a 2003, Clyde Roby gave an excellent develops components of the GNAT Pro small report for the Journal. -- dc] presentation titled: Evolving Ada technology for the Ada programming Bindings and Ada APIs. [See also "Jan 9" language. Apr 8 - ACM Baltimore/DC topic in AUJ 24-1 (Mar 2003), p.6. -- dc] Slides from his presentation are available Founded and led by Cyrille Comar and SIGAda Meeting […] online as a Powerpoint Presentation at Franco Gasperoni, ACT Europe is the http://www.acm.org/sigada/locals/dc/2003 Paris-based sister company to the long- From: Currie Colket Date: Wed, 26 Mar 2003 14:55:07 -0500 01_APIWG-Presentation.ppt (ppt, standing ARA member Ada Core 276KB). [...] Technologies. ACT Europe has played a Organization: The MITRE Corporation major role in advancing Ada and GNAT Subject: Team-Ada: High Reliability, Safety, Jeff Castellow, Chair, DC SIGAda Pro usage in the European software and Secure Solutions for Embedded industry. Developers Presentation on 8 April Apr 9-10 - Ada UK User To: [email protected] "ACT Europe represents a broad base of Group Spring Conference Ada developers and embedded systems Our Next Meeting is scheduled for users," said S. Tucker Taft, president of Tuesday, 8 April 2003, as a Joint Meeting From: John Robinson both the ARA and of SofCheck, Inc. of the Baltimore and DC SIGAda "They will add significantly to the ARA's Chapters. John Warther and Gordon Date: Thu, 20 Feb 2003 21:49:36 -0000 effectiveness in serving the language's Uchenick will be speaking on "High Organization: John Robinson And international community." Reliability, Safety, and Secure Solutions Associates Ltd for Embedded Developers". [and using Subject: CNF: Ada 0Y Workshop & Spring "We fully support the ARA's objectives," this as a basis to discuss Wind River's Ada UK Conference Dr. Gasperoni said. "Activities such as the Trusted/Safety Critical VxWorks] [...] Newsgroups: comp.lang.ada careful evolution of the Ada language, publication of Ada successes, and Abstract: The advent of security The Spring Ada UK User Group maintenance of an effective Ada requirements affects everyone involved in conference is set for April 9th 2003. This information web site are very important to the research, development, design, will be followed by a post-conference the language's growth. By joining the fabrication and production of DOD workshop on Ada 0Y on April 10th. ARA we hope to bring fresh ideas and a systems that carry electronic information. To be held in Swindon (UK), the European perspective to these activities." To ensure our DOD Aerospace and conference is a two stream event with Defense customers have a roadmap to material on requirements management,

Volume 24, Number 2, June 2003 Ada User Journal Ada-related Events 69

UML, static code analysis, the future of Subject: CNF: Abstracts now available for Logix solutions significantly compress IDEs, Ada 95 and more. The Ada 0Y Embedded Systems Club, Ada UK and systems and software development cycles workshop, lead by Tucker Taft, is a DSP Forum conference sessions while improving product quality. These valuable opportunity for delegates to To: products allow engineers to graphically provide feedback into the design of the Abstracts for all presentations at the model the behavior and functionality of next version of the Ada language. Embedded Systems Club, Ada UK User their embedded systems, analyze and Ada users may also to note that a Group and DSP Forum conference validate the system and automatically sister community to Ada UK has been sessions are now available at [URL's generate production quality code in a launched. The "DSP Forum" will provide above --dc]. [...] variety of languages. DSP users with a community similar to From: John Robinson IPL is happy to announce that a new Ada UK, which is now the largest version of AdaTEST 95 is well-advanced community of its type in Europe. The Date: Wed, 2 Apr 2003 00:50:59 +0100 in the planning and should be ready later inaugural conference for the DSP Forum Subject: CNF: Embedded Systems Club this Spring. Cantata++ has recently been will be held on April 10th and will have Sponsor & Partner Announcements ported to Wind River's product 'Tornado' sessions on RapidIO, StarFabric, FPGAs, To: (V2). IPL will be jointly presenting some real-time OS for DSP applications and a seminars on high-integrity real-time panel session on interconnect strategies. Next week the Embedded Systems Club development with I-Logix and Green [...] will host two essential events for Hills. These will take place on April 29 www.DSPForum.org.uk, embedded systems practitioners: April 9th (Reading) and May 1 (Derby). - Embedded Systems Club & Ada UK www.AdaUK.org.uk, John Robinson & Associates have been www.EmbeddedSystemsClub.com User Group Conference; April 10th - DSP Forum Inaugural Conference. Both these contracted to supply the RAF's Harrier John Robinson, Conference Director events have exhibition areas in which you Software Maintenance Unit with Ada From: John Robinson have the opportunity to meet our sponsors language training, extending an 18-year and partner companies. The exhibition is relationship with the RAF. Tom Date: Thu, 6 Mar 2003 16:06:20 -0000 open to all registered delegates. [...] Clackson, a former team leader on the Harrier II Mission Computer and head of Subject: ANN: Ada UK User Group Spring Our sponsors and partners will be making Conference the JR&A Ada team, will deliver the the following announcements during these training. Newsgroups: comp.lang.ada events: Mercury Computer Systems. EDN A brochure and registration form for the ACT Europe will be announcing GPS, the Spring 2003 Ada UK/Embedded Systems Magazine listed Mercury's VantageRT GNAT Programming System IDE. The 7410 PCI multiprocessor module as one Club Conference can now be found at GPS Ada IDE integrates GNAT Pro tools http://www.AdaUK.org.uk. of the top products of 2002. VantageRT in a single visual development modules can be configured to create [...] The Ada UK conference itself offers environment. Designed by programmers systems of up to 60 PowerPC 7410 the following presentations: for programmers, GPS is a new kind of processors. These systems deliver a level "Latest Trends in IDE Development", IDE that offers the experience of of performance unsurpassed in the PCI Arnaud Charlet and Franco Gasperoni, designing software in a uniquely form factor. comfortable environment. ACT Europe Objektum. Over the past 3 years "Integrated Modular Avionics Application Aonix. The former Critical Development Objektum has worked closely with BAE Development Case Study Using VxWorks Solutions (CDS) Division of Aonix has SYSTEMS on the Harrier GR7 upgrade, AE653 and GNAT", Paul Parkinson, divested from its parent to become an training and mentoring key personnel to Wind River and Franco Gasperoni, ACT independent company. This retains the Ada95, UML and the mapping of UML to Europe Aonix name and all CDS products. With Ada95. More recently, Objektum has strong commitment and investment, specified a testing strategy and "Requirements: If you don't know where Aonix continues to address the Software environment implemented in UML and you are going you'll probably end up Development tools and service Ada95, supported by AdaTEST. somewhere else", Glennan Carnie, Flight requirements of its existing Refuelling Ltd (Digital Systems) technical/mission/safety critical markets. Praxis Critical Systems are pleased to announce the availability of the Sample "Programmers Dozen: Thirteen First Matrix. The SCORE* Ada 95 / Chapters of the new book "High Integrity Recommendations for Refactoring, EC++ IDE and CsLEOS* ARINC 653 Software: the SPARK Approach to Safety Repairing and Regaining Control of Your compliant RTOS have been integrated for and Security" by John Barnes. The Code", Kevlin Henney, Curbralan Ltd high-integrity embedded applications. Sample Chapters are available in PDF on "Industrial Strength Exception Freedom", CsLEOS*, manufactured by BAE www.sparkada.com. SYSTEM Controls, is already certified to Dr Rod Chapman, Praxis Critical Systems TNI Europe, the leading supplier of Ltd FAA DO-178B level A. The combination provides a multi-language capability for HOOD method toolsets for OO embedded "Fixing Software Before It Breaks", ARINC 653 applications. software development offers the Tucker Taft, SofCheck Inc following new releases. STOOD 4.3 on Green Hills Software announces FAA "Abstract Interpretation Applied to Static UNIX and Windows with Ada and C acceptance of a DO-178B, Level A, reverse engineering – available now. CP Verification", Dr Alain Deutsch, certification package for its INTEGRITY- PolySpace Technologies HOOD 5.5 on UNIX with upgraded 178B RTOS. The INTEGRITY editing, import/export, configuration and There are also two Panel Sessions on certification package was delivered to build capability - available May 2003. "Development Trends" and "Status and Rockwell Collins for use in Technical REQTIFY 1.3 on UNIX and Windows for Future of Static Code Analysis" [...] Standards Order certification for a new Requirements capture and tracability - From: John Robinson avionics system aboard the Sikorsky S-92 available now. helicopter. Wind River. The world's largest offshore Date: Tue, 25 Mar 2003 14:39:45 -0000 I-Logix provides enterprise solutions for wind farm is to enter commercial real-time embedded applications operation. Located at Horns Rev, an development and product management. I- aquatic reef 20 kilometres off the west

Ada User Journal Volume 24, Number 2, June 2003 70 Ada-related Events coast of Denmark in the North Sea, each 04_Gordon_Uchenick.ppt (ppt, 2.097 Language", Bruce Lewis & Edward wind turbine has Wind River technology MB). [...] Colbert; "A Semi Formal Approach to controlling every aspect of the various Jeff Castellow, Chair, DC SIGAda Software System Development", William regulation, monitoring, data collection Bail; "An Overview of Statistical-Based and control tasks. Jun 16-20 - Ada-Europe Testing", William Bail. 2003 Conference Workshop: "Quality of Service in Apr 23-25 - ACM SIGAda at Component-Based Software Engineering Embedded Systems Conf. From: [email protected] (Dirk (QoS in CBSE 2003)"; chair Jean-Michel Craeynest) Bruel, [email protected]. From: Richard Riehle Date: 13 Apr 2003 20:52:47 +0200 Papers: 29 papers on Ravenscar, Static Organization: Ada-Europe, c/o Dept. of Date: Thu, 24 Apr 2003 17:07:19 -0700 Analysis, Language Issues, Distributed Computer Science, K.U.Leuven Information Systems, Software Organization: AdaWorks Software Subject: 8th Int.Conf.on Reliable Software Engineering Components, Formal Specification, Technologies, Ada-Europe'2003 Metrics, Real-Time Kernels, Real-Time Subject: Embedded Systems Conference Newsgroups: Newsgroups: comp.lang.ada Systems Design, and Testing; authors comp.lang.ada,fr.comp.lang.ada from 14 countries: Australia, Austria, It was nice to see the SIGAda booth at the Call for Participation - Program Summary Belgium, Finland, France, Germany, Embedded Systems Conference this week Hong-Kong, India, Israel, Italy, Portugal, in San Francisco. [...] Some interesting 8th International Conference on Reliable Spain, United Kingdom, and USA. and interested people came by to ask Software Technologies - Ada-Europe questions. Kudos to the SIGAda and ARA 2003, 16-20 June 2003, Toulouse, France Exhibition: 10 exhibitors already people for funding this on-going effort. committed: ACT Europe, Adalog, Aonix, http://www.ada- C-S, Green Hills, I-Logix, IPL, Praxis europe.org/conference2003.html May 8 - ACM Baltimore/DC Critical Systems, Rational Software, and Organized by CS, UPS and ONERA. TNI-Europe, [...]; separate vendor SIGAda Meeting […] Sponsored by Ada-Europe. In cooperation presentation tracks for exhibitors. with ACM SIGAda, Ada-France, IRIT, Social evening events: [...]. From: Currie Colket Springer and IUP ISI Date: Wed, 30 Apr 2003 16:52:32 -0400 Registration: includes copy of full Organization: The MITRE Corporation Ada-Europe organizes annual proceedings, published by Springer- Subject: Team-Ada: SIGAda DC Meeting on international conferences since the early Verlag in Lecture Notes in Computer Thursday, 8 May on OCR of 80's. This is the 8th event in the Reliable Science series (LNCS) [...] Cryptographic Source Code Software Technologies series, previous To: [email protected] ones being held at Montreux, Switzerland [email protected], Ada- ('96), London, UK ('97), Uppsala, Sweden Europe'2003 Publicity Co-Chair Thursday, 8 May 2003, [...] at the new ('98), Santander, Spain ('99), Potsdam, MITRE2 Building in McLean, Virginia, Germany ('00), Leuven, Belgium ('01), Dec 7-11 - ACM SIGAda DC SIGAda and Baltimore SIGAda will Vienna, Austria ('02). feature the following presentation: Optical 2003 Conference [...] Quick overview: Mon 16 & Fri 20 Character Recognition (OCR) of From: Sward Ricky E Lt Col USAFA/DFCS Cryptographic Source Code tutorials and workshop; Tue 17 – Thu 19 paper and vendor presentation sessions, Abstract: This paper describes a case exhibition. Date: Mon, 14 Apr 2003 15:06:31 -0600 study evaluating the efficacy of utilizing Subject: SIGAda 2003 CFP the published, printed copy of Program co-chairs: Jean-Pierre Rosen, To: [email protected] cryptographic source codes (Pretty Good Adalog, Arcueil, France, [email protected]; Alfred Strohmeier, Call for Participation - SIGAda 2003, 7- Privacy) to reproduce the electronic 11 December 2003, San Diego, equivalent source code using Optical Swiss Fed. Inst. of Technology Lausanne (EPFL), Software Engineering Lab, California, USA. Sponsored by ACM Character Recognition (OCR) solutions. SIGAda [...] Accuracy measurements of the resulting Switzerland, [email protected]. OCR outputs at various scanning Invited speakers: Pascal Leroy, Rational Constructing highly reliable software is resolutions and estimates of the additional Software Corporation, France "An an engineering challenge that can now be effort required to correct the output are invitation to Ada 2005"; Mira Mezini, met in many domains. The application of provided for approximately 100 pages of Darmstadt University of Technology, software engineering methods, tools, and training material. Correlation of these Germany "Aspect-Oriented Programming languages interrelate to make the estimates against one of six volumes of Beyond Hierarchical Modularity" Jörg challenge easier or more difficult. This the source code is provided. Kienzle, McGill University, Canada; conference focuses on the interaction between these three aspects of software You're probably wondering where Ada "Software Fault Tolerance: An Overview". engineering, especially how features in comes in, I suppose - the whole thing is Ada have and will permit the written in Ada... The presentation will Tutorials (full day): "The Personal development of the tools and methods that include the design decisions made Software Process for Ada", Daniel Roy; result in correctness, reliability, and throughout the development. The "Developing High Integrity Systems with quality of the resulting software. rationale for these design decisions could GNAT/ORK", Juan Antonio de la Puente Especially welcome are papers that be applicable and valuable to other & Juan Zamorano. analyze Ada with respect to these factors software developments. Tutorials (half day): "Implementing or in comparison with other languages. Presenter: Karl Nyberg [...] Design Patterns in Ada95", Matthew This conference will gather industrial Slides From John Warther's and Gordon Heaney; "Principles of Physical Software experts, educators, software engineers, Uchenick's Presentation Available. [See Design with Ada95", Matthew Heaney; and researchers interested in developing, also "Apr 8" topic above. -- dc] Slides "High-integrity Ravenscar Using analyzing, and certifying reliable, cost- from this presentation are available online SPARK", Peter Amey; "Architecture effective software. Technical or as a Powerpoint Presentation at Centric Development Using Ada and the theoretical papers as well as experience http://www.acm.org/sigada/locals/dc/2003 Avionics Architecture Description reports with a focus on Ada are solicited.

Volume 24, Number 2, June 2003 Ada User Journal Ada and Education 71

See the SIGAda 2003 Home Page for the Subject: RE: enseignement de Ada Date: Wed, 23 Apr 2003 11:18:50 +0200 complete, printable Call for Participation: To: Ada France Ada is taught at Telecom Paris since a 03. [...] [...] in Toulouse, the Université Paul long time. In a course of programming Please submit questions on the conference Sabatier is very active [...]. UPS, OO. Ada is also taught in the courses on to the Conference Chair, Robert C. Leif apparently, focusses on software real-time systems and those on [email protected] engineering: they not only cover the parallellism as well as the courses on or the Program Chair, Ricky E. Sward language, but they integrate it very early distributed systems. There are also many [email protected] into the development process by student projects and training courses in approaching in parallel also design Ada (which have strongly contributed to methods, and in particular HOOD, which the realization of free software like Ada and Education has roots in Toulouse. GLADE, AdaBroker, PolyORB). Another aspect which can be interesting [...] Paris VI has a course of programming Course and Training for your inventory is to look at in-house in Ada [...] (ask F. Kordon). Material in French training given in companies to their From: Julien Klein developers. From: daneel Date: Thu, 24 Apr 2003 09:47:45 +0200 For what I know in Toulouse, the aircraft Subject: Re: enseignement de Ada Date: Thu, 20 Feb 2003 23:03:37 +0100 and space industry got busy [...]. CNES, Subject: Re: Tutoriel Ada pour débutant of which I am part, organized a few years I did not follow the whole thread, but I Newsgroups: fr.comp.lang.ada ago a whole schedule of internal training just send a small mail to announce that (in collaboration with the UPS), and Ada is taught at the ENSMA of Poitiers. [Extracts translated from French. continues to do that in a sporadic way, Previously included pointers are not For the students in the first year of upon request [...]. There too, the attention engineering, the Ada83 language is used repeated here; see also similar topics in to software engineering is very much AUJ 24-1 (Mar 2003), p.7, AUJ 23-4 as application language during scientific present (a frequent HOOD and Ada programming. The Ada95 language is (Dec 2002), p.191, and AUJ 23-3 (Sep association). [...] 2002), p.128. -- dc] used by the engineering students in their André Laurens, Nacelles Pointées, Centre third year [among others in] projects > Do some of you know where I can find National d'Etudes Spatiales, 31401 relating to the "Object-Oriented a document in French, easy and clear, Toulouse, Programming" and "Real-Time Systems" to start programming in Ada? http://ballons.cnes.fr/nacelles_pointees courses. This was still the case last year. http://www.lifl.fr/~touzet/ADA/ [...] but From: [email protected] Julien Klein, Ingenieur ENSMA, promo also http://www.google.fr and select the Date: Fri, 11 Apr 2003 15:23:08 +0200 2001, Consultant AONIX button "Pages francophones". Subject: ada en enseignement From: [email protected] (Michel From: Xavier Sautejeau To: [email protected] Gauthier) For North America I don't know, but for Date: Mon, 28 Apr 2003 16:24:56 +0100 Date: Fri, 7 Mar 2003 12:00:19 +0100 Montreal, I can answer. Ada is taught at Subject: Re: enseignement de Ada Subject: Enseignement public de Ada the UQAM (Université du Québec à To: [email protected] To: [email protected] Montréal) for the introductory courses to The "licence d'informatique" of the I just wanted to inform about this URL "informatics", simple data structures university of Limoges uses Ada as proposing an Ada course: (stack, etc.) and the algorithms supporting language of the course on http://www.laas.fr/~francois/INSA/algopr (sorting...). Philippe Gabrini, author of a reuse with as argumentation that the other og/algoprog.html book on Ada, is a teacher at the UQAM. languages do not provide tools of The book comes from the notes of course. sufficient power and flexibility for the Ada Education in France From: Pierre Breguet implementation of the concepts [...]. From: Daniel Feneuille It should be noted that reuse is seen on Date: Tue, 15 Apr 2003 10:20:40 +0200 itself, independant of the object concept, Subject: Re: enseignement de Ada Date: Thu, 10 Apr 2003 20:03:51 +0200 in the sense that one can use objects cc: Ada France Subject: enseignement de Ada require objects. [...] To: Ada France Ada is taught in three HES-SO institutes d'informatique, F-87000 Limoges (Haute école spécialisée de Suisse [Extracts translated from French. -- dc] occidentale): the écoles d'ingénieurs in Ada Education in Norway I intend to write a paper emphasizing the Genève (EIG), in the canton of Vaud à educational virtues of Ada. I teach it since Yverdon-the-Baths (EIVD) and, partially, From: Rune Winther 1988 and I am obviously very satisfied of the écoles d'ingénieurs de l'Arc Jurassien it (that will not astonish the readers of this (EIAJ). Date: Mon, 28 Apr 2003 09:38:32 +0200 list!). Each year, more than two hundred Subject: Affordable Ada compiler for I'd like to make an overview of the qualified engineers of HES-SO thus Motorola 68332? various teaching units where Ada is still followed a training in informatics Newsgroups: comp.lang.ada appreciated [...]. Anybody has an idea implying the use of Ada [...]. But it is I'm considering using a Motorola 68332 about what happens abroad (for necessary to resist certain pressures, as based controller (Eyebot) in student Switzerland there's a lot, isn't there Pierre always... projects, and I am therefore in need of a Breguet or Luigi Zaffalon!) but in the Prof. Pierre Breguet, EIVD (Ecole suitable Ada compiler. USA for example? [...] d'Ingénieurs du canton de Vaud), 1401 If anyone can help me find a usable and From: Laurens Andre Yverdon-les-Bains, Switzerland cheap (academic/educational license?) From: Laurent Pautet compiler I would really appreciate this. Date: Fri, 11 Apr 2003 12:19:31 +0200

Ada User Journal Volume 24, Number 2, June 2003 72 Ada-related Resources

[...] For simplicity I would prefer a GHDL, a VHDL compiler written in Ada software development website. To reach compiler that could be run on a PC under 95. this page, select "software map" on the Windows or Linux. http://www.ada-france.org/article66.html home page, then "browse by More information on the Eyebot [See also "France - GHDL, a VHDL programming language", then Ada. -- dc] controller can be found at Simulator" in AUJ 24-1 (Mar 2003), p.28. From: Marc A. Criley http://www.ee.uwa.edu.au/~braunl/eyebot -- dc] Rune Winther, Ph.D., Ostfold College, Date: Sun, 16 Feb 2003 13:20:02 GMT Norway Open Source Projects in Ada Organization: Quadrus Corporation Subject: Re: No Ada in OpenSource? From: Steve From: Yuri Newsgroups: comp.lang.ada Date: Mon, 28 Apr 2003 13:27:39 GMT Date: Sat, 15 Feb 2003 17:12:55 GMT For whatever reason, the majority of Ada Subject: Re: Affordable Ada compiler for Subject: No Ada in OpenSource? open source projects reside in places other Motorola 68332? Newsgroups: comp.lang.ada Newsgroups: comp.lang.ada than SourceForge, such as Are there any OpenSource projects in www.adapower.com. Take a look at RTEMS. Ada? I looked through ports repository in From: [email protected] (Ted http://www.rtems.com. It's free (without FreeBSD and didnt' find any except Ada Dennison) support). Support is available. [...] related like adasockets or bindings to Date: 19 Feb 2003 06:42:36 -0800 GTK. If no why don't you guys who have [[email protected] (L. Siever) also Subject: Re: No Ada in OpenSource? tons of experience in Ada do some responded: -- dc] Newsgroups: comp.lang.ada OpenSource stuff to promote Ada ? Looks like MaRTE(a RTOS) has some I have 3 on my website at I am new to Ada but see how support for the 68332: http://www.telepath.com/~dennison/Ted/ advantegeous it is to development. And http://marte.unican.es/contents.html#curre TED.html. The most prominent one is the kinda missing why isn't it popular among nt_developments SETI@Home Service, which is used by people. Maybe it needs positive examples SETI@Home enthusiasts all over the like I mentioned ? It probably can cut Ada Training world. [...] efforts and tremendously increase stability [This information is included as examples on "C++" projects like GnuCash or KDE [See also "SETI@Home Service 2.1" in of public Ada training courses: many are or whatever else. So maybe instead of AUJ 22-3 (Sep 2001), p.148. -- dc] being organized regularly. For more, see talking about advantages it's better to > [...] why don't you guys who have tons also pointers in several previous AUJ build some positive example ? of experience in Ada do some issues. -- dc] [And in response to the remark "A quick OpenSource stuff to promote Ada ? From: Ed Colbert search at http://www.sourceforge.net I think you underplay the committment Date: Sat, 19 Apr 2003 12:22:48 -0700 shows that there are 50+ Ada-projects." -- involved in running a project. But in Subject: [Reminder] Public Intro & Real- dc] general, I agree this would be a good Time Ada 95 Classes During May 2003 True -- SourceForge currently lists 60 thing. [...] in Carlsbad CA projects where Ada is used. But good half From: Ken O. Burtch To: [email protected] of them are purely Ada-related like Ada Absolute Software will be holding the libraries, bindings, DB access tools. Also Date: Thu, 27 Feb 2003 11:06:04 -0500 following public Ada programming few tiny students projects. No standalone Subject: Re: No Ada in OpenSource? courses in Carlsbad, CA, during the powerful packages (like Gimp, GnuCash, Newsgroups: comp.lang.ada month of May 2003. XNap, ...). Nothing for the "public" (OpenSource public) to use and mind: this PegaSoft has several open source Ada 12-16 May: "Ada 95 for Experienced is written in Ada. projects. Visit our site at Programmers" (Introductory). http://www.pegasoft.ca. [See also the From: Preben Randhol 20-23 May: "Developing Real-Time "PegaSoft" news items in AUJ 23-4 (Dec 2002), pp.202-203. -- dc] Systems in Ada 95". Date: Sat, 15 Feb 2003 20:02:43 +0000 You can find a full description and Organization: Norwegian university of AdaIC Opens Ada Sites registration form on our web-site, science and technology www.abssw.com. [...] (We also offer Subject: Re: No Ada in OpenSource? Search Engine courses on object-oriented methods and Newsgroups: comp.lang.ada From: Randy Brukardt other object-oriented languages.) [...] http://freshmeat.net/browse/163/?topic_id =163 Date: Wed, 12 Mar 2003 23:21:12 -0600 Ada-related Resources [This URL currently lists 32 Ada projects Subject: AdaIC opens the Ada Sites search in the "freshmeat" database of Unix and engine New Interview Section on cross-platform software, most are under Newsgroups: comp.lang.ada Ada-France Web Site an open source license. -- dc] The AdaIC is proud to announce the From: Preben Randhol availability of the Ada Sites search From: Samuel Tardieu engine. france.org> Date: Sat, 15 Feb 2003 20:05:06 +0000 The AdaIC search engine provides a way Date: Fri, 21 Mar 2003 15:23:46 +0100 Organization: Norwegian university of to search many Ada-related web sites in a Subject: Inauguration de la nouvelle science and technology single search. Unlike general search rubrique Entretiens Subject: Re: No Ada in OpenSource? engines, the Ada Sites search engine only To: [email protected] Newsgroups: comp.lang.ada searches Ada sites listed by the AdaIC. [Translated from French: -- dc] http://sourceforge.net/softwaremap/trove_ Since only Ada-related sites are included, list.php?form_cat=163 you won't get piles of unrelated pages, The Ada-France site inaugurates today a and you won't have to limit your search so new "Interviews" section. The first person [This URL currently lists 66 Ada projects much that you can't find the information interviewed is Tristan Gingold, author of on the "SourceForge" Open Source you need.

Volume 24, Number 2, June 2003 Ada User Journal Ada-related Resources 73

The engine allows the inclusion or various ACAA documents) from the Department of National Defense's CP140 exclusion of site categories, along with ACAA search page: http://www.ada- Maritime Patrol Aircraft. phrase searches, excluded words, and auth.org/search.html. Barnes SPARK Ada Book Revised. High more. When you click the "Search" And all of this material has been added to Integity Software: The SPARK Approach button, the engine will search more than the Ada-wide search engine at to Safety and Security by John Barnes has 25,000 pages of Ada information, http://www.adaic.com/site/wide- been revised. Sample chapters are presenting the most relevant pages along search.html, along with some additional available at with short abstracts. You can directly sites that were nominated. http://www.sparkada.com/book.html. access the search engine at http://www.adaic.com/site/wide- Randy Brukardt, ARG Editor & Technical Ada Europe 2003 June 16-20. The Eighth search.html. Webmaster, Adaic.org/.com International Conference on Reliable Software Technologies will be held in The AdaIC search engine is created with a AdaIC News Items Toulouse, France. set of Ada applications, all written in Ada SIGAda 2003 Slotted for Dec. 7-11. 95. For more on the search engine and From: Technical Webmaster SIGAda is holding its annual conference how to use it, see in San Diego, Calif., this December. http://www.adaic.com/site/search- Date: Tue, 25 Feb 2003 18:57:52 -0600 info.html. Subject: [AdaIC] New articles posted Ada Resource Association adds ACT If you know of Ada-related web sites that To: Europe to Global Membership. The ARA is pleased to announce the addition of its are not listed in We've posted a pair of new articles by Jim newest member, ACT Europe. http://www.adaic.com/links/index.html, Rogers. please write us at [email protected] Vector Software Easily Writes Fail-Safe First, Introducing Ada with the URL and a short description. Tests in Ada. Vector Software describes (http://www.adaic.org/whyada/intro.html) We'll add it to the search engine on the how the use of Ada has made their test gives a tour of Ada for those who are not next update cycle. Comments on the generation products more error-resistant familiar with her. Jim especially search engine are also welcome. and "almost impossible to crash". investigates why Ada helps reliability of [And from another message: -- dc] programs. [See also "Introducing Ada on Ada Tools Lead Green Hills Through Somewhat less interesting, but still useful, CodeMages Software Forum" in AUJ 23- Two Profitable Quarters. At the is the individual search engines (several 4 (Dec 2002), p.208. -- dc] Embedded Systems Conference, Green Hills Software noted that their recent of which people have been stumbling Second, Shared Resource Design Patterns growth was due in large part to selling across and using for the last month). All (http://www.adaic.org/learn/tech/shar- Ada-based development tools. of these are included in the board search, res.html) describes various techniques for but it can be useful to look only in a controlling access to shared resources in Aonix Grows into Two Companies. particular site or document. multi-tasking programs. It'll be a valuable Aonix announced that it has split into two The entire AdaIC site overview for any Ada practitioner. companies. The former Critical Systems Division (which includes the ObjectAda (http://www.adaic.com/site/search.html); From: Technical Webmaster products) was purchased by a group of The AdaIC archives investors led by top management of the (http://archive.adaic.com/search.html); Date: Wed, 23 Apr 2003 19:35:49 -0500 CDS division. The new company will Ada 95 Quality and Style Subject: [AdaIC] Two news items. keep the name Aonix; the remaining parts (http://www.adaic.com/docs/95style/html/ To: search.html); The Ada 95 Reference of the old Aonix will be known as Select Manual Ann is at the Embedded Systems Business Systems. [See also "Aonix - (http://www.adaic.com/standards/95lrm/ht conference, so she asked me to post these Commitment to Ada" in AUJ 24-1 (Mar ml/RM-SRCH.html); and the Annotated stories. 2003), p.18. -- dc] Ada Reference Manual First, Green Hills Software indicated that IBM completes acquisition of Rational (http://www.adaic.com/standards/95aarm/ their recent growth in profits was due in Software. IBM announced that it has html/AA-SRCH.html). large part to selling Ada-based completed its acquistion of Rational Also, if you are the webmaster of one of development tools. See the full story at Software. Rational will become a division the sites indexed, we have a report of all http://www.adaic.org/news/ghsprofit.html of IBM. of the links reached. Most of the sites we Second, Vector Software gave Ann an FAA Certifies INTEGRITY RTOS for indexed had a number of broken links. interview about their use of Ada in their DO-178B, Level A Use In Sikorsky S-92 Just send me a note to request it. VectorCast testing product. They describe Helicopter. Green Hills Software, Inc. has Randy Brukardt, Technical Webmaster, how the use of Ada has made their test announced FAA acceptance of a DO- Adaic.org/Adaic.com generation products more error-resistant 178B, Level A, certification package for and "almost impossible to crash". See the its INTEGRITY-178B real-time operating From: Randy Brukardt full story at system (RTOS) for a new avionics system http://www.adaic.org/news/test-sw.html. aboard the Sikorsky S-92 helicopter. Date: Wed, 16 Apr 2003 23:06:55 -0500 Subject: [Ada-Comment] AI search engine [See also the respective items in the "Ada Airbus Uses Green Hills RTOS. Northrop now available. Products" section of this AUJ. -- dc]. Grumman Selects Green Hills Software's To: Ada-Comment List Subject: ARA's Ada Info: Ada in the News system in Airbus and other airframe manufacturers. You can now search the entire set of AIs [Some news items from the AdaIC web (including the attached e-mail, of course) site; more information on selected items Green Hills' Integrity RTOS in F-16 at http://www.ada-auth.org/search- further in this AUJ issue. -- dc] Cockpit. Lockheed Martin Aeronautics ais.html. This will search only the latest Company has selected Green Hills Aonix's Object/Raven Helps Complete version of the AIs. Software's, INTEGRITY real-time Aircraft Control Display Unit CMC operating system for use in the F-16 You also can now search the entire Electronics Inc, has completed the CMA- fighter jet's on-board Color Display ACAA web site (which includes the AIs, 2082D Control Display Unit using Processor (CDP). the ARG minutes, the ACATS, and the ObjectAda/Raven for the Canadian

Ada User Journal Volume 24, Number 2, June 2003 Ada-related Tools 75

Implementation changes: In annexes forced us to really work hard on Ada-related Tools BC.Support.Memory_Streams, limiting any low-level extensions required Write_Contents did the actual writing one to implement an annex. For example, the storage element at a time. Read_Contents Information Systems Annex requires a lot WORM_Str - Write Once requires a supplier Stream that has of compiler independent software which Read Many Strings datagram properties (unlike, it turns out, need only be written once. (Ben Brosgal, GNAT.Sockets streams, even if based on Dave Emery, and I wrote a prototype of From: [email protected] a datagram protocol). those operations under contract to the Date: Fri, 14 Feb 2003 20:38:47 GMT AJPO, and the source code was made Subject: Re: Array Of Constant Strings? [See also same topic in AUJ 24-1 (Mar 2003), p.10. -- dc] public domain.) It also requires Newsgroups: comp.lang.ada supporting a decimal type with at least Plug: One of the packages I recently External Libraries and the eighteen decimal digits, and that's about posted Ada Standard it. (www.adapower.com/os/notify.html) is Also the there are some dependencies WORM_Str - Write Once Read Many between special needs annexes, but with a Strings. It's exactly intended for situations From: Stephen Leake structure that makes sense. (For example, where you never delete from a table of it makes no sense to implement the Real- strings. [...] Date: 06 Mar 2003 14:52:56 -0500 Organization: NASA Goddard Space Flight Time Systems annex without the Systems WORM_Str also includes an internal Center (skates.gsfc.nasa.gov) Programming Annex. subpackage that adds binary search and Subject: Re: Ada2005 clear screen etc. But when Ada 9X was in development we sorted dump capabilities. WORM_Str is Newsgroups: comp.lang.ada spent a lot of effort deciding what should not OS, compiler, or library dependent, and should not be added to the standard. but just plain Ada. > If we had a committee that built and maintained a library of utility code as a The NRG had done a lot of work over a "Reference Implementation" it could be decade developing math packages. In Charles - Container Library packaged with the compilers but 1982, the consensus was that adding a bad provided in an unsupported mode. numerics library to the standard would be From: [email protected] (Matthew a mistake, and we couldn't delay the Ada Heaney) SIGAda is trying to start something like standard until they were ready. By the Date: 19 Feb 2003 16:41:30 -0800 that (see early nineties they were ready, consistant Subject: Re: No Ada in OpenSource? http://www.sigada.org/wg/apiwg/). with the IEEE work, and there was little Newsgroups: comp.lang.ada Maybe it will succeed. argument that they should not be added. One open source project in Ada95 is the [See also "Ada Components and APIs Similarly, for political reasons, support Charles container library, which is Working Group" in AUJ 24-1 (Mar for other character sets was a requirement. modelled closely on the C++ STL. You 2003), p.10. -- dc] But even though we put a significant can get the latest version from my home From: Robert I. Eachus amount of effort into developing an SQL page. interface, the consensus was that it wasn't http://home.earthlink.net/~matthewjheaney/charle Date: Sun, 16 Mar 2003 04:37:47 GMT something that belonged in the standard. s/ [See also same topic in AUJ 23-4 (Dec Subject: Re: Ada2005 clear screen etc. (And in my opinion a good thing too. 2002), p.192. -- dc] Newsgroups: comp.lang.ada There were three proposals each with its I posted a new version on 18 Feb 2003, [On having external libraries such as strengths and weaknesses, and I have which contains changes to the vector containers and GUIs in the Ada language never really used any of them for more containers, and includes new string standard or not. -- dc] than a two or three page program. containers that can be used as a However there are now some very nice replacement for Ada.Strings.*. There are Let me try to answer this from the ARG database bindings that don't require a new also new html docs for the vectors. standpoint, plus some history. Way, way, blinding headache--and that were not back in the Mil-Std 1815 (Ada 80) days, [And from a later message: -- dc] available in time for Ada 95. If someone I/O was an integral part of the language. were to take the GNADE work: [...] the STL has already been ported to By ANSI/Mil-Std 1815A (Ada 83) I/O http://gnade.sourceforge.net/doc/gnade.ht Ada. The library is called "Charles", in required no special features within the ml and propose all or part of it as part of honor of Charles Babbage, with whom language, and there was a set of standard the new standard, go ahead. Personally, I Lady Ada was affiliated. packages, Direct_IO, Sequential_IO, find the thin ODBC binding easy enough Text_IO, and Low_Level_IO, that were to use, but I think that a thinker binding Booch Components required by the standard. would be more appropriate for adding to the standard. From: Simon Wright In ANSI/ISO 8652 (Ada 95) these packages were moved into Annex A, So what will be added to Ada 0Y? The Date: Tue, 11 Mar 2003 18:05:52 GMT predefined language environment, along only real consensus at this point is that Subject: Booch Components 20030309 with other old language features and a there are some container libraries that To: [email protected] few new ones. In addition several should be considered. Check the Ada specialized needs annexes were added for Issues database http://www.ada- This release has been uploaded to things that were only of interest to small auth.org/~acats/ais.html for details. http://www.pushface.org/components/bc segments of the Ada population. The idea and is mirrored at was that compilers need not implement all Ada Standard Containers http://www.adapower.net/booch/. of the specialized needs annexes. In Library Working Group Major features since 20030111: practice, the major front ends, including GNAT have tended to implement all of From: [email protected] Interface changes: New _unmanaged_ the annexes, it really isn't all that hard. forms are provided for all the monolithic Date: Mon, 14 Apr 2003 17:17:42 +0100 (All you need is someone who can read Subject: [Ada-Comment] Ada Issues work Containers. This means you don't need to and understand each annex. ;-) supply a storage pool at all (and means procedure you can use GNAT 3.12 if you have to!). But the annexes in my mind have been a To: [email protected] success, because the design of the

Ada User Journal Volume 24, Number 2, June 2003 76 Ada-related Products

[...] For [Ada Issue] 302 [Data Structures] Rune Winther, Ph.D., Ostfold College, Numerical Recipes in Pascal and the I've got many issues as a member of the Norway P2Ada translator - see also there. ASCLWG [1] and as an independent data From: Stephane Carrez http://www.mysunrise.ch/users/gdm/gsoft structures library designer. [...] .htm [1] ASCLWG = Ada Standard Containers Date: Fri, 28 Mar 2003 23:22:29 +0100 Library Working Group, vd. The Ada- Subject: Re: Ada compiler for 68hc11? TASH - Ada Binding to Europe 2002 workshop, and Newsgroups: comp.lang.ada Tcl/ groups.yahoo.com/group/asclwg/. The gcc 3.2.1 compiler can be used but you'll need to use "pragma From: Terry Westley Ada-aware gdb 5.3 No_Run_Time;" because the GNAT runtime is not ported yet to 68HC11. (I'm Date: Tue, 18 Feb 2003 05:01:11 GMT From: Oliver Kellogg embedded system like the HC11). You Newsgroups: comp.lang.ada Date: Thu, 27 Feb 2003 07:59:02 +0100 can't raise an exception unless you port Subject: Re: debugging ada with gdb The latest version of Tash (Ada binding to the GNAT exception part. Newsgroups: comp.lang.ada Tcl/Tk) is based on Tcl/Tk 8.4.1, I wrote an Ada example for 68HC11 compiled with GNAT 3.15p. You can A preliminary version of an Ada aware some time ago. It uses the 68HC11 download a .zip file at www.adatcl.com gdb-5.3 has just been released by ACT, bootstrap mode which means it fits in the which contains all source code and see 256 bytes constraint (actually even less compiled windows binaries for required http://sources.redhat.com/ml/gdb/2003- because the stack must be within that 256 Tcl/Tk library files. [...] 02/msg00558.html bytes region!). VAD 6.1 - Visual Ada GNAT Compiler for You can have a look at the example: Developer 68HC11 Targets http://gel.sourceforge.net/ada_example.ph p. It shows how you can access the HC11 From: Leonid Dulman From: Stephane Carrez IO ports in Ada as well as how you can cope without the GNAT runtime. [...] Date: Tue, 15 Apr 2003 22:17:27 +0200 Date: Wed, 15 Jan 2003 21:17:05 +0100 GNAT Compiler for AVR Subject: Announce : Visual Ada Developer Subject: Re: Are there Ada-compilers for VAD 6.1 Leonid Dulman HC11/HC12? Targets Newsgroups: comp.lang.ada Newsgroups: comp.lang.ada From: [email protected] (Rolf Ebert) VAD (Visual Ada Developer) is a Tcl/Tk gcc 3.2.1 includes the GNAT Ada Date: 4 Apr 2003 05:01:50 -0800 oriented Ada-95(TCL) GUI builder compiler. I was able to build it for Subject: Re: Ada for microprocessors ? portable to different platforms, such as 68HC11/68HC12 and use it on a full Newsgroups: comp.lang.ada Windows NT/9x, Unix (Linux), Mac and example (which fits in 256 bytes!). OS/2. You may use it as IDE for any Ada- I started a project some months ago to The Ada runtime is not compiled and 95 (C, C++, TCL) project. You may use it port gcc/gnat to AVR targets. See some work is necessary. OTOH I'm not to build TCL scripts only. VAD generated http://tech.ebert-langer.de/avr-gnat.html. convinced that the Ada runtime as it is is Ada sources you may compile and build Recently the project was named AVR- suitable for HC11/HC12. In the example I executables with GNAT on Windows and Ada and moved to SourceForge at wrote I took care of not using any runtime Unix(Linux) or Aonix ObjectAda 7.2 on http://sourceforge.net/projects/avr-ada/. support (pragma No_Run_Time, pragma Windows. Suppress (All_Checks)). [...] The corresponding mailing list has quite VAD 6.1 has five realizations: for tcl/tk low traffic as we are only three right now. I'll try to package (tar.gz) my example and 8.0.x, 8.2.3, 8.3.5 and 8.4.2 (last version). Support is alway welcome.... give more info when I've time. [...] You need to install and to check tcl/tk before using VAD. From version tcl/tk From: Laurent Guerby Numerical Integration 8.4.0.1 ActiveState distribution includes Date: 02 Mar 2003 00:29:36 +0100 Libraries many of VAD used packages (Itcl, Img, Subject: Re: xor Tktable, BWidgets, Tkhtml and so on). Stephane Carrez did the port of GCC to From: Stephen Leake You may choose the needed version in 68HC11, he has posted a message entitled link time. (I recomend to work with 8.4). "GNAT dream with 3.2.2 pre-release for Date: 22 Apr 2003 16:04:50 -0400 [See also "VAD - Visual Ada Developer" i686 and m6811-Elf" which you can find Organization: NASA Goddard Space Flight in AUJ 23-3 (Sep 2002), p.134. -- dc] at http://gcc.gnu.org/ml/gcc/2003- Center (skates.gsfc.nasa.gov) 01/msg01600.html. Subject: Re: Numerical Integration VAD 6.1 is available in Libraries http://www.websamba.com/ldulman/vad. On his personal web page there is a lot of Newsgroups: comp.lang.ada htm. You may download sources [...] and information: http://stcarrez.nerim.net/. I binaries [...] (Windows 9x/NT) [...] suggest you contact him directly. I have a very simple Runge Kutta implementation licensed under the (Linux). From: Rune Winther GMGPL (that's in the "no money" category). ANSI TTY Control Date: Fri, 28 Mar 2003 09:20:51 +0100 Subject: Ada compiler for 68hc11? From: [email protected] (Gautier) From: Jeffrey Carter Newsgroups: comp.lang.ada Date: 23 Apr 2003 03:47:09 -0700 Date: Sat, 15 Mar 2003 01:41:40 GMT Subject: Re: Numerical Integration We're using the MIT Handyboard Subject: Re: Need a gotoXY consol IO Libraries (68hc11) in various student projects and I procedure for Rational Apex on Sun Newsgroups: comp.lang.ada would like to be able to develop Ada Newsgroups: comp.lang.ada programs for it. Any hints to where I If it is on a mesh you can make a Gauss If you're doing this for Sun then you can might find an Ada compiler for the integration using the Finite Element probably use ANSI escape sequences. 68hc11 would be greatly appreciated. Kernel available in mathpaqs.zip, page See, for example, below. You may also be interested by the

Volume 24, Number 2, June 2003 Ada User Journal Ada-related Tools 77

PragmARC.ANSI_TTY_Control from the Happy streaming! small yet powerful HTTP component to PragmAda Reusable Components. embed in any applications. It means that http://home.earthlink.net/~jrcarter010/pra HTTP & SMTP you can communicate with your gmarc.htm application using a standard From: [email protected] and this without the need for a Web Ncurses Ada Binding Date: Thu, 13 Feb 2003 06:57:08 GMT Server. AWS is fully developed in Ada Subject: ANN: http & smtp etc packages to with GNAT. adapower From: Jeffrey Creem AWS support SOAP, Server Push, Newsgroups: comp.lang.ada HTTPS/SSL, client HTTP, hotplug Date: Fri, 18 Apr 2003 10:55:43 GMT David Botton will soon be posting on modules... We have worked very hard to Subject: Re: GNAT Ada - Clear Screen www.adapower.com some packages I sent make this release as stable as possible. Newsgroups: comp.lang.ada in the hopes they would help someone Note that Hotplug modules are very nice Note that the ncurses binding is built in to build the killer Ada app ;) but have a potentially security hole as it is the later ncurses distributions so you dont [Direct URL is implemented today. A new secure have to go looking for it: www.adapower.com/os/notify.html. -- dc] implementation will be proposed in a future version. ftp://ftp.gnu.org/gnu/ncurses Http: offers Open/Get/Head/Post routines to access web pages. It includes line (ie, The SOAP implementation has been Hints for Networking crlf) oriented read with Content-length or validated on transfer-encoding: chunked sizes. It will http://validator.soapware.org/. From: David C. Hoos save/send cookies (default) or ignore Here are the main changes since AWS them. multitasking safe, of course. Date: Fri, 31 Jan 2003 15:21:34 -0600 1.2: [see distribution -- dc] Organization: ENST, France Smtp: handles smtp (e-mail send) Validation: AWS 1.3 has been compiled Subject: Re: Hints for networking protocol. and has passed all tests on Newsgroups: comp.lang.ada Sorts: generic List/Merge sort (Knuth Vol - Windows XP, GNAT 3.15a1, 3.16a, > I'm about to program a networking 3, alg. 5.2.4L). 3.17w and 5.01w package for the first time in Ada and WORM_Str: Write Once, Read Many - Windows NT 4.0, GNAT 3.15a1 am somewhat undecided the way to go. String store, also includes binary search - GNU/Linux x66, GNAT 3.16a and I'd like to hear some pointers for generic subpackage. examples or hints. [...] 3.17w Notify: A 31 line demo of the above, that - SPARC Solaris 8, GNAT 3.17w I have written many many network reads a web page and emails the first line protocol representations using Ada95 containing the word "title", if there is such Other platforms / compiler version streams. The elegance of Ada Streams, a line. [...] combinations have not been tested, it does and the simplicity of their use once you not mean that it's not working. Previous The posted packages are unrestricted in have made the effort to properly define version of AWS have been build on use and themselves use the GMGPL your types and their stream attributes FreeBSD 4.1 and MacOSX. really makes the effort worthwhile. Here version of Windows Claw, available via are some hints and rules needed to do this www.adapower.com Pointers: AWS Home Page (sources and documentation): http://libre.act- successfully. These rules are based on the [And from a later message: -- dc] presumption that there is a specific europe.fr/aws They are Ada source files, designed to run network representation required by your [See also "AWS 1.1 - Ada Web Server in an environment that supplies protocol. Component" in AUJ 22-4 (Dec 2001), Claw.Sockets and the Windows winsock pp.201-202, and further references given 1. This rule number 1 is very important. API. Feel free to modify them to use a there, for pointers to bindings used with NEVER base any value written to a different socket package on a different AWS, projects using AWS, and much stream on the standard Ada type Integer. OS. I note that a different SMTP package, more. -- dc] You should always define project-specific with different requirements and a types that do not depend on somewhat different interface, is available implementations that are subject to at Jabber Instant Messaging variation between compilers or platform http://perso.wanadoo.fr/pascal.obry/contri Protocol types. For example, you can base integer b.html. types on those available in the package From: rd Interfaces -- Integer_16, Unsigned_16, AWS 1.3 - Ada Web Server Date: Wed, 16 Apr 2003 11:10:56 -0500 etc. That's what the Interface package is Component Subject: Re: If anybody wants to make for -- i.e. to permit writing portable code something in Ada but do not know what Newsgroups: comp.lang.ada for interfaces. From: Pascal Obry 2. You need to write stream attributes for Date: 05 Mar 2003 11:54:56 +0100 [In a thread about new e-mail distribution multi-octet numbers that respect the Subject: ANNOUNCE - AWS 1.3 released techniques and related protocols to fight endiness of your platform. Even when Newsgroups: spam: -- dc] you've been told that "this only has to run comp.lang.ada,fr.comp.lang.ada Jabber [www.jabber.org] might be just the on Sparc," sooner or later your code will AWS - Ada Web Server, 1.3 release / thing. The best part about Jabber is the also need to run on Intel, so I've always SOAP 1.1 real time messaging capability, and if I taken the trouble to deal with endiness. was designing the second protocol, I Authors: Dmitriy Anisimkov, Pascal Obry 3. All objects written to a stream must would include this functionality. We are happy to announce the availability have a 'Size that is an integer multiple of I don't believe there are any Jabber of the AWS 1.3 release. The API could 8. So, if you have an octet with two four- clients/servers written in Ada, and I'm not change slightly at this stage but should be bit fields, I make them into a record type, sure how well Jabber uses crypto, [...] and write the stream attributes for that fairly stable now. From: Pascal Obry record. I've done things like a record that AWS stand for Ada Web Server. It is not Date: 16 Apr 2003 21:16:48 +0200 has a 31-bit field, and a 1-bit field. a real Web Server like Apache. It is a

Ada User Journal Volume 24, Number 2, June 2003 78 Ada-related Products

Subject: Re: If anybody wants to make (http://realtimebattle.sourceforge.net/) bot A module to store types and identifiers something in Ada but do not know what developed completely in Ada. [...] allows P2Ada to correctly translate the Newsgroups: comp.lang.ada PS: If anyone is interested in the project With instruction, the New allocator, and There is one [Ada implementation], I'll be pleased to give him/her a CVS Read/Write operations to a file. Jaffar: http://picolibre.enst- write account (It's obvious that I'm not an Import-export of definitions from one bretagne.fr/projects/jaffar/ experienced Ada programmer and need translation to another, covering in a Pascal Obry, Team-Ada Member, Magny some help) flexible way the various kinds of modularity of the Pascal dialects. Les Hameaux, France Ada for MUD Game [Samuel Tardieu 64 predefined types, constants, functions, also responded: -- dc] Programming procedures ("classic" Pascal, Delphi, CodeWarrior) with their Ada 95 It was developped by students I From: John R. Strohm translation. If the name is (re)defined in supervised. If anyone wants to take the the Pascal source, the name is of course developpement from the current sources, Date: Mon, 7 Apr 2003 04:50:06 -0500 used instead of the translation. [...] create an account on picolibre and I'll add Subject: Re: Programming languages you as a developer. Newsgroups: http://www.mysunrise.ch/users/gdm/gsoft alt.mud.programming,comp.lang.ada _fr.htm AdaSockets Binding kat-Zygfryd <[email protected]> wrote F2Ada - Fortran to Ada From: David C. Hoos > I've been writing a mud for some time Translator now in C++ but decided lately to re- Date: Wed, 12 Feb 2003 21:41:10 -0600 write it in Ada. The reason was that From: Jean-Pierre Rosen Subject: Re: TCPIP package or binding? although a C++ MUD may work a little To: [email protected] faster, reading and extending Ada code Date: Wed, 12 Mar 2003 10:40:28 +0100 is much simpler. Moreover Ada code is Subject: Re: Fortran - Ada > I've been asked to check into the best more standardized, so it's not a big To: way to get to TCPIP from Ada. problem to switch between > Does somebody know a powerful I would use Ada.Sockets or compilers/archs, where my C++ code tranlator from Fortran 77 or 90 to Ada? GNAT.Sockets, both of which provide the compiles well under some compilers necessary interfaces to the OS's TCP/IP and doesn't compile at all on others. F2Ada: http://www.informatik.uni- stack, as well as UDP/IP. And... Ada has got an IDE with very stuttgart.de/ifi/ps/ada software/html/language-translators.html Ada Sockets for Windows OS sexy diagram rendering (GRASP). http://perso.wanadoo.fr/pascal.obry/archiv I've added a follow up to comp.lang.ada, [That page also has a COBOL to Ada e/adasockets-1.0-win32.tar.gz as this will be at least mildly interesting to translator. -- dc] some of the people there. Ada Sockets for UNIX OS Stream Parsing Library http://www.rfc1149.net/download/adasoc When you finish this, please drop a note kets/adasockets-1.4.1.tar.gz to comp.lang.ada, ideally some comments From: [email protected] (Victor Porton) about how it went and lessons learned Date: Wed, 12 Feb 2003 20:36:37 +0500 GnuPG Binding along the way. MUD programming is Organization: Extreme Code Software almost exclusively a C/C++ domain these (http://ex-code.com) From: [email protected] (Andreas days; the mere existence of an Ada-based Subject: I created a new parser generator Almroth) MUD would go a ways toward Newsgroups: comp.lang.ada Date: 20 Mar 2003 01:39:25 -0800 convincing some people that Ada really is Subject: Re: GnuPG binding? a general-purpose programming language. I created a library which allows to write Newsgroups: comp.lang.ada Also, the fact that you did it in Ada parsers of arbitrary streams (e.g. streams of unicode characters or even streams of I have written a binding to GPGME, without being coerced by a US DoD container objects) entirely in Ada. (You which is the preferred API for GnuPG contract clause will carry some weight. write Ada [code] yourself, not a program (according to the GnuPG team). (For some reason, no one wants to believe Boeing when they say they used, and [that] would [be] convert[ed] to Ada from [GPGME = the GNU PG ME tool suite required all their subcontractors to use, a special parser language, there is no such for encrypting and signing of date. Ada for the 777 because it was a whole language). >From a later message: -- dc] lot better than C/C++.) Library is very extensive and The license is GPL with the usual [See also "Multi-User Dungeon (MUD) customizable (probably more than any exception for generics... adagpgme-0.4.0 Game in Ada" in AUJ 24-1 (Mar 2003), other parser toolkit). It is important for is available at p.15. -- dc] reliability that there are no problems with http://www.almroth.com/adagpgme- look ahead (as in many other parser 0.4.0.tar.gz P2Ada - Pascal to Ada generators) for the price of that the library Translator is may be slower. Adabot - Real-Time Battle This library has a deficiency: generally (in Robot Game From: Gautier de Montmollin the worst case) for each extractor subtype you create (what is sometimes needed to From: Alfonso Acosta Date: Wed, 05 Feb 2003 10:50:27 +0000 introduce a new syntax construct) you Subject: Ann: P2Ada (v.4-Feb-2003) need three things: define the subtype Date: Sat, 22 Feb 2003 23:31:08 +0100 Newsgroups: fr.comp.lang.ada itself, define an instance of it and define a Subject: strange execution error function which returns access to that [Translated from French. See also same Newsgroups: comp.lang.ada instance. This is only for the case of topic in AUJ 24-1 (Mar 2003), pp.15-16. - complex recursion of syntax constructs. I recently started a project in savannah - dc] called adabot Well, if you are interested I can as well (http://savannah.nongnu.org/projects/adab New features of P2Ada, the Pascal to Ada introduce a meta-language to eliminate ot/). Its a real-time battle translator: this problem.

Volume 24, Number 2, June 2003 Ada User Journal Ada-related Tools 79

Are you interested despite of this I realised an IDL 3 parser in Ada > I'd like to get flat binary code in order deficiency? If there are the market (i.e. (available here: to boot on it. Can gnatlink or any tool c.l.a will answer yes), I will publish it http://www.lifl.fr/~mullera/idlcompiler.tar do it? both as GPL and commercially. Now it is .gz) Perhaps that can interest somebody... Your goal is booting an Ada main? pre-alpha and Extreme Code uses it For now, it does not check semantic rules, Look at internally. but any help would be welcome; -) http://www.ktc.com/~sknipe/EOSA.html [See also "Extreme Code - UniParser" in Alexis Muller, Laboratoire d'Informatique and if it looks like what you want, directly the "Ada Products" section of this AUJ. -- Fondamentale de Lille (LIFL), Universite download dc] de Lille 1, France http://www.ktc.com/~sknipe/EOSA- BOOT-0.0.11-beta.2.tar.gz [or .tar.bz2 -- ANTLR Grammar for Ada MaRTE OS 1.2 - Minimal dc] You will have to provide the bits and From: Oliver Kellogg System for Embedded splash screen. Date: Sun, 2 Mar 2003 20:28:16 +0100 Applications Subject: ANTLR grammar for Ada available [And from a later message: -- dc] Newsgroups: comp.lang.ada From: Mario Aldea Rivas I put that together with the hope that it This is to announce the availability of a would enable people to do interesting first version of an Ada grammar for the Date: Mon, 17 Feb 2003 10:24:36 +0100 things with bootable Ada mains. I would ANTLR language recognizer. The Subject: MaRTE OS V1.2 released be interested to know of any exciting grammar is at MaRTE OS version 1.2 released ! projects you achieve with it if you find it http://www.antlr.org/grammars/ada. useful (and also let me know of any bugs MaRTE OS (Minimal Real-Time etc :-). [See also "Parser/lexer generator Operating System for Embedded ANTLR" in AUJ 20-1 (Apr 1999), p.16. - Applications) is a real-time kernel for - dc] Ada-VHDL Software- embedded applications that follows the Hardware Codesign Currently the main program is just a Minimal Real-Time POSIX.13 subset, syntax checker for Ada. The Abstract providing both the C and Ada language From: Rodrigo Garcia Syntax Tree (AST) construction is still POSIX interfaces. under development. Anybody wishing to [See also AUJ 23-1 (March 2002), p.18. -- Date: Tue, 01 Apr 2003 16:16:55 +0200 contribute in this area, feel free to contact dc] Subject: Re: Does anyone know the benefit me. It allows software cross-development of of codesign using ada and vhdl! Oliver M. Kellogg, Ada and C applications using the GNU Newsgroups: comp.lang.ada [email protected] compilers Gnat and Gcc. Remote > Does anyone know the relevant work [And from a later message: -- dc] debugging of applications is also possible about the codesign between using the GNU debugger gdb. MaRTE Ada/VHDL? The grammar has been updated to support OS is available under the GNU General AST (Abstract Syntax Tree) construction. http://alpha.fdu.edu/~levine/wong/ Public License. From: Oliver Kellogg From: [email protected] (Volkert) In this version, new functionality has been Date: Tue, 22 Apr 2003 23:08:30 +0200 Date: 2 Apr 2003 07:21:53 -0800 added: Subject: ANTLR Ada grammar update Subject: Re: Does anyone know the benefit Newsgroups: comp.lang.ada New POSIX functionality included: of codesign using ada and vhdl! pthread_mutex_timedlock() function, Newsgroups: comp.lang.ada The ANTLR Ada grammar at clock_nanosleep() function, Monotonic http://www.antlr.org/grammars/ada has May be "OOCOSIM" is interesting for clock. I/O Drivers framework. been updated. The ANTLR Ada support you. It is a HW/SW codesign research Application-defined scheduling interface now includes an Ada tree super grammar. project focusing on Co-Simulation. It uses improved: Accept and reject threads, Ada/OO-VHDL and as a Top-Level The tree design has undergone major Accept and reject mutexes. Port to Design Method HRT-Hood/RT-UML. change, but I believe that it is actually gnat3.14p (gnat3.13p is no longer used). becoming usable. The leaf nodes Boot across Ethernet using "dhcpd" and Have a look at http://eis.informatik.uni- produced by the tree generator adhere to Etherboot Other minor improvements and oldenburg.de/en/research/projects/oocosi the RM Annex P grammar as closely as bug fixes. m/index.php sensible. The first real application, Ada For more extensive documentation and From: Tony language support for Kdevelop, is downloading please visit the following currently underway. I am doing some work about co-design URL: http://marte.unican.es/ [...] issues about Ada and VHDL. I found one [And from a later message: -- dc] Mario Aldea Rivas, Grupo Computadores paper about my research. It is 'Reasoning The Ada grammar now has its cvs head y Tiempo Real, Dpto. De Electronica y About Ada'95 As System Level at: http://webcvs.kde.org/cgi- Computadores, Facultad de Ciencias, Description Language'. It is written by bin/cvsweb.cgi/kdevelop/parts/adasupport Universidad de Cantabria, Santander, Yvonne Fritzsch, Wolfgang Ecker, Jörg Spain. Böttger. OMG CORBA 3.0 IDL [Available online at Parser Booting an Ada Main http://www3.cti.ac.at/ecsi/ecsi/Doc/Other Program Doc/SLDL/PDF/fritzsch.pdf. -- dc] From: Alexis Muller From: sk Ada-UML Profile Date: Fri, 11 Apr 2003 10:00:52 +0200 Date: Wed, 26 Feb 2003 17:26:47 -0600 Subject: IDL3 Parser Subject: Re: flat binary output with gnatlink From: Simon Wright Newsgroups: comp.lang.ada Newsgroups: comp.lang.ada Date: 13 Feb 2003 21:08:44 +0000 Subject: Re: UML to Ada Mapping

Ada User Journal Volume 24, Number 2, June 2003 80 Ada-related Products

Newsgroups: comp.lang.ada need Rational Rose at the front end, in proven quite useful when I've had the At the last Ada UK conference, the team principle I could interface to eg UML pleasure of using this tool. decided to work on a profile. [...] The Studio but there are project deadlines!) at Marc A. Criley, Quadrus Corporation, contact point is http://www.the-training- http://www.pushface.org/coldframe/ www.quadruscorp.com centre.co.uk/JRA/JRA%20News%20Arch [See also "ColdFrame - Ada Framework From: [email protected] (Rolf Ebert) ive%203.html Code Generator for UML Tools" in AUJ Date: 14 Feb 2003 04:50:46 -0800 From: Jean-Pierre Rosen 23-3 (Sep 2002), pp.138-139. -- dc] Subject: Re: Reverse engineering of Ada The idea is that the UML model is a set of code Date: Fri, 14 Feb 2003 09:50:08 +0100 formal domain (subject matter) analysis Newsgroups: comp.lang.ada Subject: Re: UML to Ada Mapping models. There's little need to model It is certainly not freeware/shareware, but Newsgroups: comp.lang.ada framework concepts (such as where all the reverse engineering capability of I- Note that there is a paper on Ada-UML the current instances of a particular class Logix's Rhapsody in Ada profile at the upcoming Ada-Europe are kept) because the generated code will (http://www.ilogix.com/products/rhapsod conference. (PLUG, PLUG :-) do that. Your Ada code appears in y/rhap_inada.cfm) is great. separate subprograms and task bodies. From: John Robinson You are not allowed to modify generated On Design Approaches and Date: Thu, 20 Feb 2003 21:33:53 -0000 specs or package bodies! (and people UML Organization: John Robinson And don't). If you are a really good Ada person Associates Ltd you get to work on the framework (aka From: Peter Amey Newsgroups: comp.lang.ada modelling, writing code to complete the Date: Mon, 17 Feb 2003 08:40:18 -0000 models, testing it (and engaged in lots and Subject: Re: Designing for Ada 95? The Ada UK User Group have set up a lots of reviews). If you need to change the To: [email protected] working group to look at a UML Ada structure of the code (because you need Profile. This is (currently) unrelated to the an additional operation on a class, say) [About UML: -- dc] work being presented at Ada-Europe, you change the model, regenerate the > My point really was just that a common although links are being established framework, and carry on. A major reason nomenclature is better than everyone between the groups. The initial meeting of for this is that it's very hard to relate having their only personal drawing the Ada UK working group is being held random changes in code to what they methodology - it saves a lot of time if on Monday 24th February 2003, and has might have meant in the model -- that's we are all speaking the same language. attracted some 17 attendees. easier if your generated code is 1..1 with [And:] At least with a common set of Anyone interested in participating in this the model, of course. diagramming techniques and some group, or keeping abreast of We find that in application domains we semantic background you have developments, should contact myself in have about 20% hand-written code (ie, somewhere to start from. the first instance: separate bodies), whereas in i/o domains This is fine but does not represent the [email protected] it's the other way round. current situation. Currently we have a Hopefully the group will also be From: [email protected] "common set of diagramming techniques" presenting regularly at the two annual but we do not have much (if any) Ada UK User Group conferences. We (Martin Dowie) Date: 24 Mar 2003 09:54:44 -0800 "semantic background" and, also encourage anyone with similar unfortunately, many people seem to interests and activities to consider Subject: Re: case tools Newsgroups: comp.lang.ada regard UML and design to be "finished" submitting material to these conferences. rather than "somewhere to start from". > UML is not well enough defined to Information on the Ada UK User Group, The problem at present, especially when the conferences and other user group fully generate code; you have to add some architecture/design information. targeting Ada, is that UML, as described activities can be found at in books and as implemented in current www.AdaUK.org.uk. There is a move within the AdaUK and tools, drives you down a path of led by Artisan (www.artisansw.com) to come programming by class extension which Generating Code from UML up with standard UML <-> Ada may not be appropriate for all problem Models mappings, perhaps analogous to the domains. It compounds this problem by mapping between IDL and Ada. not providing standard support for those From: Simon Wright I have looked at their UML -> Ada95 areas where Ada is _more_ expressive generator and it has matured nicely over and capable of _better_ abstraction than Date: Thu, 13 Feb 2003 20:28:49 GMT the last year. Shame it wasn't available a the design notation. Ada's packages and Subject: Re: Designing for Ada 95? year ago, or I wouldn't be now using the private types for example. I have even To: [email protected] UML -> C tool ;-) heard UML tool vendors describing Ada > I'm wondering if there's a preferred as "deficient" because it does not match design template for Ada? UML is pretty Reverse Engineering Tools UML's model of the world properly. much for OO designs and Ada 95 isn't The end result is that real design skills are exactly OO. From: Marc A. Criley being supplanted by knowledge of particular tools and mechanical ways of Not sure it will help all that much, but my Date: Fri, 14 Feb 2003 06:28:30 -0600 view is summarized at using them. In the end we reach the Subject: Re: Designing for Ada 95? farcical levels of Shlaer Mellor where the http://www.pushface.org/coldframe/use- To: [email protected] cases.html. very existence of a software design While it's not cheap [...] Scientific process is denied (SM alleges that once [The URL is for a document entitled "Use Toolwork's "Understand for Ada" you have done the OO analysis, you just Cases for Code Generation". (http://www.scitools.com/uada.html) does code the objects and tip them in a box and >From another message: -- dc] an admirable job of reverse engineering stir - no software design is required at all). My project is using my open-source code code and producing lots of diagrams. At Praxis we have a put a lot of effort into generator ColdFrame (at the moment you While not UML, they have nonetheless a design approach for SPARK (and hence

Volume 24, Number 2, June 2003 Ada User Journal Ada-related Tools 81 for Ada) called INFORMED; this places implementation exercise (in the software Date: 11 Feb 2003 20:31:26 +0000 great emphasis on minimising coupling domain) and that it is the proper interest Subject: Re: AUnit test framework between units by reducing information of the software domain to support Newsgroups: comp.lang.ada (which is measured by the SPARK (automated) translation from problem to My project is using AUnit. 15 engineers. I Examiner) to a functional minimum. The software. think we've found no problems with method used to minimise information And the translation depends heavily on AUnit (there are some issues with flow is careful choice of where "state" is the constructs in the target software programming standard conformance, located; e.g. an instance of an abstract domain. My present project is a memory- warnings with -gnaty). data type as a local variable of a based VxWorks system with very little subprogram creates less information flow persistence. The design of the software Graphical Tools for Ada than use of a library-level abstract state architecture is quite different from what Package Dependencies machine. We have found it interesting would be appropriate if we had a how hard it is to get these concepts across distributed real-time database (as a From: Jeffrey Creem to UML users and tool vendors who tend neighbour project has). But the contention to see location of state as an of the executable UML guys is that the Date: Sat, 22 Feb 2003 13:16:34 GMT implementation detail where for us it is a application model should not change just prime design driver! Subject: Re: Ada project dependency tree because of this; it's the translation engine Newsgroups: comp.lang.ada PS. I wonder if there is any connection that changes. between the exporting of software > Is there an application which generates engineering jobs to India etc. and this The Ultimate SI Units a dependency tree from a set of Ada trend to see design as a mechanical, tool- Cracker files? driven process? Real insight is rather GPS was just recently released to harder to export. From: Christoph Grein supported customers. [...] From: Wojtek Narczynski http://www.gnat.com/texts/products/gps_s Date: Wed, 5 Feb 2003 08:03:15 +0100 et.htm. I know of no other free graphical Date: Mon, 17 Feb 2003 11:47:32 +0100 Subject: SI Units Checked and Unchecked dependency tree tool. Organization: Power Media Sp. z o.o. Newsgroups: comp.lang.ada Most vendors provide something like Subject: Re: Designing for Ada 95? The ultimate SI Units checker has been what you want with their tools. (Seem to To: [email protected] updated. It now handles reading of units recall Green Hills Ada doing this, and I am from "etc." so I may lack proper like reading of enumeration values. This Rational Ada Analyzer.) Also take a look "insight", but I'd rather blame the only affects file reading operations for at Understand for Ada (free (as in beer, (western) "Loose weight without illegal items, i.e. those which raise not speech)) demo available excersises" => "Generate some software Data_Error. Hours, minutes and liters http://www.scitools.com/uada.html. from your UML charts in seconds" wave. have been added as units. From: [email protected] (Peter Nobody is telling (especially young / [See also same topic in AUJ 23-4 (Dec Richtmyer) new) people that software engineering is a 2002), p.201. -- dc] Date: 22 Feb 2003 08:35:57 -0800 hard discipline, despite the ease to get Subject: Re: Ada project dependency tree started. [...] Unit checking can be switched off in Newsgroups: comp.lang.ada production code by just changing a few From: Simon Wright lines of code. See http://home.T- > By dependency tree I meant a graphical Online.de/home/Christ- representation of package dependencies Date: Mon, 17 Feb 2003 20:09:59 GMT Usch.Grein/Ada/SI.html [...] in a project. Subject: Re: Designing for Ada 95? Understand for Ada can give you this and To: [email protected] AUnit Test Framework alot more. It is not free. But they have a I think UML's area of application (I was Experiences very liberal policy for giving out going to write "strength") is in modelling evaluation licenses. IMHO, most Ada problem domains. I completely agree that From: Stephen Leake projects would save much money and it doesn't handle modelling Ada time (especially large re-use projects) if implementations -- but I would not want Date: 11 Feb 2003 12:04:59 -0500 they bought this tool. It has a very easy to to ask it to. And I wouldn't want to model Organization: NASA Goddard Space Flight use GUI interface, and runs on lots of Java or C++ implementations either. Center (skates.gsfc.nasa.gov) machines. [URL higher. -- dc] What I mean by that is, often you will Subject: Re: AUnit test framework find a tool where if you want something Newsgroups: comp.lang.ada Com_Port - Serial in the code it has to be in the model; > does anyone have experience with the Communication which is why you get all this elaborative AUnit test framework for Ada95? rubbish, where the analysis model is From: Jerry Petrey Yes. See crufted up with all sorts of inessential http://savannah.nongnu.org/projects/grace implementation detail. What you need is a Date: Fri, 07 Mar 2003 08:17:37 -0700 tool which will apply the software [See also "ACT - AUnit 1.01 - xUnit Test Organization: Raytheon Company architect's rules to the analysis model and Framework for Ada" in AUJ 23-1 (Mar Subject: Re: rs232 communication generate the support framework required. 2002), p.19. -- dc] Newsgroups: comp.lang.ada I dare say this ["no software design is The tests for Grace use Aunit. For now, > My OS is windows 2000 I work with required at all"] is what used to be sold (it you have to get them from CVS (possible gnat 3.15p and adagide certainly sounds like what some of the via a web browser). One of these days I'll I have found Stephen Leake's com_port practitioners were selling) and it is clearly do a tarball release. Ping me if you really packages very useful in that environment. tosh. And it is _not_ what you would hear want that :). There is pretty good You can find them at: from executable UML practitioners documentation with the package. But a [http://www.toadmail.com/~ada_wizard/ - nowadays. What they will tell you is that real example always helps. - dc] the modelling exercise (in the problem From: Simon Wright domain) is quite separate from the

Ada User Journal Volume 24, Number 2, June 2003 82 Ada-related Products

Jerry Petrey, Senior Principal Systems > Does somebody have Ada source code software in a uniquely comfortable Engineer, Raytheon Missile Systems for a spreadsheet (Excel like or much environment. From: Stephen Leake simpler)? GPS is bundled with GNAT Pro and is The following site talks about a available on the following host platforms: Date: 07 Mar 2003 10:45:06 -0500 Spreadsheet application that might sparc-solaris, x86-linux, x86-windows. Organization: NASA Goddard Space Flight interest you. It's in English, but contains We invite you to visit our website at Center the source code of a spreadsheet in Ada. http://www.act-europe.fr or Subject: Re: rs232 communication http://www.it.bton.ac.uk/staff/je/adacraft/ http://www.gnat.com where you will find Newsgroups: comp.lang.ada ch18.htm a variety of informative texts and videos [http://www.toadmail.com/~ada_wizard/ - introducing GPS and highlighting its key - dc] features. [...] Get com_ports.zip (yes, this is so old I Ada-related Products [See also "ACT announces GPS" in AUJ wasn't using .tar.gz then :). ACT - GnatPRO-Announce 23-2 (Jun 2002), pp.74-75. -- dc] Accessing PC Ports Mailinglist ACT - GNAT Pro 3.16a From: Stéphane Richard From: Cyrille Comar europe.fr> http://www.gnat.com/texts/news/news_gn Date: Mon, 24 Mar 2003 14:37:43 GMT Date: Mon, 24 Feb 2003 16:47:35 +0100 at316.htm Subject: Re: Ports Subject: Creation of the gnatpro-announce Date: Mon, 10 Mar 2003 19:54:36 Newsgroups: fr.comp.lang.ada mailinglist Subject: ACT press releases [Extracts translated from French. -- dc] To: gnatpro-contacts:@cs.kuleuven.ac.be; Ada Core Technologies announces the http://adasl.sourceforge.net contains ASL This message is to let you know that we release of GNAT Pro 3.16a (Ada Structured Library) which has are creating a new mailing list which is We are happy to announce the immediate generic extensions for communication designed to keep you informed of major availability of the GNAT 3.16a release. with ports on PCs. new releases, product road maps, and GNAT Pro 3.16a is the candidate release other events relevant to the GNAT Pro http://www.usafa.af.mil/dfcs/bios/mcc_ht of the GNAT 3.16 technology. It provides technology created and maintained by a number of enhancements to the 3.15 ml/ada_stuff.html also contains source Ada Core Technologies and ACT Europe. code to access serial (serial.zip) and technology [...] and also corrects reported parallel ports (parralel.zip). You just have If you are interested in joining this list problems [...]. to check out the site. (Note that some you can send an email to GPS, the GNAT Programming System environment, nevertheless this should be with a message body containing exactly integrated development environment useful to learn...) the word "subscribe" (simply using the (IDE), on the following host platforms: 'Reply' functionality of your email And concerning Linux/UNIX you can sparc-solaris, x86-linux, x86-windows. program should be sufficient to write to [...] take a look at that address). You can also subscribe http://home.attbi.com/~minyard/. Corey online using the web interface available at [See also "ACT announces GNAT 3.15a" has a POSIX compatible implementation. http://lists.act- in AUJ 23-2 (Jun 2002), p.75. -- dc] [...] europe.fr/mailman/listinfo/gnatpro- announce [...] ACT - GNAT Pro 5.00a Logging API ACT - GNAT Programming URL: From: [email protected] (Chris M. http://www.gnat.com/texts/news/news_gn Moore) System IDE (GPS) at500.htm Date: Wed, 19 Mar 2003 21:35:48 Date: Thu, 27 Mar 2003 15:00:52 From: Cyrille Comar Subject: Re: Ada logging utilities? Date: Tue, 4 Mar 2003 18:39:44 +0100 Ada Core Technologies announces the Newsgroups: comp.lang.ada Subject: Announcing the release of the release of GNAT Pro 5.00a > Does anyone know if there exists any GNAT Programming System IDE We are happy to announce the release of good Ada library for logging (in the To: [email protected] GNAT Pro 5.00a. 5.00a is the first GNAT same fashion as the Java Logging). Announcing the release of the GNAT Pro release based on the new generation I have a logging API. It's not a clone of Programming System IDE of GCC backend (GCC 3.2.3). In all other log4j which is designed for performance. We are pleased to announce the release of respects, 5.00a is equivalent to the Mine is designed for flexibility (a directed the GNAT Programming System, GPS, recently announced 3.16a release (based acyclic graph of logging elements). the Ada-aware and multi-language IDE on GCC 2.8.1). Unfortunately it's alpha software at the that streamlines the interaction between The GCC 3 backend implements several moment, although it shouldn't take long to developers and their software. GPS new optimizations improving execution finish a minimal working version. integrates the GNAT Pro tool set within a performance. It offers a new Zero-Cost http://sourceforge.net/projects/ada-gerbil/ single development environment that Exception mechanism (currently available makes visual sense of code. on alpha-openvms, pa-hpux, sparc- Spreadsheet in Ada With its intuitive interface GPS is easy to solaris) that should boost the performance use, simplifying source navigation and of applications using exception handlers From: Stephane Richard extensively. highlighting the fundamental ideas in the This release is the first step in the GNAT Date: Mon, 28 Apr 2003 18:04:39 program. Designed by programmers for Pro migration to the GCC 3 technology. Subject: Re: Tableur En Ada programmers, GPS is a new kind of IDE Other major ports will transition to GCC Newsgroups: fr.comp.lang.ada that offers the experience of designing 3 in the forthcoming GNAT 5.xx releases. [Extracts translated from French. -- dc] New developments & ports will be

Volume 24, Number 2, June 2003 Ada User Journal Ada-related Products 83 performed on this new branch of our Information, 1-858-457-2700, projects. By creating a Platform technology. The GNAT Pro 3.xx [email protected]. [...] Independent Model (PIM), the level of technology will continue to evolve in abstraction in the models is increased and parallel during the transition period. [...] Aonix - ObjectAda for the dependency on the target platform is Contact [email protected] Windows 7.2.2 Patch Update reduced. The PIM is then transferred into the target environment. Aonix - Grows Into Two From: owner-intel-objectada Aonix - an active OMG member since New Companies Date: Thu, 20 Mar 2003 08:53:15 -0800 1992 - has been promoting the Subject: Intel-OA: New ObjectAda update transformation of UML models to the URL: (1102V722-U8) target environment for years. Aonix http://www.aonix.com/pr_02.28.03.html To: [email protected] provides a powerful transformation engine for UML models with StP's San Diego, California, February 28, 2003 A new patch update to ObjectAda for Windows 7.2.2 (1102) is now available. Architecture Component Development Aonix announces the growth of the The update download file and the Release (StP/ACD), already proven in many former Aonix Corporation into two new Notes are available at projects. companies. http://www.aonix.com/content/support/ad StP offers special UML profiles to The entire former Critical Development a/patches/objectada.html generate C, C++, Ada 95, Java, CORBA, Solutions (CDS) division with all the Please see the Release Notes for more COM, and EJB. Further industry-specific existing products is now a new company information. solutions are available for auto- keeping the name of Aonix. This manufacture, real-time systems and company will continue to provide Aonix Ada Support, safety-critical applications. This makes software development solutions for [email protected], 1-800-972-6649 StP suitable for a wide range of software mission-critical and safety-critical From: Steve Hancher projects and systems engineering. [...] applications and will focus on the Space, Press Contacts: [see above -- dc] Avionics, Defense, Transportation and Date: Fri, 11 Apr 2003 06:39:36 -0700 Industrial markets. The former Aonix Subject: RE: Intel-OA: Problem with calling DDC-I - TADS-1750A Divisions, eBIS and Select product Ada DLL from MS C++ 6.0 divisions, remain intact and have been To: [email protected] Support for Windows renamed Select Business Solutions, Inc. OA 7.2.1 corrected 125 problems, Environments Added and will focus directly on the commercial implemented a new code generation URL: IT market sector. The growth into two technology providing two levels of http://www.ddci.com/news_vol4num2.shtml companies allows each new company to optimization, and upgraded the Intel-OA Subject: Embedded News from DDC-I focus on their respective market areas. product to the current ACATS (Ada The former CDS general manager, Conformity Assessment Test Suite) level. [...] February 2003 DDC-I Online News Nicolas Hadjidakis and the CFO, OA 7.2.2 corrected another 36 problems. DDC-I's Trusted TADS-1750A Christophe Faurere, led a group of brand The latest OA 7.2.2 cumulative patch Development System Now Offers Full new investors who purchased the new corrects an additional 29 problems. Good Support for Windows NT, 2000, and XP Aonix. The faith that Aonix employees things take time and are usually Host Environments have in their company and the fact that accomplished incrementally. Aonix Phoenix, AZ and Lyngby, Denmark the CDS division bucked industry trends remains committed to providing the Ada by generating significant revenue growth February 18, 2003. DDC-I today community with quality Ada products and announces the addition of support for in 2002 attracted the new investors. New appreciates your patience. additional venture capital funding is Windows based development platforms expected to specifically grow the Aonix - Software through for the TADS Ada Development System company around existing products. Aonix targeting the 1750A (TADS-1750A) current products are: Software Through Pictures 8.3.1 for Linux product family. In addition to Windows Pictures (StP), ObjectAda, Raven, Available NT, 2000, and XP hosting capabilities, TeleUSE, and high performance Java TADS-1750A will continue to support the based products. URL: original Sun SPARC, and DEC http://www.aonix.com/pr_03.31.03.html VAX/VMS host development "We are very pleased to have the environments. opportunity to build upon the fantastic Software through Pictures (StP) Version foundations of the CDS division." says 8.3.1 for Linux now Available "Updating TADS-1750A to support the latest versions of Windows is a direct Nicolas Hadjidakis, CEO and President of San Diego, California, March 31, 2003 the new Aonix. " We see a growing response to the needs of our customers, demand for well engineered 'high- Aonix, a leading provider of software who continue to migrate safety-critical integrity' software for mission-critical design tools, development environments, software development for a variety of applications in all the markets we are and safety critical solutions, announces projects to these increasingly popular targeting. the immediate availability of Software platforms," explains Richard Frost, DDC- through Pictures (StP), version 8.3.1 for I Senior Software Engineer and TADS The new Aonix is retaining the entire Linux. Windows Rehost Project Manager. CDS management team, as well as its staff, development and support centers for The new Linux version of the well- TADS-1750A offers a mature solution, all CDS product lines. All Aonix offices established modeling tool, StP, completes combining a highly optimising compiler in the US, France, Germany, Sweden, and Aonix' Unix offerings, strengthening StP's with selective linking and modular run- the UK remain in their current locations position as a multi-platform modeling time systems to generate the most with the same contact information. tool. Aonix also continues to move compact code available. With classical consistently toward UML and Model optimizations and performance benefits Press Contacts: Greg Gicca (US), 1-603- Driven Architecture (MDA). MDA is the specific to the Mil-STD-1750A processor 429-3415, [email protected]; Jacques newest initiative of the OMG architecture, Ada 83 specific compiler Brygier (Europe), +33 1 41 48 11 05, (www.omg.org/mda), which will soon be optimizations include data packing, [email protected]; Additional Product the standard approach for software

Ada User Journal Volume 24, Number 2, June 2003 84 Ada-related Products constraint and overflow check elimination development environment they depend on Date: Mon, 10 Mar 2003 21:12:07 +0500 and static aggregate initialization. is top priority," concludes Blum. Organization: Extreme Code Software "TADS remains a valuable development (http://ex-code.com) environment for real-time embedded DDC-I - TADS-i960 Support Subject: UniParser 0.1 released. system developers in aerospace, avionics, for Windows Environments Newsgroups: comp.lang.ada defense, and many other safety-critical Added UniParser 0.1alpha released by Extreme applications where failure is simply not an Code Software. Alpha - unknown bugs option. We are dedicated to providing our URL: are possible, API may change. clients with quality tools as well as http://www.ddci.com/news_vol4num3.shtml See http://ex-code.com/uniparser/. Also customizing solutions as needed for their Date: Tue, 3 Jun 2003 14:01:01 +0200 (devel page) individual requirements," Frost concludes. Subject: Embedded News from DDC-I http://sf.net/projects/uniparser/. [...] [...] March/April 2003 DDC-I Online It is a very flexible, powerful and DDC-I - Windows Migration News Package for TADS-1750A extensible Ada library for creating DDC-I's Mature TADS-i960 Software grammar parsers and lexers. Works not Customers Development System Offers Full Support only with streams of ASCII characters but for Windows NT, 2000, and XP Host with any data streams (e.g. Unicode). See URL: Environments http://sf.net/projects/uniparser/ for more http://www.ddci.com/news_vol4num2.shtml benefits. API documentation included. Subject: Embedded News from DDC-I Phoenix, Arizona & Lyngby, Denmark March 31, 2003. DDC-I today announces Released under both GPL-2 and a [...] February 2003 DDC-I Online News the addition of support for Windows commercial license. There is also a DDC-I Offers TADS-1750A Customers based development platforms for the tutorial (also as the library itself Simple, Cost-Effective Windows TADS Ada Development System preliminary, tell me if you don't Migration Package targeting the Intel i960 product family. In understand something in the tutorial please), see the Web site for conditions to Phoenix, AZ and Lyngby, Denmark -- addition to Windows NT, 2000, and XP get the tutorial. If you buy the commercial February 21, 2003 -- DDC-I today host capabilities, TADS-i960 continues to version among other benefits you receive announced the availability of a new support the original Sun SPARC, and gratis updates (of both the library and Windows (NT/2000/XP) migration DEC VAX/VMS host development tutorial) for 4 years and technical support. package for existing TADS-1750A users. environments. Designed to streamline the transition from "We updated TADS-i960 to enable Please test it and put info about it on the VAX or UNIX-hosted development hosting on the latest versions of Ada Web sites. I'm also interested in receiving parser examples (written with systems, this limited-time package is fully Windows to meet the needs of many of UniParser) and whether it is enough fast customizable, offering current customers our customers, who are steadily migrating for you. an affordable migration path to the most safety-critical real-time software popular PC-based network and enterprise development to these increasingly popular Deficiency: the source code of parser is computing platform. enterprise network platforms," explains bigger than for most other parser toolkits. "The TADS for Windows program is Harold "Bud" Blum, DDC-I Senior Maybe will be created a metalanguage affordable and flexible, and allows Software Engineer and Product Champion over Ada to get over this problem. I like organizations to dictate exactly what tools for the TADS-i960 product line. to hear any comments (in c.l.a or by e- mail). and support they need, instead of handing TADS-i960 offers a mature solution with them a rigid list of options," explains Bud Ada-specific optimisations like constraint From: [email protected] (Victor Porton) Blum, DDC-I Product Champion for the and overflow check elimination, Date: Fri, 14 Mar 2003 09:21:40 +0500 TADS product line. parameter binding, data packing, and Organization: Extreme Code Software With DDC-I's guidance, customers define static aggregates initialization. With (http://ex-code.com) package parameters to create a least-cost target-specific and classical optimizations Subject: UniParser 0.21 - ready, changed migration path which includes all tuned for the i960 architecture, five Newsgroups: comp.lang.ada necessary license transfers and keys to optimization levels permit the proper UniParser 0.21alpha released. It is the replace current TADS licenses. Software optimisation strategy at each point in the first official release. Some new features support from the current license development cycle. Multiple process added. agreement also carries over, to keep management facilities and on-chip recurring costs level, while the customer memory management help produce the Because of unexpectedly high interest to has complete freedom to select the lowest possible run-time memory usage UniParser there are changes. Firstly, more number of seats they want to rehost and on an i960. features are planned for development as well as more caution to make it more whether to upgrade their software "For real-time embedded system versions during the migration. consistent, stable, and reliable. Added developers in aerospace, avionics, option to buy UniParser on CD. The According to Blum, the package defense, and any other safety-critical above also means increased price. Also combines two days of on-site consulting industry where application failure is not changed licensing policy. [...] These at no additional charge to assist with an option, TADS is a valuable changes are because of unexpected high rescripting, memory and segment set up, development environment, and DDC-I interest. From now the policy will be tool adaption, related ethernet work and remains committed to ensuring our more stable. board support upgrades. A final project customers have quality tools and report with detailed recommendations is customized solutions to meet their You can buy UniParser now from also included. specific development requirements," http://www.ex-code.com/uniparser/ . concludes Blum. Buying it you will have the right of gratis "Our goal is to help our customers get the updates during 4 years. best from their safety-critical software development tools, and when it comes to Extreme Code Software - [And from a later message: -- dc] managing a platform migration, minimal UniParser Library I just as encountered so high interest to disruption for the programmers and the UniParser realized that I may be flooded From: [email protected] (Victor Porton) by support requests etc. I was just forced

Volume 24, Number 2, June 2003 Ada User Journal Ada-related Products 85 to change the rules. Again I was forced to Collins Avionics System for the Sikorsky Ken O. Burtch, PegaSoft, Jordan Station, make changes. And very probably rules S-92 -- Ada is evidently very much part of ON, Canada will be some day changed again to more these flight-critical applications. From: Ken O. Burtch free. By the way I also write really free "They're all major programs for which the software 100% independent of business. developers certainly had a choice and for Date: Tue, 25 Feb 2003 13:37:06 -0500 And one more time: for really free non- a variety of reasons chose Ada," Smith Subject: BUSH on SourceForge commercial software UniParser is said. Newsgroups: comp.lang.ada REALLY also 100% gratis, just request it (see the site). [...] Boeing's B-1B Conventional Mission Someone (not me) has set up a BUSH Upgrade Program (CMUP) consists of project on SourceForge. You can From: [email protected] (Victor Porton) adding a family of 1760 smart weapons to download the sources using CVS and Date: Sat, 15 Mar 2003 04:29:40 +0500 the Air Force fighter's arsenal. Green submit changes and bug fixes. The project Organization: Extreme Code Software Hills' INTEGRITY will be used to link is (http://ex-code.com) enhance the B-1B's onboard avionics http://sourceforge.net/projects/bush/. Subject: UniParser 0.22 - now LGPL :-)) flight system and take advantage of Many hands make light work. Newsgroups: comp.lang.ada CMUP's smart weapons and multiple- OK, now UniParser (http://ex- target capabilities. PolySpace Technologies - code.com/uniparser/) is Open Source Boeing's C-17 Globemaster III for the PolySpace Developer Edition (LGPL-2.1). Customers (?) was correct USAF will use INTEGRITY-178B as about licensing, be glad now. I look like a well as GMART (Green Hills Minimal URL: http://www.dedicated- comic, but the product is serious. (It is Ada Run-Time) and GSTART (Green indeed commercial, online selling with systems.com/VPR/layout/display/pr.asp? Hills Safe-Tasking Ada Run-Time PRID=4292 both download and CD should work System) to host the jet's navigation, now.) Well, the tutorial is not freeware. mission planning, and display functions. PolySpace Technologies releases Now 0.22. The versions 0.21 and 0.22 Boeing is also using Green Hills PolySpace Developer Edition differ mainly by licensing. [...] Software's AdaMULTI Integrated Release Date: Friday, April 11, 2003 Development Environment (IDE) and G- Summary: PolySpace Technologies, Green Hills - Ada Tools Cover code coverage tools to develop worldwide leader in the static verification Lead Green Hills into DO-178B-compliant Ada application of embedded software, announces the Profitability software for the jet transport plane. release of PolySpace Developer Edition, Rockwell Collins is using a similar the latest solution from PolySpace, that URL: toolset, the INTEGRITY-178B RTOS and brings the power of unparalleled Abstract http://www.adaic.org/news/ghsprofit.html GSTART Ada run-time environment, for Interpretation techniques to the the Sikorsky S-92 helicopter's new developer's desktop for finding bugs Ada Tools Lead Green Hills Through highly-integrated avionics package. The without testing. Two Profitable Quarters new software will run the Avionics With a fully automatic setup, PolySpace San Francisco (April 23, 2003) Embedded Management and Display System, which Developer Edition is the first solution that Systems Conference – Ada programming incorporates the most advanced avionics detects runtime errors at compile time, tools sales to defense and aerospace are technology available today for rotorcraft. without writing or executing any test. Its contributing heavily to Green Hills See http://www.adaic.org for more on unique ability to detect errors at the Software's increasing revenues and Green Hills and on Ada. Or write to Ann earliest stage of software development sharply rising profits, according to Brandon, Communications Director, Ada process avoids later discovery of Christopher Smith, Vice President of Resource Association, [email protected]. annoying software failures during test Marketing. campaigns, after code freeze or detected "We're really out of the doldrums," Smith PegaSoft - BUSH AdaScript by end users. It is a must-have solution said in a recent telephone interview. The Business Shell for developers overwhelmed by company reported a profitable last quarter unproductive debugging tasks and who of 2002 and sees the trend continuing in From: Ken O. Burtch are looking for substantial test costs 2003. "We're in a period of growth and reduction and high source code reliability hiring people again. We think the Date: Fri, 14 Feb 2003 20:22:04 -0500 improvement. With PolySpace Developer recession we've been suffering through is Subject: ANN: BUSH 0.9.2 released Edition, bugs that used to require hours - over." Newsgroups: comp.lang.ada or even days - of debug may now be fixed Smith said the growth in fourth quarter in a matter of minutes thanks to the BUSH 0.9.2 has been released. It is precise diagnostics given by PolySpace. defense and aerospace business was due available at the PegaSoft website: in large part to business involving selling http://www.pegasoft.ca/bush.html "The release of PolySpace Developer licenses to Ada-based development tools. Edition will allow us to address the needs BUSH, the AdaScript Business Shell, is a of thousands of developers of embedded While Green Hills does not look under the Linux shell for designing secure, reliable hood of its customers' software systems, an activity sector - and market - shell scripts that can be later compiled as that grows extremely quickly. PolySpace development projects to see which a fast executable programs. BUSH comes languages they are using, the company Developer Edition is definitively a must- with 10 built-in packages including have tool to deal with the increase in does have an excellent way of telling numerics, string processing, and whether or not the are choosing Ada. applications complexity and an ever measurement conversions. (It plays shortened time-to-market." Said Daniel Green Hills sells a version of its debugger WAV, AU and audio CD's, too.) environment called Ada-Multi which Pilaud, CEO of PolySpace Technologies. customers order if they are using more We're looking for people to help port PolySpace Technologies will be than C and C++. BUSH to UNIX. showcasting its latest tools at the In three major avionics design wins for [See also "PegaSoft - BUSH Business Embedded Systems Conference in San INTEGRITY that Green Hills has Shell" in AUJ 23-4 (Dec 2002), pp.202- Francisco, California, April 23-25, announced recently -- Boeing's C-17 jet 203. -- dc] Software Technology Conference, Salt planes, the Boeing B1B, and the Rockwell Lake City, Utah, April 29-May 1, and

Ada User Journal Volume 24, Number 2, June 2003 86 Ada-related Products

Embedded Systems Show in London, UK, regulatory approval process has been RRSoftware - Claw May 14-15. completed. Development PolySpace Developer Edition is available Rational, with customers in 89 countries on Windows, Linux and Unix Solaris and more than 3,400 employees, estimates From: Randy Brukardt platforms and analyses codes written in C that more than 600,000 software and Ada development languages. developers use its software tools. Rational Date: Fri, 21 Mar 2003 14:55:33 -0600 About PolySpace. In the four years will be integrated into IBM as the fifth Subject: Re: gwindows help please following its creation, PolySpace has brand of IBM Software Group, a $13 Newsgroups: comp.lang.ada confirmed its leadership in static billion business in 2002. EquiServe Trust The Introductory version of Claw is verification of embedded software Company will be the paying agent for the licensed under the GMGPL. That isn't applications. Relying on a highly Rational transaction. [...] reflected in the files, but it's true innovative mathematical approach, Rational - Apex Embedded (Adapower has a page devoted to that). PolySpace provides the first software It's true we haven't released a new free products capable of performing an for Tornado 4.2.0 for Sun version in quite a while, but certainly exhaustive verification of a program's Solaris to MIPS development is continuing. Recently, we source code and detecting runtime errors been working mor on Internet stuff at compilation time. In 2002, PolySpace From: Eddie Glenn (HTTP, FTP) than GUI, but there's quite a totalled revenues of over 3 million euros Date: Wed, 19 Feb 2003 14:29:23 -0800 bit of new GUI stuff in the pipeline. A having signed some high-ranking Subject: Rational Apex Embedded for new free version should appear in a few companies in the avionics, aerospace, Tornado 4.2.0 for Sun Solaris to MIPS is months, but I can use a line from RKBD defence, railways, automotive and energy available by FTP here: it's not a priority over supporting the industrial sectors. To: [email protected] paying customers. For further information: http://www.polyspace.com. Contact: Eric [In all Rational URLs below, substitute Top Graph'X - XInAda Pierrel, +33 (0)4 56 38 16 04, by /releases/sol, by Library to be Offered under [email protected]. /documents/unix/VxWorks, by /apex_cross/, and GPL Rational - IBM Completes by ftp://ftp.rational.com/public/ -- dc] From: Jean-Claude Mahieux Acquisition of Rational Product: Rational Apex Embedded for Software Tornado. Date: Fri, 7 Feb 2003 17:50:36 +0100 Version: 4.2.0. Organization: Top Graph'X URL: http://www- Platform: Sun Solaris to MIPS. Subject: Re: X11 binding with FSF version 3.ibm.com/software/swnews/swnews.nsf/n/m URL: /mips/vw/4.2.0. of gnat maa5jrkec?OpenDocument&Site=software This is the Generally Available (GA) Newsgroups: comp.lang.ada A leading application development tools release. Follow this link for Rational > I am having a bit of a problem with vendor joins IBM's software business Apex Embedded for Tornado download X11 bindings when compiled for OSX Armonk, N.Y., February 21, 2003 -- IBM and installation instructions. [...] (the Intermetrics bindings updated for (NYSE:IBM) today announced the /standard.msgs/install_instructions.h Linux). [...] completion of its $2.1 billion acquisition tml Why not use a full Ada implementation ? of Rational Software Corp. Rational Apex Embedded for Tornado We plan offering our XInAda Xlib under (NASDAQ:RATL). The acquisition, 4.2.0 Release Note for MIPS: GPL, but need to allocate some time to do announced on Dec. 6, 2002, was /relnote.4.2.dir/vxworks_relnote_m it. The entire XInAda library set includes completed before the market opened ips/vxworks_release_noteTOC.html Toolkit and 1.2 Motif widget set 100% today. /relnote.vxworks.mips.4.2.ps.Z Ada95. Rational provides open, industry standard Rational - Apex 4.2.0c for Jean-Claude Mahieux, Top Graph'X Sales tools, best practices and services for Manager, La Norville, France, developing business applications and Windows NT [email protected], building software products and systems, From: Greg Bek http://www.topgraphx.com, German including embedded software for devices Representative: orbriver- such as cell phones and medical systems. Date: Mon, 14 Apr 2003 13:18:26 +0930 Subject: Apex NT 4.2.0c Release [email protected], US Representative: "Rational is an important element of our To: Apex Announcements [And from a later message: -- dc] Steve Mills, IBM senior vice president and group executive, IBM Software Product: Rational Apex. What we plan is to provide XInAda-Xlib Group. "Rational's complete, open Version: 4.2.0c. as a set of Ada95 library source code. It software development platform can Platform: Windows NT. should be compilable with any Ada95 improve the speed, quality and URL: compiler. We do not plan working in predictability of software projects. It's a /apex/releases/win/apex_nt.4.2.0c- parallel to build specific versions perfect complement to our existing four self_extract/. following in particular Gnat versions. The brands - WebSphere, DB2, Lotus and This release has been available for some Xlib (including low level required Tivoli." weeks, but for some reason the packages) is about 45K lines Mike Devlin, who previously was announcement wasn't sent. [...] From: Jean-Claude Mahieux Rational's CEO, is the general manager of Greg Bek, Product Manager, Rational the new division reporting to Steve Mills. Apex Family, Rational Software, IBM Date: Mon, 10 Feb 2003 11:06:16 +0100 [...] Software Group Organization: Top Graph'X Subject: Re: X11 binding with FSF version Rational shareholders approved the of gnat acquisition on Jan. 22, 2003, and the Newsgroups: comp.lang.ada required worldwide government

Volume 24, Number 2, June 2003 Ada User Journal Ada and Linux 87

XInAda runs on OS X. Not because it is Vector Software - Testing up, he says, as "The technology is ported, but XInAda shares part of the IOs Software Travels with Ada superior." with our OrbRiver (CORBA) product. See http://www.adaic.org for more on And the orb is supported on OS X URL: http://www.adaic.org/news/test- Ada. Or write to Ann Brandon, because we have customers using it. As sw.html Communications Director, Ada Resource the low level packages run fine with the Date: Fri, 25 Apr 2003 22:38:10 +0200 Association, [email protected]. ORB, I do not expect any problem recompiling the rest of the library with "Vector Software Easily Writes Fail-Safe Zephyr Basecamp and Gnat. Tests in Ada" by Ann S. Brandon Here's a developer's choice: Easily write Monkey Business Enterprise Vector Software - software in Language A that doesn't System VectorCAST for XGC crash, vs. Language C, and easily write Compiler software that crashes. Vectors Software URL: chose Language A, which stands for Ada, http://www.redrocketconsortium.com/zbc Date: Tue, 26 Feb 2002 17:34:33 GMT URL: rather than Language C, which stands for, http://www.vectors.com/xgcpressrel.htm well, C. In June of 2001 I started a project to build an application that would allow small and Vector Software Offers Automated Test "With C, it's very difficult to put in general purpose guards to protect yourself midsize businesses the same level of Tools for Unit Level Testing for Ada, C, inventory, order entry, sales tracking and and C++ with VectorCAST from unintentional crashes," said the testing software company's director of accounting functionality as would be Vector Software Announces Integration Engineering, John Paliotta. "In Ada, it's expected from commercial applications. I with XGC Software's XGC Compiler to the reverse. It's hard to crash an wanted it Open Source (GPL, Provide Automated Software Component application at the operating system level, specifically), cross-platform, and Test Capability and easy to put in exception handling that international. I wanted to make it possible North Kingstown, RI - March, 2003 - gracefully handles the error." for the little guy who can't afford the $60,000 for a commercial application and Vector Software, Inc. announced that it Vector Software, Inc., dedicated the has released VectorCAST for the XGC the yearly annual license fees to bring his brains and guts of its software, business into the modern age. Compiler. VectorCAST provides an VectorCAST, to Ada in 1993. The automated module level test capability for software automatically generates and The working result ended up as Zephyr users of XGC Software's XGC Compiler, compiles code to test C/C++ and Ada Basecamp and The Monkey Business enabling software engineers to test components across a comprehensive list database. Zephyr Basecamp and Monkey individual software components prior to of compilers and environments. Test cases Business can be downloaded, installed system level test. VectorCAST for XGC are based on users' requirements and and used at no cost. If a technical support automates building of complete test include ultimate values from lowest to contract is desired, that can be obtained as harnesses for each software component, highest, as well as fixed increments in well. [...] constructing of test cases, execution and between. The tests can be used on the So, if you have a business and would like viewing of pass/fail results and code host, a simulator, or an embedded target. to automate, are a programmer or noodler coverage information for each test and want to give it a spin, are insanely executed. Further capabilities allow for Paliotta says that in the ten years the company has been maintaining and bored and want something to play with, complete regression testing as go ahead to the download area and give it components are modified. changing its Ada software, they have found the code "almost impossible to a whirl. Let me know what you think. XGC Software is a provider of custom crash." VectorCAST's GUI is in C++, Naturally, anybody who would like to and off-the-shelf compilation systems which has given the software engineers help me out in this fool's errand is eagerly with high performance run-times designed many opportunities to compare the two welcomed to hop on board. We can use for aerospace applications. [See also languages as tools. documentation (of course!), bug fixes, "Finland - On-Board Software for GOCE additions, or anything like that, so there is Satellite & Static Analysis Tool" in AUJ "Ada's exception handlers are better than room for all. The database should work on 23-3 (Sep 2002), pp.153-154, and "Ada C++," Paliotta said, explaining the all PostgreSQL versions above 7.1 and Cross Compilers for 1750 Processor" in absence of random crashes. "They're the User Interface works on Windows and AUJ 22-4 (Dec 2001), pp.199-200. -- dc] general purpose. With C++ they do not by Linux. Since it is written in Ada, I would themselves handle anomalous conditions. bet that it will work on any platform Vector Software develops, markets and If at some point I divide by zero -- not supports the VectorCAST line of where GNAT and the various libraries intentionally, yet it happens all the time -- function. [...] automated component level test tools. The no pre-defined mechanisms with C++ can VectorCAST products scan your C, C++, handle it. With Ada, it's built into the and Ada83/95 source code and language. If you install a small general Ada and Linux automatically generate the test harnesses purpose exception handler it will handle necessary to test software components in that. Regardless of what bad thing GNAT 3.14p RPM Packages isolation. Utilities are included to happens it'll be caught and you'll have a construct and execute test cases, generate defense against an unanticipated From: Oleksandr Havva reports comparing expected and actual anomaly." results, perform automated regression testing, code coverage, complexity Altogether, Paliotta says his department Date: Tue, 04 Mar 2003 09:45:48 +0200 measures and basis path analysis. [See finds the Ada "standard is more uniform Subject: GNAT 3.14p RPM's also "Vector Software - VectorCast and enforced across the vendors and To: GNAT Discussion List Automated Test Tools" in AUJ 23-3 (Sep compilers. In the C++ world everyone has 2002), p.148. -- dc] their own variant." He acknowledges that At present time I have built the ALT like C++ has an ANSI standard, but which RPM's for the GNAT version 3.14p. So I allows "all the compiler vendors to have hope it will be interesting for somebody their own standard." The basis of Vector else. Software's choosing Ada can be summed

Ada User Journal Volume 24, Number 2, June 2003 88 Ada and Microsoft

From: David C. Hoos > Your hint got me to search for RPM Announcing the release of GWindows packages for Linux/Alpha with GNAT. 1.1p, the Ada 95 Win32 RAD Date: Wed, 5 Mar 2003 14:35:07 -0600 I actually found both SuSE and Red Framework. March 9, 2003. Organization: ENST, France Hat packages. [See also "GWindows - Ada 95 Win32 Subject: ANN: gnat-3.14p rpms available I wasn't aware that Red Hat even RAD Framework" in AUJ 22-4 (Dec for Red Hat 7 supported Alpha. Is this true? I must 2001), pp.212-213. -- dc] Newsgroups: comp.lang.ada admit that I didn't look too hard, but I GWindows, the Professional Open Source The following files were kindly provided could only find refs to i386 or higher. [...] Ada 95 Win32 RAD Framework, by Oleksandr Havva and are now hosted I don't remember how I found it, but I introduces for the first time to Ada at ftp.ada95.com/pub/gnat-3.14p/RH-7 used some sort of "rpm find" site. [...] programming a comprehensive rapid asis-3.14p-1.i386.rpm.gz, florist-3.14p- [And from a later message: -- dc] application development framework 1.i386.rpm.gz, > I found them by searching for "gnat", spanning GUI, Database and Active X gnat-3.14p-1.i386.rpm.gz, gnat-3.14p- "alpha" and "rpm" on Google and integration. It brings AdaPower ;-) to 1.src.rpm.gz, noticed that I could use the web site programming domains that up until now are dominated by VB and Delphi. gnat-3.14p-runtime-1-1.i386.rpm.gz, for more precise gnat-glade-3.14p-1.i386.rpm.gz queries [...] GWindows includes extensive bindings to Yes, rpmseek.com was the one I used. I the Windows GUI including support for Gcc 3 Based GNAT in Linux found that to be very useful here. I'll common controls and dialogs, printing, Distributions bookmark it here, before I forget it again and owner drawn extensions to controls. ;-) [...] In addition, GWindows adds a number of new controls, keyboard support, multiple From: Laurent Guerby RTLGnat - GNAT Port for models of event handling, Active X Date: 04 Mar 2003 12:37:02 +0100 controls, support for creating dialogs and Subject: Re: GNAT 3.14p RPM's Real-Time Linux OS windows from resource files, dynamic To: GNAT Discussion List garbage collected windows, Window From: Jorge Real docking, non-GUI bindings, database Note that Red Hat 8.0 and I assume many Date: Mon, 07 Apr 2003 18:52:29 +0200 support, _database bound controls_, and other recent distribution have GNAT Organization: DISCA-UPV much more! Subject: ANNOUNCE: Ada compiler for preinstalled out of box, this is a much GWindows builds as either ANSI or welcomed side effect of the ACT CVS RTLinux Newsgroups: comp.lang.ada UNICODE (a first for Ada!) for GCC GNAT source contribution. I was internationalization and performance able to compile and run our company RTLGnat version 0.1 is now available boosts on Windows NT, 2000, and XP. software with it (>500KSLOC) and my from the following web site: GWindows is tightly integrated with GtkAda home software did work too. http://bernia.disca.upv.es/rtportal/apps/rtl- GNATCOM, the Ada 95 It is based on GCC 3.2 and gives slightly gnat/. It works with Gnat 3.14 for Linux and RTLinux 3.1 or later. COM/DCOM/COM+ Development better execution times where I tested it (5- Framework and Tools opening every facet 20%, I used GCC 3.x tuning flags). >From the README file: "RTLGNAT is of the Windows platforms to Ada 95 I assume the community will no longer a port of the GNAT Ada compiler for the development. Never again will the cries have to package RPMs for the base Real-Time Linux operating system. The be heard, "but there are no bindings" on compiler any more, the add-ons are of Ada program is compiled into an the Windows platform! RTLinux loadable kernel module, where course very useful, I hope David Botton GWindows is designed to take advantage will help you set up a public mirror. the program's tasks will run as threads. To start running the Ada program, the of Ada's unique combination of features GNAT users can help speed up the rich typing mechanisms. It is not a thin process by checking their favorite distro generated module must be inserted by means of the Linux service 'insmod'. binding to an underlying C interface, but a and asking GNAT to be included if it's complete framework that takes advantage not there. As a result, the Ada program is run in the of Ada at every level. From: Warren W. Gay VE3WWG Kernel space with more priority than any other running Linux application." GWindows is being used world wide for production products by governments and Date: Wed, 02 Apr 2003 12:00:27 -0500 [And from a later message: -- dc] large companies to small personal Subject: Re: Gnat-Glade 3.2 > Can RTLGnat also be used to compile projects. Newsgroups: comp.lang.ada Linux kernel modules in general? Version 1.1 of GWindows adds additional One big plus about the SuSE support of No, RTLGnat-generated modules need stability and improved support for GNAT, is that they have the only RTLinux: they use the RTLinux POSIX ActiveX controls, a binding to the publically available binaries for GNAT on interface (e.g. for creating threads). Scinittla programmers editor control and a the Alpha platform that I know of. Jorge Real Sáez, Departamento de Tcl/Tk control. I was able to install and successfully run Informática de Sistemas y Computadores, GWindows is being made available under their GCC-3.1 (with Ada) RPMs on my Universidad Politécnica de Valencia. the GNAT modified GNU GPL used by recent Debian Alpha platform. I hope to GNAT's runtime library making it make a binary port of GNAT for Debian availble for use in both GPL and in the near future, when the GCC-3.x Ada and Microsoft proprietary applications. stabilizes a bit more, now that I can bootstrap it. Maybe someone at Debian For more information on GWindows, to will do the same. GWindows 1.1 - Ada 95 view the on-line documentation, and to Win32 RAD Framework download the product, please visit From: Warren W. Gay VE3WWG http://www.adapower.com/gwindows. From: David Botton Tutorials for GWindows are available at: Date: Thu, 03 Apr 2003 12:25:13 -0500 Date: Sun, 9 Mar 2003 23:24:26 -0500 http://www.adapower.com/gwindows/user Subject: Re: GNAT for Linux/Alpha Subject: GWindows 1.1 Released _guide.html Information on the public Newsgroups: comp.lang.ada Newsgroups: comp.lang.ada version of GNATCOM can be found at

Volume 24, Number 2, June 2003 Ada User Journal References to Publications 89 http://www.adapower.com/gnatcom. Newsgroups: comp.lang.ada References to Professional support for GNATCOM is There are several [bindings to the available from Ada Core Technologies, Windows API], with different aims and Publications Inc. Please contact [email protected] for a different coverage. I'm one of the authors no-cost GNATCOM evaluation package. of Claw - Class Library for Ada on Endian-Safe Record Windows, and suggest you take a look at Representation Clauses Bindings to Windows API the TriAda paper available at www.rrsoftware.com/html/prodinf/triadap From: Vincent Smeets From: John Harbaugh aper/triada.html Date: Mon, 17 Mar 2003 16:23:51 +0100 Subject: What do I need to write a Windows Claw is a "thick" or "abstract" binding. Date: Tue, 4 Mar 2003 16:38:33 GMT program with Ada? It's available, as source code, in a Organization: The Boeing Company Newsgroups: comp.lang.ada GMGPL introductory version and in a Subject: Re: Endianness independance supported $>0 version under active Newsgroups: comp.lang.ada I know how to write a program with Ada development and with a printed manual as and how to use X-Window (with Motif) If you are looking for an implementation well as Windows Help and html for Unix. Now I have a program (small that is platform and compiler independent, documentation. It's regularly tested under and non-commercial) that I want to port take a look at the December 1999 Ada Apex, Gnat, Janus, and ObjectAda from Unix to a Windows (98 or 2000) Letters. Mike Mardis wrote a very good compilers. The www.rrsoftware.com site environment and give it a Windows-GUI. article titled "Endian-Safe Record has much more information, including It will use a menu, an explorer tree and Representation Clauses for Ada downloads and example programs. some labels and buttons. The only Programs." www.adapower.com also has a bunch of problem is that I have no idea about small programs based on the introductory programming for the Windows New SPARK Book - Sample version of Claw, including a simple web environment. [...] server, SMTP (mail) and HTTP clients, Chapters On-Line From: Stephane Richard real-time graphics, ActiveX controls by From: [email protected] (Rod using GWindows together with Claw, a Chapman) Date: Mon, 17 Mar 2003 15:48:14 GMT web crawler, and two examples - Date: 11 Mar 2003 08:26:53 -0800 Subject: Re: What do I need to write a Minesweeper and Dining Philosophers - Subject: ANN: SPARK Book - Sample Windows program with Ada? of existing programs whose GUI was Chapters now free on-line Newsgroups: comp.lang.ada surgically replaced with Claw while Newsgroups: comp.lang.ada , I would HAVE to suggest using the leaving the rest of the program intact. [...] comp.realtime, comp.software-eng, Windex Library developed by the one I [Randy Brukardt comp.lang.eiffel, de.comp.lang.misc like to call "The Guru" of Windows added: -- dc] I'm pleased to announce the availability of Binding, I hereby name Mr. Stephen And, Claw does have a Tree control in the the "Sample Chapters" of the forthcoming Leake. supported version (not in the free new book "High Integrity Software: The You can get it at version). SPARK Approach to Safety and Security" [http://www.toadmail.com/~ada_wizard/ From: David Botton by John Barnes. The sample chapters are windex.html -- dc] It's free and you'll Date: Mon, 17 Mar 2003 14:23:38 -0500 freely available in PDF format on soon notice as you browse the source files Subject: Re: What do I need to write a www.sparkada.com that things are very well organized into Windows program with Ada? The book is now at the printers. We highly functional groups of objects to Newsgroups: comp.lang.ada expect a UK publication date of 21st make navigation in the library very March. Availability is expected in the straight forward and efficient. To me, It's See http://www.adapower.com/windows for available Windows bindings, etc. USA approximately 4 weeks later. The the easiest most natural way to do book can be pre-ordered now at various Windows in Ada and was created by I recommend GWindows for Win32 - book-sellers including www.amazon.com someone who knows what he's talking http://www.adapower.com/gwindows, see and www.amazon.co.uk. about :-). http://www.adapower.com/gwindows/user _guide.html for a full tutorial. If you can All the best, Rod Chapman, SPARK From: Stephen Leake Team, Praxis Critical Systems Limited program Ada, you already know how to Date: 17 Mar 2003 12:19:20 -0500 write a Windows program :-) [...] Ada Distilled - On-line Book Organization: NASA Goddard Space Flight If you are looking to learn the low level Center (skates.gsfc.nasa.gov) APIs you need Petzold's Windows book, Updated Subject: Re: What do I need to write a ie. a C programming book. I would From: Richard Riehle Windows program with Ada? recommend looking at the GWindows Newsgroups: comp.lang.ada sources as well for best practices in Date: Tue, 11 Mar 2003 23:37:42 -0800 Thanks for the plug. [...] Always nice to binding to Win32, etc. Organization: AdaWorks Software be appreciated :). However, Windex does To learn GWindows you have a full Engineering not currently support the tree control. And tutorial in the package and it can be Subject: Announcement: Ada Distilled I've given up developing it, in favor of viewed on-line at Newsgroups: comp.lang.ada learning more about / contributing to http://www.adapower.com/gwindows/user The newest revision of Ada Distilled has GtkAda (and supporting my daughter in _guide.html [...] college, going to anti-war protests, etc :). been sent to http://www.adaic.org & Windex is GMGPL, so anyone is free to If you plan on doing Win32 programming http://www.adapower.com add a tree control to it. long term, you should get a handle on This revision has some new programs, COM (ActiveX) as well by reading From: [email protected] particularly for access type examples. InsideCOM and playing with GNATCOM Also, there is an accompanying ZIP file Date: Mon, 17 Mar 2003 18:31:02 GMT (http://www.adapower.com/gnatcom). Subject: Re: What do I need to write a with the source code for most of the Windows program with Ada? programs in the book.

Ada User Journal Volume 24, Number 2, June 2003 90 Ada Inside

As usual, Ada Distilled is free, but I do of Software Where Safety-Critical If you had a choice of two Ada books thank those who have sent a small Behavior is Paramount. which would it be. [...] honorarium for earlier editions. DDC-I Releases Upgraded JOVIAL [See also same topic in AUJ 22-4 (Dec Richard Riehle, AdaWorks Software Programming Tools. Upgrades Aimed at 2001), pp.214+216. -- dc] Engineering, Salinas, CA, USA Increasing Project Efficiency. [Georg Bauhaus responded:] Crosstalk - Call for Articles NT, 2000 and XP Host Environments. A Have you been looking at Direct Response to the Needs of http://www.adapower.com/books/? There on Real-Time Programming Customers Migrating to Popular are some links to reviews and online Platforms. From: Richard Riehle books as well. Third Party Update: Software [David C. Hoos Date: Sun, 16 Mar 2003 21:23:39 -0800 Certification from Enea TekSci. A :] Organization: AdaWorks Software Guideline for Certifying Software in Safety Critical Avionics Systems. Ada As a Second Language, by Norman Engineering Cohen, ISBN: 0070116075. Subject: Crosstalk: Call for Articles on Due to technical difficulties, the emailer Concurrency in Ada, by Alan Burns and Real-time Programming describing the February issue of the DDC- Andy Wellings, ISBN: 052162911X. Newsgroups: comp.lang.ada I Online News did not go out. The […] Cohen's book is my favorite Ada text I noticed in the Call for papers section of following is a brief description of articles available in that issue and the book. But note that it is aimed at Crosstalk a request for papers on real-time experienced programmers. programming for the November 2003 corresponding links. issue. This is another opportunity for Full Support for Windows Hosted TADS- Beginners enjoy John English's book someone to write an article on Ada, 1750A Product Line. A Direct Response which is online at preferably a case-study with metrics, etc. to the Needs of Our Customers Migrating http://www.cmis.brighton.ac.uk/~je/adacr aft/ The Crosstalk web site is: to Popular Platforms. http://stsc.hill.af.mil Cost-Effective Windows Migration [[email protected] (John Package for TADS-1750A Customers. McCabe):] CACM - On Type-Safe Customer Define Package Parameters to [… Cohen’s] is the only Ada 'learning the Languages Create a Least-Cost Migration Path. language' book that I ever bought. Tech Talk: Verifying PROM'ed Systems I quite like Michael Feldman's "Software From: Tom Moran by Checksums. Including System Construction and Data Structures with Date: Wed, 2 Apr 2003 04:11:08 GMT Checksum Information Increases System Ada" (ISBN: 0201887959), but don't Subject: CACM Risks re Ada Reliability. follow the coding style :-) To: [email protected] For this months complete newsletter: [[email protected]:] The Risks column in the current http://www.ddci.com/news_current_issue. Communications of the ACM is titled shtml. For the complete February issue: > Programming In Ada 95 by Barnes, "On Sapphire and Type-Safe Languages". http://www.ddci.com/news_vol4num2.sht Second edition. It talks about buffer overrun as an ml An excellent book, and usually the first abstraction failure and says "Some one I turn to. Though the Cohen and the modern languages (for example, Ada, C#, Downloadable HTML Burns and Welling books I also keep Common Lisp, Eiffel, Java, Modula 3, within reach. Scheme, and Standard ML) prevent this Version of Ada Reference failure of abstraction." Manual Updated Ada Inside DDC-I Online News From: Randy Brukardt USA - LJK/CDROM, CD [Extracts from the table of contents. See Date: Wed, 16 Apr 2003 15:07:53 -0500 elsewhere in this news section for selected Subject: Re: Ada language help by reserved Formatting and Verification items. -- dc] keyword Newsgroups: comp.lang.ada From: [email protected] (Larry From: jc Kilgallen) Date: Mon, 7 Apr 2003 11:27:25 -0700 I just updated the downloadable HTML Date: 1 Feb 2003 12:51:51 -0600 (MST) versions of the ARM to include the search Organization: LJK Software Subject: Online News - [...] page and the links to it. There also were a Subject: Re: Bye-bye Ada ? To: Q9 March_April2003 Online News DK few fixes intended to make the ARM Newsgroups: comp.lang.ada validate through the WC3 validator (which I didn't know about that the time > I'm still missing Ada applications at all DDC-I Online News. Real-Time Industry that the original HTML was created). (in the public). I never heard about a Updates - News from DDC-I. CD-burning app in Ada, nor of an .wav March/April 2003, Volume 4, Number 3 - [http://www.ada-auth.org/~acats/arm.html or .bmp manipulation app, nor [http://www.ddci.com/news_vol4num3.sh -- dc] something else (except GNAT and tml]. A monthly news update dedicated to GVD). DDC-I customers & registered Ada Book Recommendations subscribers. Please don't confuse not having Open From: Alex Gibson Source software for a given domain The Safety Solution... Certified. Making Date: Sun, 27 Apr 2003 00:30:07 +1000 written in Ada with not having any its Debut at the Software Technology Subject: Best Ada books? software for that domain written in Ada. Conference, April 29th, Salt Lake City, Newsgroups: comp.lang.ada UT BAE SYSTEMS Controls, DDC-I and http://www.ljk.com/ljk/ljk_cdrom.html Enea TekSci Join Forces to Offer A Okay this is always a bit of a subjective [From that URL: "This software can be Powerful, Proven Solution for Developers question asking about programming used to format and verify volumes books but usually worth asking anyway.

Volume 24, Number 2, June 2003 Ada User Journal Ada Inside 91 according to ISO-9660 and related Green Hills Certification Package Key to On SIGAda 2002 a paper was presented standards." -- dc] Fast Approval for a Satellite Terminal Simulator called [See also "USA - Green Hills for New TSim. They used gnat, Tcl/Tk, TASH, Germany - CDBurn, CD Sikorsky S-92 Helicopter" in AUJ 23-3 AdaSockets and the Booch Components Writing for RISC OS (Sep 2002), pp.152-153. -- dc] and in the paper they state the following: "Throughout Round-3, we managed to From: [email protected] (Jan-Uwe Santa Barbara, CA. February 10, 2003 -- Green Hills Software, Inc., the embedded retain the source code compatibility Finck) between Win32 and Linux. So, we could Date: Sat, 1 Feb 2003 20:54:55 +0100 technology leader and second largest RTOS company, today announced FAA also build distributed TSim under Linux, Subject: Re: Bye-bye Ada ? and operate exactly the same way. Newsgroups: comp.lang.ada acceptance of a DO-178B, Level A, certification package for its INTEGRITY- Miraculously, we also found that the Well, at least a CD-burning software 178B real-time operating system (RTOS). Satellite partitions were interoperable exists. although not under the usual OS, The INTEGRITY certification package under Win32 and Linux. That is, we could but under Risc OS was delivered to Rockwell Collins for use run the Satellite partition under Linux, (http://www.riscos.com and .org), called in Technical Standards Order certification and the Terminal partition under Win32, CDBurn (http://www.huber- for a new avionics system aboard the with TC connected on the same or a net.de/cdburn.htm), the author mentions Sikorsky S-92 helicopter. different machine. Or, we could run the his use of Ada on his website here Satellite partition on Win32, and the (http://www.huber-net.de/ada.htm), FAA audit of the certification package Terminal partition under Linux, unfortunately in German. was completed at Green Hills Software's connected to TC on Win32 - possibly the offices in November 2002. The audit same machine running the Satellite server. Yes, people use Ada. process verified compliance with DO- This was truly unexpected, and gave us From: Steffen Huber 178B, Level A requirements, a required something technically satisfying." step for certification of the S-92 aircraft. [...] they used the Distributed Systems Date: Sun, 02 Feb 2003 16:17:06 +0100 The S-92 is Sikorsky's newest medium- Annex, [...] Subject: Re: Bye-bye Ada ? lift commercial helicopter. Featuring a Newsgroups: comp.lang.ada passenger capacity of 19-22, the versatile [David C. Hoos, Sr. new helicopter will serve a variety of also > I never heard about a CD-burning app wrote:] in Ada, commercial and international utility needs, including passenger, cargo, The Distributed Systems Annex goes so You have not looked hard enough ;-) I aeromedical, search and rescue and far as to provide endianness-independent have written one, called CDBurn. For resource development support. Production stream attributes, so that the types will be more information, look at http://www.huber- is already underway with final assembly accurately transferred even between net.de/cdburn.htm However, unless you are commencing in March 2003. systems with different endianness. lucky enough to run RISC OS, it makes little sense to buy it ;-) "The FAA's acceptance of our Level A certification package is very significant," USA - Astrology Program [And from another message: -- dc] said John Carbone, vice president of From: Ed Falis > Fine, will you port it to other OS's? marketing for Green Hills Software. Date: Sun, 16 Feb 2003 00:19:59 GMT "INTEGRITY-178B has been approved The whole thing: unlikely. There is very Subject: Re: No Ada in OpenSource? for use in the most safety-critical little that CDBurn can do that would Newsgroups: comp.lang.ada make it better than the competition - with applications sanctioned by the FAA. Astrology program: the exception of the user interface, but its What's more, our complete certification http://users.adelphia.net/~falis/ niceness is heavily bound to RISC OS' package for DO-178B, Level A is way of operation. available today to all developers seeking Level A certification. This gives USA - Latin-to-English The only part that would possibly make INTEGRITY a clear advantage over other Dictionary sense is the whole ISO/Joliet image commercial RTOSes wherever DO-178B, creation stuff. Mainly because this would Level A certification is required." From: Warren W. Gay VE3WWG also port the RISC OS filer to Windows, and most of the software available on More on DO-178B [see URL above. -- dc] Date: Mon, 17 Feb 2003 12:31:44 -0500 Windows is a lot less flexible when it Subject: Re: No Ada in OpenSource? comes to filename conventions etc. About Green Hills Software, Inc. [See Newsgroups: comp.lang.ada Anyway, I am currently happy supporting earlier announcements from Green Hills in the AUJ. -- dc] On the weekend I encountered a text the few thousand CDBurn users on RISC mode application that performs "Latin-to- OS, and it is likely that CDBurn will For More Information Contact: Green English Dictionary" lookups, and was morph into DVDBurn in the future. If I Hills Software, Lynn J. Robinson, encouraged to see that it was written in am ever getting bored, I will think about a [email protected]; Davis-Marrin Ada. While this is "free shareware" (with port. Communications, Ken Marrin, sources available), it is one of many [email protected]. obscure examples of applications USA - FAA Certifies throughout the wonderful www. See: INTEGRITY RTOS for USA - TSim Satellite http://users.erols.com/whitaker/words.htm Sikorsky S-92 Helicopter Terminal Simulator [See also "Latin translation program" in AUJ 20-1 (Apr 1999), p.41. -- dc] URL: From: Vinzent Hoefler http://www.ghs.com/news/230210r.html If you know where to look, you can find Date: Fri, 14 Feb 2003 19:23:57 -0500 Open Sourced Ada in all corners of the FAA Certifies INTEGRITY RTOS for Organization: JeLlyFish software world-wild-web. DO-178B, Level A Use In Sikorsky S-92 Subject: Re: Ada sockets and gnat 3.13 Helicopter windows and linux interoperability Newsgroups: comp.lang.ada

Ada User Journal Volume 24, Number 2, June 2003 92 Ada Inside

Germany - Controlling Europe - Eurofighter Crash of courses designed to develop key Digital Cameras due to Hardware Failure defence systems for the Greek Air Force Date: 31 March 2003, Objektum From: Thomas Preymesser From: Peter Amey consultancy expert for the defence Subject: Re: Ada-Entrwicklung, Beteiligung Date: Fri, 28 Mar 2003 08:30:22 +0000 industry, has designed an integrated an Projekten Subject: Re: Eurofighter DA6 crash training course on Hierarchical Object- To: [email protected] Newsgroups: comp.lang.ada Oriented Design (HOOD), using the [Extracts translated from German. -- dc] > Last year an Eurofighter crashed in STOOD toolset (the design tool for real- time and high quality software I wrote a few smaller things (see Spain. Both engines failed. It looks like an sw problem. Ada/SPARK involved? developments) to develop a series of http://www.thopre.de/Ada.html), which major projects for the Greek Air Force. are also still under development and I I have no priveleged information about would be pleased with some participation the crash itself but can say that the engine This specialist course has been (e.g. controlling of digital cameras). [...] control software is not written in SPARK. commissioned by ISI Hellas, the Greek In any case, speculation before the manufacturer of real-time Command and Germany - PL/SQL investigation is complete is usually a Control, Data Link Systems and real-time waste of time. Training Simulators. It will be used in a Developer Moves to Ada number of major projects, including the From: John Cook Mission Training System (MTS), for the From: Frank Piron Greek Air Force's Early Warning and Date: Sat, 29 Mar 2003 15:21:10 +1100 Control Aircraft, and the KDIL project, a Date: Fri, 21 Feb 2003 09:47:06 +0000 Subject: Re: Eurofighter DA6 crash digital information link for connecting Organization: KonAd GmbH Newsgroups: comp.lang.ada medium range Surface to Air missile Subject: New in Ada, written some systems. programs and earned money! You may wish to look at Newsgroups: comp.lang.ada http://www.eurofighter.starstreak.net/forum/viewt Leading ISI Hellas developers will attend opic.php?t=585 for all the information the 5-day training programme presented I'm new in Ada, really new, I started to publicly available. by Derek Russell, Objektum's Technical learn the language 3 months ago. The reason was given there was a conflict Director and foremost expert on both the My previous experiences in programming between the software and the engines HOOD methodology and STOOD toolset. were in pure C and ORACLE PL/SQL 2.3 fitted in the Development aircraft. (They "The skills gained from the Objektum - much like Ada83 I think. 4 years ago we were earlier versions of the production training would be used to develop new started development of a complete control standard) systems designed for the Greek Air system for a police department in Force." Said David Tham ISI Hellas' switzerland. It is ORACLE-based, Eurofighter Website: http://www.eurofighter-typhoon.co.uk Technical Director. "It would also be used contains a workflow engine, document on training simulators, currently in their management, GUI in ORACLE-Forms, From: [email protected] (svaa) final stages of development, to identify much PL/SQL-Code inside the Database, Date: 29 Mar 2003 13:17:12 -0800 common components for re-use in other much exception handling. Subject: Re: Eurofighter DA6 crash projects." He added. Newsgroups: comp.lang.ada The demands of the customer concerning "We have designed this very specific stability and security were very strict and Engine failure. series of integrated training courses using we expensively used the exception [http://www.eurofighter.com/News/Articl STOOD a specialist toolset which fits handling mechanism of PL/SQL. But this e/default.asp?NewsItemID=116 and 117 - perfectly with HOOD." Said Derek Language is pretty restricted in respect to - dc] Russell, Objektum's Technical Director. modern software engineering methods According to Iblnews (in Spanish): "ISI Hellas was very clear on its training and last year meanwhile in the own requirements. In the past we have company I encountered Ada95. http://iblnews.com/news/noticia.php3?id= 70853 delivered Ada training to them and, with I read some books (Barnes, Feldman, ... ) our defence systems expertise, we are and started to play around and I felt good "Hoax about software failure appeared a able to fully support its developers in with my PL/SQL-experiences. few minutes after the crash." "That shows meeting its overall project objectives for how much people expect software failure. the Greek Air Force." He added. 3 weeks ago I delivered my first little Software failure is an easy escape goat". programs in Ada which I used to write in [See URL for more info on Objektum: -- C earlier, when the capabilities of the Greece - Objektum to dc] www.objektum.com poor ORACLE-Client PL/SQL-engine did Deliver HOOD courses to For more information or photography not suffice. please contact: Andy Brown, Reality PR, The programs were simple helpers, one Greek Air Force 020 8663 6111, [email protected] parsing a file written in a proprietary From: Jackie Bissell format, one calling some win32 api USA - Trash Finder, Anti- functions. But I was curious to know Date: Mon, 31 Mar 2003 11:55:29 +0100 Spam Filter more about string handling in Ada and Subject: PRESS RELEASE - Hierarchical interfacing with C. Object-Oriented Design (HOOD) is not From: Randy Brukardt Great success! Simple development, no all Greek to training and consultancy errors till now. Ok, I had my fight with expert Objektum Date: Wed, 16 Apr 2003 15:01:09 -0500 the compiler, but it was productive. Subject: Re: If anybody wants to make Press Release: Hierarchical Object- something in Ada but do not know what I think the Ada community should try to Oriented Design (HOOD) is not all Greek Newsgroups: comp.lang.ada get the attention of the many many to training and consultancy expert PL/SQL-Developers in the world. Ada is Objektum What kind of spam filter are you talking an ideal way to enrich the programming about? A filter for a server is different in a Objektum appointed by defence skills and possibilities for them. number of ways than a filter for a mail manufacturer ISI Hellas to deliver a series

Volume 24, Number 2, June 2003 Ada User Journal Ada Inside 93 client. And a filter for an ISP or large Department of National Defense (DND) Two New Companies" in the "Ada company is different than a filter for a CP140 Maritime Patrol Aircraft. Products" section of this AUJ. -- dc] tiny organization. The Canadian Department of National Press Contacts: Greg Gicca, 1-603-429- That said, an anti-spam filter written in Defense (DND) operates a fleet of 3415, [email protected]; Additional Product Ada already exists: it's called Trash eighteen (18) CP140 Aurora aircraft as a Information: 1-858-457-2700, Finder, and it works with the IMS mail long-range maritime patrol platform for [email protected]. [...] server on Windows. I haven't publized it surface and undersea surveillance roles. here precisely because no one here can The aircraft design, which entered into Indirect Information on Ada use it. :-) It is of course 100% in Ada, and service in 1980, is based on the United Usage it filters for literally dozens of criteria -- States Navy (USN) Model P-3C Update II after fully decoding and unfolding the Orion aircraft for the main airframe and [Extracts from and translations of job-ads message (a significant percentage of spam engines, with mission avionics mostly and other postings illustrating Ada usage is encoded). Among other things, it filters based on the USN S-3A Viking mission around the world. -- dc] on character sets, attachment types, avionics suite. The CP140 Aurora aircraft violations of RFCs in the mail format is undergoing a mid-life improvement From: Hannes Birnbacher (spammers have a hard time following program, referred to as the CP140 Aurora RFCs), specific HTML features (forms, Incremental Modernization Project Date: Sat, 1 Feb 2003 01:41:26 +0100 scripts, graphics, text outside of the (AIMP), and includes a series of Subject: Re: Ada and LFS markup, etc.), From, To, Subjects, Text incremental upgrades over a ten-year Newsgroups: comp.lang.ada (without the HTML markup, which often period. CMC Electronics is the prime [...] I am co-operating with an Ada can be used to hide things), HTML contractor for the Navigation and Flight programmer to produce a German open- markup, and (most recently) domains in Instruments Modernization Project source tax software, and I am supplying URLs given either in HTML markup or (NFIMP) and developer of the CDU, the tax know-how. So, to check out the text. which constitutes the integration and code, I had to install Ada somehow, It filters about 98% of the incoming spam airworthiness certification of new NFI without knowing anything about it, after I on my system. [...] avionics equipment. The upgraded NFI had my Linux from scratch running for System includes an Avionics months. I also installed GRASP, which is [And from later messages: -- dc] Management System (AMS) consisting of great for my purposes. [...] [...] The word list for the AdaIC search four CDUs, two Embedded Global From: David Marceau engine is 270,000 words, and it takes up 6 Positioning System (GPS)/Inertial MB. [...] some of the people running Navigation System (INS) (EGI), Date: Sat, 01 Feb 2003 15:13:54 -0500 Trash Finder have servers handling Electronic Primary Flight Instruments Subject: Ada job opportunity posted at 50,000 messages per day with more than (EFDS), Autopilot and Flight Director Thales in Ottawa Citizen Today 1,000 users. [...] System (AFDS), Radar Altimeter and Newsgroups: comp.lang.ada Altitude Warning System (RAAWS) and > Is Trash Finder difficult to set up? Traffic Collision Avoidance System The Ottawa Citizen Web site doesn't No, just add it to the list of plugins and (TCAS). display it, nor does the Thales Group web bounce the services. To be most effective, site (www.thalesgroup.com) display it but "CMC Electronics originally selected the it's in Today's printed edition of the it needs some filter patterns entered (the ObjectAda/Raven product for use on the domains of persistent spammers), but "Ottawa Citizen" Newspaper. [...] the job CMA-2082D AMS in 2000 following an is in Ottawa it seems. [...] there is a nice GUI (written in Claw, of extensive evaluation of Ada95 tool course) for doing that. And it will get a lot vendors. Aonix was selected for a variety From: Anders Wirzenius of junk out-of-the-box. of reasons including the usability of the Of course, Trash Finder has been tool set and the technical support that they Date: Sun, 02 Feb 2003 09:51:13 GMT publicized many times on the IMS-Users were able to provide," states Kevin Subject: Re: Bye-bye Ada? mailing list. [...] Sanford, Software Project Lead, CP140 Newsgroups: comp.lang.ada NFIMP Project for CMC Electronics. Just a hint: Join a company where Canada - CMC Electronics "The main discriminator, however, was programming is not the core business. If Completes Control Display the safety-critical domain experience of the way to achieve a solution is not an Unit Using the company and their ability to meet the issue, hence, you might be free to choose standards required for incorporation into a your own means to get the work done. ObjectAda/Raven DO-178B software system." I work for a company in the heavy steel URL: The CDU will control the avionics 1553 business. I don't work full time http://www.aonix.com/pr_04.21.03.html Data bus and act as a remote terminal on programming, but almost all my the Mission 1553 Data bus, under the programming is done with Ada. I produce Aonix Announces the Completion of the control of a Mission Computer. The CDU mainly reports from databases and Control Display Unit Using will provide the Pilot, Co-pilot, dynamic intranet pages. I keep a rather ObjectAda/Raven by CMC Electronics Navigator-Communicator and Tactical- low profile, I don't overemphasize the Inc. Navigator a means to control and monitor means how I achieve my goals, so I have San Diego, California, April 21, 2003 the operation of the two EGIs, provide managed to keep my "private" small area and terminal navigation solutions, workshop with Ada. Not a glorious Aonix a leading provider of Ada 95 and provide flight guidance generated by software development environments, is situation, but at least I can do my Ada the CDU from an operator defined flight coding... pleased to announce the successful plan and the EGI outputs. The CDU completion of the CMA-2082D Control navigation outputs will then be displayed From: [email protected] (Volkert) Display Unit by CMC Electronics Inc. on the EFDS and used as a steering source Date: 2 Feb 2003 06:58:56 -0800 CMC Electronics Inc, has completed by the AFDS. Subject: Misleading Compiler Warning Newsgroups: comp.lang.ada development and is in the final stages of About Aonix & CMC Electronics [see integration of the CMA-2082D Control URL above and also "Aonix – Grows Into The snippet is reproduced from a large Display Unit (CDU) using application we currenty bringing from ObjectAda/Raven for the Canadian DEC Ada 83 to GNAT (OpenVMS).... the

Ada User Journal Volume 24, Number 2, June 2003 94 Ada Inside

GNAT 3.16w gives a Compiler-Warning language) plus require a wide range of All RT software dealing with Interrupts whereas the DEC Compiler keeps silent. experience in other languages and general and which were completely tested [...] programming/SE expertise. During the (positiv) developed by Apex 3.2.0 were From: Rick Morneau interview, if you make it that far, you may migrated now to Apex 4.2.0 (Models). Date: 4 Feb 2003 12:03:58 GMT get asked what other languages you [...] Setup: Rational Apex Embedded Subject: Re: Bye-bye Ada? actually know and, if you mention Ada 4.2.0 (Ada83, Ada95). Apex Model: Newsgroups: comp.lang.ada (or any other not too popular language for power.vw_ppc.board.ada83.4.2.0.rel, that matter) asked to prove it ... power.vw_ppc.board.ada95.4.2.0.rel. [...] I've been working on a project that you From: Marin David Condic Target: Windriver Tornado 2.0.2. Target might find interesting, and which I'm OS: VxWorks 5.4.2. Target HW: Dy4 programming in Ada. Over the past Date: Wed, 12 Feb 2003 07:38:26 -0500 SVME/DMV-181 und 750er (PowerPC dozen-or-so years, I've been developing CPU Boards, VMEBus) [...] an interlingua for use in machine Subject: Re: [OT] Just taunting us, Marin? translation. Over the past two years, I've :-) From: [email protected] (Tony Gair) written and tested the first draft of the Newsgroups: comp.lang.ada Date: 14 Feb 2003 07:15:55 -0800 Ada software that translates from the [...] All I can say for sure is that the Subject: Ada sockets and gnat 3.13 windows interlingua to English, with extremely program is quite alive and well even if and linux interoperability good results. In the process, I learned a lot their website is not [www.jsf.mil -- dc]. Newsgroups: comp.lang.ada and I'm now starting a complete redesign [...] At the moment, I'm working on a For the adasockets people - I have a client of both the interlingua (should be done in variant of the lift system that will allow server application written on linux and about 1-2 weeks) and the software. [...] engine interchangeability between Pratt & gnat 3.13 using adasockets in which I Information about the first version of the GE. The control operates the lift fan, roll send Ada types quite happily with no interlingua along with many examples of posts and the really cool 3BSD nozzle on problems to and from a server to a client. machine translations can be found here: the back. I've got .mpg and .avi files [...] http://www.eskimo.com/~ram/Katanda/ or showing the nozzle in operation and it just From: Frank J. Lhota http://www.srv.net/~ram/Katanda/ gets really amazing that we can swing that If you're interested, please feel free to big, heavy thing around so quickly and Date: Tue, 18 Feb 2003 16:41:28 GMT contact me at ram at Eskimo dot com. By nothing breaks. It *is* proof that Ada is Subject: Ada interface to Winsock 2 the way, this project is a (very serious!) capable of doing low-level, embedded, Newsgroups: comp.lang.ada hobby of mine, but I'm retired, so I have hard-realtime work for those who don't I'm doing some Winsock work using lots of time to work on it :-) wish to believe it. (How's that for getting ObjectAda. I would like to use some of back on topic? :-) From: Robert C. Leif the functionality added with Winsock 2.0. Date: Tue, 4 Feb 2003 08:25:56 -0800 From: james hopper The Win32Ada interface, however, is Subject: RE: Bye-bye Ada? based on the Winsock 1.1 API. I can write Newsgroups: comp.lang.ada Date: Thu, 13 Feb 2003 07:39:52 -0500 the a package with the Import pragmas for Subject: Re: TCPIP package or binding? the additional Winsock 2 functionality, Firstly, Newport Instruments is a user of To: [email protected] but in order to avoid "reinventing the Ada technology, rather than an Ada wheel", I figure I should check my company. However as both a small user [...] What I was doing was passing real time radar images from our sim code on favorite NG to see if someone has done and formally the corporate fellow of a this already. [...] large company, which created a medical the server to the display app on another device in Ada, I have my own perspective computer. The difference was quite From: PlanetRecruit.com on the Ada market. [...] dramatic. I could get 60 hz with AdaSockets, but only about 10hz with Date: Sat, 22 Feb 2003 17:56:43 GMT From: Richard Riehle Gnat sockets. [...] Subject: ** 2 NEW Jobs from From: Bruce Hennessy PlanetRecruit.com (22/02/2003) ** Date: Thu, 06 Feb 2003 19:33:17 -0800 To: [email protected] Organization: AdaWorks Software Engineering Date: Thu, 13 Feb 2003 15:08:44 -0500 [...] Ada C++ software engineers Subject: Re: Bye-bye Ada? Subject: Re: UML to Ada Mapping Senior Software Engineer: Shall have five Newsgroups: comp.lang.ada Newsgroups: comp.lang.ada years work experience within the last If Ada works for you, you might want to I am interested in participating in a seven years as a software engineer in keep it a secret. I know at least one definition of an Ada profile. I am software design and development of company that refuses to let anyone know currently working to present designs for software programs in Ada, C++ and/or it is using Ada, even though they are mods to an existing large system written Java; shall have work experience on C3I happy with it and it is contributing to their in Ada, which hasn't really got any software development programs; shall success. designs (i.e. cohesive model diagrams and have experience with NATO and national text that depict how the system hangs defense software development practices [And on the question "So how does this together). This can be put together with and policies (e.g. MIL STD 490A, DoD "stealth" company recruit Ada personnel? UML and non-standard drawings, but I STD 2167A, MIL STD 1521B); shall And how do Ada people find the would very much prefer extensions to have a university degree in engineering... company?" -- dc] UML that can then be standardized - in Europe: Belgium - [...] I done one seminar for them. All the rest, any case I would look to establish them as far as I can tell, is done within their across this project. [...] From: John Doolittle own organization. I am not allowed to From: [email protected] (Robert Grimm) discuss the details. Date: Mon, 24 Feb 2003 13:29:14 -0800 Date: 14 Feb 2003 00:59:57 -0800 Subject: Intel-OA: Win32 API application [AG responded to the Subject: Rational Apex 4.2 Migration: does not get Focus in Windows 2000 same question: -- dc] Sudden problems with Interrupts To: [email protected] Well, one way that I know of is: The comp.os.vxworks, comp.lang.ada company would advertise for, say, C++ We have recently upgraded to OA 7.2.2 programmers (*not* stressing the with the latest patch. Our application uses

Volume 24, Number 2, June 2003 Ada User Journal Ada Inside 95 the Win32 API libraries for it's user We need command line tools which can Ada Software Engineer Real-Time interface controls. [...] be scripted. We are using Cygwin under Systems (Belgium) From: Wiljan Derks WinNT/2k. I am corresponding with some Aubay is involved in very important IT commercial vendors for evaluation copies projects on safety critical systems Date: Wed, 26 Feb 2003 20:09:02 +0100 of their software. Are there some non- (embedded systems). We are therefore Subject: Re: Windows services in GNAT commercial products available that I can looking for a highly motivated Ada Ada evaluate? Software engineer "real time systems". Newsgroups: comp.lang.ada From: Wim van Deventer Function: Analysis, performance, Check out srvany. This tools was in the development, testing and implementation NT4 resource kit. It allows to run any Date: Thu, 20 Mar 2003 14:13:23 +0100 of real-time embedded systems. program as a service. We started with this Subject: Intel-OA: 7.2.2: Warning message when debugging. Profile: More than 5 years experience in tool and it worked fine. Finally we needed Ada analysis and development. Good more functionality and build our own To: [email protected] knowledge of electronics version in Ada95. (microprocessors) is an asset. Knowledge From: Stephen D. B. Wolthusen We are currently rewriting some parts our of development methods (logistics Ada83 software to Ada95 format. When engineering) is an asset. University level Date: Fri, 28 Feb 2003 17:38:50 +0100 we introduced protected units [...] in Software Engineering. Languages: Subject: Re: GNAT on Windows (Re: Ada FCS Test Systems, The Netherlands, French. Teamwork spirit and good using a DLL file http://www.fcs-cs.com communication skills. To: [email protected] From: Jean-Philippe Vassilakis Technical skills: Development languages: Is anyone aware of a restricted runtime Ada, C++. Design methodologies: Object environment (for Windows NT) [...] Date: Fri, 21 Mar 2003 11:29:52 +0100 Oriented Analysis and Design - UML; Background is that we have code that Subject: Intel-OA: From Task_Identification experience with CASE Tools. Good needs to run as kernel modules/kernel to Windows Thread knowledge of Unix and NT platforms. [...] dlls/device drivers under Windows To: [email protected] (Simon Apperley) is a bit harsh in its restrictions and leads Using ObjectAda for Windows on W2k Date: 31 Mar 2003 05:18:20 -0800 to code that is less than perfectly readable and XP, I would like to go down to the Subject: Elegant 'abort' of sleeping task (e.g. with regard to technically Windows Thread ID (and/or its attached Newsgroups: comp.lang.ada unconstrained arays). [...] MS-event). I'm looking at the design of a piece of Stephen Wolthusen, Fraunhofer-IGD, Target: have an Ada monitoring task server code which has to handle calls that 64283 Darmstadt, Germany controlling the Windows threads life also pass a timeout value. The target From: Marin David Condic cycle of the corresponding Ada threads system is aerospace related, and (especially when ending and the dynamically creating tasks 'on the fly' just Date: Fri, 28 Feb 2003 07:48:57 -0500 immediate time after their termination). is not an option. [...] Subject: Re: the Ada mandate, and why it We are having a permanent and strong Simon Apperley @ General Dynamics collapsed and died use of those features on uninterrupted PC UK COM Newsgroups: comp.lang.ada systems. Is there a way to achieve this? URL: BTW: Just to follow-up on my own post [And from a later message: -- dc] http://jobsearch.webbel.monster.be/[...] and demonstrate that I practice what I There is no idea to try to use Windows Date: Thu, 3 Apr 2003 09:46:29 +0200 preach... :-) I do have Ada projects going Threads at all, I am just speaking of real on and am actively looking to start new BE-Henegouwen-Ada programmer and good Ada tasks. I am just willing to (Urgent) [...] ones if I can sell the ideas to my monitor the Ada tasks by trying to have a customers. We are on the lookout for view of their internal windows Thread ID Skills: Ada, Real Time, fluent French. qualified people so if someone is and their probable attached Event for General function: Large railway company interested in a position in South Florida, read-only observation. you can always send me your resume at based in Charleroi is looking urgently for mcondic (at) belcan (dot) com [...] Jobin-Yvon S.A.S. Thin Films Division, an Ada programmer with Real time Software for Advanced Process Control & experience. The candidate must be an From: iatz JY/Sofie in-situ in-line sensors, Chilly- expert with Ada and will speak fluent Date: Wed, 5 Mar 2003 16:59:12 +0100 Mazarin, France French. [...] Subject: html parser Newsgroups: comp.lang.ada From: Scott Voyek URL: http://jobsearch.webbel.monster.be/[...] Does anyone know of any html scanner / Date: Wed, 26 Mar 2003 11:20:48 -0600 Date: Sat, 5 Apr 2003 10:53:26 +0200 parser written in Ada? I am currently Subject: Intel-OA: one or more multiply programming a web browser from scratch BE-Bruxelles-Permanent: Calling all Ada defined symbols found Developers as a part of a school project and need To: [email protected] some help with the parser issue. [...] We currently have several immediate I have an Ada application that needs to opportunities for experienced Ada From: Arthur I Schwarz link in some C code. I used Microsoft developers. You have at least 2 years of Visual C++ 6.0 to create several static professional experience in Ada Date: Thu, 6 Mar 2003 11:50:30 -0800 libraries to be linked into my Ada Subject: Ada Source Code Analyzer development as well as a good knowledge application, [...] I am using Aonix 7.2.2 of the national languages. [...] Newsgroups: comp.lang.ada and have installed the latest (U8) patch. We are evaluating toolsets which can [...] From: Patrice Freydiere provide Ada source code metrics, such as Date: Sat, 5 Apr 2003 16:24:24 +0200 Date: Sun, 30 Mar 2003 13:12:39 +0200 Organization: ENST, France Cyclomatic Complexity, Halstead, etc., on Subject: Ada job announcement: Aubay several projects, each project having Subject: AWS .. Belgium Newsgroups: fr.comp.lang.ada about 100k SLOC in 300 files. [...] To: [email protected]

Ada User Journal Volume 24, Number 2, June 2003 96 Ada Inside

I am doing a project to build a picture http://www.redrocketconsortium.com/zbc/ Ada in Fielded Military server, with automatic generation of . [See also "Zephyr Basecamp and thumbnail pictures in Ada with AWS, [...] Monkey Business Enterprise System" in Systems From: Frank Randolph CIV Beard the "Ada Products" section of this AUJ. -- From: [email protected] (Marc A. dc] Criley) Date: Fri, 25 Apr 2003 13:21:05 -0400 From: Dmitriy Anisimkov Date: 23 Apr 2003 09:16:17 -0700 Subject: RE: the Ada mandate, and why it Subject: Re: Ada in Iraq collapsed and died Date: Mon, 10 Feb 2003 12:47:54 +0600 Newsgroups: comp.lang.ada Newsgroups: comp.lang.ada Subject: Re: Ada95 in business (database) [...] the best one can hope for is anecdotal > [...] some of the most strikingly software bits and pieces. Here's some: Newsgroups: comp.lang.ada successful projects are considered The B2 Weapons System Trainers and strategic (whether in government or You could take a look to the Ada 95 to the Mission Trainers (i.e., flight simulators) business) and are therefore kept secret. (Oracle Call Interface). are programmed in Ada. The shipboard Once again, the feedback loops are http://vagul.tripod.com/adaoci.html. It is Tomahawk engagement planning system blocked and learning does not take also including to the GNADE. started transitioning to an upgraded place on any significant scale. http://gnade.sourceforge.net/ [See also version that was programmed in Ada in I worked on the Space Shuttle ground "Oracle Call Interface (OCI) for Ada95" the late 90s, so it's a safe bet a very high based test chambers. The development in AUJ 21-1 (Apr 2000), p.18, and number of Tomahawk launches were was totally in Ada. The final product was "GNAT Ada 95 Database Development planned with the aid of that system. about 200K lines of code. NASA was Environment" in AUJ 24-1 (Mar 2003), p.14. -- dc] Another souce of info would be reviewing very satisfied with the software. We were the "Military Applications" section of even given an award by NASA. However, I'm intensively using it in the business "Who's using Ada?" our NASA management told us not to tell application development. I know some (http://www.seas.gwu.edu/~mfeldman/ada anyway about the software, because, as a other russian developers using it too. -project-summary.html) and determining government agency, we would have to Frankly, there is no good documentation. which of those systems were likely give a copy of the source code to anyone But there is a good example showing the employed in Iraq. who asked. Among other things, they main functionality, and you can ask me were afraid we would have to provide directly. From: [email protected] (BurnsedBW) Date: 24 Apr 2003 02:18:30 GMT support to the outside world, even if it From: Peter Amey Newsgroups: comp.lang.ada support. I never said anything anywhere Date: Mon, 10 Feb 2003 08:32:17 +0000 that talked about it's success. Organization: Praxis Critical Systems At least the following systems, of which I Subject: Re: Ada95 in business (database) have personal knowledge, are/were Ada95 for Database- software written (and fielded) in Ada: the Oriented Business Newsgroups: comp.lang.ada ATACMS missile (part of MLRS family), Applications the MLRS launcher, and (yes!) the PAC-3 A significant chunk of a secure system we missile. developed in SPARK and Ada 95 From: Mark Wallace involved SQL links to a database. See From: Jerry Petrey "Correctness by Construction - Date: Sun, 09 Feb 2003 05:58:31 GMT Developing a Commercial Secure Date: Thu, 24 Apr 2003 08:38:49 -0700 Subject: Ada95 in business (database) System" in IEEE Software Jan/Feb 2002 Subject: Re: Ada in Iraq software pp18-25. (Also in PDF on Newsgroups: comp.lang.ada Newsgroups: comp.lang.ada www.sparkada.com under publications). It is also used on some of our missiles, the Is anyone using Ada95 for database- ISTR we wrote the binding ourselves but JSOW and Paveway, in particular, as well oriented business applications? [...] My that it wasn't hard. as on the Apache and Comanche team is evaluating Ada95 and Eiffel for a From: Dmitry A. Kazakov helicopters, Longbow missile, F-16 and new development effort, and we are F-18 fighters, B1 bomber, C17, and having a hard time identifying any sort of Date: Mon, 10 Feb 2003 10:37:46 +0100 C130J transports to name a few more track record for Ada95 in this category Subject: Re: Ada95 in business (database) applications. (business/database) of application. All the software Jerry Petrey, Senior Principal Systems Ada95 "buzz" seems to be related to Newsgroups: comp.lang.ada Engineer, Raytheon Missile Systems device drivers and embedded controller software. I am using GNADE (its ODBC binding) From: Richard Riehle with GNAT. GNADE is fine (but ODBC We're willing to swim upstream with and its implementations is a real disaster). Date: Thu, 24 Apr 2003 17:18:54 -0700 regard to non-mainstream languages, AFAIK, GNADE supports Oracle through Organization: AdaWorks Software because we care deeply about software native interface. Engineering quality. However, we have neither the Subject: Re: Ada in Iraq expertise nor the funding to (re)create From: David Botton Newsgroups: comp.lang.ada low-level code such as database interface Date: Mon, 10 Feb 2003 19:16:18 -0500 modules. Subject: Re: Ada95 in business (database) Hellfire missile. Much of the Bradley. software Other armored vehicles. Various software From: Poul-Erik Andreasen Newsgroups: comp.lang.ada systems for some of the bombers. Other stuff that cannot be mentioned. Date: Sun, 9 Feb 2003 12:40:07 +0100 I have used Oracle via ADO using Subject: Re: Ada95 in business (database) GNATCOM working with huge (10s of From: John R. Strohm software millions of rows) databases on call center Newsgroups: comp.lang.ada apps very successfully. I've also created a Date: Fri, 25 Apr 2003 00:37:20 -0500 number of small apps using GWindows Subject: Re: Ada in Iraq I don't know if anyone are using this but and its database components for rapidly Newsgroups: comp.lang.ada you kan have a look: creating database front ends.

Volume 24, Number 2, June 2003 Ada User Journal Ada in Context 97

TOW ITAS (Improved Target Acquisition Jeffrey Carter writes: Back when I was doing Ada, on whatever System: a sight, autotracker, and guidance > I don't wish to belittle the importance of platform, the runtime was part of the total computer for the TOW missile) was the anniversary, but the first Ada Ada toolset package. It came already written in Ada. I worked on it. standard was MIL-STD 1815, 1980 integrated with the rest of the toolkit. The Development was 1994-1995 at Texas Dec 10 (Ada was born 1815 Dec 10). customer normally had to write a board Instruments. I'd be very surprised if it support package to integrate the runtime wasn't fielded by now. You are correct that the first "official" with the peculiar target hardware, but you Ada reference manual was published on have to do that with EVERY executive December 10, 1980. (unless your hardware is COMPLETELY Ada in Context My copy of the Ada80 reference manual off-the-shelf - very rare in military was printed by Springer-Verlag in Lecture embedded systems - and the vendor Feb 17 - It was 20 years ago Notes in Computer Science as issue already supplied you a HIGH-QUALITY today... number 106, with copyright 1980 by the BSP to go with your boards - also very United States Government, [...], is entitled rare in embedded systems). From: [email protected] (Dirk "The Programming Language Ada - And, for the record, a competently-written Craeynest) Reference Manual", with subtitle Ada runtime fits in about 4K. (4K bytes Date: 16 Feb 2003 21:47:52 +0100 "Proposed Standard Document - United on a byte machine, 4K words on a word Subject: Feb 17 - It was 20 years ago States Department of Defense". machine, 4K whatever on a whatever today... Note the "Proposed Standard Document" machine.) (Ichbiah made that statement in Newsgroups: comp.lang.ada in the subtitle. an Ada training video I saw back in about 1990 or 1991. I checked it for the TI Monday February 17, 2003, marks the This Ada80 language definition was 20th anniversary of Ada as a standardized 320C30 Ada toolset from Tartan Labs, "only" a US military standard, was and it was dead on target.) language. On this day in 1983 the first AFAIK never fully implemented, and has Ada standard ANSI/MIL-STD-1815A been non-trivially updated after careful I don't know how much VxWorks or was published. international review to finally result in the LynxOS takes. Anyone have the numbers We've come a long way since, and it Ada83 standard mentioned in my handy? hasn't always been easy. But there's a lot previous message. So, exactly 20 years From: Richard Riehle of momentum in the international Ada ago today, Ada83 became both a military community now. (MIL-STD) and a non-military (ANSI) Date: Wed, 15 Jan 2003 09:43:09 -0800 While there are signs that global standard, which was as we all know later Organization: AdaWorks Software awareness of the importance of reliable adopted unchanged by ISO as an Engineering software is increasing, at the same time international standard. Subject: Re: Ada Compiler Pricing Newsgroups: comp.lang.ada enthusiasm within the Ada world is Happy 25th Anniversary to growing and new activities are springing I remember the Ada project at Xerox up to make Ada an even better language Blue, Green, Red and Yellow where the team built the embedded and even more suitable for the task of cost system for a copier using Ada, and did not effectively building and evolving From: Ben Brosgol need to buy a separate RTOS. They used demanding applications in an ever Date: Mon, 17 Feb 2003 10:56:45 -0500 the one supplied by the Ada compiler changing world. I refer among others to Subject: Happy 25th Anniversary to Blue, publisher. It was a highly successful the work done world-wide in ISO's WG9 Green, Red and Yellow project and the team, along with its and ARG on the evolution of the Ada To: [email protected] manager, realized that Ada was a standard, the involvement of the Ada- And for the real nostalgia enthusiasts, this significant improvement over the way Europe and ACM SIGAda organizations past Saturday (Feb 15) marked the 25th they had built such systems before. to set up a light-weight infrastructure for anniversary of the delivery of the four Xerox executives, with their customary managing upcoming "de facto" standards competing design specs for (as it was then for APIs and libraries (ala C++'s STL), skill at "grabbing defeat from the jaws of known) "DoD1": the Blue, Green, Red, victory" (Smalltalk, Windows Operating the increased interest in Ada-Europe's and and Yellow languages. This was shortly SIGAda's annual conferences (new people systems, etc.), decreed that Ada would not after the "Blizzard of '78" in Boston, so be allowed to be used for anymore and companies attending and exhibiting, John Goodenough (then at SofTech, and more and good quality of submissions, systems. This decree was made even in leader of the Blue team) and I the face of compelling success with it. etc.), increasing "on line" activities in (corresponding position at Intermetrics, newsgroups (comp.lang.ada), mailing for the Red language) had an interesting The project manager, in describing the lists, and on all kinds of web-sites with time on the "finalization" aspects of the project, remarked on the added value that e.g. open source projects, and so on... design and delivery of the documents. Ada provided in eliminating the need for I would like to invite you all to help that purchasing stuff such as VxWorks and momentum grow and to share a bit of Advantages of an Ada RTE related products. Everything they needed your Ada enthusiasm with friends and was in the Ada. colleagues. Contact or form local user From: John R. Strohm I see this kind of dumb management a lot groups, write and/or talk about your in DoD contractor companies. Somehow, professional or hobby projects, speak with Date: Tue, 14 Jan 2003 22:03:23 -0600 these corporate level people are so professors at educational institutes in your Subject: Re: Ada Compiler Pricing enamoured of the slick and glossy ads neighborhood, etc. Newsgroups: comp.lang.ada they fail to recognize quality when they In short: show the world that Ada is very > Commercial RTE's like VxWorks and see it. Xerox has been particularly guilty much alive and has a lot to offer! LynxOS have been ported to most of this kind of glitz thinking when it platforms and are much more popular comes to computing. They could own the Dirk Craeynest, than any Ada RTE. [...] In the real-time marketplace now, if there had been a [email protected] (for shops I've worked with, proposing Ada well-functioning brain in the executive Ada-Belgium/Europe e-mail) for a new project would be considered levels of the company during the rather radical. Seventies and Eighties. [And from a later message: -- dc]

Ada User Journal Volume 24, Number 2, June 2003 Ada in Context 99

file sequence, not due to automatic type other language. Ada allows you to use the Ada Compilers Do Much of promotion surprises etc. computer for things that computers are the Work for You SUMMARY: I don't agree with your good for and humans are not - all that statement for large projects. [...] consistency checking. When I first was From: Warren W. Gay VE3WWG learning Ada I was astonished at the Ada programmers may wince at this, but percentage of my programs that did Date: Thu, 06 Feb 2003 13:14:52 -0500 here is something that I find really useful exactly what I wanted once I had a clean Subject: Re: Bye-bye Ada ? (Ada95 about Ada95 for my own Open Source compile. My debugger skills atrophied. Wholesale Changes?) development: Newsgroups: comp.lang.ada From: Frank Randolph CIV Beard If I look at a spec of a package I want to > I think that any of the regular posters "clean up", and I don't like the way the Date: Thu, 6 Feb 2003 14:12:48 -0500 here would be able to program as well data type is presented, and want to make Subject: RE: Bye-bye Ada ? (Ada95 in C++ as in Ada. I'm pretty sure that if some sort of wholesale change to the Wholesale Changes?) I had to work in Ada it wouldn't take package, I'll first make the necessary Newsgroups: comp.lang.ada me very long to get up to expert level. tweaks or major changes to the specs. This may include: changing constants to I don't know how "critical" you mean, but Well, I can say that for small projects, I've used this feature of Ada on a number your statement is probably true. enumerated types / vice versa; changing a weak type to a strong type; making types of occasions which stemmed multiple But I can speak for my own experience, more range specified (subtypes); changing projects from running the on ground test that in largish C++ projects, I always function/procedure API changes; change a chambers for the Space Shuttle group, to spent an incredible amount of time record/tagged type (class) to the other the onboard Space Station data storage looking in core files and working with a kind; etc. and retrieval component, to a Naval debugger to find out why some "strange communications project. Then I jump into , and start behaviour" was happening in those C++ Even though our tools usually give us the projects. Sometimes it was related to those invoking "make" and let the compiler tell me about all of those new errors that will capability to see a callers graph, it is still automatic type promotions, and at other more useful to prototype changes in the times, it was related to memory corruption now spew of the compiler. Using emacs I jump to the source of the error (using spec and have the compiler reliably show problems of one sort or another (and it me the immediate impacts of the changes. need not even be your own code! emacs macros) and make all the necessary changes, until the errors go away. With And once the changes made it to fruition, Sometimes C++ library code does this to they required very little debugging. you). Ada95 this has never failed me, though I expect some little case may bite me some I don't think I've ever openly shared this On top of all this, once you get your large day, doing changes like this. information even with fellow Ada C++ application to actually work, you THIS HAS NEVER WORKED WELL developers, but it sure does make things then want to "port it" to another platform, easier. with sometimes a different compiler (or FOR C++. C++ would never identify all even a different/updated gcc compiler). of the necessary changes, because of the From: David Botton What do you find? Changed behavior in number of "automatic conversions" and so Date: Thu, 6 Feb 2003 17:16:43 -0500 automatic type promotion, leading to on. C++ never tells you that you have a Subject: Re: Bye-bye Ada ? (Ada95 changed application behavior; #include missing case in a switch statement, and its Wholesale Changes?) file problems; C++ library very forgiving mixing enumerated types Newsgroups: comp.lang.ada incompatibilities/limitations. with ints etc. C++ will not tell you when a Doesn't every one do this? related constant or #define needs to be Sure you can say that this occurs due to updated. Richard Riehle once wrote: "But the poor planning, or design. But the Ada compiler will catch any potential point is that this is not checked, nor This Ada95 feature has made it possible ambiguities. This is the key point. Ada is enforced up front by your tools. My hobby for me to very quickly produce clean designed to detect inconsistencies, time is time I hate wasting this way ;-) library interfaces, because I am not irregularities, discontinuities, reluctant to make wholesale changes when In smallish projects, Ada sometimes takes incongruencies, and unconfirmable I think it might be beneficial to the client. constructs earlier in the software me longer. This is usually due to library [...] issues and bindings. development process than any other I'd be interested if anyone actually uses language. " The payoff is huge though (for me) in this type of procedure in more "critical" Also, see his article on Ada Power at: largish projects. In the last 4 years (I application development roles. I am sure think) of using Ada (since my conversion http://www.adapower.com/articles/capsule that others must take advantage of this, if .html ;), I've only encountered memory not secretly so? ;-) Is this type of thing corruption once (I had freed an object frowned upon by DOD projects, or do This is THE reason that Ada should be twice due a logic/design error). The rest of they even know this type of thing THE choice for almost every project. In my time is "quality time with the happens? Just curious. particular for the free time hack! compiler", learning how to avoid certain From: Jerry Petrey design errors, and learning how to better Warren W. Gay VE3WWG, http://home.cogeco.ca/~ve3wwg engineer modules so that the dependencies Date: Thu, 06 Feb 2003 16:00:48 -0700 are pure and correct (C++'s elaboration is From: Robert Spooner Subject: Re: Bye-bye Ada ? (Ada95 pale by comparison). My debugging time Date: Thu, 06 Feb 2003 13:51:36 -0500 Wholesale Changes?) is 25% or less of the C++ debugging time. Organization: Penn State University, Center Newsgroups: comp.lang.ada (This gives me a much more pleasant use for Academic Computing of my hobby time). When I debug, it is Subject: Re: Bye-bye Ada ? (Ada95 You mean there is another way? :-) I have because I am finding out why _I_ made Wholesale Changes?) always used this method with Ada some logic error. It is not due to Newsgroups: comp.lang.ada development. corruption, or some faulty elaboration I have done this. It's particularly helpful That is one of the things I love about Ada order; not due to external memory when I haven't gotten the design right the - you can let the compiler do so much of references that the linker decided were the first time because of a lack of information the work for you. I have often had people same (name collision), not due to #include early-on. I can't imagine doing it in any new to Ada come to me asking "can I do

Ada User Journal Volume 24, Number 2, June 2003 100 Ada in Context this or that in Ada?" - I usually tell them language doesn't matter. The problem is bring up the average quality of the "30% to try it and see - let the compiler tell you that it's far harder to find a truly skilled to 98%" skill levels of programming. if it won't work; you will learn something C++ master than it is a C one. Both are My personal opinion is that C++ induces from the exercise in either case. It is hard many times harder to find than a skilled too much "risk" both in programs, where to imagine using a language and compiler Java guru. Not sure about Ada. working programs and buggy programs without this level of checking again. From: Steve are almost interlocking dense sets (in the Jerry Petrey, Senior Principal Systems Date: Thu, 27 Feb 2003 03:35:09 GMT mathematical sense) and among Engineer, Raytheon Missile Systems Subject: Re: Ada versus language-X and programmers. That is there is some non- From: Dmitry A. Kazakov "getting real work done" zero chance that you might end up with a Newsgroups: programmer, perhaps good at lots of other Date: Fri, 07 Feb 2003 10:22:04 +0100 comp.lang.java.advocacy,comp.object,co things, who is just plain unable to be Subject: Re: Bye-bye Ada ? (Ada95 mp.lang.ada reliably successful with C++. I think that Wholesale Changes?) [..], there is a significant evidence the would be much less likely with other Newsgroups: comp.lang.ada choice of language does in fact matter. A programming languages. I am using this technique for both C++ significant amount of work has been done From: JXStern and Ada, mostly because the strategy of to determine factors that effect the cost of our firm and our customers is: "very quick developing software, defect rate, etc. Date: Thu, 27 Feb 2003 23:49:26 GMT and incredibly dirty". (:-)) This information is usually ignored. [...] Subject: Re: Ada versus language-X and "getting real work done" It works perfectly in Ada, but has serious From: [email protected] (Kent Paul Newsgroups: comp.object ,comp.lang.ada, problems in C++, especially with MS Dolan) comp.lang.java.advocacy VC++, which is unable to recompile as Date: 26 Feb 2003 23:09:01 -0800 necessary, even if precompiled hearders Subject: Re: Ada versus language-X and [On why it is harder to find a skilled C++ are not used (this feature does not work "getting real work done" master rather than a mediocre one. -- dc] anyway). It is disastrous because a Newsgroups: Because the language is a mess, and there recompile-all lasts for 4-hours to see how comp.lang.java.advocacy,comp.object,co is no objective measure of who is a thousands compile errors appear on the mp.lang.ada,misc.misc "master". Is it someone who can make screen. [...] > Programming language choice is so far instant sense out of the worst mess anyone Dmitry Kazakov, www.dmitry- from a factor [...] hands him? Then it ain't me. Is it someone kazakov.de who makes rather spare use out of obscure Interesting that your experience should be constructs? That would be me, but I would From: Warren W. Gay VE3WWG so in contrast to the ten years of research be down-rated because of it in many and effort DoD put into studying that very evaluation contexts. That I do it on Date: Mon, 10 Feb 2003 12:16:17 -0500 issue in their own shops using their own purpose, is generally not appreciated. That Subject: Re: Bye-bye Ada ? (Ada95 code and repeated system interoperation I got here via the other path, is not Wholesale Changes?) experiences to the contrary, in the work understood. [...] Newsgroups: comp.lang.ada leading up to the first Ada language standard. I'm sure your correction to From: John R. Strohm I appreciate the comments you and others have made to this informal "curiosity history will be of great value to those who participated in it. [...] Date: Fri, 7 Mar 2003 12:59:44 -0600 poll". This confirms the general usefulness Subject: Re: Ada versus language-X and of the Ada compiler in this role. I think From: Dr Chaos "getting real work done" this goes a long way to creating good Date: Thu, 27 Feb 2003 22:06:20 +0000 Newsgroups: comp.lang.java.advocacy, "APIs", since the programmer is much Organization: Univ of Calif San Diego comp.object, comp.lang.ada more inclined to make sweeping changes Subject: Re: Ada versus language-X and if it is seen as beneficial. [...] "getting real work done" What you miss in that statement is that it Newsgroups: comp.lang.java.advocacy, is nowhere near as necessary to HAVE Programming Language comp.object, comp.lang.ada guru-level programmers when working in Followup-To: comp.lang.java.advocacy Ada. The compiler catches many of the Choice Matters problems that in C or C++ would > Programming language choice is a normally require the guru to meditate long From: [email protected] factor. If you have a skilled and hard, and perhaps consult the entrails Date: Wed, 26 Feb 2003 20:47:04 -0600 programmer, language doesn't matter. of a freshly-killed junior programmer. Subject: Re: Ada versus language-X and "getting real work done" This is an assertion that is frequently From: Karen Newsgroups: made, but rather questionable without comp.lang.java.advocacy,comp.object,co empirical evidence one way or another. Date: Fri, 28 Feb 2003 00:13:29 GMT mp.lang.ada With persistence and skill, programmers Subject: Re: Ada versus language-X and can overcome many deficiencies, but "getting real work done" > Programming language choice is so far deficiencies they still are. Newsgroups: comp.lang.java.advocacy, from a factor in interoperability and comp.object, comp.lang.ada communications that your comments > The problem is that it's far harder to are laughable. find a truly skilled C++ master than it is [...] Ada is without doubt a solid language. a C one. Its the only language I have found where Why are stack buffer overflow problems Why is that? Perhaps there is something you can teach it through the structure of such an issue in C when programs receive teaching software engineering. (Teach s/w communications that differ from what the intrinsic about the language design there because it's not a lack of exposure. eng. goals -> principles -> language programmer expected? Yes, I'm aware this constructs, so the students know why to is a programmer deficiency. Subscribe to > Both are many times harder to find than do something, not simply the syntax). something like Bugtraq for any length of a skilled Java guru. Not sure about Ada. The real benefit of other languages is the time, and you'll see the same programmer Why is guru-ness so correlated with problems over and over and over again. leverage it can give you to interface / language now? My personal opinion is exploit COTS products that provide Programming language choice is a factor. that good languages ought to, and do, services in only another language. For If you have a skilled programmer,

Volume 24, Number 2, June 2003 Ada User Journal Ada in Context 101 ages the only way to integrate a > That restriction was in the Java license some threshold, GC was triggered and it commercial GUI into a system, was to go because Java is garbage-collected and started over. via C and later C++. We had to wait so the garbage collector can run at From: Tor Iver Wilhelmsen long for native Ada GUI services it was arbitrary times and take however long it laughable. Only with Ada 95 was the needs. [...] Date: 16 Apr 2003 07:16:54 +0200 "Ada - I'm the centre of the world and if GC was one (but not the only) reason for Subject: Re: real-time Java you can't play Ada, I won't play with you" the disclaimer. "Java technology" includes Newsgroups: view changed, and decent mixed langage the class libraries, and that stuff was comp.lang.java.advocacy,comp.lang.ada systems could be built - opening the way definitely not written to comply with any Welcome to the wonderful world of non- to exploit commercial tools but still use a software safety standards. decent language for the 'business logic immutable events leading to tons of events (e.g. defence) s/w. created and discarded in any given Swing On Real-Time Java and application as it runs. Even if you did My organisation routinely rolls out Garbage Collection absolutely nothing, Swing (and possibly multimillion lines systems (soft real-time) JBuilder's "virtual file system") was for the defence industry - and it works. From: [email protected] (Kent Paul generating events like asking itself if it Increasingly we exploit commercial s/w Dolan) needed to repaint etc. products, embeded into out systems, but Date: 10 Apr 2003 23:10:00 -0700 the core is Ada, and we have no intention Subject: Re: real-time Java From: Wesley Groleau of changing that. Newsgroups: comp.lang.java.advocacy,comp.lang.ada Date: Tue, 15 Apr 2003 13:43:29 -0500 Feedback to BBC's Item on Subject: Re: real-time Java > I've been hearing a lot lately about real- Newsgroups: Responsible Coding time Java. I must confess I'm baffled comp.lang.java.advocacy,comp.lang.ada about the motivation behind this From: Carlisle Martin C Dr USAFA/DFCS endeavor. Would someone please tell [About the JVM as a shared library or me what real-time Java will be able to resident in the OS, instead of having every Date: Wed, 2 Apr 2003 11:03:17 -0700 do that Ada can't do? Or what it will be Java program in a multi-user environment Subject: Re: BBC on "responsible coding" able to do better than Ada? Thanks. running its own copy of the JVM. -- dc] To: [email protected] Sure: bring a popular, thriving, employer- > Unix and Windows will load only one [In response to an article entitled "Call for demanded language with a wealth of copy of a binary no matter if it's an 'responsible' coding" at libraries and a robust built-in GUI into the executable or shared library. So there is http://news.bbc.co.uk/2/hi/technology/289 real time arena. only one copy of the garbage collector 5177.stm -- dc] code. I don't see how collector data How the heck you do that with a language could be shared though. Have submitted the following: subject to garbage collection is going to While I agree with Ken Nelson that Java be an interesting thing to watch happen. I can't speak for Windows, but this is not represents a significant improvement over Some complaints in true of Solaris. The project I recently left C in this regard, you certainly won't find comp.lang.java.programmer mention Java had a problem reporting/tracking tool in any Boeing 747's running Java. Note the going off to stew for whole minutes at a Java. Everybody used it. That mean that at following quotation from: time. any given time, the physical memory and swap space had twenty to thirty copies of http://java.sun.com/products/jdk/1.2/LICE From: [email protected] (Wojtek the JVM running, and each copy had NSE Narczynski) additional memory allocated to all the "4. High Risk Activities. Notwithstanding Date: 15 Apr 2003 10:59:10 -0700 same classes. Subject: Re: real-time Java Section 2, with respect to high risk From: [email protected] (Kent Paul activities, the following language shall Newsgroups: comp.lang.java.advocacy,comp.lang.ada Dolan) apply: the Software is not designed or Date: 15 Apr 2003 18:07:20 -0700 intended for use in on-line control of [...], garbage collector can be deterministic Subject: Re: real-time Java aircraft, air traffic, aircraft navigation or thus realtime. But in practice my Newsgroups: comp.lang.java.advocacy, aircraft communications; or in the design, experience with Java libraries is that the comp.lang.ada construction, operation or maintenance of developers relieved of the necessity to free any nuclear facility. Sun disclaims any memory explicitly, tend to forget about Hmm, that does raise an interesting point, express or implied warranty of fitness for memory management completely (i.e. not though. Even if the JVM code space were such uses." clear stale references). You're stuck with shared, the classes are JVM _data_, not OutOfMemoryError even though there is underlying OS _code_, and so might not In such cases, Boeing and others who be sharable, unless the clean page/dirty must meet FAA certification have shown no "garbage" per se in the running app, and you really cannot do much. You page rules [...] hold for _any_ disk page a clear preference for Ada, whose strong images (which might well be the case). typing facilities promote secure coding. In cannot contact the vendor and say - "your library leaks". [...] Even then, there is next to no way the JIT fact, the SPARK subset of Ada allows native code could be shared, but perhaps it programmer to actually have automated From: Wesley Groleau is a relatively small item compared to the proofs that software doesn't contain major classes from which it is compiled, since it categories of errors, well beyond those Date: Tue, 15 Apr 2003 13:47:02 -0500 is only the hot loops of those classes. mentioned in this article. Subject: Re: real-time Java Martin C. Carlisle, Associate Professor Newsgroups: Java vs Ada: the Good, the and Advisor-in-Charge, Department of comp.lang.java.advocacy,comp.lang.ada Bad and the Ugly Computer Science, United States Air I was amused at JBuilder one day. I pulled Force Academy down an "info" menu option. At the From: Wesley Groleau From: Ben Brosgol bottom of the little widget that popped up Date: Fri, 4 Apr 2003 13:48:17 -0500 was the amount of memory in use. Even Date: Thu, 24 Apr 2003 09:03:53 -0500 Subject: Re: BBC on "responsible coding" though I was doing absolutely nothing, the Subject: Re: Ada in Iraq To: [email protected] number kept slowly rising. When it hit Newsgroups: comp.lang.ada

Ada User Journal Volume 24, Number 2, June 2003 102 Ada in Context

I am just finishing up a college course in managers, were the real problem. At that to recommend it for high-integrity Java. Reflecting back on the good, the time, other ATC systems had already been software. Other languages have a lot to bad, and the ugly. completed in Ada and were successfully recommend them. This started as a PL/I Good: All the times (not as many as I was doing their job. thread, and I have learned, more recently, led to expect) where I saved time by The problem is not the language. As of improvements in PL/I since I last used calling some existing standard library someone else once said, "A fool with a it. Even so, PL/I, for all its improvements, instead of writing my own. tool is still a fool." From my vantage requires skilled programmers. Ada point, having a fairly broad experience requires skilled programmers. C++ Bad: All the times (not as many as I was requires skilled programmers. [...] led to expect) where I wasted time with a lot of programming languages, repeatedly writing low-level Ada, once it is understood, continues to be Ada is like using a torque wrench. C++ is implementations of things that Ada has the most appropriate choice for systems like using any convenient long-handled built in. such as the F-22. The fact that developers wrench. If the mechanic is careful and has can find a way to screw it up does not a lot of experience, using that long- Ugly: Line after line of defined integer detract from the value of the language. If handled wrench, it will work just fine. In constants to get the readability benefits of they can make a mess using a language most cases, though, we might find the enumerated types with not even a hint of with the rigorous controls built into Ada, torque wrench a little more reliable. their type safety. Most "roll-your-own" imagine the magnitude of the mess they However, if we have no clue about the imitations of high-level language features could make with, say, C++. And, no, PL/I appropriate level of torque, cannot before- are seriously less readable than built-in would not help with a system this large hand do the required computations, and versions. (A.multiply(A)).add and complex. have no idea what torque is, we are going (B.multiply(B)) instead of A * A + B * B From: Jerry Petrey to twist off the head of the bolt just as easily as the guy with the simple long- On Quality of Tools and Date: Fri, 21 Feb 2003 15:37:17 -0700 handled wrench. Management Organization: Raytheon Company From: Preben Randhol Subject: Re: Donald's F-22 Question Date: Thu, 20 Feb 2003 17:15:10 +0000 From: Richard Riehle Newsgroups: comp.lang.pl1,comp.lang.ada Organization: Norwegian university of I worked for Lockheed during part of the science and technology Date: Thu, 20 Feb 2003 07:49:58 -0800 Subject: Re: status of PL/I as a viable Organization: AdaWorks Software F22 development period although not directly on the F22 program but on language Engineering Newsgroups: comp.lang.ada Subject: Re: status of PL/I as a viable another aircraft system (in Ada also). The language problem is a common one on large > You're right in that good (really good) Newsgroups: comp.lang.pl1,comp.lang.ada programs – mostly one of management. programmers can produce successful Managers assume all engineers are alike. code not matter what tools (languages) > [...] one of the lead stories today on the There were a few good Ada programmers they have to tolerate while poor Aviation Week web site and a lot of average or below average programmers (or at least poorly trained) www.aviationnow.com describes how AdaTran and AdaC programmers ("I can will screw it up no matter how good or the F-22 program is now some $800 write Fortran (or C) in any language" bulletproof the language. Your ATC million overrun because of delays people). The overall code that resulted, example undoubtedly proves the point. caused by unreliable software. They can while Ada, was certainly not good Ada. It get it to run for about 8 hrs in the lab Yes, but if you are a good programmer was a mess to get working and resulted in you would want to use the most before it crashes, but in the actual test huge cost overruns, but I would guess it flights it fails within 3.5 hours forcing appropriate tool. Especially when time is would have been much worse if they had not something you have a lot of in a the pilot to reboot the system while in used some other language. mid-flight. If they are using Ada as you project. contend, then this is a terrible Certainly using Ada does not solve all the From: Vinzent Hoefler indictment and confirms what I had problems but it does make the job a little heard earlier about the language's easier of having a wide variety of skill Date: Thu, 20 Feb 2003 16:20:55 -0500 shortcomings. levels involved on a large project. With Subject: Re: status of PL/I as a viable some good management (rarer than hen's The F-22 is one of the most complex language teeth) and letting the minority of top notch Newsgroups: comp.lang.ada systems, software and hardware, even software engineers manage and enforce a conceived. As we discussed earlier, with good process, great results can be > Which is to say, complex systems can regard to other language environments, achieved even with a lot of lessor skilled have complex failure modes, the quality of the available tools can help people on the team. This may be true in Right. only so much. other languages as well, but more so in Ada is designed to maximize the amount Ada, and every advantage helps in a large > and the fact that some programming of error checking possible as early in the project like this. languages will catch simple errors isn't development process as possible. I know going to help at all with the complex Jerry Petrey, Senior Principal Systems ones. of no other language does this as well as Engineer, Raytheon Missile Systems Ada. As stated earlier, competent people NAK. One thing is for sure: The ability to have used Ada for a wide variety of From: Richard Riehle get rid of all the small, stupid, simple successful large-scale, safety-critical errors - and even those have very bad software systems. On the other hand, less Date: Fri, 21 Feb 2003 12:41:23 -0800 consequences a lot of times - helps to keep competent people have used Ada, PL/I, Organization: AdaWorks Software concentrated on avoiding the complex C++, C, etc. for a wide variety of Engineering ones. unsuccessful systems. At least one Ada Subject: Re: status of PL/I as a viable failure that I know of by reports from language Building Quality In vs participants rather than from first-hand Newsgroups: comp.lang.pl1,comp.lang.ada Testing Quality knowledge was an Air Traffic Control [...] We need to understand that there are system. The people who were managing limits to what can be accomplished by From: Marin David Condic the system blamed Ada when they, the depending only on our tools. Ada has a lot

Volume 24, Number 2, June 2003 Ada User Journal Ada in Context 103

Date: Tue, 25 Feb 2003 08:10:23 -0500 documentary on Ada Lovelace. It is called "First class and very well done." -- Joel Subject: Re: Quality (Re: status of PL/I as a "To Dream Tomorrow: A Portrait of Ada Shurkin, Pultizer Prize Winner and author viable language) Lovelace" Produced and directed by John of Engines of the Mind Newsgroups: comp.lang.pl1,comp.lang.ada Fuegi and Jo Francis. Color, 53 mins Deepak Kumar, Associate Professor of > When you talk about quality, I think a (2003). Computer Science, Bryn Mawr College, key issue is a discussion about building We did a screening of this documentary [email protected] quality versus testing quality. What two weeks ago as a part of our means "building quality into "Computing History Month" (see Ada and Security Issues something"? www.cs.brynmawr.edu) From: Shmuel (Seymour J.) Metz You can never escape the necessity of John and Jo came to do the screening, and testing. Whatever you build will led a Q&A session afterwards which was Date: Fri, 21 Feb 2003 15:16:36 -0500 ultimately be tested so long as it is absolutely wonderful, not to mention eye Subject: Re: status of PL/I as a viable actually used. Either you test it or your opening. The documentary is well language customer tests it. But that said, testing researched, beautifully filmed, and begins Newsgroups: comp.lang.pl1,comp.lang.ada can't build in quality. It can only to debunk several myths floating around demonstrate quality - or the lack thereof. about Ada Lovelace among even the most > The problem is that those errors which Ideally, you would build a product, test it notable historians. are caught are gross errors of coding - buffer overruns, null pointer accesses, and find zero errors or defects. That would I think this is an important artifact in the arithmetic overflow, etc. But serious reflect building the quality in. Going history of computing, especially errors in complex software aren't caused through a cycle of testing it, fixing it, pertaining to the role and engagement of (only) by these sorts of errors. testing it again, fixing it again, ..., is an women in Math & Computer Science. attempt to test the quality into a product. Personally, I think every computer science True. But a huge proportion of the Using that approach, you might eventually program should own a copy and do a exploits in Internet software rely on buffer get to zero defects, but it takes longer and regular screening. The rights to public underruns, which wouldn't exist in a costs more than if the test immediately screening are very very cheap. Please language like Ada [...]. And, yes, the revealed zero defects. contact Flare Films at www.flarefilms.org checking can be turned off in Ada, but I would hope that such an abomination Ada is not the end-all, be-all of software The movie has only been screened at a would never get through code review. development. It is absolutely not going to handful of places so far, it will be guarantee that you get to zero defects. formally premiered in Washington DC From: Berend de Boer However, one of the things I really like this summer. Some comments about the Date: Mon, 24 Feb 2003 08:19:01 +1300 about Ada is that it tends to catch lots of film are attched below. Subject: Re: status of PL/I as a viable simpler errors up front and never lets them language "An engaging, beautiful, well researched get into the finished product. (Things like Newsgroups: comp.lang.ada type checking, parameter/interface film that tells the story of the remarkable checking, bounds checking, etc.) On my woman who fought against the customs of I'm pretty sure that with those checks project I know from metrics that this saves her day to participate in the dawn of the included we would have zero buffer me cost & schedule compared against the computer age." -- Leonard J. Shustek, overflow errors and your credit card info use of some other languages. (Fortran, C Chair, Computer History Museum, Silicon would be a lot safer. and Assembler, mostly) To the extent that Valley From: [email protected] (Larry a language eliminates errors up-front, I "'To Dream Tomorrow' is a moving and Kilgallen) think that goes to "Building Quality In" intelligent documentary on the fascinating Date: 24 Feb 2003 06:00:06 -0600 and the odd thing is that it costs less to life of Ada Byron Lovelace, who had the Subject: Re: status of PL/I as a viable build a better product. vision to see the principles of computing language Marin David Condic. My project is: 100 years before the appearance of the Newsgroups: comp.lang.ada http://www.jsf.mil/ modern computer." -- Irvin Kershner, > Complex software has complex failure Director of "The Empire Strikes Back" modes. Patting yourself on the back for To Dream Tomorrow: A "In their beautiful documentary about Ada catching buffer overruns is a little Portrait of Ada Lovelace Lovelace, 'To Dream Tomorrow," John premature. Fuegi and Jo Francis have brought to light Patting oneself on the back for always From: John McCormick the life of an extraordinary woman and avoiding automated tools for catching her contributions to the early history of buffer overflows is also silly, and some Date: Fri, 25 Apr 2003 15:24:43 -0500 computing." -- Karen Mathews, Executive C* programmers do that. (Yes, I group C, Subject: Fwd: New Documentary on Ada Vice President, Computer History C++, C# all together, because many of Lovelace Museum their advocates do, praising the ability to To: [email protected] "The film was wonderful and I enjoyed write C with a C++ compiler.) [John W. McCormick, Computer Science every minute! The questions were very Department, University of Northern Iowa, good and your answers were like the film: On Run-Time Checks in forwarded Deepak Kumar's message that clean and superb." -- Professor Thomas Operational Code was posted to the ACM SIGCSE list. See Bergin, Editor, Annals of the History of also "Jan 21 - U.S. Premiere of New Computing From: Randy Brukardt Documentary Film" in AUJ 24-1 (Mar "Just as Ada's father the poet Lord Byron 2003), p.6. A screening of this had a genius for writing so Ada had a Date: Fri, 21 Feb 2003 14:51:01 -0600 documentary plus Q&A session with its genius for practical mathematics, her Subject: Re: status of PL/I as a viable director John Fuegi has been included in application of which has been as great a language the social events program of the Ada- contribution to the world of computers as Newsgroups: comp.lang.ada Europe 2003 conference as well. -- dc] that of her father to the world of [Upon a claim that run-time checks are On behalf of Flare Films literature." -- Geoffrey Bond, Chair, fine for testing, but are better disabled in (www.flarefilms.org) I would like to London Byron Society released applications in cases where announce the completion of a fresh new continued operation is important, because

Ada User Journal Volume 24, Number 2, June 2003 104 Ada in Context it's more likely that a program which "gets because it was trying to write outside of a write-once, "hope you don't have to read it away" with making such an error can keep buffer. Of course, its not actually doing again" language). I've also witnessed working, program away. -- dc] any damage. endless problems with module Usually it is better to make the checks and The point, of course, is that I didn't write version/compatibilities problems, on hosts prevent the "wrong answer". This is, after any code to detect this failure. Indeed, if I where some people felt Perl was all, the cause of so many of the security had realized where I'd forgotten to protect appropriate for production. holes on the Internet. against buffer overflow, of course I would FORTRAN IMO, is OK for legacy stuff The web server for AdaIC is written in have fixed it – adding checking code that is already in that language (tested and Ada. I've left all of the checking on, and beyond that would be silly. So the "being trusted), with the usual caveat that it provide a global exception handler for a great programmer" would not have depends on the application (it _may_ each worker thread. Thus, the worst that helped here - I had already tried to detect never be good enough for space shuttles, can happen for a mistaken check is the all of the overflow cases, but I missed a and other critical stuff). currently processed operation to be few. That's called being human. This is a long winded way of simply abandoned (the server sends an internal From: [email protected] saying, I don't believe that there are many error response to the client). That prevents Date: Fri, 14 Mar 2003 02:30:25 GMT applications for those inferior tools today. all sort of security holes from buffer Subject: Re: AdaIC opens the Ada Sites I also believe that better tools exist overflows and the like. search engine (Ada95), and that too many people jump It of course does not prevent all errors, but Newsgroups: comp.lang.ada on the "efficiency bandwagon" instead it allowed me to focus on blocking the > The AdaIC search engine is created (C/C++). [...] OTOH, _reliability_ common security problems that are with a set of Ada applications, all becomes increasingly important for algorithmic in nature, like traversal errors. written in Ada 95. For more on the general purpose computing as we try to search engine and how to use it, see build upon a foundation. It's hard to build Although the code has had a variety of on a shakey one. ;-) buffer overflow and other bugs cause http://www.adaic.com/site/search- individual operations to fail, the server has info.html. From: Richard Riehle continued to run and process other [See also "AdaIC Opens Ada Sites Search operations correctly for the entire 18 Engine" in the "Ada-related Resources" Date: Tue, 04 Feb 2003 21:26:18 -0800 months. (And, all failures have been section earlier in this AUJ. -- dc] Organization: AdaWorks Software logged so that the cause can be tracked Engineering It's interesting to compare this to the Subject: Re: Bye-bye Ada ? down easily). This has allowed the focus recent: to be on the web site's contents, not on Newsgroups: comp.lang.ada keeping the server running. > DeleGate versions prior to 8.5.0 do not > I know *I* can write reasonably good properly handle large robot.txt files, software in C++. When we have errors, There probably are cases where it is better thereby allowing a malicious Web site to run with checks off. (We always did it's due to problems in logic, not to execute arbitrary code on the problems in the language. But anyway, that with Janus/Ada for MS-DOS, just to DeleGate system. This vulnerability is keep the compiler size managable. That's fine. Don't program in C++, do what confirmed and fixed in version 8.5.0. you want. not an issue on Windows.) But I would Source: SecurityFocus Bugtraq generally prefer to err on the side of http://archives.neohapsis.com/archives/ Ah, and there's the issue. [...] The issue is leaving checks on unless it is necessary to bugtraq/2003-03/0160.html not my preference, it is about choosing the do otherwise. correct tool for the job to be done. The early indexer didn't handle giant From: Randy Brukardt robots.txt files gracefully either. It just It is also not about whether someone who stopped and logged the problem however: is an expert using a particular set of tools Date: Mon, 24 Feb 2003 14:15:19 -0600 no "arbitrary code execution" since it was can do the job better than someone who is Subject: Re: status of PL/I as a viable written in Ada and no checks were not an expert. During a trip to Japan, I language suppressed. watched an expert in Japanese Joinery Newsgroups: comp.lang.ada create the components for a Temple using > Buffer overflow? How? Selecting an Appropriate only hand tools, his keen eye, and his many years of experience. Each In order to avoid dynamic allocation of Language component fit together with a perfection commands, I put the parsed commands few others could achieve, even with more into a record type with a bunch of From: Warren W. Gay VE3WWG years of experience. This is an example of statically bounded strings. These have to craftsmanship that few could match. be carefully handled for overflow, and Date: Tue, 04 Feb 2003 12:59:13 -0500 there were a couple of obscure cases Subject: Re: Bye-bye Ada ? In my view, C++ is too prone to errors, where I got it wrong. Of course, nothing Newsgroups: comp.lang.ada even when used by experienced craftspersons. Those with the skill of the bad happened, I just got a logged [...], I'll confess that I don't believe that Constraint_Error and the command was Japanese Joinery expert cited in the above there are many appropriate "production paragraph are likely to produce defect-free aborted. (Since the problems all came level" applications that should _today_ be from people trying to break in, I wasn't code. We cannot depend on that level of written in Perl, FORTRAN or assembly expertise. It is rare. It is unpredictable. It even particularly upset that they weren't language. Sure, device drivers are still served...) is not easily confirmed. The more C++ appropriate, and for small segments of an code I see, and the more programmers I [And from a later message: -- dc] operating system where squeezing the last see trying to use it, in particular, for byte out of the code is important (like a weapon-systems, the more concerned I > So in reality it wasn't a buffer overflow boot sector program segment). as Ada caught it, while if it had been in have become about the potential for C you would have had a buffer Perl is OK for a quick and dirty "hack failure due to unpredictable behavior in overflow and possibly people breaking something together" to perform a one time the resulting code. It is so easy to compile in. Did I understand it correctly? job. Perl is absolutely the wrong language a C++ program that behaves strangely to use if someone at a later point in time, after executing for some unspecified Right. I think of "Constraint_Error" being and especially a _different_ someone, is period of time. raised as a detected buffer overflow, stuck with maintaining it (it is IMHO, a

Volume 24, Number 2, June 2003 Ada User Journal Ada in Context 105

My preference for Ada is not made out of VB. To maintain it, you need someone bent. Long years in doing software by ignorance of the other options. It is made who knows each language fairly well. contract has stunted their ability to do because I have discovered that defect-free Otherwise, you could end up with kludged anything except on-spec. The large users software is best created when the updates in the future. of Ada such as Lockheed, CSC, Raytheon, creational tools assist in preventing From: Preben Randhol etc., simply don't have the kind of defects. At present, it is not a matter of Date: Tue, 4 Feb 2003 13:34:55 +0000 management that understands free-market _can_ we create defect-free software in Organization: Norwegian university of risk-taking. I recall a conversation with C++. We certainly can. It is, rather, what science and technology one high-ranking official of one of the is the probability of the code being defect- Subject: Re: One language environment large DoD software developers. He asked free in C++ and in Ada. In my view, there don't have future what kind of commercial opportunities I is a greater likelihood of producing defect- Newsgroups: comp.lang.ada saw for Ada. I listed several. His reply free software in Ada than in C++. astonished me. "But who will fund it?" And if memory serves me well this was the It is not only a matter of reducing defects. My answer, stunned him. "No one. You (or at least one) initial concern that need to fund it yourself once you When I look at Ada and then at C++, I sparked the development of Ada :-) realize that Ada provides other substantial determine there is a market." benefits. In Ada, used well, I achieve a On a Vertical Marketing [And from a later message: -- dc] greater level of traceability than I can Approach The last thing you want is outside money. achieve in C++. Without resorting to Stay away from Venture Capitalists. They embedded comments, I can code in Ada will destroy your product, your will, your so the meaning of each construct is From: Richard Riehle self-esteem, and everything you loved intuitive, unambiguous, and absolutely about what you were doing. explicit, and do it more effectively than I Date: Mon, 03 Feb 2003 09:26:34 -0800 can with C++. Organization: AdaWorks Software Software has the benefit of being a low Engineering resource product. One or two people can As I compare the two languages in terms Subject: Re: Bye-bye Ada ? build a product in a short time. This is one of long-term maintenance, it becomes Newsgroups: comp.lang.ada place where some of the Agile clear, to me, that Ada supports this > Develop something for a narrower Development ideas can benefit a couple of important goal far better than C++. It is people with a great idea. If you have a more readable long after being created. industry that has a large software component and some other sort of corporate sponsor who will let you share There are far fewer little gotchas than I in the harvest, good. But find a sponsor might expect in corresponding C++ code. value-added product (like an integrated cash register or some on-line service - who has the same vision you have of the From where I sit, when making a decision that's where you make the *real* final product. about software that needs to live a long money) and you've got something A good model to emulate is that of the time, must be maintained over a long where the big players aren't going to founder's of Quicken products. Check out time, must work as predicted for a long drive you out of the market. how they built their company. Even Bill time, it is clear that I must choose Ada This is called a "vertical marketing" Gates story includes some positive over C++. It is the responsible thing to do. lessons, if one overlooks the devious [...] approach. Develop expertise in a particular industry, learn its demands, its methods he sometimes employs to get On Mixed Language needs, and its way of doing business. results. Then, build a product that is easier to use, > Most folks don't have the entrepeneurial Development more reliable, and more closely mapped to spirit. Its not a crime. It just means they the way that industry does business. Keep From: Frank Randolph CIV Beard aren't likely to head in the direction that the product current as the technology will lead them to building a successful advances. Keep the code portable for Date: Tue, 4 Feb 2003 08:29:55 -0500 business. The trick is to find a few who variations in operating system availability. *do* have the right attitude and are Subject: RE: One language environment Robert Lief was on the right track with his don't have future willing to persue an idea through to medical equipment in Ada approach. I'm completion. Newsgroups: comp.lang.ada not sure whether he ever got very far with [On the claim that successful future it. Correct. Entrepreneurial means systems will be one development willingness to take risks. We take those I have some friends in Silicon Valley who risks with our own money, our own time, environment for many call-compatible specialize in developing software for languages, a single run-time, single and our own psychological energy. It small medical devices on the I-8051. They means a willingness to accept failure or language-neutral set of libraries and OS are experts at this after many years of interface. -- dc] success. If one is afraid of failure, and doing it. They quietly make money, don't pursues a business opportunity out of fear, > Besides how will your VB programmer have any intention of going public, love there is little likelihood of success. Each be able to change a part of a project what they do, and have a clientele of failure simply leads to the next adventure, written in C++, Ada, whatever, unless satisfied and repeating business. and the potential for success. Resilience of he also learns this language? Ada, although not hosted on the I-8051, spirit is the key. This is an interesting point that I meant to could be used to serve a similar market. A Some of the most successful enterpreneurs comment on. It leads to multiple points of lot of lab equipment needs larger I have known were people who lacked the failure. The project would have to be processors now. There are robotic formal education to realize that they could modularized. But this would only assemby lines that need to run on larger not succeed. Sometimes, we let our own compartmentalize the failure point. If you processors. When one looks around knowledge get in the way of being what lost your expert in any area, there would carefully, it seems there is end to the we could be. [...] definitely be down time, learning curves, opportunity for creating new software to etc. upgrade what is already in place, and to On UML and Graphical We have this problem on our current sieze the market with reliable software in Languages project. It was built with Ada, Delphi, and embedded industrial applications. C++. Another related system used to build The problem is that too many people with From: AG messages to send to it, was built using M$ Ada expertise are not of an entrepreneurial Date: Sun, 9 Feb 2003 07:38:12 +1300

Ada User Journal Volume 24, Number 2, June 2003 106 Ada in Context

Subject: Re: One language environment like: "set shipping date two days after Some Quotes don't have future order date, skipping weekends and bank Newsgroups: comp.lang.ada holidays" [and] "if the customer lives in a From: [email protected] > The software development community jurisdiction where we have a retail store, Date: Wed, 05 Mar 2003 19:11:09 GMT seems to disagree [that graphical then add sales tax for that jurisdiction". Subject: Re: Way OT: Adam Smith and notations are a step forward -- dc]. After > And you will be able to tweak the Software Markets many years on the market, graphical generated code as much as you want. Newsgroups: comp.lang.ada programming systems are still not I don't want to. Then I'm stuck working in Darwin wouldn't have said "There are a widely used. two languages and worse, have to lot of ants in the world, therefore ants And not surprisingly. Compare it with understand the mapping between them. must be the fittest creatures." In a niche normal languages: Historically, they seem [...] with certain resources and problems, ants to have migrated from pictorials to do very well. In another niche, in the same hieroglyphics to alphabet and plain text. Opportunity for Ada world, humans do quite well. If humans The reason? Well, more flexibility, Application want to displace ants in a location, they generality and more expressive power. have to modify the environment in human friendly, ant unfriendly, ways. Try to come up with a picture for the From: Jerry Petrey previous sentence for example ... If we want Ada to displace C in some For some reason, computerese seems to be Date: Wed, 12 Feb 2003 10:09:47 -0700 market, we need to modify that market - going in exactly the opposite way - having Organization: Raytheon Company pointing out the dangers of C, started with a sort of literate language it Subject: Great opportunity for Ada encouraging software liability laws, now drifts more and more towards simple application getting government seed money, building (not to say stupid) pictures. [...] Newsgroups: comp.lang.ada convenient Ada libraries, whatever - in Ada friendly, C unfriendly, ways. [...] > Well, considering that most of the DARPA is sponsoring a competition with information in books is currently a one million dollar prize for an From: [email protected] (Adam Ruth) textual, and has been for many autonomous vehicle to transverse a course Date: 10 Mar 2003 10:43:54 -0800 centuries, it seems unlikely that between L.A. and Las Vegas in 2004. This Subject: Re: Advertisment for Ada pictorial representations of program would be a great opportunity for an Ada Newsgroups: comp.lang.ada logic will prove superior within our controlled entry. See What I've been saying lately to my co- lifetimes. http://www.darpa.mil/grandchallenge/ for workers [...] is "Ada: Fewer bugs equals details. Perhaps there is some small Also, attempts to do that have been made more money". It's a line that the non- company around that would like to techies can grasp. decades ago: Block diagrams anyone? I'm undertake this challenge and make a name still waiting for a compiler or IDE to draw for themselves and show what Ada can From: [email protected] that diagram and have the code generated do. (Bill Schreckenstein) which would be equivalent to say a few Date: 25 Mar 2003 14:41:49 -0800 hundred classes written in text {well, I'm Ideas for an Ad? Subject: Re: Protest against the war on Iraq not - sarcasm y'know) Newsgroups: comp.lang.ada From: Stephen Leake From: [email protected] [...] as an Ada coder you have to Date: Mon, 10 Mar 2003 03:22:12 GMT appreciate the complexity of these Date: 09 Feb 2003 09:25:01 -0500 Subject: Re: Way OT: Adam Smith and systems. I can't even begin to describe Organization: NASA Goddard Space Flight Software Markets how much easier a time I have had Center (skates.gsfc.nasa.gov) Newsgroups: comp.lang.ada writting code in Ada and debugging it vs. Subject: Re: One language environment [Someone joked "C is for Vulcans, Ada is C++. I hope this board keeps up the good don't have future for Humans" and another replied "... and work ... I have learned a lot from everyone Newsgroups: comp.lang.ada Ferengis use Visual Basic." -- dc] posting here. > I'm not sure that textual representation I can picture the ad: Two pictures with at Historical Note of logic is the best there can be. the top with captions. One shows a dozen You may not be sure, but I'm sure Ada 95 Vulcan-looking programmers at clean From: Laurent Guerby is better than UML for "logic". State desks, manuals neatly stored, prettily Date: Sat, 12 Apr 2003 00:45:55 +0200 charts are nice for systems that have lots indented, readable Ada code on their Subject: Historical note of states, and use cases are nice for all CRTS, caption "The programmers you To: [email protected] requirements analysis. The rest of UML I wish you had". The other picture shows can easily live without. three "hot-shot" stereotype disheveled In a quite interesting article by Bob programmers at messy desks, one under Frankston the author of Visicalc: From: [email protected] (Kevin Cline) the desk sleeping, another being distracted http://www.frankston.com/?name=Implem Date: 10 Feb 2003 08:17:23 -0800 by a poster of an anatomically improbable entingVisiCalc Subject: Re: One language environment female video game figure, and the third don't have future < Modeling tools are able to produce code looking code with lots of {[:?( etc. $1/hour. Honeywell also took advantage out of a skillfuly crafted model in any Caption "The programmers you have". of the low fee to use the machine at night language and they'll sonner or later have Under the two pictures the text says "Let to develop the Ada language for the a Compile button. Ada help you get correct, comprehensible military but those developers worked Right, but for real-world problems there is code from merely human programmers." during their day from France.>> Then some testimonials: A citation of the an essential complexity that is not readily This was around 1979. :) expressed graphically. The boxes and error rates from the recent Spark Crosstalk arrows take up lots of screen space but article, something about productivity from don't provide much information. The the old Rational study (or Pratt & important information is captured by rules Whitney?), etc.

Volume 24, Number 2, June 2003 Ada User Journal Ada in Context 107

On the Rediscovery of Ada it! :-) One could think big, like an Ada-OS for you will likely spill the beans or an Ada version of Star Office or an Ada somewhere along the line. And so what? From: Marin David Condic version of Quicken (Is there a good open- Ada and its benefits aren't a secret, so you source checkbook/accounting program out might as well use it as a kind of "Product Date: Fri, 28 Feb 2003 07:24:21 -0500 there?) One could think small, like tools Distinction". You build a better product Subject: Re: the Ada mandate, and why it for education (tutorial software for by more than just the language, but you collapsed and died languages, math & statistics packages for get the publicity and prestige of using Ada Newsgroups: comp.lang.ada academic uses, etc.) or hacker tools within as you build name recognition with other the organization. One could think about companies doing similar. > [...] new people are discovering [Ada] the new products the company is planning and recognizing its expressive > power and see how to get Ada to fit in there. and its virtues over competing Advertisment for Ada Whatever angle it goes, the objective is to technologies. [...] to make a comeback, build really solid, reliable software and From: Marin David Condic it will have to be because those who put that "Ada Inside" sticker on it. choose to use it are able to create Date: Sat, 8 Mar 2003 11:02:04 -0500 The beauty of it is that if this army of excellent software and the results of Subject: Re: Advertisment for Ada small-timers goes out and makes reliable their work is discovered by others. This Newsgroups: comp.lang.ada is possible because Ada, in its current products and Ada starts gaining some form, is still a better technology for visibility & reputation as a result, you'd Since Ada isn't exactly sponsored by some software development than the have the DoD contractors looking at the large organization with an interest in competing technologies, the popularity "New Wave" and wondering how they promoting it, advertising gets to be of those competing technologies missed the boat the first time around. The problematic. I'd suggest that the best thing notwithstanding. irony of it would be delicious, wouldn't it? to do is put a little "Ada Inside" graphic in :-) the corner of the main screen of the apps If we build things in Ada, this starts you build with Ada. If there are useful From: John R. Strohm making it more viable. When you hack apps circulating around and they are well- tools for your job, use Ada. When you built, reliable products, the fact that it is Date: Sun, 2 Mar 2003 10:27:05 -0600 look at new startup projects, use Ada. Go mentioned they were built with Ada will Subject: Re: the Ada mandate, and why it out and dream up a product you might sell help to promote it. to the world and use Ada to develop it. collapsed and died Newsgroups: comp.lang.ada It might not hurt to put some advertising Successful businesses that use Ada will do into the "About" screens you create for Actually, there's a flip side. a lot more to spur Ada usage than your apps. An Ada graphic, some words anything else. It would create *jobs* that If Ada really is as good as we all believe it describing why Ada was chosen to build use Ada and people go where the money is, if it really does offer the productivity this app, perhaps a link to the Adapower is. Most of us here believe in Ada as a gains we all believe it does, then a website... Anything that gives the better way. We need to demonstrate that company that took Ada seriously for potential user some insight into the notion to the world by using it to build better product development would quickly carve of "Quality Software Through Ada". Of mousetraps rather than try to convince out a price, performance, profitability course, one had better build good, solid, through academic arguments. I think that niche that no one else could touch. That reliable apps or the whole thing is counter the development of some real-world apps company would, out of enlightened self- productive. Ada isn't going to stop anyone with a little "Ada Inside" sticker in the interest, KEEP QUIET about the fact that from building bad code. :-) corner would do a lot more to promote they were using Ada, treating it as

Ada than anything else. Is anybody out competition-sensitive proprietary there building products with Ada to sell to information. [...] people and generate jobs? [...] From: Robert A Duff From: Richard Riehle Date: 02 Mar 2003 15:03:18 -0500 Date: Fri, 28 Feb 2003 18:56:28 -0800 Subject: Re: the Ada mandate, and why it Organization: AdaWorks Software collapsed and died Engineering Newsgroups: comp.lang.ada Subject: Re: the Ada mandate, and why it collapsed and died I don't agree with that kind of strategy. Newsgroups: comp.lang.ada The problem is that there is a great value in standards. If you're the last person on [...] The fact that Ada continues to be a earth using Ada, and Ada is a huge benifit better technology for a large class of over whatever language is the popular, problems means that it is still there to be that benefit will be lost, because you're discovered. Indeed, we see more and more going to be providing all the funding for people rediscovering it even as some [US Ada compiler delevopment, and all the DoD] contractors, ignorant of the gold training in Ada programming. Much better that lies at their feet, abandon it in favor of to get lots of folks (even your less worthy technologies. [...] competitors) to use Ada, so you can share From: Marin David Condic the cost of Ada compilers and so forth. [...] Date: Sat, 1 Mar 2003 08:13:54 -0500 From: Marin David Condic Subject: Re: the Ada mandate, and why it collapsed and died Date: Mon, 3 Mar 2003 13:04:38 -0500 Newsgroups: comp.lang.ada Subject: Re: the Ada mandate, and why it [...] What I would like to see is an army of collapsed and died small-time developers building better Newsgroups: comp.lang.ada products and shamelessly using Ada to do [...] Ultimately, you can't really cover up it. (Put that little "Ada Inside" sticker on that you use Ada – someone who works

Ada User Journal Volume 24, Number 2, June 2003 109 Conference Calendar This is a list of European and large, worldwide events that may be of interest to the Ada community. More information on items marked ♦ is available in the Forthcoming Events section of the Journal. Items in larger font denote events with specific Ada focus. Items marked with ☺denote events with close relation to Ada. The information in this section is extracted from the on-line Conference announcements for the international Ada community at: http://www.cs.kuleuven.ac.be/~dirk/ada-belgium/events/list.html on the Ada-Belgium Web site. These pages contain full announcements, calls for papers, calls for participation, programmes, URLs, etc. and are updated regularly.

2003

July 13-16 22nd Annual ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing (PODC'2003) Boston, Massachusetts, USA. Topics include: design, specification, implementation, application and theory of distributed systems ☺ July 14-17 OMG Annual Workshop on Real-Time and Embedded Distributed Object Computing, Washington, DC, USA. Topics include: Applying CORBA in any real-time or embedded system; Integrating CORBA with legacy real-time and embedded systems; Evaluation of real-time, high confidence, and embedded middleware; Advanced scheduling techniques and high-level real-time programming models; Fault-tolerance issues in real-time and embedded systems; etc. ☺ July 21-25 17th European Conference on Object-Oriented Programming (ECOOP'2003) Darmstadt, Germany. Includes a.o. the following events: ☺ July 21-25 ECOOP2003 - Workshop on Exception Handling in Object Oriented Systems (EHOOS'2003). Topics include: formalisation, distributed and concurrent systems, practical experience, design patterns and frameworks, practical languages (Java, Ada 95, Smalltalk, Beta), etc. ☺ July 21 ECOOP2003 - 7th Workshop on Pedagogies and Tools for Learning Object- Oriented Concepts. Topics include: frameworks/toolkits/libraries for learning support; approaches and tools for teaching design early; experiences with innovative CS1 curricula; etc.

☺ July 21 ECOOP2003 - 13th PhD Students Workshop in Object-Oriented Systems (PhDOOS'2003). Topics include: Concurrent, real-time, parallel systems; Patterns; Distributed and mobile object systems; Language design and implementation; Programming environments; Software components; etc. July 21 ECOOP2003 - 8th International Workshop on Component-Oriented Programming (WCOP'2003). July 21 ECOOP2003 - 4th International Workshop on Object-Oriented Re- engineering (WOOR'2003). ☺ July 22 ECOOP2003 - Workshop on Communication Abstractions for Distributed Systems (CADS'2003). Topics include: Communication abstraction in programming languages; Middleware services; Design Patterns for communication and distribution; Communication components; Authentication, authorization, privacy; Group-oriented communication; Tolerance of Partial Failures; etc. ☺ August 13-15 16th International Conference on Parallel and Distributed Computing Systems (PDCS'2003) Reno, Nevada, USA. Topics include: all areas of Parallel and Distributed Computing Systems, their modeling and simulation, design, use and performance, etc. ☺ August 24-27 6th Joint Modular Languages Conference (JMLC'2003) Klagenfurt, Austria. Topics include: concepts of well structured modular software; teaching good design and programming style; construction of large and distributed software systems; etc. Includes on 25-26 August, some common tutorials, keynote talks and a common panel with EuroPar'2003. Deadline for early registration: July 15, 2003

Ada User Journal Volume 24, Number 2, June 2003 110 Conference Calendar

☺ August 26-29 9th International Conference on Parallel and Distributed Computing (Euro-Par'2003) Klagenfurt, Austria. Topics include: all aspects of parallel and distributed computing. Includes on 25-26 August, some common tutorials, keynote talks and a common panel with JMLC'2003. Deadline for early registration: July 15, 2003 ☺ August 27-29 4th International Conference on Parallel and Distributed Computing, Applications, and Techniques (PDCAT'2003) Chengdu, PR China. Topics include: all areas of parallel and distributed computing, including Parallelizing compilers, Component-based and OO Technology, Programming languages and software tools, etc. September 01-05 Joint 9th European Software Engineering Conference (ESEC) and 11th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE-11) Helsinki, Finland. Includes a.o. the following event: September 01-02 ESEC/FSE-11 - International Workshop on Principles of Software Evolution (IWPSE'2003). Topics include: methodology for evolutionary design and development, validation and verification of evolution, experience and lessons learned from evolutionary software systems, etc. September 02-05 9th International Conference on Object-Oriented Information Systems (OOIS'2003) Geneva, Switzerland September 03-05 29th EUROMICRO Conference (EUROMICRO'2003) Antalya, Turkey. Includes track on: Component-based Software Engineering (Component design, implementation, testing; Development environment and tools; Case studies and experience reports; Components for real- time and embedded systems; etc.) September 08-12 11th IEEE International Requirements Engineering Conference (RE'03) Monterey Bay, California, USA. September 08-14 12th International Formal Methods Europe Symposium (FME'2003) Pisa, Italy. Topics include: concerns and risks for potential adopters of formal methods; cost-benefit analysis; reports on practical use and case studies (reporting positive or negative experiences); tool support and software engineering; etc. September 15-19 12th International Real-Time Ada Workshop (IRTAW-2003) Viana do Castelo, Portugal. Participation on invitation only. September 16-19 7th International IEEE Enterprise Distributed Object Computing Conference (EDOC'2003) Brisbane, Australia. Topics include: Use and enhancement of middleware platforms; Practical experiences with enterprise distributed object computing; etc.

September 22-25 2nd International Conference on Generative Programming and Component Engineering (GPCE'2003) Erfurt, Germany. In Cooperation with ACM SIGPLAN and SIGSOFT. Deadline for poster submissions: July 13, 2003 September 22-26 IEEE International Conference on Software Maintenance (ICSM'2003) Amsterdam, The Netherlands. Includes a.o. the following event: ☺ September 23 ICSM2003 - International Workshop on Evolution of Large-scale Industrial Software Applications (ELISA). Topics include: empirical studies of evolving software, scalability of technological solutions, evolution of open source and COTS software, etc. ☺ September 23-26 22nd International Conference on Computer Safety, Reliability and Security (Safecomp'2003) Edinburgh, Scotland, United Kingdom. Topics include: state-of-the-art, experience and new trends in the areas of computer safety, reliability and security regarding dependable applications of computer systems. September 25-26 3rd International Conference on Quality Software (QSIC'2003) Beijing, China. Topics include: Debugging; Economics of software quality and testing; Formal methods; Quality evaluation of software products and components; Reliability; Software quality education; Static and dynamic analysis; Testability; Testing of object-oriented systems; Testing of concurrent and real-time systems; Testing strategies, tools, processes, and standards; Tool support for improving software

Volume 24, Number 2, June 2003 Ada User Journal Conference Calendar 111

quality; Validation and verification; Application areas such as component-based systems, distributed systems, embedded systems, enterprise applications, ...; etc. ☺ September 27-Oct. 01 12th International Conference on Parallel Architectures and Compilation Techniques (PACT'2003) New Orleans, LA, USA. Topics include: Programming languages for parallel scientific and object-oriented applications, etc. ☺ September 29-Oct. 02 GI-Jahrestagung Informatik 2003 - Teiltagung "Sicherheit - Schutz und Zuverlässigkeit" Frankfurt/Main, Germany. Topics include (in German): Software in sicherheitskritischen Anwendungen, Zuverlässigkeit und Sicherheit softwarebasierter Systeme, etc. September 30-Oct. 01 IEEE International Symposium on Empirical Software Engineering (ISESE'2003) Frascati, Italy. Topics include: strengths and weaknesses of technology in use and new technologies, etc. ☺ October 01-03 9th IEEE Computer Society's International Workshop on Object-oriented Real-Time Dependable Systems (WORDS'2003) Capri Island, Italy. ☺ October 06-08 22nd Symposium on Reliable Distributed Systems (SRDS'2003) Florence, Italy. Topics include: Distributed systems with properties such as reliability, availability, security, safety, and/or real time; Security and high-confidence systems; Analytical or experimental evaluations of dependable distributed systems; etc. October 06-09 13th International Conference on Software Quality (ICSQ'2003) Dallas, Texas, USA October 20-24 6th International Conference on UML - Modeling Languages and Applications (UML'2003) San Francisco, USA. Topics include: tool support for any aspect of modeling or model use; models in the development and maintenance process; domain-specific and concern-oriented modeling; etc.

☺ October 26-30 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'2003) Anaheim, California, USA. ☺ October 27-31 22nd Digital Avionics Systems Conference (DASC'2003) Indianapolis, Indiana, USA. Software Engineering Track Topics include: Formal Specification and Verification; Software Reliability - Measurement and Techniques; Software Safety; Software Architecture - Evolution/Product Families; etc. October 28-31 IEEE Symposia on Human-Centric Computing Languages and Environments (HCC'03) Auckland, New Zealand. Topics include: tools that enable humans, using textual languages, visual languages or any other appropriate technologies, to accomplish their tasks more effectively; etc.

☺ October 30-Nov. 01 International Conference on Compilers, Architectures and Synthesis for Embedded Systems (CASES'2003) San Jose, California, USA. Topics include: Compilation techniques that focus on embedded architectures; Design, specification, and analysis of embedded systems; Managed runtime environments for embedded systems; Memory management and compiler controlled memories; Software design for multiprocessor embedded systems; etc. ☺ November 03-07 5th International Symposium on Distributed Objects and Applications (DOA'2003) Sicily, Italy. Topics include: Applications of distributed-object technology; Design patterns for object- based components and applications; Interoperability between object systems and complementary technology; Real-time solutions for distributed objects; Scalability for distributed objects and object middleware; Security for distributed-object systems; Software engineering for distributed object-based applications; Technologies for reliable and fault-tolerant distributed objects; etc. November 17-20 14th IEEE International Symposium on Software Reliability Engineering (ISSRE'2003) Denver, CO, USA. Deadline for student paper and fast abstract submissions: August 1, 2003 November 19-21 6th IFIP International Conference on Formal Methods for Open Object-based Distributed Systems (FMOODS'2003) Paris, France. November 19-21 4th International IFIP Working Conference on Distributed Applications and Interoperable Systems (DAIS'2003) Paris, France. In conjunction with FMOODS'20003. November 24-26 2nd International Conference on Software for Embedded Systems (ICSTEST-E) Bilbao, Spain. Topics include: Transportation and Safety-Critical Systems, Industry real experiences, Verification and Validation, Techniques for real time systems, Static and Dynamic analysis, etc.

Ada User Journal Volume 24, Number 2, June 2003 112 Conference Calendar

December 07-11 2003 ACM SIGAda Annual International Conference (SIGAda'2003) San Diego, California, USA. Sponsored by ACM SIGAda (ACM approval pending). In Cooperation With Ada-Europe and ACM SIGAPP, SIGCAS, SIGCSE, SIGPLAN, and SIGSOFT (Cooperation approvals pending). Topics include: Reliability needs and styles; Safety and high integrity issues; Improvements and additions to Ada to be included in Ada 200Y; Use of the Ada Distributed Systems Annex; Process and quality metrics; Testing and validation; Standards; Use of ASIS for new Ada tool development; Mixed-language development; Ada in XML environments; Ada in .Net environments; Quality Assurance; Ada & software engineering education; Commercial Ada applications: what Ada means to the bottom line; Use of SPARK and Ravenscar profile for high reliability software; Use of Real-Time CORBA; Real-time networking/quality of service guarantees; Fault tolerance and recovery; Distributed system load balancing; Static and dynamic code analysis; Performance analysis; Debugging complex systems; Integrating COTS software components; System Architecture & Design; Information Assurance in the age of terrorism. December 10 Birthday of Lady Ada Lovelace, born in 1815. Happy Programmers' Day! December 10-12 European Software Process Improvement Conference (EuroSPI'2003) Warwick, UK. December 10-12 10th Asia-Pacific Software Engineering Conference (APSEC'2003) Chiang Mai, Thailand. Topics include: Object-Oriented Technology and Patterns, Software Components, Programming Languages and Software Engineering, Reliability and Security, Formal Methods, Software Development Environments, Distributed and Parallel Systems, etc. 2004 January 01/05-08 Software Technology Track of the 37th Hawaii International Conference on System Sciences (HICSS-37) Big Island of Hawaii, USA. Includes mini-tracks on: Distributed Object and Component-based Software Systems (Design Patterns for Distributed Systems, Middleware, Programming Languages and Environments for Distributed Object and Component Systems, ...); etc.

January 03/29-April 02 European Joint Conferences on Theory and Practice of Software (ETAPS'2003) Barcelona, Spain. Event includes: conferences from 29 March to 2 April, 2004, affiliated workshops on 27-28 March and 3-4 April, 2004 January April 05-07 4th International Conference on Integrated Formal Methods 2004 (IFM'2004) Canterbury, Kent, England. Deadline for submissions: September 15, 2003

Volume 24, Number 2, June 2003 Ada User Journal 119 Object-Oriented Programming Enhancements in Ada 200Y S Tucker Taft SofCheck, Inc. 11 Cypress Drive, Burlington, MA 01803; USA.; Tel:+1 781 750 8068; email: [email protected] Abstract programming features different from those of most other OOP languages, both in a positive and a negative sense. This article provides an overview of four proposed There are several important differences: amendments to the Ada standard for possible inclusion in the revision planned for late 2005 or a) Ada 95 makes a significant and explicit distinction early 2006. Together, these four amendments can be between class-wide types and specific types. This seen as “finishing” the job of integrating object- distinction implicitly exists in essentially all OOP oriented programming features into Ada. languages, but there is rarely a way to talk about it in the source language itself. Instead, depending on , a Keywords. Ada, Object-Oriented Programming, type or class name in such a language might represent a Amendment single type in the hierarchy (what Ada 95 calls a "specific" 1 Introduction type), or it might represent a type and all types derived directly or indirectly from it (what Ada 95 calls a A new revision of the Ada programming language standard "derivation class of types"). is being prepared, with a scheduled completion date of late 2005 or early 2006. As part of this revision, the Ada Only when dealing with class-wide types in Ada 95 is there Rapporteur Group (ARG), a part of the ISO Working any possibility of dynamic binding. In most other OOP Group 9 (WG9), is developing proposed amendments to the languages, dynamic binding is the default, and static standard. Several of these amendments relate to object- binding requires additional effort, or is simply not oriented programming (OOP). This paper will describe available. This makes it more likely in such languages that some of these amendments, and the background and dynamic binding will be used in places where static binding rationale for their development. would have been preferred, and would have produced a faster, more verifiable, and more maintainable system. When Ada 95 was being designed, there was still a fair amount of controversy whether object-oriented In Ada 95, because static binding is the default, there will programming features should be included in the language at generally be significantly reduced coupling between a all, because of their generally dynamic nature, and because derived type and its parent type, allowing the parent of concern about whether some of their perceived negative operations to be treated more like black boxes. In most aspects (difficult to test and verify, "weaker" typing model, other OOP languages, you really need to see the source etc.) might outweigh their claimed positive aspects. code for all parent operations to know whether it is safe to inherit any one of them rather than override it in a derived Over the past decade, object-oriented programming has type. become the dominant programming paradigm, so much so that it is now simply assumed, and debates have moved on b) Ada 95 has no direct linguistic support for type to other language and methodology issues (e.g. aspect- hierarchies involving multiple inheritance. Although there oriented programming, extreme programming, highly are several other language features (such as "with" and scalable programming, etc.). Two major new object- "use" clauses, generic packages, private extensions, and oriented programming languages have appeared on the access discriminants), that allow programmers to solve scene, Java and C#. And most colleges and high schools problems in Ada 95 for which other languages might rely are now teaching an object-oriented programming language on their linguistic multiple inheritance capabilities, there in their introductory programming courses. are still some situations where the lack of linguistic support does restrict the ease of solving an important problem. Hence, there is no longer any significant debate whether adding object-oriented programming to Ada 95 was a good c) Except for synchronizing operations (such as a task entry idea. The question that remains is whether the object- call or a protected operation), all operands to an operation oriented programming features of Ada 95 are as usable, in Ada 95 are treated symmetrically in the syntax. That is, effective, and understandable as they should be. they are all passed as parameters "inside" the parentheses, independent of whether the operand might control dynamic 2 Differences Between Ada 95 and Other binding. OOP Languages This symmetry makes object-oriented abstract data types be Before attempting to answer this question, it is useful to a natural generalization of "normal" abstract data types, and first identify what makes Ada 95's object-oriented makes user-defined binary operators work in a natural way

Ada User Journal Volume 24, Number 2, June 2003 120 Object-Oriented Programming Enhancements in Ada 200Y with such types, without any special treatment. The packages to remain smaller, with hierarchies (subsystems) controlling operand of a binary operator could be the right of packages being used to represent large multi-type operand or the left operand, depending on what is abstractions. appropriate. The controlling "operand" can even be C++ retains the separation between declaration and provided by context, in the case of a call on a parameterless implementation, while allowing cyclic type structures to function like "Empty_Set" which will result in the cross multiple "namespaces." This is possible because invocation of the "appropriate" overriding of Empty_Set, namespaces may be defined in several separate textual depending on the underlying run-time "tag" of the pieces, and an incomplete type declaration in C++ may be "receiver" of the result of the call. in one piece of the namespace, while a separate piece Unfortunately, this symmetric approach can result in extra contains the full type declaration. In Ada, packages have verbiage and possible confusion when used with a multi- only two textually separable pieces, namely the package package type hierarchy. Some "operations" in such a declaration ("spec") and the package implementation hierarchy might be so-called "class-wide" operations, ("body"). But putting a full type declaration in the package which are generally declared in the package where the root body is not a solution to the multi-package cyclic type type of the hierarchy is declared, while others will be structure problem, because the declarations within the "dispatching" operations which are inherited down the package body are not visible outside the package. By hierarchy, and are implicitly declared within each package contrast, all the "pieces" of a C++ namespace can contain where a derived type is declared. To call an operation, one "visible" declarations. has to either have "use" clauses for all packages where it e) Ada 95 supports 3 levels of visibility for operations and might have been declared, or determine the correct package components of a type: fully public, visible to child units, and put a prefix on the operation name that identifies the and visible only within the defining package. Most other relevant package. Although this does not at first glance OOP languages provide special visibility of operations to seem onerous, when working with relatively large type derived types (subclasses). In C++ and Java this is called hierarchies, always identifying the package or "use"ing all "protected" visibility. the relevant packages can make the code less rather than more readable. An important advantage of the Ada 95 approach to "partial" visibility is that it is provided only to modules whose With OOP languages that use the "asymmetric" approach, position within the naming hierarchy implies their special where the (one and only) controlling operand precedes the visibility. This creates a strong boundary around the set of name of the operation, and the other operands appear inside units that might be affected by changes to partially visible the parentheses, there is rarely a need to identify the operations or components. In most other OOP languages, module where an operation is declared, since it is this special visibility is unrelated to the module structure, determined by the type of the controlling operand. In C++, and a derived type/subclass which might be affected by the module name is used generally only when overriding changes to partially visible operations or components could the default dynamic binding, and requesting static binding be in any module, anywhere in the system. to an operation in a particular class/namespace. The net effect is that encapsulation and information hiding There are some languages, in particular Modula-3, which in Ada 95 is linked more closely to the naming hierarchy, allow either notation to be used, with the asymmetric making maintenance of Ada object-oriented systems easier "prefix" notation being a short-hand (syntactic "sugaring") to perform, even when the systems grow large and involve for the symmetric notation. large hierarchies of types. d) Ada separates declaration from implementation, and f) Ada 95 supports both object-oriented programming and requires that all types and operations be declared before multi-threaded programming, but does not directly they are referenced. In some OOP languages, in particular integrate these two. Tasks and protected objects can be Eiffel and Java, declaration and implementation are not components of an object-oriented "type," or vice-versa, but separated in the definition of a class. Furthermore, in these neither tasks or protected objects can themselves be directly languages, in part because all objects are referenced via extended. By contrast, in Java, which is one of the very pointers and hence are of known "size," there is no need to few other languages that have linguistic support for both declare a class before it is referenced. object-oriented programming and multi-threading, Because Ada requires declaration before reference, extra synchronizing operations can be added in subclasses, and work is required to create collections of types that are the types used to represent threads can also similarly be mutually dependent. In general, an incomplete type extended using the normal inheritance mechanisms. declaration is required to allow for such cyclic type An important advantage of Ada's tasking model is that all structures. However, an incomplete type must be operations of a protected type or a task synchronize completed within the same package in which it is declared. properly with one another, while in Java, it is possible to This precludes such cyclic type structures from crossing have both synchronizing and non-synchronizing operations multiple packages, and tends to lead to larger-than-ideal on the same type, which is an obvious avenue for subtle packages simply to accommodate such a cycle. The child race conditions to enter a system. Furthermore, because library unit feature was added to Ada 95 in part to allow Ada's protected and task types do not allow piecemeal

Volume 24, Number 2, June 2003 Ada User Journal S T Taft 121 inheritance, all operations that synchronize with one time overhead and possible sources of run-time errors. another are defined in the same module, preserving the Hence, there has been a concerted effort to provide a original advantages of the "monitor" concept introduced natural way for cyclic type structures to be safely and many years ago -- analysis and verification of proper securely extended across packages. synchronization conditions can be performed without Several alternative proposals have been developed and having to chase down all critical sections that might be evaluated. Unfortunately, no one proposal has emerged as scattered about the system. clearly the best solution in every dimension. The original Given the above important differences between Ada 95 and proposal introduced a new kind of "with" clause called the most OOP languages, it is appropriate to evaluate these "with type" clause. This allowed a package to refer to a differences, and see whether they represent strengths or type that would eventually be declared in some other weaknesses in Ada's support for object-oriented package, but without requiring that that other package be programming. In some cases, the differences have both compiled first. A version of this proposal was actually positive and negative aspects. Arguably one overall implemented in the GNAT Ada Compiler from AdaCore negative aspect of such differences is that they may put Technologies, but was ultimately dropped from Ada 95 out of the mainstream of object-oriented consideration by the ARG because of difficulties programming, given that more and more programmers are discovered while working out the lower level details. being introduced to OOP, or even programming as a whole, Three proposals remain under consideration: one involving through languages like Java and C#. On the other hand, type "stubs" (analogous to program unit "stubs", identified Ada 95 has an important role in the development of by the "is separate" syntax), a second involving a complex, critical systems, and some of the differences are generalization of incomplete type declarations to allow a specifically designed to assist in the development of safe, parent package to declare an incomplete type that will be robust, and verifiable systems, while still providing the completed in a child or nested package, and a third flexibility and extensibility of object-oriented proposal involving a new kind of "limited" with clause, programming. allowing one package to gain visibility on the types and 3 Areas of Strength, Areas for nested packages of another package, without requiring Enhancement "full" compilation of the other package. The challenge for this upcoming revision of Ada is then to Here are examples of the three proposals. They all are preserve Ada's great strengths in its support for the based on the Employee/Department problem, where there is construction of safe, verifiable systems, while enhancing its a type that represents employees, and a type that represents object-oriented features to take advantage of what has been departments, and employees are members of a department, learned about object-oriented programming features over while a department has a manager who is an employee. the past ten years. Areas that have been identified for The challenge is to define the employee type in one possible enhancement are support for multi-package cyclic package, and the department type in a separate package, but type structures, support for multiple-inheritance type accommodate the desire to have references to both hierarchies, support for the "asymmetric" notation for employees and departments in both packages. invoking operations, and support for some kind of The first example is the "type stub" proposal: extension for protected and task types. limited with Employees; On the other hand, Ada's clear distinction between specific -- Allow type stubs to refer to this package and class-wide types, its default of static binding with dynamic binding only where necessary, and its strong package Departments is boundary around modules that have visibility on "partially" type Employee is separate Employees.Employee; visible operations and components, are seen as clear -- Type stub advantages to Ada's approach to object-oriented type Employee_Ref is access Employee; programming, with no need for significant alteration. Furthermore, any changes that are proposed must not type Department is private; compromise Ada's strengths, and if anything, should extend Ada's unique position as the safe and verifiable, real-time procedure Set_Manager(Dept: in out Department; Mgr: object-oriented programming language. Employee_Ref); 4 Cyclic Type Structures function Manager(Dep: Department) return Employee_Ref; One item identified as very important for enhancement has ... to do with allowing cyclic type structures to cross package private boundaries. In Ada 95, it is possible to use a combination type Department is record of class-wide types, type extension, and "downward" type Mgr: Employee_Ref; conversion, to overcome the basic Ada limitation to single- package cyclic type structures. However, this approach ... introduces additional complexity and some degree of run- end record;

Ada User Journal Volume 24, Number 2, June 2003 122 Object-Oriented Programming Enhancements in Ada 200Y

end Departments; package Office.Employees is type Employee is private; limited with Departments; procedure Set_Department(Emp: in out Employee; -- Allow type stubs to refer to this package Dept: Department_Ref); package Employees is function Department(Emp: Employee) return Department_Ref; type Department is separate Departments.Department; ... -- Type stub private type Department_Ref is access Department; type Employee is record type Employee is private; Dept: Department_Ref; procedure Set_Department(Emp: in out Employee; ... Dept: Department_Ref); end record; function Department(Emp: Employee) return Department_Ref; end Office.Employees; ... private The third example uses the "limited with" clause: type Employee is record Dept: Department_Ref; limited with Employees; ... -- Gives visibility on types as incomplete types end record; package Departments is end Employees; type Employee_Ref is access Employees.Employee; type Department is private; The second example uses the generalized incomplete type procedure Set_Manager(Dept: in out Department; declaration: Mgr: Employee_Ref); function Manager(Dep: Department) package Office is return Employee_Ref; type Employees.Employee; ... -- Incomplete type completed in child private type Employee_Ref is access Employees.Employee; type Department is record type Departments.Department; Mgr: Employee_Ref; -- Incomplete type completed in child ... type Department_Ref is end record; access Departments.Department; end Departments; end Office; package Office.Departments is limited with Departments; type Department is private; -- Gives visibility on types as incomplete types procedure Set_Manager(Dept: in out Department; package Employees is Mgr: Employee_Ref); type Department_Ref is function Manager(Dep: Department) access Departments.Department; return Employee_Ref; type Employee is private; ... procedure Set_Department(Emp: in out Employee; private Dept: Department_Ref); type Department is record function Department(Emp: Employee) Mgr: Employee_Ref; return Department_Ref; ...... end record; private end Office.Departments; type Employee is record Dept: Department_Ref;

Volume 24, Number 2, June 2003 Ada User Journal S T Taft 123

... contracts), but with actual implementation "code" and data end record; components inherited from only a single "primary" parent end Employees; type. This approach, as exemplified in Java, C#, and to some extent CORBA IDL, eliminates much of the complexity of "full" multiple inheritance, because data All three proposals allow a type defined in one package to components can continue to use the straightforward linear be treated as an incomplete type in some other package, extension approach of single inheritance, and because without the second package "depending" semantically on conflicts due to inheriting code from multiple parent types the first package. This is the critical capability, because it cannot occur. allows a cyclic type structure to be established without contradicting the partial ordering implied by "normal" The current proposal for adding multiple inheritance of semantic dependence relationships. All of the solutions interfaces adds a new kind of type to Ada called an involve a "weaker" kind of dependence, where one package "interface". An interface type is in most respects equivalent knows that another package "exists" without having full to a type declared as "type T is abstract tagged null record;" semantic dependence on it. The "limited" with clause though the syntax is shortened to be simply "type T is proposal approaches this problem by introducing a interface;". However, in addition to being usable in all "limited" dependence on another package. Limited contexts where such an abstract type may be used, the type dependences are allowed to be cyclic. They imply some may also be used as a "secondary" parent type in the kind of pre-scan of a package to determine the names of the declaration of a type extension. Secondary parents types (and the subpackages) of the package, without doing ("interface parents") are identified by appearing second or a full semantic analysis of the package. later in a list of the parent types in a record extension. The parent type names are separated from one another by "and", The type stub proposal also requires a similar kind of as in: limited dependence, but limits it even further to specific types identified by type stubs. Further, it does not require any kind of pre-scan of the package, because post- type NT is new Primary and Secondary_1 and compilation checks can be performed to verify that type Secondary_2 and ... with ...; stubs refer only to types that actually exist in the package.

The incomplete-type-completed-in-a-child proposal Note that the Primary parent may also be an interface type, introduces a "weak" dependence between a parent package since an interface type may be used anywhere an abstract and one of its child packages, requiring that a child package tagged type make be used. exist and that it declare a type that matches one identified Interfaces may also be used as "parents" of other interfaces, in a generalized form of incomplete type declaration using the following form: present in the parent's specification. type NI is interface with Int_Parent1 and Int_Parent2; At this point there is consensus that a solution to this problem will exist in the Ada 200Y standard, and that the As implied above, no code or components are inherited form of the solution will be based on one of these three from interfaces, only the specification of operations that proposals, but the particular approach has not yet been must be implemented by the type that has the interface as a chosen. It is anticipated that the final choice will be made parent. If an interfaces has other interfaces as parents, then at the ARG meeting immediately following the AdaEurope the union of all the operations of the parents combined with 2003 conference. the operations defined on the new interface must be implemented by all (non-abstract) types derived from the 5 Multiple-Inheritance Type Hierarchies new interface. When Ada 95 was designed, a significant amount of energy Here is a larger example which uses interfaces: was expended in evaluating the possibility of including package MVC is direct syntactic support for multiple inheritance. At the time, some OOP languages included full multiple -- Set of interfaces that define a model-view-controller inheritance (C++, Eiffel), while others chose single -- structure. inheritance (Modula-3, Smalltalk). Full multiple type Observer is interface; inheritance introduces a number of language complexities as well as a somewhat more complicated and/or less -- "interface" is roughly equivalent to efficient run-time model for dispatching calls. Ultimately, -- "abstract tagged null record" we decided to stick with the simplicity of single inheritance type Observer_Ref is access all Observer'Class; for Ada 95, but provide various "building blocks" that -- An observer waits for changes to a model could be used to solve problems that in other languages might require multiple inheritance. type Model is interface; type Model_Ref is access all Model'Access; Since the Ada 95 design was finalized, a middle ground in the spectrum of inheritance models has become popular -- A model represents some data structure that provides multiple inheritance of interfaces (i.e. -- that is being viewed and/or manipulated

Ada User Journal Volume 24, Number 2, June 2003 124 Object-Oriented Programming Enhancements in Ada 200Y

procedure Notify( -- May inherit or override operations inherited from Obs: access Observer; M: Model_Ref) is abstract; -- parent type including those that are needed for -- Notify observer that model it was observing -- interfaces Observer and Controller -- has changed procedure Register_And_Start( MC: access Mouse_Controller'Class; type View is interface with Observer; M: Model_Ref); type View_Ref is access all View'Class; -- Class-wide operation to register the mouse -- A view is a visual display of some model -- controller on given model, and then start the procedure Display_View( -- controller going. V: access View; M: Model_Ref) is abstract; private -- Display view of associated model ... type Controller is interface with Observer; end Inputs; type Controller_Ref is access all Controller'Class; Although not illustrated in the above example, the proposal -- A controller supports input device(s) for for interface types includes a proposal for "declared-null" -- manipulating/updating an underlying model procedures. A declared-null procedure is one whose procedure Start_Controller( specification ends with "is null;" rather than ";" or "is Ctlr: access Controller; abstract;". No separate body is permitted for such a M: Model_Ref) is abstract; procedure. The implicit null body has no effect when -- Initiate controller for associated model executed. procedure Register_View( M: access Model; Rather than requiring that all primitive operations of an V: View_Ref) is abstract; interface type be abstract, this proposal also allows the -- Register view for given model. primitive operations to be declared null. Such a procedure need not be overridden in a type derived from this procedure Register_Controller( M: access Model; interface. If not overridden, its implementation is null. If Ctlr: Controller_Ref) is abstract; at least one interface ancestor of a type declares a given -- Register controller on given model. operation as null, the type need not provide an explicit overriding of the operation. If a non-interface ancestor type end MVC; provides a non-null implementation of the operation, that is inherited rather than the null procedure. with MVC; Declared-null procedures are useful in that they allow a with Devices; number of optional capabilities to be supported in an package Inputs is interface, without every derived type having to explicitly define the capability. In addition, if an abstract or interface type Mouse is new Devices.Device with private; type with one or more declared-null primitives is used as type Mouse_Controller is new the ancestor in a generic formal type extension, the formal Devices.Device and MVC.Controller with private; type is presumed to have non-abstract implementations of -- Primary parent type, if any, must be listed first these operations. This can be useful when overriding the -- All other parent types must be interfaces. operations, since it is often desirable to call the parent's procedure Handle_Input( operation from an overriding, particular in the case of MC: in out Mouse_Controller); initializing or finalizing operations. -- Optionally override operations of parent type 6 Using Object.Operation Notation -- (or may inherit those with appropriate defaults) When doing object-oriented programming in Ada 95, the procedure Notify( programmer must identify the package in which an MC: access Mouse_Controller; M: Model_Ref); operation is declared, along with the various operands. Because dispatching operations are often implicitly procedure Start_Controller( MC: access Mouse_Controller; declared, identifying the package where they are declared M: Model_Ref); can sometimes be confusing. In addition to dispatching operations, class-wide operations are important in many -- Required to define all abstract operations declared object-oriented systems. However in Ada, class-wide -- for Observer and Controller operations, unlike their equivalent in many other OOP type Two_Button_Mouse_Controller is new languages, are not inherited along with the dispatching Mouse_Controller with private; operations. Instead, they are only declared in the original procedure Start_Controller( package where they appear. TMC: access Two_Button_Mouse_Controller; M: Model_Ref);

Volume 24, Number 2, June 2003 Ada User Journal S T Taft 125

This distinction in inheritance between dispatching C : MVC.Controller_Ref; operations and class-wide operations means that it can be a MC : aliased Inputs.Mouse_Controller; burden to identify the package where an operation of begin interest is declared, particularly when the choice between making an operation a dispatching operation versus a class- V.Display_View(M); wide operation might be more of an implementation detail -- equivalent to MVC.Display_View(V, M); than an essential part of the semantics of the operation from MC.Start_Controller(M); a user's point of view. The distinction is generally -- equivalent to Inputs.Start_Controller(MC'Access, M); important when deriving from a type, but may be irrelevant when using the type. MC.Handle_Input; -- equivalent to Inputs.Handle_Input(MC); Programmers familiar with other OOP languages that use an "object.operation(...)" syntax rather than Ada's MC.Register_And_Start(M); "package.operation(object, ...)" syntax find this added -- equivalent to burden an entry barrier to using Ada for OOP systems, -- Inputs.Register_And_Start(MC'Access, M); which tends to make the language feel less object-oriented -- (this is a call on a class-wide op) than it truly is. The alternative of inserting "use" clauses for every possible package where an operation might be 7 Inheritance of Interfaces for Protected declared has other negative ramifications. and Task Types Given these considerations, a proposal has been developed During the Ada 95 design process, it was recognized that to allow the use of an "object.operation(...)" syntax as a type extension might be useful for protected types (and syntactic shorthand for "package.operation(object, ...)". possibly task types) as well as for record types. However, Originally it was proposed that this syntactic shorthand be at the time, both type extension and protected types were available to all kinds of types, whether or not the type is somewhat controversial, and expending energy on a tagged. However, supporting this for both access types and combination of these two controversial features was not tagged types adds to the complexity of the proposal in practical. certain ways due to the desire to allow implicit dereference (implicit ".all") of the "object" if it is designated by an Since the design, however, this lack of extension of access value. Implicit dereference is provided in all other protected types has been identified as a possible target for places where "." is allowed in the syntax, and it would be future enhancements. In particular, a concrete proposal inconsistent not to allow it here. Furthermore, this notation appeared in the May 2000 issue of ACM Transactions on is specifically intended to simplify object-oriented Programming Languages in Systems (ACM TOPLAS[1]), programming where there may be multiple relevant and this has formed the basis for a language amendment packages. When using non-tagged types, the (AI-00250). object.operation syntax would not provide as much benefit. However, in ARG discussions, the complexity of this The basic idea of this restricted proposal is that any proposal has been of concern, and more recently a simpler dispatching operation, or any class-wide operation declared suggestion was made that rather than supporting any kind in a package where the corresponding specific type is of implementation inheritance, interfaces for tasks and declared, is eligible for calling via this shorthand, so long protected types might be defined, and then concrete as the first formal parameter is a controlling parameter, or implementations of these interfaces could be provided. is of the class-wide type. When the object.operation syntax Class-wide types for these interfaces would be defined, and is used, the "operation" is looked up first as a component, calls on the operations (protected subprograms and entries) and then as though the packages where the type and any of defined for these interfaces could be performed given only its ancestors are declared had been made use-visible. If the a class-wide reference to the task or protected object. object were of an access-to-tagged type, an interpretation An important advantage of eliminating inheritance of any using an implicit dereference would also be considered. If code or data for tasks and protected types is that the there are possible interpretations of "operation" among "monitor"-like benefits of these constructs are preserved. these packages, it is checked to see if any of them are All of the synchronizing operations are implemented in a subprograms where "object", "object.all", or "object'access" single module, simplifying analysis and avoiding any could be passed as the first parameter, and any actual inheritance "anomalies" that have been associated in the parameters given in parentheses after "operation" literature with combining inheritance with synchronization. correspond to the remaining formals. The detailed syntax for protected and task interfaces has Here are some examples of use of this shorthand: not been proposed. Here is one possibility: Given the MVC and Inputs packages given above: protected interface Queue is

M : MVC.Model_Ref; -- Interface for a protected queue V : MVC.View_Ref; entry Enqueue(Elem : in Element_Type) is abstract; entry Dequeue(Elem : out Element_Type) is abstract;

Ada User Journal Volume 24, Number 2, June 2003 126 Object-Oriented Programming Enhancements in Ada 200Y

function Length return Natural is abstract; end Add_Worker_Task; end Queue; -- Assign new task a queue to service type Queue_Ref is access all Queue'Class; if Num_Queues > 0 then -- Assign next queue to this worker protected type Bounded_Queue(Max: Natural) is new Worker_Array(Num_Workers). Queue with Assign_Queue_To_Service( Queue_Array(Next_Queue); -- Implementation of a bounded, protected queue -- Dynamically bound entry call entry Enqueue(Elem : in Element_Type); -- Advance to next queue entry Dequeue(Elem : out Element_Type); Next_Queue := Next_Queue mod function Length return Natural; Num_Queues + 1; private end if; Data: Elem_Array(1..Max); or In_Index: Positive := 1; accept Add_Queue_To_Be_Serviced( Out_Index: Positive := 1; Q : Queue_Ref); Num_Elems: Natural := 0; Num_Queues := Num_Queues + 1; end My_Queue; Queue_Array(Num_Queues) := Queue_Ref(Q); end Add_Queue_To_Be_Serviced; task interface Worker is -- Assign queue to worker if enough workers -- Interface for a worker task if Num_Workers >= Num_Queues then entry Queue_To_Service(Q : Queue_Ref) -- This queue should be given one is abstract; -- or more workers end Worker; declare type Worker_Ref is access all Worker'Class; Offset : Natural := Num_Queues-1; begin task type Cyclic_Worker is new Worker with while Offset < Num_Workers loop -- Implementation of a cyclic worker task -- (re) assign queue to worker entry Queue_To_Service(Q : Queue_Ref); Worker_Array((Next_Worker + Offset - end Cyclic_Worker; Num_Queues) mod Num_Workers + 1). Assign_Queue_To_Service( Queue_Array(Num_Queues)); task Worker_Manager is -- Dynamically bound call -- Task that manages servers and queues. Offset := Offset + Num_Queues; entry Add_Worker_Task(W : Worker_Ref); end loop; entry Add_Queue_To_Be_Serviced(Q : Queue_Ref); -- Advance to next worker end Worker_Manager; Next_Worker := Next_Worker mod Num_Workers + 1;

end; task body Worker_Manager is end if; Worker_Array : array(1..100) of Worker_Ref; or Queue_Array : array(1..10) of Queue_Ref; terminate; Num_Workers : Natural := 0; end select; Next_Worker : Integer := Worker_Array'First; end loop; Num_Queues : Natural := 0; end Worker_Manager; Next_Queue : Integer := Queue_Array'First;

begin My_Queue : aliased Bounded_Queue(Max => 10); loop My_Server : aliased Cyclic_Server; select begin accept Add_Worker_Task(W : Worker_Ref) do Worker_Manager.Add_Worker_Task( Num_Workers := Num_Workers + 1; My_Server'Access); Worker_Array(Num_Workers) := Worker_Manager.Add_Queue_To_Be_Serviced( Worker_Ref(W);

Volume 24, Number 2, June 2003 Ada User Journal S T Taft 127

My_Queue'Access); Although it is likely that some of these amendments will be … approved for addition to the standard, it is quite possible end; that some will not, or that the proposals will be further refined in minor or major ways. Hence it is essential to keep in mind that this is a snapshot of an ongoing revision 8 Summary process, and by no means the final story. For those interested in tracking the progress of these amendments, the The four proposed amendments to the Ada standard website of the Ada Conformance Assessment Authority discussed above are in some sense an attempt to "finish" (ACAA) provides ready access to all of the amendments, as the job of integrating object-oriented programming into well as minutes of ARG meetings. The URL for this Ada which was started during the Ada 95 revision process. website is: Although the existing OOP features in Ada 95 are both powerful and flexible, eight years of use and ongoing http://www.ada-auth.org/ developments in the object-oriented programming language References community have suggested opportunities for enhancement. [1] Wellings, A.J.; Johnson, B.; Sanden, B.; Kienzle, J., Wolf, Th., and Michell, S.: "Integrating Object- Oriented Programming and Protected Objects in Ada 95", ACM TOPLAS 22 (3), May 2000; pp. 506-539.

1

Ada User Journal Volume 24, Number 2, June 2003 128 Ada-Europe 2003 Sponsors

ACT Europe 8 Rue de Milan, F-75009 Paris, France Contact: Zépur Blot Tel: +33-1-49-70-67-16 Fax: +33-1-49-70-05-52 Email: [email protected] URL: www.act-europe.fr

Aonix 66/68, Avenue Pierre Brossolette, 92247 Malakoff, France Contact: Marrianne Tournery Tel: Fax: +33-1-41-48-10-20 Email : [email protected] URL : www.aonix.fr

Green Hills Software Ltd Dolphin House, St Peter Street, Winchester, Hampshire, SO23 8BW, UK Contact: Christopher Smith Tel: +44-1962-829820 Fax: +44-1962-890300 Email : URL : www.ghs.com

Praxis Critical Systems Ltd 20 Manvers Street, Bath, BA1 1PX, UK Contact: Rod Chapman Tel: +44-1225-823763 Fax: +44-1225-469006 Email : [email protected] URL : www.sparkada.com

I-Logix 1 Cornbrash Park, Bumpers Way, Chippenham, Wiltshire, SN14 6RA, UK Contact: Tel: +44-1249-467-600 Fax: +44-1249-467-610 Email : [email protected] URL : www.ilogix.com

Rational SARL Immeuble de la Gare, 1, Place Charles de Gaulle, 78180 - Montigny le Bretonneux, France Contact: Nasser Kettani Tel: ++33-1-30-12-09-50 Fax: ++33-1-30-12-09-66 Email: [email protected] URL: www.rational.com

TNI Europe Limited Triad House, Mountbatten Court, Worrall Street, Congleton, Cheshire CW12 1DT, UK Contact: Pam Flood Tel: +44-1260-29-14-49 Fax: +44-1260-29-14-49 Email: [email protected] URL: www.tni-europe.com

Ada User Journal Volume 24, Number 2, June 2003