Path: utzoo!attcan!uunet!wuarchive!udel!carroll From: carroll@udel.edu (Mark Carroll ) Newsgroups: comp.lang.misc Subject: Re: The Universal Language (Was Re: Efficient Fortran) Message-ID: <27388@nigel.ee.udel.edu> Date: 14 Aug 90 13:42:58 GMT References: <1990Aug10.131143.8898@canterbury.ac.nz> <59798@lanl.gov> Sender: usenet@ee.udel.edu Organization: University of Delaware Lines: 88 Nntp-Posting-Host: dewey.udel.edu In article , gaynor@paul.rutgers.edu (Silver) writes: >jlg@lanl.gov (Jim Giles) writes: >> Being dynamically redefinable is not necessarily a bad idea. However, it >> doesn't bring you closer to the concept of a universal language. In >> fact, it takes you further from it. If you can dynamically redefine a >> language, what you _really_ get is a _whole_lot_ of incompatible dialects >> at various sites (or even - from one person to the next). >That's a problem in distribution, not definition... The programmer community >can collectively cut their throats by witholding packages, but that's a >different issue altogether. > Actually, it's a problem in definition. If the language claims to be "universal", but actually requires you to generate non-standard local packages to do any useful programming, then it isn't really universal. That's part of the reason that I prefer the environment idea. Within an environment, you provide a full, standard language for a given model of computation. You still need to have non-standard linkage information in the environment, but within a single module, everything makes sense. Routines/modules/packages from other languages would be called with the use of constructs proper to the language in use. So a call to routine A written in Pascal will look like a call to function A in ML. Given a sufficiently descriptive name for funtion A, an ML programmer will be able to make sense of an ML module, wherever it were written. In the model that you seem to be suggesting, a progreammer would create his own local functional language, by modifying the Universal Language System. And no one else would be able to look at his code without first hacking his way through the modifications he made to the ULS. EVERY programmer would end up with a local dialect in order to get his work done, and no one would understand anyone elses code. >I'm suggesting a language which is a common base, extendable with a library of >packages which provide various interesting linguistic features. The intended >result is an environment in which everything is generally the same unless >requested otherwise. Symbols and comments don't change shape unless you do >something unusual. A program which requires immutable data looks just >like one that doesn't. Infix, prefix, and postfix notations are available; >only one is default, however, it doesn't matter which. > Frankly, I'm not sure that what you're saying really makes sense. I think that the problem is that we're talking at too high a level. It's easy to say, "Hey, let's go design a language which lets you do everything". And on a sufficiently abstract level, it sounds like a good idea. But when it comes down to the actual concrete implementation of something like this, I think that a lot of the good ideas are going to get shot down. How can we realisticly unify the models of Pascal, Smalltalk, and ML? What you seem to be suggesting doesn't make sense to me. If, as a part of a program, I have something equivalent to an ML functor exporting a binary tree package, those binary trees are immutable. To switch views as you seem to be suggesting will suddenly take my well debugged ML module, and introduce bugs - because the ML program cannot possibly copy with non-functional programs altering its structures. Or, suppose I write a log routine in a language like Prolog. How, within the structure of a single language, can I make imperative parts of the program handle backtracking? I'm not saying that any of this is impossible. In fact, I'm sure that it could all be done. But, in my opinion, the contortions that would be necessary to cleanly fit all of this into one language would result in a bad language. I cannot see how you can possibly fit all of the different models of computation into a small, clean language. The language would have to grow into a convoluted mess that would make Ada look good :-) >Somebody cut me down to size, I just reread the paragraph above and it doesn't >even seem totally off the wall! (Um, Mark, I shaved yesterday, so you'll have >to try another tack. :^) > Sorry Andy, I can't cut you down to size. I was never trained for liposuction. >Regards, [Ag] gaynor@paul.rutgers.edu -- |Mark Craig Carroll: |"We the people want it straight for a change; |Soon-to-be Grad Student at| cos we the people are getting tired of your games; |University of Delaware | If you insult us with cheap propaganda; |carroll@dewey.udel.edu | We'll elect a precedent to a state of mind" -Fish