comp.lang.ada
 help / color / mirror / Atom feed
From: Richard D Riehle <laoXhai@ix.netcom.com>
Subject: Re: Printing Enum Variable Re: Linux World
Date: 1999/03/08
Date: 1999-03-08T11:23:15-08:00	[thread overview]
Message-ID: <7c1833$2n@sjx-ixn6.ix.netcom.com> (raw)
In-Reply-To: 7c0knr$v5$1@nnrp1.dejanews.com

In article <7c0knr$v5$1@nnrp1.dejanews.com>,
	robert_dewar@my-dejanews.com wrote:

>In fact Ada fully allows a low-level form of expression
>corresponding to C...

 As a follow-on to Robert's comment, and for the benefit of the
 Mr. Young, who indicated an interest in learning more about Ada, a
 key idea in Ada is to make all possible expressions possible, but
 to start with the default level of "safe."  That is, strong typing,
 separation of scope and visibility, and strict accessibility rules
 for access and tagged types, are the default in Ada.  

 It has often been noted that one principal upon which Ada is 
 founded is to  have a language design for which one can write 
 a compiler that catches the maximum number of errors before we 
 ever see an executable program.  

 One may start with a language in which the default is "safe" and relax
 the rules to make it less safe.  For example, use clauses, unchecked
 operations, and other built-in features of Ada relax the safety 
 default.  It is more difficult to start with a language where the
 default is "unsafe" and make it more safe.  This is a built-in
 problem for the C family of languages.  That is, every language
 built on top of C has the problem of starting with a model in which
 the default is "unsafe."  With C++ we can define class modules that
 improve the safety of a design, but the characteristics of the 
 foundation language are still there. The C foundation makes it 
 all too easy to revert back to unsafe practices.  If it were rare 
 among programmers to revert back to unsafe practices, many of the 
 complaints about C++ would be moot.  Sadly, the retro-C practices
 are not rare. It just too convenient to code the way we did in C.  

 Java, a member of the C family of languages, has taken the approach
 of deleting certain capabilities of C and C++.  For pointers, Java
 has adopted a model which closely resembles Ada access types.  Even
 so, Java syntax is still reminiscent of C.  A Java programmer can
 still make some of the same coding errors that occur in C programs.

 In the end, it is not a matter of whether we can code the same thing
 in one language that we can code in another.  It is a matter of how
 that same thing is expressed. It is not a matter of which syntax is
 more "natural"; not a matter of whether we do or do not have 
 "distinguished receivers"; not a matter of how easy it is to code
 a particular set of ideas.  Expressibility, in Ada, is a matter of 
 creating reliable, maintainable applications in which human life 
 and safety are at risk.  For large, safety-critical software,
 whether that expressibility consistently represents (even demands) 
 a model for reliability, dependability and safety.  This defines the 
 charter for Ada.  
 
 Richard Riehle
 richard@adaworks.com
 http://www.adaworks.com
 
             Of course, the notion of safety-critical becomes
             also becomes moot when developing for one of 
             the non-safe operating systems that are being 
             selected for so many of our military applications.

 




  reply	other threads:[~1999-03-08  0:00 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-03-02  0:00 Linux World Richard D Riehle
1999-03-02  0:00 ` fraser
1999-03-02  0:00   ` Printing Enum Variable " David Starner
1999-03-03  0:00     ` Fraser Wilson
1999-03-03  0:00       ` David Starner
1999-03-04  0:00         ` Magnus Larsson
1999-03-03  0:00           ` Hans Marqvardsen
1999-03-04  0:00             ` Nick Roberts
1999-03-04  0:00             ` robert_dewar
1999-03-04  0:00               ` Hans Marqvardsen
1999-03-05  0:00                 ` Larry Kilgallen
1999-03-05  0:00                 ` dewar
1999-03-05  0:00                   ` David Botton
1999-03-05  0:00                     ` robert_dewar
1999-03-04  0:00               ` Hans Marqvardsen
1999-03-05  0:00                 ` dewar
1999-03-07  0:00                   ` Hans Marqvardsen
1999-03-03  0:00           ` Printing Enum Variable Re: Linux World (Correction) Hans Marqvardsen
1999-03-04  0:00         ` Printing Enum Variable Re: Linux World fraser
1999-03-05  0:00           ` Nick Roberts
1999-03-05  0:00             ` fraser
1999-03-04  0:00         ` Richard D Riehle
1999-03-04  0:00         ` Richard D Riehle
1999-03-04  0:00         ` robert_dewar
1999-03-03  0:00     ` Larry Kilgallen
1999-03-03  0:00       ` Nick Roberts
1999-03-03  0:00         ` David Starner
1999-03-03  0:00     ` fraser
1999-03-03  0:00       ` David Starner
1999-03-03  0:00         ` fraser
1999-03-03  0:00         ` Samuel T. Harris
1999-03-04  0:00         ` robert_dewar
1999-03-03  0:00           ` David Starner
1999-03-04  0:00             ` robert_dewar
1999-03-04  0:00             ` Samuel Mize
1999-03-04  0:00               ` Samuel Mize
1999-03-05  0:00                 ` Robert A Duff
1999-03-05  0:00               ` Robert A Duff
1999-03-07  0:00               ` Florian Weimer
1999-03-07  0:00                 ` Michael Young
1999-03-07  0:00                   ` Matthew Heaney
1999-03-08  0:00                     ` Michael Young
1999-03-08  0:00                       ` Matthew Heaney
1999-03-07  0:00                   ` Larry Kilgallen
1999-03-07  0:00                     ` Michael Young
1999-03-08  0:00                       ` robert_dewar
1999-03-08  0:00                         ` Richard D Riehle [this message]
1999-03-09  0:00                           ` Michael Young
1999-03-09  0:00                             ` Larry Kilgallen
1999-03-09  0:00                               ` Michael Young
1999-03-10  0:00                                 ` Mike Silva
1999-03-09  0:00                               ` billy
1999-03-10  0:00                                 ` Pascal Obry
1999-03-10  0:00                                 ` robert_dewar
1999-03-10  0:00                                   ` Dale Stanbrough
1999-03-10  0:00                                     ` dennison
1999-03-10  0:00                                       ` bob
1999-03-10  0:00                                         ` Mike Silva
1999-03-10  0:00                                           ` Nick Roberts
1999-03-10  0:00                                           ` dennison
1999-03-10  0:00                                     ` Richard D Riehle
1999-03-10  0:00                                     ` Pascal Obry
     [not found]                               ` <7 <7c58qa$b6b$1@cf01.edf.fr>
1999-03-10  0:00                                 ` fraser
     [not found]                               ` <7c4ru6$e45$1@remarq.com>
1999-03-10  0:00                                 ` fraser
     [not found]                             ` <1999Mar9.131659. <dale-1003991644340001@r1021c-07.ppp.cs.rmit.edu.au>
1999-03-10  0:00                               ` Larry Kilgallen
1999-03-08  0:00                       ` Larry Kilgallen
1999-03-08  0:00                         ` robert_dewar
1999-03-08  0:00                       ` Florian Weimer
1999-03-04  0:00           ` Ehud Lamm
1999-03-05  0:00             ` Richard D Riehle
1999-03-05  0:00               ` Nick Roberts
1999-03-06  0:00                 ` Ehud Lamm
1999-03-06  0:00                   ` robert_dewar
1999-03-06  0:00                     ` Larry Kilgallen
1999-03-06  0:00                       ` Dave Taylor
1999-03-06  0:00                         ` Bruce or Tracy
1999-03-06  0:00                     ` Ehud Lamm
1999-03-04  0:00         ` dennison
1999-03-04  0:00           ` Ehud Lamm
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox