From ... From: Erik Naggum Subject: Re: Theory #51 (superior(?) programming languages) Date: 1997/01/23 Message-ID: <3063010159007887@naggum.no>#1/1 X-Deja-AN: 211677272 references: <5c5c65$9ed@news-rocq.inria.fr> <32E6CA6E.45B5@netright.com> mail-copies-to: never organization: Naggum Software; +47 2295 0313; http://www.naggum.no newsgroups: comp.arch,comp.lang.lisp,comp.lang.scheme * David Hanley | [modulo 2^n definition of integer types] might seems silly, but I seem to | remember it as part of the required computer science classes at my | university, and pretty much everyone got it. If someone can't be | bothered to learn basic language 'stuff' I don't know how much I trust | them as programmers. obviously, the problems don't happen when programmers are aware of them and actually code to detect overflow. the problems happen because programmers are not aware of the _possibility_ of an overflow in a given operation, and so calculate and return the wrong answers without any notification or error. with extreme care and precaution, a C programmer may write explicit code that detects when the modulo 2^n arithmetic does not agree with expected mathematical values, but overflow is an _error_ condition. if a programmer writes checks after the fact, the _error_ still went unnoticed by C. you can add as much explicit code as you want -- C _still_ doesn't give you access to the overflow condition. and yes, I _do_ know that what I'm asking for is not C. please get the point: C _does_ _not_ _provide_ a necessary mechanism for safe programming. #\Erik -- 1,3,7-trimethylxanthine -- a basic ingredient in quality software.