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
next prev parent 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