[Python-Dev] bools aren't ints in Fortran (original) (raw)

Paul F Dubois paul@pfdubois.com
Sun, 10 Mar 2002 10:16:56 -0800


Paul Prescod wrote to Tim:

Here are other languages that (based on some admittedly cursory research) treat booleans > as entirely distinct from integers:

* Scheme * SML * JavaScript * Visual Basic * Eiffel * Smalltalk

I'd be curious to hear a list of high level, GC'd languages in the other camp. Methinks > your Fortran/C bias shows. ;) And it isn't pretty."

Add to your list, "Fortran", which has type "logical". This makes the bias comment self-canceling, but reinforces the argument against bool being a special case of int.

I think bools as ints started as a "close to the hardware" motivation, and doesn't have much of a place in modern programming. All the arguments for it seem to be claims for ease of expression but against it is ease of correctness. I think the latter is necessary and the former a nicety.

BTW, the Fortran standard does not specify a representation for logical, and there was even a period where mixing libraries compiled with different compilers on the the Crays could get errors because the representations differed. One compiler had chosen to use a hardware feature that made it quick to test a sign bit. This points out another fallacy with making bool a subclass of int -- it binds the implementation too much to one view.

True + True is neither True nor False. Hmmmmmm....