Re: XML: The good, the bad, and the ugly
Date: 20 Oct 2004 04:49:48 -0700
Message-ID: <bcb8c360.0410200349.2129867a_at_posting.google.com>
Christopher Browne <cbbrowne_at_acm.org> wrote in message news:<2tj2geF1vkc12U1_at_uni-berlin.de>...
> Martha Stewart called it a Good Thing when "Marshall Spight" <mspight_at_dnai.com> wrote:
> There are only a few languages I can think of that are particularly
> nearly untyped:
> a) Tcl only had strings, for a long time;
> b) REXX only had strings;
> c) Perl's objects' types try pretty hard to be schizophrenic...
> d) BCPL objects have types, but those types vary based on what
> operator you're using on them at the moment...
I'd quibble with your (d). Assuming an overloading of "objects", BCPL is effectively monotyped - everything is a binary bit pattern. (Some would argue that monotyped == typeless. Martin Richards describes BCPL as typeless on his homepage.) Nothing really has a type per se; the type information is really an aide memoire for you rather than anything the compiler will care deeply about. What you declared as an integer can be used as a function name in a function call, for example - this is how the global vector works, IIRC, although it is a little while since I read Martin Richards' book. Interestingly he still develops BCPL, and has a language called MCPL which is based on BCPL but includes features from Prolog and ML.
I much prefer BCPL to C in many ways; BCPL is at least honest about its handling of types. The global vector is an interesting alternative to linking. The Ocode idea (indeed, the multiple levels of machine independent code) was fresh in 1966. And the operating system, Tripos (Tripos is to BCPL as Unix is to C, and some would say it's an even closer link than that) lingered on into the 1990s in the form of AmigaDOS, one of the layers of the Commodore Amiga's operating environment.
- Tony
