home *** CD-ROM | disk | FTP | other *** search
/ Solo Programadores 22 / SOLO_22.iso / docs / faq / lang_ada / part1 / text0000.txt < prev   
Encoding:
Text File  |  1996-04-24  |  33.1 KB  |  761 lines

  1. Archive-name: computer-lang/Ada/comp-lang-ada/part1
  2. Comp-lang-ada-archive-name: comp-lang-ada/part1
  3. Posting-Frequency: monthly
  4. Last-modified: 9 March 1996
  5. Last-posted: 25 January 1996
  6.  
  7.                                  comp.lang.ada
  8.                        Frequently Asked Questions (FAQ)
  9.  
  10.     Recent changes to this FAQ are listed in the first section after the table
  11.     of contents. This document is under explicit copyright.
  12.  
  13. This is part 1 of a 3-part posting.
  14. Part 2 begins with question 4.
  15. Part 3 begins with question 7.
  16. They should be the next postings in this thread.
  17.  
  18.  
  19. Introduction
  20.  
  21.    Ada is an advanced, modern programming language, designed and
  22.    standardized to support and strongly encourage widely recognized
  23.    software engineering principles: reliability, portability, modularity,
  24.    reusability, programming as a human activity, efficiency,
  25.    maintainability, information hiding, abstract data types, genericity,
  26.    concurrent programming, object-oriented programming, etc.
  27.  
  28.    All validated Ada compilers (i.e. a huge majority of the commercial
  29.    Ada compilers) have passed a controlled validation process using an
  30.    extensive validation suite. Ada is not a superset or extension of any
  31.    other language. Ada does not allow the dangerous practices or effects
  32.    of old languages, although it does provide standardized mechanisms to
  33.    interface with other languages such as Fortran, Cobol, and C.
  34.  
  35.    Ada is recognized as an excellent vehicle for education in programming
  36.    and software engineering, including for a first programming course.
  37.  
  38.    Ada is defined by an international standard (the language reference
  39.    manual, or LRM), which has been revised in 1995. Ada is taught and
  40.    used all around the world (not just in the USA). Ada is used in a very
  41.    wide range of applications: banking, medical devices,
  42.    telecommunications, air traffic control, airplanes, railroad
  43.    signalling, satellites, rockets, etc.
  44.  
  45.    The latest version of this FAQ is always accessible through WWW as
  46.    http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html#title
  47.  
  48. Maintenance
  49.  
  50.    This FAQ is maintained on an individual volunteer basis, by Magnus
  51.    Kempe (Magnus.Kempe@di.epfl.ch). [Note: This is done as a hobby, not
  52.    in my capacity as an employee at the Swiss Federal Institute of
  53.    Technology. --MK]
  54.  
  55.  
  56.      _________________________________________________________________
  57.  
  58.    Report of a product, service, or event, etc., does not constitute an
  59.    endorsement. Opinions (if any) expressed are those of the submitters
  60.    and/or maintainer.
  61.      _________________________________________________________________
  62.  
  63. Table of Contents:
  64.  
  65.      * 1: Recent changes to this FAQ
  66.  
  67.      * 2: Information about this document
  68.  
  69.      * 3: Elementary questions
  70.           + 3.1: What is Ada?
  71.                o 3.1.1: What are the LRM, RM, and AARM?
  72.                o 3.1.2: Where can I get other information on Ada?
  73.           + 3.2: I have seen the language name capitalized as ADA, as
  74.             well as Ada. Which is right?
  75.           + 3.3: What is Ada 95 (aka Ada 9X)?
  76.                o 3.3.1: Are there already Ada 95 books?
  77.           + 3.4: Is Ada a registered trademark (TM) of the US government?
  78.           + 3.5: Where can I find an electronic version of the Ada
  79.             language reference manual (LRM)?
  80.           + 3.6: Is Ada used in commercial applications?
  81.           + 3.7: How do I do [choose_a_goal] in Ada?
  82.           + 3.8: I think Ada could really benefit from having
  83.             [choose_a_feature] from [choose_a_language] ...
  84.           + 3.9: I just saw a very anti-Ada post that I think is
  85.             definitely wrong. Why didn't anybody post a response to it?
  86.             Should I?
  87.                o 3.9.1: Person X is a heckler, should I answer him in
  88.                  public?
  89.           + 3.10: I very strongly agree/disagree with the Ada mandate (or
  90.             a post dealing with it). Why doesn't anyone praise/criticize
  91.             it? Should I?
  92.           + 3.11: Why shouldn't I cross-post my comp.lang.ada messages to
  93.             other comp.lang.* newsgroups?
  94.           + 3.12: I don't have FTP service on the host where I have an
  95.             account. Is there any other way I can access FTP sites?
  96.                o 3.12.1: The AdaIC host has a special e-mail service for
  97.                  FTP.
  98.           + 3.13: Common Confusions
  99.                o 3.13.1: Wasn't Ada designed by some committee? What kind
  100.                  of a language could you possibly get from a committee?
  101.                o 3.13.2: I've heard the DoD is dropping all Military
  102.                  standards to reduce costs, doesn't that mean the
  103.                  mandate to use Ada goes away too?
  104.  
  105.  
  106.      * 4: Compilers
  107.           + 4.1: Is there a list of validated Ada compilers?
  108.           + 4.2: Is there a free Ada compiler (or interpreter)?
  109.                o 4.2.1: GNAT, The GNU NYU Ada Translator -- An Ada 95
  110.                  Compiler
  111.                o 4.2.2: Ada/Ed -- An Interpreter for Ada 83 
  112.                o 4.2.3: GW-Ada/Ed -- a souped-up version of Ada/Ed for
  113.                  386/486 DOS and Macintosh machines
  114.           + 4.3: What cheap (<500$) Ada compilers are available?
  115.           + 4.4: Is there an Ada compiler for common machine X/common
  116.             operating system Y?
  117.                o 4.4.1: on the Macintosh?
  118.                o 4.4.2: native for OS/2?
  119.           + 4.5: How can I contact Ada compiler vendor?
  120.           + 4.6: Are Ada 95 compilers compatible with Ada 83?
  121.  
  122.  
  123.      * 5: Organizations that deal with Ada and Ada issues
  124.           + 5.1: Ada Joint Program Office (AJPO)
  125.           + 5.2: Ada Information Clearinghouse (AdaIC)
  126.           + 5.3: ACM/SIGAda
  127.           + 5.4: ISO WG 9
  128.  
  129.  
  130.      * 6: Tools
  131.           + 6.1: Is there an Ada-mode for Emacs?
  132.           + 6.2: Are there versions of lex and yacc that generate Ada
  133.             code?
  134.           + 6.3: Where can I get a yacc/ayacc grammar to read Ada code?
  135.           + 6.4: What is Anna, and where can I get it?
  136.           + 6.5: What is DRAGOON, and where can I get it?
  137.           + 6.6: Where can I get language translators? And should I?
  138.           + 6.7: What is ASIS?
  139.  
  140.  
  141.      * 7: Bindings
  142.           + 7.1: General
  143.           + 7.2: POSIX
  144.                o 7.2.1: What is the status of the POSIX/Ada work?
  145.                o 7.2.2: How can I get a copy of POSIX/Ada?
  146.                o 7.2.3: Is POSIX/Ada available via FTP?
  147.           + 7.3: X Window System
  148.  
  149.  
  150.      * 8: Is there a list of good Ada books?
  151.  
  152.      * 9: Resources
  153.           + 9.1: What FTP sites contain information about Ada or Ada
  154.             source?
  155.           + 9.2: Reuse
  156.                o 9.2.1: Are there any free, public-domain, or other
  157.                  general-access software repositories that contain Ada
  158.                  source code and information on reuse?
  159.                o 9.2.2: Is there a database of reusable Ada software
  160.                  components?
  161.           + 9.3: Where can I get Ada benchmark programs?
  162.           + 9.4: Are there any dial-up BBS systems that deal with Ada?
  163.  
  164.  
  165.      * 10: Credits
  166.  
  167.      * 11: Copying this FAQ
  168.  
  169.  
  170.      _________________________________________________________________
  171.  
  172. 1: Recent changes to this FAQ
  173.  
  174.      * 960309: moved annotated list of books (8) to the new Learning Ada
  175.        FAQ.
  176.      * 960228: updated AJPO (5.1) and AdaIC (5.2)information.
  177.      * 960228: updated AdaIC e-mail service for FTP (3.12.1)
  178.      * 960228: ASIS info updated (6.7).
  179.      * 960228: revised BBS section (9.4).
  180.      * 960130: update and reorg of free Ada compilers (4.2).
  181.      * 960130: updated AJPO information (5.1).
  182.      * 960111: list of vendors updated (4.5).
  183.      * 960111: validated Ada 95 compilers (4.1).
  184.      * 960111: updated list of Ada 95 books (3.3.1).
  185.      * 960105: please ignore hecklers (3.9.1).
  186.      * 950925: clearing some common confusions: Ada was NOT desiged by
  187.        committee (3.13.1) and the DoD has NOT dropped the mandate
  188.        (3.13.2).
  189.      * 950913: update on Mac compilers (4.4.1)
  190.      * 950828: the change logs now indicate the section/question number.
  191.      * 950819: POSIX bindings status update (7.2.1).
  192.      * 950819: a lot of URL updates: AdaIC files keep moving around.
  193.      * 950725: GW-Ada for Mac info updated (4.2.3).
  194.      * 950630: list of vendors updated (4.5) (email, phone, WWW).
  195.      * 950623: ASIS info updated (6.7).
  196.      * 950613: ACES info updated (9.3).
  197.      * 950406: what are the LRM, RM, and AARM (3.1.1).
  198.      * 950321: upward compatibility between Ada 83 and Ada 95 (4.6).
  199.      * 950228: general URL updates: AdaIC host changed (no longer AJPO).
  200.      * 950221: Ada 9X is officially Ada 95 since February 15, 1995.
  201.      * 950221: added AdaBasis repository (9.2.1).
  202.      * 950207: revised introduction.
  203.      * 950126: revised BBS section (9.4).
  204.      * 950124: approved for posting in *.answers.
  205.  
  206.  
  207.    What's important and missing:
  208.      * description of the ACVC
  209.      * CD-ROMs
  210.      * list of regular Ada-related events
  211.  
  212.  
  213.      _________________________________________________________________
  214.  
  215. 2: Information about this document
  216.  
  217.    This file is posted monthly to comp.lang.ada, comp.answers, and
  218.    news.answers.
  219.  
  220.    This document has a home on the Home of the Brave Ada Programmers
  221.    (HBAP) WWW Server, in hypertext format, URL
  222.    http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html#title
  223.  
  224.    It is available --as posted in *.answers-- on rtfm.mit.edu, which
  225.    archives all FAQ files posted to *.answers; see directory
  226.    ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/computer-lang/Ada
  227.  
  228.    The text-only version is also available in directory
  229.    ftp://lglftp.epfl.ch/pub/Ada/FAQ
  230.  
  231.    Magnus Kempe maintains this document; it's a hobby, not a job.
  232.    Feedback (corrections, suggestions, ideas) about it is to be sent via
  233.    e-mail to Magnus.Kempe@di.epfl.ch
  234.    Thanks.
  235.  
  236.    In all cases, the most up-to-date version of the FAQ is the version
  237.    maintained on the HBAP WWW Server. Please excuse any formatting
  238.    inconsistencies in the posted, text-only version of this document, as
  239.    it is automatically generated from the on-line, hypertext version.
  240.  
  241.      _________________________________________________________________
  242.  
  243.  
  244. 3: Elementary questions
  245.  
  246.  
  247. 3.1: What is Ada?
  248.  
  249.    Ada is an advanced, modern programming language, designed and
  250.    standardized to support widely recognized software engineering
  251.    principles: reliability, portability, modularity, reusability,
  252.    programming as a human activity, efficiency, maintainability,
  253.    information hiding, abstract data types, concurrent programming,
  254.    object-oriented programming, et caetera. All Ada compilers must pass a
  255.    validation test.
  256.  
  257.  
  258.     3.1.1: What are the LRM, RM, and AARM? 
  259.  
  260.    LRM is the abbreviated name of the Language Reference Manual,
  261.    sometimes called Ada Reference Manual. "LRM" was often used in the
  262.    days of Ada 83; "RM" or "rm95" is frequently used since the 1995
  263.    revision of the language. Ada 95 is for the most part an extension of
  264.    Ada 83.
  265.  
  266.    What is the AARM for Ada 83?
  267.           Compiled by K. Nyberg, it contains the full text of
  268.           ANSI/MIL-STD-1815A with inline annotations derived from the Ada
  269.           Rapporteur Group of the International Organization for
  270.           Standards responsible for maintaining the Ada language.
  271.  
  272.           Distribution has been transferred by Grebyn Corporation to the
  273.           Ada Resource Association, (614) 538-9232. The organization is
  274.           going to be offering it as a "member benefit", or something
  275.           like that for individual members, and will probably sell
  276.           additional copies.
  277.  
  278.    What is the AARM for Ada 95?
  279.           Contains the entire text of the Ada 95 standard (ISO/IEC
  280.           8652:1995(E)), plus various annotations. It is intended
  281.           primarily for compiler writers, validation test writers, and
  282.           other language lawyers. The annotations include detailed
  283.           rationale for individual rules and explanations of some of the
  284.           more arcane interactions among the rules.
  285.  
  286.  
  287.     3.1.2: Where can I get other information on Ada?
  288.  
  289.    If you have questions which this FAQ does not answer, you may contact
  290.    the Ada Information Clearinghouse (see below, question 5.2), use the
  291.    Usenet newsgroup comp.lang.ada, read the Ada Yearbook published by Ada
  292.    UK, or the Ada Resources published by the ACM.
  293.  
  294.    To find out more, you may also use the HBAP WWW Server, URL
  295.    http://lglwww.epfl.ch/Ada/, which hosts three companion FAQs:
  296.    Ada/programming, Ada/learning, and Ada/ada-www-server (also
  297.    regularly posted to comp.lang.ada).
  298.  
  299.    I encourage you to check out the changes listed early in the document
  300.    each time this FAQ is posted.
  301.  
  302.  
  303. 3.2: I have seen the language name capitalized as ADA, as well as Ada. Which
  304. is right?
  305.  
  306.    The correct capitalization is Ada. It's a proper name, for Ada
  307.    Lovelace (1815-1852), who is regarded to be the world's first
  308.    programmer. Using all-caps usually implies an acronym, and this forum
  309.    is not devoted to the American Dental Association :-).
  310.  
  311.    In addition, the ISO and IEEE recommend as a general guideline that
  312.    one spell like proper names the language names that are pronounced as
  313.    they are spelled (e.g. Ada, Pascal, Cobol, Basic, Fortran). Note: that
  314.    a name originally resulted from abbreviation is considered irrelevant.
  315.    For language names that are phonetically spelled (e.g. C, C++, APL,
  316.    PL/1), they should be spelled in all uppercase.
  317.  
  318.  
  319. 3.3: What is Ada 95 (aka Ada 9X)?
  320.  
  321.    Ada 95 refers to the current, revised version of the Ada standard.
  322.    (Ada 83 was the original ANSI/ISO standard.) The Ada 9X Project Office
  323.    was responsible for the revision, and worked closely with the
  324.    international community to ensure Ada retains its ISO status. The Ada
  325.    9X process was very open. Many documents are still available for
  326.    downloading from
  327.    ftp://sw-eng.falls-church.va.us/public/AdaIC/pol-hist/history/9x-history
  328.    on the AdaIC host. The Ada 9X Project Office has been closed.
  329.  
  330.    Ada 95 includes four major areas of enhancement: support for
  331.    object-oriented programming, data-oriented synchronization,
  332.    programming-in-the-large, and realtime systems.
  333.  
  334.    A great deal of attention is being focused on transitioning to Ada 95.
  335.    The validation test suite will be available early (in draft form prior
  336.    to ANSI/ISO approval with official release 3 months after ANSI/ISO
  337.    approval). However, for a two-year period vendors will be able to
  338.    focus on enhanced areas of the language that their customer base wants
  339.    first; i.e., the first validation test suite will be modularly
  340.    constructed. Vendors are also being encouraged to release
  341.    beta-versions of their Ada 95 implementations prior to validation.
  342.  
  343.    There is also a (still partial) GNU Ada 95 compilation system (GNAT)
  344.    available since late 1993. (See question 4.2.1.)
  345.  
  346.  
  347.     3.3.1: Are there already Ada 95 books?
  348.  
  349.    The Ada 95 Rationale explains how to use the new mechanisms of the
  350.    language; it is quite readable. The new Reference Manual is THE
  351.    reference, of course. The Annotated Reference Manual provides detailed
  352.    explanations of the rules of the language (good for implementors and
  353.    language lawyers). All three are available in their final versions by
  354.    FTP from the AJPO host, in directory
  355.    ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat
  356.    (v6.0).
  357.  
  358.    There are also a few commercial books which have sections on Ada 95 or
  359.    have integrated the revised definition of the language into their
  360.    presentation:
  361.      * J. Barnes. Programming in Ada 95
  362.        Addison-Wesley. ISBN 0-201-87700-7. (price?)
  363.      * J. Barnes. Programming in Ada: Plus an Overview of Ada 9X.
  364.        Addison Wesley. Price $43.25. ISBN 0-201-62407-9.
  365.        An Ada 83 book with indications of what Ada 95 adds.
  366.      * G. Booch and D. Bryan. Software Engineering with Ada.
  367.        3rd ed., Benjamin/Cummings, 1994. ISBN 0-8053-0608-0.
  368.        Published before finalization of Ada 9X, thus not completely
  369.        up-to-date.
  370.      * N. Cohen. Ada as a Second Language.
  371.        2nd ed., McGraw-Hill. ISBN is 0-07-011607-5. (price?)
  372.      * Naiditch. Rendez-vous with Ada 9X.
  373.        2nd ed., John Wiley & Sons, Inc. Price $44.95. ISBN 0-471-01276-9.
  374.      * J. Skansholm. Ada From the Beginning.
  375.        2nd ed., Addison-Wesley. (price, ISBN?)
  376.  
  377.  
  378.    For an annotated list of Ada 95 books, see the companion Learning Ada
  379.    FAQ.
  380.  
  381.  
  382. 3.4: Is Ada a registered trademark (TM) of the US government?
  383.  
  384.    No, but it used to be; there is now a "certification mark", which can
  385.    be used only for validated compilers.
  386.  
  387.    Prior to November 30, 1987, the name "Ada" was a registered trademark.
  388.    In the December 1987 issue of the Ada Information Clearinghouse
  389.    Newsletter, Ms. Virginia Castor, then Director of the Ada Joint
  390.    Program Office (AJPO), announced that the Department of Defense would
  391.    thereafter rely on a certification mark instead of a trademark.
  392.  
  393.    (The certification mark is a Pentagon-shaped symbol with a "Validated
  394.    Ada" message, and can be seen on the documentation of validated Ada
  395.    compilers.)
  396.  
  397.    The text of the 1987 AJPO announcement is available on the AdaIC host,
  398.    in
  399.    ftp://sw-eng.falls-church.va.us/public/AdaIC/pol-hist/policy/trademrk.txt
  400.  
  401.  
  402. 3.5: Where can I find an electronic version of the Ada reference manual (LRM)?
  403.  
  404.  
  405.    The revised Reference Manual (RM for Ada 95--v6.0 final version) is
  406.    available, in plain ASCII and Postscript files, in directories
  407.    ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat
  408.        /v6.0
  409.    and (compressed files)
  410.    ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat
  411.        /v6.0.compressed
  412.  
  413.    This version was released in December 1994 and is freely
  414.    distributable. For language lawyers and implementors, the Annotated
  415.    Ada Reference Manual (AARM) is also available there.
  416.  
  417.    The old, Ada 83 LRM is available in a compressed set of ASCII files in
  418.    directory ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/83lrm
  419.  
  420.  
  421.    Both Ada 83 and Ada 95 reference manuals also exist in hypertext
  422.    format, accessible through the HBAP WWW Server (see the companion FAQ:
  423.    Ada/ada-www-server).
  424.  
  425.  
  426. 3.6: Is Ada used in commercial applications?
  427.  
  428.    You bet. Ada is used in e.g. airplanes, air traffic control systems,
  429.    financial systems, telecommunications systems, medical devices.
  430.      * The AdaIC host on the Internet contains a report of Commercial Ada
  431.        Users Working Group (CAUWG) of the Association for Computing
  432.        Machinery's Special Interest Group on Ada (ACM SIGAda). Dated June
  433.        1993, the report is a survey of applications from around the world
  434.        that are written in Ada. It is in
  435.        ftp://sw-eng.falls-church.va.us/public/AdaIC/usage/summary/cauwg.txt
  436.  
  437.      * The Ada Information Clearinghouse maintains a list of Ada projects
  438.        that have submitted information for the AdaIC's Ada Usage
  439.        Database. It is only a sample of Ada projects, but it includes
  440.        both commercial and government-related projects. For details on
  441.        contacting the AdaIC, see question 5.2.
  442.  
  443.      * On the AdaIC host, file
  444.        ftp://sw-eng.falls-church.va.us/public/AdaIC/usage/summary/ada-use.txt
  445.        contains a summary of the Ada Usage Database and a number
  446.        of individual project descriptions that may be of interest (the
  447.        commercial projects are listed after the US DoD projects).
  448.  
  449.  
  450. 3.7: How do I do [choose_a_goal] in Ada?
  451.  
  452.    This kind of question often revolves around an issue which is
  453.    dependent on a specific implementation or operating system. Thus, in
  454.    order to improve the odds of getting a useful answer, one should
  455.    indicate what the host and target environments are (Ada vendor,
  456.    compiler version, OS version, machine). Ada implementations normally
  457.    come with a vendor-supplied library which provides hooks to the
  458.    environment (operating system, graphics, etc.); check the
  459.    documentation.
  460.  
  461.    Even in the case of things that are in the language, there are
  462.    implementation dependencies that make it helpful to always have this
  463.    information at hand if people want the most effective help. Note that
  464.    annex F requires "the reference manual of each Ada implementation" to
  465.    "include an appendix (called Appendix F) that describes all
  466.    implementation-dependent characteristics."
  467.  
  468.  
  469. 3.8: I think Ada could really benefit from having [choose_a_feature] from
  470. [choose_a_language],
  471. or:
  472. I think Ada is clearly [inferior_or_superior] to [choose_a_language] because
  473. it has [choose_a_feature].
  474.  
  475.    Such posts almost always result in religious language wars and only
  476.    waste bandwidth. PLEASE refrain from such posts unless you have a
  477.    specific question about Ada. For example, the following kind of
  478.    question *is* appropriate: "In [choose_a_language] I can do
  479.    [choose_a_feature]. How would I go about doing this in Ada?"
  480.  
  481.    Further, if you are going to compare programming languages, please
  482.    note "Nebbe's rule":
  483.  
  484.      If you can't think of a least one area where a language is better
  485.      than your preferred language then you probably aren't competent to
  486.      comment on it.
  487.  
  488.  
  489. 3.9: I just saw a very anti-Ada post that I think is definitely wrong. Why
  490. didn't anybody post a response to it? Should I?
  491.  
  492.    Ada apparently gets more than its share of attacks, probably due to
  493.    its unique origins, and the fact that it is a requirement for some
  494.    government software. For the same reasons as in the preceding
  495.    question, PLEASE refrain from posting a response to these, unless you
  496.    feel there is something of *significant* importance that you can
  497.    contribute. Posts containing factual corrections are OK, but posts
  498.    like "Well, I've used Ada on many projects, and all have been very
  499.    successful" accomplish nothing. If you are really dead-set on driving
  500.    your point home to the poster, you can do it via e-mail.
  501.  
  502.  
  503. 3.9.1: Person X is a heckler, should I answer him in public?
  504.  
  505.    Some people seem to devote much of their energy to "flaming" other
  506.    people in various newsgroups. The best advice is to ignore such
  507.    hecklers; in particular, don't follow up to their postings. Even if
  508.    ignoring them often doesn't seem to make them go away, it will at
  509.    least abate the flames.
  510.  
  511.    And if [like me, MK] you can't stand seeing the messages coming from
  512.    known hecklers, your best option is to add an entry in a "killfile" of
  513.    your newsreader to automatically discard their messages.
  514.  
  515.    Normally, it should not be necessary to mention any particular name
  516.    here, but since the worst heckler in comp.lang.ada regularly resorts
  517.    to harassment and personal abuse, it seems both necessary and useful
  518.    to point him out to the readers of comp.lang.ada (and especially for
  519.    the sake of newcomers).
  520.  
  521.    PLEASE DO NOT ANSWER to messages coming from "Colin James III" (use
  522.    e.g. the entry "/Colin James/:j" in your "killfile").
  523.  
  524.  
  525. 3.10: I very strongly agree/disagree with the Ada mandate. Should I
  526. praise/criticize it?
  527.  
  528.    First, it is a fact that there is an Ada standard, on which the US
  529.    DoD is aligned (the so-called "mandate"). No shouting match will
  530.    change that. Second, don't believe rumors (about the mandate, its
  531.    withdrawal, its being ignored, etc.) you read in comp.lang.ada, unless
  532.    you have reasons to (i.e. you know the author is trustworthy, or the
  533.    author provides references which you can check, and which you have
  534.    checked yourself at least a couple of times.)
  535.  
  536.    For your information, here is the text of "Public Law 101-511 Sec
  537.    8092":
  538.  
  539.      Notwithstanding any other provisions of law, after June 1, 1991,
  540.      where cost effective, all Department of Defense software shall be
  541.      written in the programming language Ada, in the absence of special
  542.      exemption by an official designated by the Secretary of Defense.
  543.  
  544.     What about discussing the US Ada mandate?
  545.  
  546.    If you want to argue either for or against US Government Ada policies
  547.    please restrict your postings to "usa" (field "Distribution:").
  548.    Remember that Ada is an international standard, but the US mandate is
  549.    not an international issue.
  550.  
  551.    Praise of the mandate is usually based on the ideas that a) it is
  552.    better to have one language than 1500 obscure, proprietary languages
  553.    for all DoD-owned non-COTS systems, and b) Ada is a good software
  554.    engineering language, especially when it comes to maintenance.
  555.  
  556.    Criticism of the mandate is usually based on the ideas that a) a good
  557.    language should not need a mandate (which ignores the fact that before
  558.    standardizing on Ada the DoD had to maintain for 20+ years software
  559.    written in 1500 obscure, proprietary programming languages--which is
  560.    hard and costly), b) the mandate is mostly ineffective, since either
  561.    it is ignored, or too many waivers are granted, or none is necessary
  562.    (a policy issue which will in all likelihood NOT be resolved by
  563.    discussions on comp.lang.ada), and c) no programming language is the
  564.    most appropriate for every problem (true, but
  565.    irrelevant--standardizing on a single good language for all DoD
  566.    development and maintenance is practical, economical, and much better
  567.    than not standardizing at all).
  568.  
  569.    Finally, whenever you see a message criticizing the Ada language (or
  570.    Ada companies) for losing completely both in the market and under the
  571.    mandate, check the facts for yourself. For the most part, the Ada
  572.    mandate is enforced; in many critical, commercial systems, Ada is the
  573.    language of choice and its adoption a success; in the slowly-changing
  574.    competition of programming languages, FORTRAN and COBOL dominate, and
  575.    Smalltalk, C++, Eiffel, and Ada are all slowly growing. Ada is
  576.    (finally, and we hope seriously) penetrating academia. There is a GNU
  577.    Ada 95 compiler available. And remember that Ada 95 is the first
  578.    internationally standardized object-oriented programming language.
  579.  
  580.    If you have some new, additional facts, with approriate references so
  581.    that everyone can check for himself, then posting on a mandate-related
  582.    issue is OK. If NOT, then refrain from posting. PLEASE, if someone
  583.    starts a non-factual discussion, the best policy is simply to ignore
  584.    it or, if you have to, you may reply by private e-mail. Try to hold
  585.    the same standards as you would in discussing problem-solving with the
  586.    programming language itself, and put your information in a way which
  587.    encourages positive action; criticism of inefficiency and/or
  588.    ineptitude is fine, as long as it is honest, documented, and polite.
  589.  
  590.  
  591. 3.11: Why shouldn't I cross-post my comp.lang.ada messages to other
  592. comp.lang.* newsgroups?
  593.  
  594.    The huge majority of the comp.lang.ada messages are Ada specific, and
  595.    many are from people supporting Ada, so that all threads developing on
  596.    c.l.a end up dealing with Ada.
  597.  
  598.    Cross-posting should be used with caution and careful thought, for
  599.    various reasons:
  600.      * First, avoid annoying readers of other newsgroup with irrelevant
  601.        Ada messages. If you expect to successfully proselytize by
  602.        cross-posting into newsgroups dedicated to other programming
  603.        languages, think twice! Note that if you are replying to a
  604.        cross-posted article, it is your responsibility to pare down the
  605.        newsgroup lists ("Newsgroups: c.l.a,abc,xyz" and "Followup-to:
  606.        c.l.a,xyz").
  607.  
  608.      * Second, the subject line ("Subject: xyz") should be relevant to
  609.        all cross-posted groups (e.g. if the thread originated in c.l.a
  610.        and then is cross-posted, think about the message--if there is
  611.        any--explicitly carried over by the subject; some people read the
  612.        subject line only).
  613.  
  614.      * Finally, it is good and polite practice to mention explicitly in
  615.        the text of a cross-posted article that it is cross-posted and
  616.        where you would like followup articles to go. You should of course
  617.        change the "Followup-to:" header yourself to redirect a thread to
  618.        appropriate newsgroups, in addition to explicitly stating that you
  619.        are doing so. For instance, if you cross-post an original article
  620.        it is a good, polite, and effective idea to redirect followups.
  621.  
  622.  
  623.    Exaggerated cross-posting is in the same category as junk mail:
  624.    negative publicity.
  625.  
  626.  
  627. 3.12: I don't have FTP service on the host where I have an account. Is there
  628. any other way I can access FTP sites?
  629.  
  630.    If you are not connected to the Internet but do send and receive
  631.    email from the net, you can use an "ftp by mail" agent, such as
  632.    ftpmail, which is provided by DEC's Western Research Labs (DECWRL).
  633.    The mail server may be reached by sending a mail message to
  634.    uucp!decwrl!ftpmail or ftpmail@decwrl.dec.com .
  635.  
  636.    Complete instructions for using ftpmail may be retrieved with a
  637.    message to the above address with subject "ftpmail" and the single
  638.    word "help" as the text of your message. Example query:
  639.  
  640. To: ftpmail@decwrl.dec.com
  641. Subject: ftpmail
  642.  
  643. help
  644.  
  645.  
  646. 3.12.1: The AdaIC host has a special e-mail service for FTP.
  647.  
  648.    anonymous file transfer protocol (ftp)
  649.  
  650. ftp sw-eng.falls-church.va.us
  651. login:      anonymous
  652. password:
  653.  
  654.  
  655.    ftpmail: To obtain complete instructions, send e-mail to:
  656.  
  657. ftpmail@sw-eng.falls-church.va.us
  658.  
  659.    with the word "help" in the subject line.
  660.  
  661.  
  662. 3.13: Common Confusions
  663.  
  664. 3.13.1: Wasn't Ada designed by some committee? What kind of a language could
  665. you possibly get from that kind of approach?
  666.  
  667.    (Tucker Taft, the principal designer of Ada 95, responds)
  668.  
  669.    I believe most reviewers of Ada 9X (and Ada 83 for that matter) will
  670.    assure you that it was most certainly not designed by committee ;-).
  671.  
  672.    In fact, with respect to MI, the situation was just the opposite.
  673.    There were several reviewers who pushed hard for building in a
  674.    particular approach to MI. The principle designer (;-) was unconvinced
  675.    that the benefits of building in a particular MI approach outweighed
  676.    the costs as far as complexity. There was no clear winner to use as a
  677.    model in the outside world; even Sather and Eiffel couldn't agree
  678.    exactly on how to resolve the intricacies of MI, despite their strong
  679.    similarities in other areas.
  680.  
  681.  
  682. 3.13.2: I've heard the DoD is dropping all Military standards to reduce costs,
  683. doesn't that mean the mandate to use Ada goes away too?
  684.  
  685.    The following memo explains how that decision affects the Ada mandate:
  686.  
  687.                  OFFICE OF THE SECRETARY OF DEFENSE
  688.  
  689.                      Washington, DC  20301-1000
  690.  
  691.                            August 26, 1994
  692.  
  693.  
  694.   MEMORANDUM FOR SECRETARIES OF THE MILITARY DEPARTMENTS
  695.                  CHAIRMAN OF THE JOINT CHIEFS OF STAFF
  696.                  UNDER SECRETARY OF DEFENSE (PERSONNEL AND
  697.                  READINESS)
  698.                  UNDER SECRETARY OF DEFENSE (POLICY)
  699.                  COMPTROLLER OF THE DEPARTMENT OF DEFENSE
  700.                  GENERAL COUNSEL OF THE DEPARTMENT OF DEFENSE
  701.                  INSPECTOR GENERAL OF THE DEPARTMENT OF DEFENSE
  702.                  DIRECTOR OF OPERATIONAL TEST AND EVALUATION
  703.                  DIRECTORS OF THE DEFENSE AGENCIES
  704.  
  705.   SUBJECT:  Use of Ada
  706.  
  707.        The purpose of this memorandum is to reiterate the Department
  708.   of Defense (DoD) commitment to the use of Ada.
  709.  
  710.        It is DoD policy to use commercial off-the-shelf (COTS)
  711.   software whenever it meets our requirements.  However, when COTS
  712.   software is not available to satisfy requirements and the DoD must
  713.   develop unique software to meet its needs, that software must be
  714.   written in the Ada programming language in accordance with DoD
  715.   Directive 3405.1 and DoD Instruction 5000.2.
  716.  
  717.        Secretary Perry's June 29, 1994 memorandum, "Specification &
  718.   Standards -- A New Way of Doing Business," states that military
  719.   standards will only be used "as a last resort, with an appropriate
  720.   waiver."  This direction has caused some confusion regarding the
  721.   Ada requirement since most references to Ada cite its MIL-STD
  722.   nomenclature, MIL-STD-1815A.  Ada is also a Federal Information
  723.   Processing Standard (FIPS 119), an American National Standards
  724.   Institute (ANSI) standard (ANSI-1815A-1983), and an International
  725.   Standards Organization (ISO) standard (ISO 8652-1987).  Any of
  726.   these alternative references may be utilized in place of the MIL-
  727.   STD reference in request for proposals, contracts, and other
  728.   similar documents.  Thus, the Ada requirement does not conflict
  729.   with the Secretary's direction, and compliance with both policies
  730.   can be achieved simultaneously.
  731.  
  732.        Use of other programming languages can be considered if
  733.   proposed by a contractor as part of his best practices since
  734.   waivers to the use of Ada can be granted, where cost-effective, in
  735.   accordance with procedures established in the policy referenced
  736.   above.  However, such proposals require strong justification to
  737.   prove that the overall life-cycle cost will be less than the use of
  738.   Ada will provide.
  739.  
  740.        Secretary Perry's memorandum encourages practices that satisfy
  741.   the Department's need to build high quality systems that meet
  742.   requirements at affordable costs an in a timely manner.  This
  743.   includes practices which support the development of Defense
  744.   Software.  Ada is not only a facilitator of software engineering
  745.   best practice, but also has inherent features which uniquely
  746.   support both real-time systems and safety-critical systems.  Use of
  747.   Ada also facilitates software reuse and has demonstrated reduced
  748.   support costs.  Accordingly, Ada is a foundation for sound software
  749.   engineering practice.
  750.  
  751.   /signed/                           /signed/
  752.  
  753.   Noel Longuemare                    Emmett Paige, Jr.
  754.   Under Secretary of Defense         Assistant Secretary of Defense
  755.   (Acquisition and Technology)       (Command, Control,
  756.   (Acting)                           Communications, and
  757.                                      Intelligence)
  758.  
  759.   cc:
  760.   DDR&E
  761.