Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site gumby.UUCP Path: utzoo!watmath!clyde!cbosgd!ihnp4!mhuxn!mhuxb!mhuxr!ulysses!allegra!mit-eddie!godot!harvard!seismo!uwvax!gumby!g-frank From: g-frank@gumby.UUCP Newsgroups: net.lang.c Subject: Re: Language transitions Message-ID: <282@gumby.UUCP> Date: Thu, 7-Feb-85 00:04:53 EST Article-I.D.: gumby.282 Posted: Thu Feb 7 00:04:53 1985 Date-Received: Sat, 9-Feb-85 07:33:43 EST References: <252@gumby.UUCP> <535@ukma.UUCP> <258@gumby.UUCP> <4475@ucbvax.ARPA> <268@gumby.UUCP> <302@psivax.UUCP> Organization: U of Wisconsin CS Dept Lines: 25 > With all his talk about > the importance of data hiding and locality, he did not include local > statics. To get a static variable it must be global! This is significant > lack, I use local statics regularly for internal state variables, which > is what they are for. I also do not seem to remember any facility > for type casting or its equivalent, very useful for general purpose > routines and record type. > -- Modules are intended to allow hiding of what you would call local statics. You just make a module small enough that state information is reasonably kept in its private global variables without violating scoping rules. This doesn't always work, but most of the time it is reasonable. Any type, including user-defined ones, may be cast to by taking its name as though it were a function call, as in CARDINAL (myvar) or SuperType (somevar) -- Dan Frank "good news is just life's way of keeping you off balance."