From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: ** X-Spam-Status: No, score=2.7 required=5.0 tests=BAYES_00,FROM_WORDY, INVALID_DATE,SYSADMIN,T_FILL_THIS_FORM_SHORT autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,825855a4157e9dab,start X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-09-10 11:15:36 PST Path: nntp.gmd.de!xlink.net!slsv6bt!slbh01.bln.sel.alcatel.de!rcvie!Austria.EU.net!newsfeed.ACO.net!swidir.switch.ch!epflnews!disuns2.epfl.ch!usenet From: Magnus.Kempe@di.epfl.ch (Magnus Kempe) Newsgroups: comp.lang.ada Subject: Ada FAQ: comp.lang.ada (part 2 of 2) Followup-To: poster Date: 9 Sep 1994 19:38:13 GMT Organization: Ecole Polytechnique Federale de Lausanne Distribution: world Message-ID: <34qdj5$rpq@disuns2.epfl.ch> NNTP-Posting-Host: lglsun4.epfl.ch Summary: comp.lang.ada Frequently Asked Questions (and answers), part 2 of 2. Please read before posting. Does *not* get into Ada programming questions [for that see the--future--Ada/language FAQ]. Keywords: comp.lang.ada, Ada Date: 1994-09-09T19:38:13+00:00 List-Id: Archive-name: Ada/comp-lang-ada/part2 Posting-Frequency: monthly Last-modified: 9 September 1994 Last-posted: 1 June 1994 COMP.LANG.ADA FREQUENTLY ASKED QUESTIONS (FAQ) This is part 2 of a 2-part posting. Part 2 begins with question 6.2. Part 1 should be the previous posting in this thread. 6.2: Are there versions of lex and yacc that generate Ada code? The Arcadia project produced the tools aflex and ayacc, both written in Ada and producing Ada code. They can be found in ftp://liege.ics.uci.edu/pub/irus/ (Internet address: 128.195.1.5, 128.195.13.1). 6.3: Where can I get a yacc/ayacc grammar to read Ada code? A yacc and lex grammar for Ada 83 is available via FTP from the comp.compiler archives at primost.cs.wisc.edu and via e-mail from the compilers server at compilers-server@iecc.cambridge.ma.us . A yacc grammar for Ada 9X is available in ftp://ajpo.sei.cmu.edu/public/ada9x/rm9x/grammar9x.y and a lex grammar for Ada 9X is available in ftp://ajpo.sei.cmu.edu/public/ada9x/rm9x/lexer9x.l. 6.4: What is Anna, and where can I get it? Anna is a language for formally specifying Ada programs. It extends Ada with various different kinds of specification constructs from ones as simple as assertions, to as complex as algebraic specifications. A whole lot of tools have been implemented for Anna, including: 1. The standard DIANA extension packages, parsers, pretty-printers. 2. Semantic checker (very similar to standard semantic checkers for programming languages). 3. Specification analyzer -- this is a tool used to test a specification for correctness before a program based on the specification is written. 4. Annotation transformer -- this transforms Anna specification constructs into checks on the Ada program that is developed based on the specification. This tool is currently in the process of being enhanced so that it can handle at least all the legal Ada programs in the ACVC test-suite. 5. Runtime debugger -- The instrumented program output by the annotation transormer can be run with a special debugger that allows program debugging based on formal specifications. All tools have been developed in Ada and are therefore extremely portable. Anna has been ported to many platforms, details of which can be obtained from the person who handles Anna releases. You can send e-mail to anna-request@anna.stanford.edu for answers to such questions. Actually, there is also a mailing list -- anna-users@anna.stanford.edu. Send e-mail to the earlier address if you want to get on this list. One could view Anna and its toolset as a *very* significant enhancement of assertions that are provided in languages such as C (using the assert statement). The enhancements are in the form of both (1) many more high level specification constructs; and (2) more sophisticated tool support. However, there are those who would not even wish to compare Anna with C assertions! :-) The Anna tools may be found in ftp://anna.stanford.edu/pub/anna. 6.5: What is DRAGOON, and where can I get it? DRAGOON is a language, implemented as an Ada preprocessor (i.e., it generates pure Ada). DRAGOON is truly object-oriented, including complete support for multiple inheritance. A very nice feature of DRAGOON not found in many OO languages is the concept of "behavioral" inheritance. This allows you to keep the concurrent behavior of object separated from the object class hierarchy. The book by Colin Atkinson, "Object-Oriented Reuse, Concurrency and Distribution: An Ada-Based Approach" (ACM Press, 1991, ISBN: 0201565277), is very well written and describes the language succinctly and completely. For a copy of the preprocessor, contact: Mr. Andrea Di Maio TXT Ingegneria Informatica S.p.A. Via Socrate, 41 20128 Milan, ITALY phone: + 39-2-2700 1001 6.6: Where can I get language translators? The AdaIC maintains a Products and Tools Database on its bulletin board (703/614-0215), and one of the categories is translators. (The list of products should not be considered exhaustive; if you wish to suggest additions, please contact the AdaIC.) Besides access to the database via the bulletin board, you can also call the AdaIC (800-AdaIC-11 or 703/685-1477) and ask for a customized search. Should I? In addition to all the usual caveats, however, it should also be noted that translation itself is a controversial issue. When a project makes the transition to Ada from some other language, one question that arises is whether to translate older code into Ada. Among the immediate considerations are how much of the code can in fact be translated by a program intended for that purpose, versus how much will still require re-coding by hand. And will the translated code suffer a significant loss in speed of execution? Further, a project must consider whether the translated code will reflect sound software engineering and be readily understandable and modifiable. Or will the translated code be merely "Fortranized Ada" or "Cobolized Ada", or the like, possibly retaining limitations present in the earlier code? Portability is also a problem. The resolution of such issues will require an understanding of the earlier code, an appreciation of the similarities and differences between its language and Ada, and an evaluation of the translation program under consideration. 6.7: What is ASIS? The Ada Semantic Interface Specification is a layered vendor-independent open architecture. ASIS queries and services provide a consistent interface to information within the Ada Program Library created at compile time. Clients of ASIS are shielded and free from the implementation details of each Ada compiler vendor's proprietary library and intermediate representation. ASIS Version 1.1.0 is the latest version of the ASIS83 1.1 (Ada 83) de facto industry standard. It differs from the previous ASIS83 Version 1.1 in errata, clarifications, and two new functions in Asis.Declarations (Implicit_Components and Implicit_Variant_Components). ASIS Version 2.0.0 is the Ada 9x version of ASIS, called ASIS9X. As errors, misunderstandings, and clarifications are discovered, the ASIS Working Group will release new edited versions of the specification. The latest working draft for ASIS is ASIS 1.1.0, dated July 1993. Your comments are welcome, if you wish to see replies to your comments, please join the e-mail discussion group (discussed below) first. 6.7.1: How can I find out more about ASIS? Can I take part in its development? The following electronic mail forums now exist for the ASISWG. asiswg-technical@ajpo.sei.cmu.edu technical discussions asiswg@ajpo.sei.cmu.edu high-level non-technical discussions To have your email address added to these forums, send e-mail to: asiswg-technical-request@ajpo.sei.cmu.edu asiswg-request@ajpo.sei.cmu.edu Include your preferred e-mail address, name, telephone number, and surface mail address. 6.7.2: How can I get hold of ASIS? ASIS 2.0.0, 1.1.1, and 1.1.0 (along with the earlier version 1.1) are available from ftp://ajpo.sei.cmu.edu/public/asis/. If you do not have Internet FTP access, the AJPO host provides mail-server capabilities. To get more information about the mail-server, send e-mail to "ftpmail@ajpo.sei.cmu.edu", and address your message as: To: ftpmail@ajpo.sei.cmu.edu Subject: help To get a copy of the /public/asis/README file, address your e-mail as: To: ftpmail@ajpo.sei.cmu.edu Subject: file-request asis/README To get a "directory" listing of /public/asis/v1.1.0, address your e-mail as: To: ftpmail@ajpo.sei.cmu.edu Subject: directory asis To get any of the various files, e.g., /public/asis/v1.1.1/asis_1.1.1.asc.ps, address your e-mail as: To: ftpmail@ajpo.sei.cmu.edu Subject: file-request asis/v1.1.1/asis_1.1.1.asc.ps The filename pattern may include the "*" wildcard. Files have been compressed into .zip files. On Unix hosts, you can uncompress with unzip, and under DOS with PKUNZIP (at least version 2.04). _________________________________________________________________ 7: Bindings 7.1: General The AdaIC (see question 5.2, above) has a report on "Available Ada Bindings". It can be ordered in hardcopy as flyer T82, and it can be downloaded from the AdaIC Bulletin Board (703/604-4624) as bindings.txt. It is also available by anonymous FTP on the AJPO host in ftp://ajpo.sei.cmu.edu/public/dev-tool/bindings.txt. 7.2: POSIX/Ada 7.2.1: What is the status of the POSIX/Ada work? The IEEE approved IEEE Standard 1003.5-1992 in June 1992. This is the Ada Binding to the facilities defined in ISO 9945-1:1989/IEEE 1003.1-1990, the POSIX System Services. IEEE Standards Committee P1003.5 is now working on Ada bindings to IEEE draft standards 1003.4, Real-Time Extensions and 1003.4a, Threads Extensions. Current plans call for an IEEE ballot in October 1993, with IEEE approval in September 1995. For more information, contact the P1003.5 Chairman, Jim Lonjers (lonjers@vfl.paramax.com, 805/987-9457). 7.2.2: How can I get a copy of POSIX/Ada? You can buy a copy of the standard from the IEEE. The order number is "SH 15354", and the mailing address is "IEEE Service Center, 445 Hoes Lane, Piscataway, NJ 08855-1331". They will accept credit-card orders at 1-800/678-4333. The cost is $62.50 + $5.00 s/h ($43.75 + $4.00 s/h for IEEE Members). 7.2.3: Is it available via FTP? Current IEEE policy prohibits electronic distribution of IEEE standards. Proceeds from the sale of IEEE standards help support the IEEE standards program. However, The POSIX P1003.5 committee has been able to work out an arrangement with the IEEE to make the POSIX/Ada package specifications available for distribution via e-mail and anonymous FTP from ftp://ajpo.sei.cmu.edu/public/dev-tool/POSIX/. The AJPO files are also mirrored at the PAL. 7.3: How do I interface X Window System with Ada? This question turns out to be pretty darn hard to answer easily. There are at least three variables that need to be filled: 1. platform where you are going to be running. 2. compiler you would like to use. 3. level/flavor of X you would like to run (e.g., just need bindings to Xlib, want Openlook as opposed to Motif, etc). Once you fill all three of the above, then you can start to get answers. In order to keep the answer brief, companies that offer such products are simply listed, along with locations where free versions are available. Before giving you the list, a little history is in order. The first Xlib bindings that were publically available were done by SAIC for STARS. This implementation had many bugs, but it was there, and it was free. This version was eventually withdrawn from the STARS repository, and has now been replaced with a better one. In addition, SAIC has done an Xt implementation based on these Xlib bindings (also for STARS). NOTE: the above description may well be inaccurate, corrections are welcome. Now, for the list: First off, there is a pretty complete list of available bindings for X as well as other stuff at the AdaIC. FTP Location: ftp://ajpo.sei.cmu.edu/public/dev-tool/bindings.txt Free versions: STARS: bindings to Xlib and Xt. Available on source.asset.com. Note: the ASSET host no longer takes anonymous FTP. To request an account, contact: info@source.asset.com Non-free versions: SERC: bindings to Xlib/Xt/Motif contact: well!sercmail@apple.com (Scott Cleveland) Verdix: bindings to Xlib/Xt/Motif (Note that bindings to Xview are included with the SunAda Sun4 compiler) contact: moskow@verdix.com (Paul Moskowitz) ATC: bindings to Xlib/Xt/Motif contact: ??? TeleSoft (now part of Alsys): bindings to Xlib/Xt/Motif (TeleWindows) (Note that bindings to Xview are included with the TeleSoft Sun4 compiler) contact: philippe@telesoft.com X-based GUI (Graphical User Interface) Builders: Objective (OIS): Screen Machine contact: Phil Carrasco (703/264-1900) TeleSoft (now part of Alsys): TeleUSE contact: philippe@telesoft.com EVB Software Engineering, Inc. : GRAMMI contact : info@evb.com or info_server@evb.com with subject "send grammi" Sun Microsystems: DevGuide contact: ??? SERC: UIL-to-Ada code generator (not really a GUI-builder, but works with several builders to generate Ada instead of other languages). contact: well!sercmail@apple.com (Scott Cleveland) _________________________________________________________________ 8: Is there a list of good Ada books? Just for a list of texts, etc. (no evaluations or recommendations), you might take a look at ftp://ajpo.sei.cmu.edu/public/ed-train/adabooks.txt. A real-time book: Real Time Systems and Their Programming Languages by A. Burns and A. Wellings Prentice-Hall The book uses Ada, Modula-2 and Occam2 as examples, though Ada is clearly the language of choice and gets more coverage than either of the other two. IMHO, it's a good book -- a wide coverage of real-time issues with good examples in all the languages. It covers Ada real-time excellently, including the use of CIFO etc. Thoroughly recommended! Books for use in class (and others): (from mfeldman@seas.gwu.edu (Michael B. Feldman)) As co-chair of the SIGAda Education Committee, and a denizen of the Internet newsgroups, I am often asked to give references for "Ada textbooks." This list responds to these many queries. It is far from exhaustive, merely a selected list of 26 books being used successfully in undergraduate computer science courses. The six books in the Group 1 are written especially for students without programming experience, who are learning Ada as their first language. Most of these can also cover at least part of a typical CS2-level course. The seven books in Group 2 use Ada as their language of discourse but are "subject-oriented:" data structures, file structures, compilers, comparative languages. The thirteen books in Group 3 are either "Ada books" focusing on the language features or more general books that use Ada, at least in part, but do not fit obviously into a standard curriculum "pigeonhole." I invite you to add to the list. Please write your annotated entry in the form I have used here and write or e-mail it to me. I will include it in my next version and credit you as a co-compiler of the list. Disclaimers: I wrote two of the texts listed here; I hope the annotations are impartial enough. And any annotated bibliography is selective and opinionated. Your mileage may vary. Group 1: Books Suitable for a First Course in Programming Bover, D.C.C., K.J. Maciuas, and M.J. Oudshoorn. Ada: A First Course in Programming and Software Engineering. Addison-Wesley, 1992. This work is, to our knowledge, the first Ada book to emerge from Australia, from a group of authors with much collective experience in teaching Ada to first-year students. A number of interesting examples are presented, for example, an Othello game. The book is full of gentle humor, a definite advantage in a world of dry and serious texts. In the book's favor is the large number of complete programs. On the other hand, it is rather "European" in its terseness; American teachers may miss the pedagogical apparatus and "hand-holding" typically found in today's CS1 books. Generic units are hardly mentioned. Culwin, F. Ada: a Developmental Approach. Prentice-Hall, 1992. This work introduces Ada along with a good first-year approach to software development methodology. Much attention is paid to program design, documentation, and testing. Enough material is present in data structures and algorithm analysis is present to carry a CS2 course. A drawback of the book is that the first third is quite "Pascal-like" in its presentation order: procedures, including nested ones, are presented rather early, and packages are deferred until nearly the middle of the book. This is certainly not a fatal flaw, but it will frustrate teachers wishing a more package-oriented presentation. The programs and solutions are apparently available from the author. Feldman, M.B., and E.B. Koffman. Ada: Problem Solving and Program Design. Addison-Wesley, 1991. This work combines the successful material from Koffman's CS1 pedagogy with a software-engineering-oriented Ada presentation order. Packages are introduced early and emphasized heavily; chapters on abstract data types, unconstrained arrays, generics, recursion, and dynamic data structures appear later. The last five chapters, combined with some language-independent algorithm theory, can serve as the basis of a CS2 course. A diskette with all the fully-worked packages and examples (about 180) is included; the instructor's manual contains a diskette with project solutions. Savitch, W.J. and C.G. Petersen. Ada: an Introduction to the Art and Science of Programming. Benjamin/Cummings, 1992. This is a straightforward adaptation of the well-known Savitch Pascal books. Ada is introduced in a Pascal-like order, with subtypes and packages introduced halfway through the book. This is purely a CS1 book. The final chapter covers dynamic data structures. There is no coverage of unconstrained array types; generics are introduced at the halfway point to explain Text_IO, then dropped until the final chapter. The authors intended this book to provide a painless transition to Ada for teachers of Pascal; one wishes they had taken advantage of the chance to show some of the interesting Ada concepts as well. Program examples from the text are available on disk, but only as part of the instructor's manual; a solutions disk is available for a fee from the authors. Skansholm, J. Ada from the Beginning. Addison Wesley, 1988. This book was one of the first to use Ada with CS1-style pedagogy. There are excellent sections on the idiosyncracies of interactive I/O (a problem in all languages), and a sufficient number of fully-worked examples to satisfy students. Generics, linked lists and recursion are covered at the end; there is no tasking coverage, but one would not expect this at CS1-level. Volper, D., and M. Katz. Introduction to Programming Using Ada. Prentice-Hall, 1990. This book uses a heavily "spiraled" approach to Ada, and is designed for a 2-semester course, covering nearly all of Ada eventually. There are lots of fully-coded examples, and good pedagogical sections on testing, coding style, etc. If you like spiraling, you'll like this. The down side is that you can't find all you need on a given subject in one place. It's at the other end of the scale from the "Ada books" that follow the Ada Language Reference Manual (LRM) order. Group 2: Other Books Intended for Undergraduate Courses Ben-Ari, M. Principles of Concurrent and Distributed Programming. Prentice-Hall 1990. (OS/concurrency) In my opinion, this is the best introduction to concurrency on the market. Ada notation is used for everything, but the focus is on concurrency and not on Ada constructs per se. I liked the CoPascal notation of the first edition better, but this book is still great. A software disk is promised in the preface; I had to work quite hard to get it from the publisher, which finally had to express-ship it from England. The software comes with a tiny Ada-ish interpreter, complete with Pascal source code, adapted from Wirth's Pascal/S via CoPascal. There are also some real Ada programs, most of which I've tested and found correct and portable. Feldman, M.B. Data Structures with Ada. Prentice Hall, 1985 (now distributed by Addison-Wesley). (CS2/data structures) This book is a reasonable approximation to a modern CS2 book: "big O" analysis, linked lists, queues and stacks, graphs, trees, hash methods, and sorting, are all covered. The Ada is a bit old-fashioned, especially the lack of generics; the book was published before compilers could handle generics. The packages and other programs are available free from the author. The book is currently under revision with Addison-Wesley and should appear in 1993. Fischer, C., and R. LeBlanc. Crafting a Compiler. Benjamin Cummings, 1988. (compilers) This book uses Ada as its language of discourse and Ada/CS, a usefully large Ada subset, as the language being compiled. If you can get the "plain Pascal" tool software by FTP from the authors, you'll have a good translator-writing toolset. Skip the Turbo Pascal diskette version, which is missing too many pieces to be useful. I've used the book since it came out with both undergrad and graduate compiler courses; it embodies a good blend of theory and "how it's really done" coding. Students like it. The authors have recently published a second version, which uses C as its coding language but retains Ada/CS as the language being compiled. Lomuto, N. Problem-Solving Methods with Examples in Ada. Prentice-Hall, 1987. (algorithms) Inspired by Polya's classic How to Solve It, this book can make a nice addition to an Ada-oriented algorithms course. It makes too many assumptions about students' programming background to use as a CS1 book, and doesn't teach enough Ada to be an "Ada book." But it makes nice reading for students sophisticated enough to handle it. I'd classify it as similar to Bentley's Programming Pearls. Miller, N.E. and C.G. Petersen. File Structures with Ada. Benjamin/Cummings, 1990. (file structures) Designed for a straightforward ACM-curriculum file structures course, this book succeeds at what it does. There are good discussions of ISAM and B-tree organizations. The software can be purchased a low cost from the authors; it seems to approximate in Ada all those C-based file packages advertised in programmer-oriented trade publications. Schneider, G.M., and S.C. Bruell. Concepts in Data Structures and Software Development (with Ada Supplement by P. Texel). West, 1991. (CS2/data structures) This work is not, strictly speaking, an Ada book; rather, it is a solid, language-independent approach to modern CS2. The language of discourse in the book is a Pascal-like ADT language rather like Modula-2 in style; some examples are coded in legal Pascal. The Ada supplement makes it usable in an Ada-based course, but the supplement is rather too terse (100 pages of large type) for my taste, and insufficiently well keyed to the book chapters. The supplement's effectiveness would be greatly enhanced by full translations to Ada of a large number of the book's examples. Sebesta, R.W. Concepts of Programming Languages. Benjamin Cummings, 1989. (comparative languages) If you've been around for a while, you might remember the late Mark Elson's 1975 book by the same title. This is similar: a concept-by-concept presentation, with -- in each chapter -- examples taken from several languages. There is a nice impartial presentation of Ada along with the others. I especially like the chapters on abstraction and exception handling. The book covers -- comparatively, of course -- most of the lanuages you'd like to see, including C, Lisp, Smalltalk, etc., with nice historical chapters as well. The book is readable; my students like it. Our undergraduate and graduate courses both use it as a base text. Group 3: A Selection of Other Ada-Related Books Barnes, J. Programming in Ada. (3rd edition) Addison Wesley, 1989. Barnes' work has been one of the most popular "Ada books." Some students find it hard to see how the pieces fit together from Barnes' often fragmentary examples; it is difficult to find complete, fully-worked out, compilable programs. A version is available with the entire Ada Language Reference Manual bound in as an appendix. Booch, G. Object-Oriented Design, with Applications. Benjamin Cummings, 1991. This is a good comparative introduction to the "object-oriented (OO)" concept. The first half gives a balanced presentation of the issues in OO Design; the second half gives nontrivial examples from Ada, Smalltalk, C++, CLOS, and Object Pascal. The author tries to sort out the difference between object-based (weak inheritance, like Ada) and object-oriented (like C++) languages. My only real complaint is that Booch should have worked out at least some of his case studies using several different languages, to highlight the similarities and differences in the language structures. As it is, each case study is done in only a single language. The good news is that the book is remarkably free of the hyperbolic claims one sometimes finds in the OO literature. I think this book could be used successfully in a second- level comparative languages course. Booch, G. Software Components with Ada. Benjamin Cummings, 1987. This work is an encyclopedic presentation of data structure packages from Booch's OOD point of view. It is great for those who love taxonomies. It's not for the faint-hearted, because the volume of material can be overwhelming. It could serve as a text for an advanced data structures course, but it's thin in "big O" analysis and other algorithm-theory matters. The book is keyed to the (purchasable) Booch Components. Booch, G. Software Engineering with Ada. (2nd edition) Benjamin Cummings 1987. Another of the classical "Ada books." Introduces Booch's OOD ideas. Not for use to introduce Ada to novices, in my opinion; there are some nice fully-worked case studies but they begin too far into the book, after long sections on design, philosophy, and language elements. The earlier chapters contain too much fragmentary code, a common flaw in books that follow the LRM order. Bryan, D.L., and G.O. Mendal. Exploring Ada, Volumes 1 and 2. Prentice-Hall, 1990 and 1992 respectively. This is an excellent study of some of the interesting nooks and crannies of Ada; it sometimes gets tricky and "language-lawyerly." Volume 2 takes up tasking, generics, exceptions, derived types, scope and visibility; Volume 1 covers everything else. The programs are short and narrowly focused on specific language issues. If you like Bryan's "Dear Ada" column in Ada Letters, you'll like this book. It is certainly not a book for beginners, but great fun for those who know Ada already and wish to explore. Burns, A. Concurrent Programming in Ada. Cambridge University Press, 1985. I used this book for years in my concurrency course. It's roughly equivalent to Gehani's book, but its age is showing. Cambridge Press is not always easy to get books from, especially in the US. Cohen, N. Ada as a Second Language. McGraw Hill, 1986. This book is a quite comprehensive exploration of Ada which follows the LRM in its presentation order. My graduate students like it because it is more detailed and complete than alternative texts. It's an excellent book for students who know their languages and want to study all of Ada. There are good discussions of "why's and wherefore's" and many long, fully-worked examples. Gauthier, M. Ada: Un Apprentissage (in French). Dunod, 1989. I found this an especially interesting, almost philosophical approach to Ada. The first section presents Ada in the context of more general laguage principles: types, genericity, reusability. The second section introduces testing and documentation concerns, as well as tasking; the third considers generics and variant records in the more general context of polymorphism. For mature Ada students in the French-speaking world, and others who can follow technical French, this book can serve as a different slant on the conventional presentations of the language. An English translation would be a real contribution to the Ada literature. Gehani, N. Ada: an Advanced Introduction (2nd edition). Prentice-Hall, 1989. I've always liked Gehani's literate writing style; he knows his languages and treats Ada in an interesting, mature, and balanced fashion. This book comes with a diskette sealed in the back of the book, which is advantageous because the book has numerous nontrivial, fully-worked examples. Gehani, N. Ada: Concurrent Programming (2nd edition). Silicon Press, 1991. This is a less formal, more Ada-oriented presentation of concurrency than the Ben-Ari work. I use both books in my concurrency course; its real strength is the large number of nontrivial, fully worked examples. Gehani offers a nice critique of the tasking model from the point of view of an OS person. The preface promises the availability of a software disk from the publisher. Nyberg, K. The Annotated Ada Reference Manual. (2nd edition) Grebyn Corporation, 1991. This is the definitive work on Ada legalities, because it presents not only the full text of the LRM but also the official Ada Interpretations. These commentaries, interleaved with the LRM text, have been approved and promulgated by the Ada Board and the various standards organizations, and are binding upon compiler developers. I recommend this book as an essential volume in the library of every serious Ada enthusiast. Shumate, K. Understanding Ada. (2nd edition) John Wiley, 1989. This would make a CS1 book if it included more overall pedagogy, independent of language constructs. Otherwise it is a nice introduction to Ada in fairly gentle steps. Lots of completely worked examples, right from the start. Doesn't follow the LRM order, which is great. Watt, D.A., B.A. Wichmann, and W. Findlay. Ada Language and Methodology. Prentice-Hall, 1987. This work presents some interesting programming projects, and the coverage of design and testing--at the level of a first-year student--is quite good. The first third of the book concentrates heavily on classical control and data structures, leaving exceptions and packages until the "programming in the large" material in the second third. CS2 teachers will find too little concentration on algorithm analysis. On the other hand, tasking and machine-dependent programming are covered. Like the Shumate work, this book would make a suitable introduction to Ada for students with a semester or so of programming experience; it "jumps in" too quickly to satisfy the needs of neophytes and is not well-tailored to CS1 or CS2 needs. _________________________________________________________________ 9: Resources 9.1: What FTP sites exist that contain information about Ada or Ada source? Public Ada Library (formerly Ada Software Repository) wuarchive.wustl.edu (Internet address: 128.252.135.4) Mirror: ftp.cdrom.com European mirror: ftp.cnam.fr (Internet address: 192.33.159.6) AJPO and AdaIC ajpo.sei.cmu.edu [mirrored by the PAL, listed above] (Internet address: 192.58.107.159) ASSET / STARS (Software Technology for Adaptable, Reliable Systems): source.asset.com (Internet Address: 192.131.125.10) Note: the ASSET host no longer takes anonymous FTP. To request a free account, contact: info@source.asset.com 9.2: The AJPO host has many Ada information files available for downloading by anonymous FTP. But I don't have FTP service on the host where I have an account. Is there any way I can get those files? The AJPO host, ajpo.sei.cmu.edu, will provide mail-server capabilities on an experimental basis. The available services provided by this automatic mail server are: services, Re, help, info, man, directory, and file-request. To request a service, send e-mail to "ftpmail@ajpo.sei.cmu.edu" and place its name in the Subject line of the mail message, followed by any needed parameters. The mail server will respond to your request with either the information you requested or an error message. The following are common examples on how to request services from the AJPO host mail server: ---------------------------------------------------------------- 1) To get "help" -- To: ftpmail@ajpo.sei.cmu.edu Subject: help ---------------------------------------------------------------- 2) To get "man" pages of a particular service, such as "directory" -- To: ftpmail@ajpo.sei.cmu.edu Subject: man directory This service takes as a parameter the name of a service, and returns a manual page on that service. ---------------------------------------------------------------- 3) To get a "directory" listing of the AJPO anonymous FTP area (/public) -- To: ftpmail@ajpo.sei.cmu.edu Subject: directory The "directory" service takes as an optional parameter a file or directory name, and returns the results of an "ls -l" on that parameter. For example, to get a listing of the /public/compiler directory you would submit a message with the Subject of: Subject: directory compiler The filename pattern may include wildcards as defined by the C shell. For example, to get a listing of the /public directories beginning with "p" you would submit a message with the Subject of: Subject: directory p* ---------------------------------------------------------------- 4) Use "file-request" to get /public/README file -- To: ftpmail@ajpo.sei.cmu.edu Subject: file-request README The "file-request" service takes as an optional parameter a filename, and will return the contents of the file. Text files are returned verbatim, while binary files are encoded via the Unix "uuencode" command. Large files (greater than 1000 lines long) will be split into multiple mail messages. For example, to get the file "README" in the /public/compiler directory you would submit a message with the Subject of: Subject: file-request compiler/README ---------------------------------------------------------------- Below is a sample response to a "help" request. From: FTP Mail Server Message-Id: To: adainfo@ajpo.sei.cmu.edu Subject: Re: help In-Reply-To: Content-Type: text/plain; charset=us-ascii You have sent electronic mail to the Ada Joint Programs Office automatic mail server. This server is based on the ServiceMail(tm) Toolkit from Enterprise Integration Technologies. In general, you may request a service by placing its name in the Subject line of a mail message, followed by any needed parameters. The mail server will respond to your request with either the information you requested or an error message. Here is a brief description of the available services: services: This service returns a list of the available services. Re: This service discards all messages with "Re:" in the subject line. This is to prevent mail loops. help: This service returns this help message. info: This service returns this help message. man: This service takes as a parameter the name of a service, and returns a manual page on that service. directory: This service takes as an optional parameter a file or directory name, and returns the results of an "ls -l" on that parameter. The root of the file structure is the AJPO anonymous FTP area. file-request: This service takes as an optional parameter a file name, and will return the contents of the file. The root of the file structure is the AJPO anonymous FTP area. Text files are returned verbatim, while binary files are encoded via the Unix "uuencode" command. Large files (greater than 1000 lines long) will be split into multiple mail messages. Try 'man ' to get more information on a particular service. Please report bugs and other problems to ftpmail-request@ajpo.sei.cmu.edu. 9.3: Reuse 9.3.1: Are there any free, public-domain, or other general-access software repositories that contain Ada source code and information on reuse? There are a number of them, among them PAL (the Public Ada Library) and ELSA, described below. Public Ada Library (formerly Ada Software Repository) Formerly the Ada Software Repository (ASR), the Public Ada Library (PAL) is a collection of programs, components, tools, general information, and educational materials; taking up hundreds of megabytes, it contains the source code for hundreds of distinct items as documented in its Master Index. Previously housed on the SIMTEL20 host computer, it is now located at Washington University at St. Louis's host (wuarchive.wustl.edu -- which had been a mirror site for the ASR). The PAL is available for anonymous FTP: ftp://wuarchive.wustl.edu/pub/languages/ada/, The PAL has its own FAQ, a copy of which is stored in ftp://rtfm.mit.edu/pub/usenet-by-group/comp.lang.ada/, which stores the FAQ files posted to news.answers. ELSA (previously AdaNet) ELSA is a component of the Repository Based Software Engineering (RBSE) Program sponsored by NASA's Technology Utilization Division. It is a public-domain reuse library containing value-added software from ASR (PAL), STARS, JPL, many educational institutions, and various other sources. The non-software information includes relevant research papers, standards, and technical reports. ELSA also distributes components on floppy disks. All of its services are free of charge. For more information, contact ELSA Client Service at 1-800/444-1458 or lacey@rbse.mountain.net. 9.3.2: Is there some sort of database of re-usable Ada software components? You might want to join ACM SigAda (see question 5.3) in order to subscribe to Ada Letters. They publish a list of reusable components on an annual basis. The most recent list was in the March/April 1994 issue (XIV.2). In fact, it is more of a list of lists, in that it mentions places that have sets of reusable components. The maintainer of the Ada Letters "master list" is levine@sun490.fdu.edu (also levine@vax.fdu.edu). To our knowledge this list is NOT available online. Check also the software repositories, mentioned above (question 9.3.1). 9.4: Where can I get Ada benchmark programs? In addition to the information below, you may also wish to look at the AdaIC flyer "How to Obtain Benchmark Performance Test Suites and Results", flyer C15, file benchmrk.txt on the AJPO host (ajpo.sei.cmu.edu). (For more on the AdaIC and downloading files, see questions 5.2, 9.1, and 9.2.) The Ada Evaluation System The Ada Evaluation System (AES) may be obtained from the British Standards Institute at the following address: Software Product Services Software Engineering Department BSIQA P.O. Box 375 Milton Keynes MK14 6LL United Kingdom Tel: 0908 220908 UUCP: sed@bsiqa.uucp (Internet: bsiqa!sed@uunet.uu.net) As of February 1993, the current version is the DIY-MAPSE-01 version. It is available at a cost of 3,000 pounds sterling. BSI also offers a validation service at a cost of 24,000 pounds sterling. Principal documents are a User's Manual, a Reference Manual, and a Test Description Document. The Ada Evaluation System (AES) was merged with the Ada Compiler Evaluation Capability (ACEC) under a joint agreement between the Ministry of Defence of the United Kingdom and the Department of Defense of the United States that was signed in June of 1991. The merged product has been released as the Ada Compiler Evaluation System (ACES), which is the latest version of the ACEC. The Ada Compiler Evaluation Capability/Ada Compiler Evaluation System The Ada Compiler Evaluation System (ACES) may be obtained from: Data and Analysis Center for Software (DACS) Attn: Document Dataset Ordering Kamen Sciences Corporation P.O. Box 120 Utica, NY 13503-0120 Tel: 315/734-3696; Fax: 315/734-3699 Internet: dacs@kaman.com There are three documents: the User's Guide, the Reader's Guide, and the Version Description Document. The total cost for the software (on 6250-bpi 9-track VMS Backup tape) and documentation is 100 US dollars. ACES is also available for downloading via anonymous FTP from the AJPO host computer, where it can be found in the /public/aces directory. It can also be downloaded from the Public Ada Library (PAL -- see question 9.3.1). Hartstone Benchmarks Electronic-mail requests for Hartstone should be sent to the following Internet address: hartstone-info@sei.cmu.edu . The reply message will contain full details of how to obtain source code and documentation by various means, including anonymous FTP. There is no charge for the Hartstone source code. For people without Internet access, the address to send requests to is: REST Transition Services Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213-3890 Phone: 412/268-7787 Hartstone source code may also be retrieved from the PIWG bulletin board. (See below.) The PIWG Benchmarks The ACM Performance Issues Working Group (PIWG) benchmarks may be obtained in one of three ways: 1. Via anonymous FTP from the ajpo.sei.cmu.edu machine. Users should issue the command "ftp ajpo.sei.cmu.edu" and log in using the word "anonymous" as the login name and an identifying string (e.g., the user's e-mail address) as password. Change directory ("cd" command) to the "public/piwg/piwg_11_92" directory and use the FTP file-transfer commands to retrieve the files. The README file contains information about using the benchmarks. 2. Via the PIWG bulletin board. Ideally, users should access this from a PC (rather than a dumb terminal) using a modem capable of sending and receiving at 1200 baud or higher. The number of the bulletin board is 412/268-7020. Once connected to the bulletin board, users will be able to navigate their way around the system using simple menus that the system provides. The point of contact for this service is Gene Rindels, 412/268-6728. 3. Via a written request or telephone request to the following service: PIWG Distribution Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213-3890 Tel: 412/268-7787 As of February 1993, the current release of the PIWG suite is the one dated 11/92. There is no charge for the PIWG benchmarks. Documentation for the PIWG benchmarks consists principally of the READ.ME file distributed with the suite and comments in the individual test programs and command files. There is also additional information about the PIWG suite in the Winter 1990 special edition of Ada Letters (Vol. X, No. 3, special edition on Ada Performance Issues). 9.5: Are there any dial-up BBS systems that deal with Ada? AdaIC BBS: (US) 703/604-4624 AUTOVON: 664-4624 AdaNet BBS: This is a free service that maintains e-mail connections for people not on the Internet, an Ada source code repository, and a selection of other on-line Ada-related documents. It is sponsored by NASA. Call 800/444-1458 to register for access. (Caveat: Telephone numbers can change without notice. If we find out a number doesn't work, we'll note that, but leave the entry in until we're sure the service has actually been discontinued. If you are aware of a better number, please let us know.) Naval Computer Telecommunications Command Tel: 804/444-7841 (DSN 564-7841) Air Force Software Technology Support Center (STSC) BBS Tel: 801/774-6509 Baud: 2400, 1200, 300 Bits: 8 Parity: None Stop Bits: 1 ACM SIGAda Performance Issues Working Group PIWG Ada Benchmarks BBS Tel: 412/268-7020 Embedded Systems Programming Magazine BBS Tel: 415/905-2689 _________________________________________________________________ 10: Credits The following persons have contributed (directly or indirectly through e.g. comp.lang.ada) to the information gathered in this FAQ: the Ada Information Clearinghouse--AdaIC [I know, it's not a person; still, they managed the FAQ for about one year], Heddy Boubaker, Susan Carlson, Cyrille Comar, Robert Dewar, Patrick Donohoe, Dave Emery, Don Erway, Michael Feldman, John Goodenough, Drew Johnson, Michele L. Kee, Mathew Lodge, "tjmesler", Gary Morris, Pascal Obry, Kurt Olender, Margie Price, Richard Riehle, Tucker Taft, and the maintainer has simply :-) organized, polished, or added some information for your satisfaction. The general HTML structure of this FAQ was inspired by the WWW FAQ. _________________________________________________________________ 11: Copying this FAQ This FAQ is copyright 1994 by Magnus Kempe. It may be freely redistributed as long as it is completely unmodified and that no attempt is made to restrict any recipient from redistributing it on the same terms. It may not be sold or incorporated into commercial documents without the explicit written permission of the copyright holder. Permission is granted for this document to be made available under the same conditions for file transfer from sites offering unrestricted file transfer on the Internet and from Forums on e.g. Compuserve and Bix. This document is provided as is, without any warranty.