Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site pokey.UUCP Path: utzoo!linus!philabs!cmcl2!seismo!uwvax!pokey!dan From: dan@pokey.UUCP Newsgroups: net.lang Subject: Re: C++ available Message-ID: <273@pokey.UUCP> Date: Wed, 30-Oct-85 10:47:20 EST Article-I.D.: pokey.273 Posted: Wed Oct 30 10:47:20 1985 Date-Received: Fri, 1-Nov-85 02:53:18 EST References: <845@dataioDataio.UUCP> Distribution: net Organization: U of Wisconsin CS Dept Lines: 22 > > I believe most people miss the point about C. It is not the weak type > checking that is a feature, it is the ability to escape the typing rules > when necessary. Most languages with strong type checking forget to allow > for an escape from it. This is why such languages tend to have lousy I/O > and storage allocation features. > > I would like to see a language with strong type checking, yet with an > easy and natural escape from it (like how casts are done). You're in luck! The language you describe is called "Modula-2"! Not only do you have type conversion functions (i.e., casts), but you have loose types like ADDRESS, BYTE, and WORD. There is even a nifty corner of the language that says ARRAY OF WORD (and of BYTE, actually), is procedure parameter compatible with _any_ type (this means that you can write a generalized multi-byte file I/O routine, and use _anything_ as the object to be I/Oed. Once in the routine, you can ask for HIGH(x) to find out how big it is. Look, no pointers!). By the way, if the (admittedly crummy) Wirth text is getting in the way of you learning the language, try the new "Programming in Modula-2" by Ogilvie, published by McGraw-Hill. It's super!