Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site mit-eddie.UUCP Path: utzoo!linus!decvax!genrad!mit-eddie!barmar From: barmar@mit-eddie.UUCP (Barry Margolin) Newsgroups: net.lang Subject: Re: Anti-CLU... Anti-Strong-Typing... Message-ID: <995@mit-eddie.UUCP> Date: Sat, 3-Dec-83 00:43:09 EST Article-I.D.: mit-eddi.995 Posted: Sat Dec 3 00:43:09 1983 Date-Received: Sun, 4-Dec-83 08:18:21 EST References: <411@dartvax.UUCP>, <816@vax2.fluke.UUCP> <666@cbosgd.UUCP> Organization: MIT, Cambridge, MA Lines: 23 > ... with lots of superflous conversions going on at runtime. > PL/1 and APL are like this too. I have never heard of APL doing any automatic type conversions. The only types it has are character and numeric, unless you consider the different types of numeric representations (boolean, integer, and floating) different types, which APL does not (it just chooses the most convenient representation at any point). If you try to use a numeric operator (e.g. +) on a character value you will get a DOMAIN ERROR. PL/I does compile-time type checking. If it notices that a variable of one type is being used where another is supposed to it will compile code to do the conversion. On Multics, where we use PL/I as the primary systems programming language (those of you who thought that Dennis Ritchie pioneered this idea are forgetting the history of Unix(tm)) our compiler generates a warning message whenever it does one of these in an argument list, since PL/I is normally call-by-reference and this turns into a pass-by-value which could screw you if the parameter was an output parameter. -- Barry Margolin ARPA: barmar@MIT-Multics UUCP: ..!genrad!mit-eddie!barmar