From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,beb0b7471c6440e3 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-11-22 09:04:42 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!arclight.uoregon.edu!wn4feed!worldnet.att.net!135.173.83.71!wnfilter1!worldnet-localpost!bgtnsc05-news.ops.worldnet.att.net.POSTED!not-for-mail Message-ID: <3BFD2FED.2964085E@worldnet.att.net> From: James Rogers X-Mailer: Mozilla 4.76 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: 'Cyclone', a safer C--reinventing the wheel References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Thu, 22 Nov 2001 17:04:42 GMT NNTP-Posting-Host: 12.86.33.122 X-Complaints-To: abuse@worldnet.att.net X-Trace: bgtnsc05-news.ops.worldnet.att.net 1006448682 12.86.33.122 (Thu, 22 Nov 2001 17:04:42 GMT) NNTP-Posting-Date: Thu, 22 Nov 2001 17:04:42 GMT Organization: AT&T Worldnet Xref: archiver1.google.com comp.lang.ada:16876 Date: 2001-11-22T17:04:42+00:00 List-Id: 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