comp.lang.ada
 help / color / mirror / Atom feed
From: James Rogers <jimmaureenrogers@worldnet.att.net>
Subject: Re: 'Cyclone', a safer C--reinventing the wheel
Date: Thu, 22 Nov 2001 17:04:42 GMT
Date: 2001-11-22T17:04:42+00:00	[thread overview]
Message-ID: <3BFD2FED.2964085E@worldnet.att.net> (raw)
In-Reply-To: mailman.1006436087.19644.comp.lang.ada@ada.eu.org

Gautier Write-only-address wrote:
> will a "stronger C" be accepted by programmers if it has lost
> its "quick & dirty" features ? Where is the tradeoff between
> compatibility and security in that Cyclone ? That would be
> interesting information.

This, of course, is yet to be seen. 

After reading *some* of the Cyclone documentation I see that there is
a strong compatibility with classic C. Two incompatibilities are
implicit conversions and pointer arithmetic. Implicit conversions are
severely limited in Cyclone because of strong type checking.
Pointer arithmetic is allowed only when using "fat" pointers.
These "fat" pointers are used for array indices and maintain array
range information, making them "fatter" than normal pointers.

The normal C pointer notation still exists:

  int a = 10;
  int *b = &a;

This notation does not allow pointer arithmetic. Fat pointers are
created as follows:

  int a[10];
  int ?b = a;

This creates a fat pointer to the beginning of the "a" array.

Note that fat pointers make pointer arithmetic safer, but they do
not make array indexing safer.

Cyclone still uses the C #include technology, with all its power
and dangers. Cyclone does generate run-time checking to enhance
software safety. I believe this run-time checking will be its
undoing in the C community. Run-time checking will make 
Cyclone executables larger than executables created from a C
compiler using the same source code. 

It is my opinion that the C community still values small executable
size over software safety. If this was not true most people in the
C community would use a safer language.

Jim Rogers
Colorado Springs, Colorado USA



  reply	other threads:[~2001-11-22 17:04 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-22 13:33 'Cyclone', a safer C--reinventing the wheel Gautier Write-only-address
2001-11-22 17:04 ` James Rogers [this message]
  -- strict thread matches above, loose matches on Subject: below --
2001-11-20 23:29 Gautier Write-only-address
2001-11-21 15:30 ` Wes Groleau
2001-11-20 18:37 Gautier Write-only-address
2001-11-20 12:36 Marc A. Criley
2001-11-20 12:51 ` Peter Amey
2001-11-20 14:45 ` Marin David Condic
2001-11-20 15:31   ` Florian Weimer
2001-11-20 16:22     ` Marin David Condic
2001-11-20 16:47       ` Wes Groleau
2001-11-20 16:30 ` chris.danx
2001-11-20 16:54   ` Wes Groleau
2001-11-20 19:49     ` chris.danx
2001-11-20 21:28       ` Wes Groleau
2001-11-20 22:36         ` Marin David Condic
2001-11-21  9:20       ` Ehud Lamm
2001-11-22  0:32         ` chris.danx
2001-11-22  7:57           ` AG
2001-11-21 12:46       ` Marc A. Criley
2001-11-22 11:46     ` IsraelRT
2001-11-22 12:24       ` Preben Randhol
2001-11-23  9:19         ` Colin Paul Gloster
2001-11-22 16:06       ` chris.danx
2001-11-20 17:18   ` Pascal Obry
2001-11-20 22:21   ` Jeffrey Carter
2001-11-21 14:27     ` Marin David Condic
2001-11-22  9:27     ` chris.danx
2001-11-22 21:41       ` Jeffrey Carter
2001-11-20 17:09 ` Brian Rogoff
2001-11-21  1:50   ` Mike Silva
2001-11-21 22:47     ` Brian Rogoff
2001-11-22  0:00       ` Mark Lundquist
2001-11-22  0:42         ` Brian Rogoff
2001-11-26 10:42           ` Mark Lundquist
2001-11-27  8:28             ` Dmitry A. Kazakov
2001-11-27 15:21               ` Mark Lundquist
2001-11-27 16:51                 ` Brian Rogoff
2001-11-28 18:23                   ` Mark Lundquist
2001-12-24 15:17                     ` Dmitry A. Kazakov
2001-11-23  6:46       ` Mike Silva
2001-11-23  7:13         ` Brian Rogoff
2001-11-22 11:42 ` IsraelRT
2001-11-22 13:45   ` Marc A. Criley
2001-11-22 17:24     ` Brian Rogoff
2001-11-23 14:53       ` Marc A. Criley
replies disabled

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