comp.lang.ada
 help / color / mirror / Atom feed
From: "Peter C. Chapin" <pchapin@sover.net>
Subject: Re: why learn C?
Date: 31 Mar 2007 13:18:22 GMT
Date: 2007-03-31T13:18:22+00:00	[thread overview]
Message-ID: <Xns99045EAC1DADCpchapinsovernet@198.186.192.137> (raw)
In-Reply-To: 1175246243.5771.67.camel@localhost.localdomain

Georg Bauhaus <bauhaus@futureapps.de> wrote in 
news:1175246243.5771.67.camel@localhost.localdomain:

> If you allow me to be pedantic, SPARK is not distinguished from
> Ada by external rules for programmers. Rather, it has its own
> language definition, and translators that know about nothing
> but the SPARK language. This approach is very different from
> establishing coding rules.

How is it different than using coding guidelines together with a tool 
that checks them automatically? I've used lint-like tools with C++ and 
I've found the combination effective. I express my coding guidelines in 
terms of which checks I enable in the tool. This is a tedious process 
but once done the configuration can be reused with multiple projects so 
it's not too terrible. Then I write programs so that the tool produces 
no messages.

The tool essentially defines a language that is a subset of the full 
language. By insisting that the tool produces no messages I'm getting 
mechanical verification that I'm using just that subset. In some 
respects it's not that different from using a stricter language in the 
first place except that I get to define the precise subset I want to 
use. Using a lax language like C++ together with a configurable tool 
thus gives me a degree of flexibility over the case where the 
programming language itself specifies all sorts of required checks that 
I can't configure.

On the other hand there is a portability issue introduced by using a 
third party tool. I can see that as being a major problem for programs 
written by multiple teams. Since Ada targets exactly those kinds of 
programs, Ada's approach of incorporating as much checking as possible 
into the standard language makes sense. I either work alone or in small 
groups, however, so using a third party tool is less of an issue for me.

The approach I outline here is not without its problems, but it does 
help one write reliable programs with a lax language. I don't consider 
myself a genius programmer (although I do have a lot of experience with 
C++) but I spend very little time in the debugger.

All around I appreciate Ada's approach and I enjoy working with Ada. 
Indeed, knowing Ada has made me a better C++ programmer. I especially 
like Ada's clean syntax and standards such as ASIS that make writing 
advanced tools for Ada easier. As you can probably guess, I'm a big 
believer in extending a programming language with tools. It's too bad 
that building tools for C++ is such a big pain in the neck. C++'s nasty 
syntax, together with the preprocessor, are probably the worst things 
about the language because they inhibit tool building.

Peter



  reply	other threads:[~2007-03-31 13:18 UTC|newest]

Thread overview: 167+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1172144043.746296.44680@m58g2000cwm.googlegroups.com>
     [not found] ` <slrnetr31o.875.Marc.Boyer@localhost.localdomain>
     [not found]   ` <1172161751.573558.24140@h3g2000cwc.googlegroups.com>
     [not found]     ` <slrnetri6j.875.Marc.Boyer@localhost.localdomain>
     [not found]       ` <546qkhF1tr7dtU1@mid.individual.net>
2007-02-23  8:09         ` why learn C? Marc Boyer
2007-03-20 17:37           ` adaworks
2007-03-21  8:07             ` Maciej Sobczak
2007-03-21 13:39               ` Martin Krischik
2007-03-22  7:54                 ` Maciej Sobczak
2007-03-21 14:10               ` Dmitry A. Kazakov
2007-03-21 17:57                 ` adaworks
2007-03-21 18:48               ` adaworks
2007-03-21 18:39                 ` Georg Bauhaus
2007-03-21 20:09                 ` Dmitry A. Kazakov
2007-03-21 20:25                 ` Use of declare blocks Randy Brukardt
2007-03-21 20:36                   ` Gautier
2007-03-21 20:37                   ` Gautier
2007-03-21 20:43                   ` Niklas Holsti
2007-03-21 21:29                     ` Randy Brukardt
2007-03-22  1:17                       ` Adam Beneschan
2007-03-22  8:34                     ` Dmitry A. Kazakov
2007-03-22  1:06                   ` Adam Beneschan
2007-03-22 17:59                   ` adaworks
2007-03-23  2:35                     ` Randy Brukardt
2007-03-23  5:23                       ` adaworks
2007-03-23  5:15                         ` Randy Brukardt
2007-03-23 10:20                           ` Georg Bauhaus
2007-03-23 18:25                             ` commenting, was " tmoran
2007-03-24  0:32                               ` adaworks
2007-03-24  2:12                                 ` tmoran
2007-03-24  3:19                                   ` Randy Brukardt
2007-03-24  7:36                                     ` tmoran
2007-03-24 15:35                                       ` Simon Wright
2007-03-21 13:29             ` why learn C? Alexander E. Kopilovich
2007-03-30  0:51             ` kevin  cline
2007-03-30  4:09               ` Steve
2007-03-30  4:58                 ` kevin  cline
2007-03-30  7:44                   ` Lutz Donnerhacke
2007-03-30  9:09                     ` Dmitry A. Kazakov
2007-04-02  4:29                       ` kevin  cline
2007-04-02  6:45                         ` adaworks
2007-04-02  7:52                         ` Dmitry A. Kazakov
2007-04-02  8:19                           ` kevin  cline
2007-04-02 12:04                             ` Dmitry A. Kazakov
2007-04-02 23:37                             ` Randy Brukardt
2007-04-03 12:42                               ` Erasing inappropriate operations (was: why learn C?) Ludovic Brenta
2007-04-03 23:44                                 ` Randy Brukardt
2007-04-04  8:34                                   ` Erasing inappropriate operations Ludovic Brenta
2007-04-04 22:00                                     ` Randy Brukardt
2007-04-03  0:16                         ` why learn C? Markus E Leypold
2007-04-04 16:14                           ` jayessay
2007-04-05  7:14                             ` Hyman Rosen
2007-04-05 15:35                               ` jayessay
2007-04-06  2:02                                 ` Hyman Rosen
2007-04-06  5:57                                   ` Ray Blaak
2007-04-06 11:01                                     ` Markus E Leypold
2007-04-07 23:00                                       ` Ray Blaak
2007-04-08 19:41                                         ` jayessay
2007-04-09 14:08                                         ` Markus E Leypold
2007-04-10 15:48                                           ` jayessay
2007-04-08 19:44                                       ` jayessay
2007-04-06 18:05                                     ` jayessay
2007-04-06 22:00                                       ` Hyman Rosen
2007-04-06 23:46                                         ` jayessay
2007-04-06 23:59                                         ` jayessay
2007-04-06 22:16                                     ` Hyman Rosen
2007-04-06 23:52                                       ` jayessay
2007-04-07  0:39                                         ` Ray Blaak
2007-04-06 17:52                                   ` jayessay
2007-03-30  8:29                   ` Markus E Leypold
2007-03-30  8:35                     ` Markus E Leypold
2007-03-30 17:39                   ` adaworks
2007-03-31 14:59                     ` Steve
2007-03-31 15:59                       ` Markus E Leypold
2007-04-01 14:32                         ` Ed Falis
2007-04-02  7:03                         ` adaworks
2007-03-31 15:14                     ` Pascal Obry
2007-04-02  5:27                     ` kevin  cline
2007-04-02  6:04                       ` Harald Korneliussen
2007-04-02  6:33                       ` Shortage on C / C++ experts Martin Krischik
2007-04-02  7:07                       ` why learn C? adaworks
2007-04-02  7:18                         ` kevin  cline
2007-04-02 13:00                       ` adaworks
2007-04-12 15:28                         ` Hyman Rosen
2007-04-12 18:32                           ` Robert A Duff
2007-04-13 15:59                             ` Hyman Rosen
2007-04-14 22:20                               ` Robert A Duff
2007-04-14 22:46                                 ` Randy Brukardt
2007-04-22 18:53                           ` adaworks
2007-04-22 19:50                             ` Gautier
2007-04-03  0:26                       ` Markus E Leypold
2007-04-03  0:34                       ` Markus E Leypold
2007-04-03  2:22                       ` jimmaureenrogers
2007-04-12 15:47                         ` Hyman Rosen
2007-04-12 16:18                           ` Markus E Leypold
2007-04-13 23:18                             ` kevin  cline
2007-04-14  9:38                               ` Georg Bauhaus
2007-04-14 10:57                               ` Markus E Leypold
2007-04-15 15:10                                 ` Simon Wright
2007-04-15 16:05                                   ` Markus E Leypold
2007-04-15  0:59                             ` Hyman Rosen
2007-04-15 15:28                               ` Markus E Leypold
2007-04-12 16:39                           ` Dmitry A. Kazakov
2007-04-12 20:54                             ` Georg Bauhaus
2007-04-12 20:33                               ` Dmitry A. Kazakov
2007-04-12 21:40                                 ` Georg Bauhaus
2007-04-12 20:50                                   ` Dmitry A. Kazakov
2007-04-13  0:32                                   ` Markus E Leypold
2007-04-14 22:27                                     ` Robert A Duff
2007-04-14  1:20                           ` jimmaureenrogers
2007-04-02  5:03                   ` Brian May
2007-04-02  6:16                     ` kevin  cline
2007-04-03  0:00                       ` Brian May
2007-04-12 15:56                         ` Hyman Rosen
2007-04-12 16:19                           ` Markus E Leypold
2007-04-13 23:42                             ` Georg Bauhaus
2007-04-03  0:13                       ` Markus E Leypold
2007-04-02 11:47                 ` Shortage on C / C++ experts Larry Kilgallen
2007-04-02 12:01                   ` Ludovic Brenta
2007-04-02 12:15                     ` Dmitry A. Kazakov
2007-04-02 18:47                       ` Alexander E. Kopilovich
2007-04-02 20:43                         ` tmoran
2007-03-30  4:52               ` why learn C? jimmaureenrogers
2007-03-30  6:30                 ` Case Crab
2007-03-30  6:37                   ` Gautier
2007-03-30  9:17                   ` Georg Bauhaus
2007-03-31 13:18                     ` Peter C. Chapin [this message]
2007-04-01  1:23                       ` Georg Bauhaus
2007-04-01 11:59                         ` Peter C. Chapin
2007-04-02  6:37                       ` kevin  cline
2007-04-02  9:39                         ` Harald Korneliussen
2007-03-30 17:47                   ` adaworks
2007-03-30 19:25                     ` Markus E Leypold
2007-03-30 20:29                     ` Randy Brukardt
2007-03-31  9:52                       ` Dmitry A. Kazakov
2007-04-01  1:35                       ` adaworks
2007-03-31  2:41                   ` jimmaureenrogers
2007-03-31 12:25                     ` not NASA Ada coding standard Stephen Leake
2007-03-31 15:44                       ` Markus E Leypold
2007-04-01 16:22                       ` Simon Clubley
2007-04-02 10:08                         ` Stephen Leake
2007-04-02  7:43                     ` why learn C? kevin  cline
2007-04-02  8:45                       ` Martin Krischik
2007-04-02 10:54                       ` Georg Bauhaus
2007-04-12 16:05                         ` Hyman Rosen
2007-04-12 16:48                           ` Dmitry A. Kazakov
2007-04-12 18:27                           ` Robert A Duff
2007-04-13 16:21                             ` Hyman Rosen
2007-04-12 21:11                           ` Georg Bauhaus
2007-04-13 15:45                             ` Hyman Rosen
2007-04-02  8:13                     ` kevin  cline
2007-04-02 23:54                       ` Randy Brukardt
2007-04-03  2:58                       ` jimmaureenrogers
2007-04-12 16:24                       ` Hyman Rosen
2007-04-12 18:05                         ` Markus E Leypold
2007-04-15  0:55                           ` Hyman Rosen
2007-04-15  7:55                             ` Dmitry A. Kazakov
2007-04-15 15:25                             ` Markus E Leypold
2007-03-31 11:40                 ` Larry Kilgallen
     [not found]                 ` <1175236212.771445.135460@y66g2Organization: LJK Software <c82IfUV$xbi8@eisner.encompasserve.org>
2007-03-31 18:56                   ` adaworks
2007-03-31 20:10                     ` Markus E Leypold
2007-04-01 18:13                       ` tmoran
2007-03-31 19:33                   ` Cesar Rabak
2007-03-31 20:11                     ` Markus E Leypold
2007-03-30  8:16               ` Markus E Leypold
2007-03-30  9:10               ` Georg Bauhaus
2007-03-30 19:16               ` Pascal Obry
2007-04-01 11:41                 ` Martin Krischik
2007-04-01 17:03                   ` Pascal Obry
2007-04-01 18:13                   ` tmoran
2007-04-16  2:09             ` Brian May
replies disabled

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