🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #1531

Re: The Universal Language

#1531
From: Vance Morrison
Date: Mon, 20 Aug 1990 14:34
52 lines
3460 bytes
>>In article <24281@megaron.cs.arizona.edu> gudeman@cs.arizona.edu (David Gudeman) writes:
>All of this is very nice, but it doesn't tell me that there is any
>substantial difference between Smalltalk and ML.  It only tells me
>that the in the traditional ways of viewing Smalltalk and ML, there
>are some features that are different.  However, any ML program can be
>translated into Smalltalk with a simple syntactic transformation.
>Furthermore, it is possible to select a subset of Smalltalk and impute
>an ML-like semantics to that subset, such that the ML-like semantics
>and the Smalltalk semantics agree.
>
>To the programmer, this means it is possible for a programmer to use
>Smalltalk for programming, but imagine that he is using a functional
>language with functional semantics.  The reverse is not possible.
				      ^^^^^^^^^^^^^^^^^^^^^^^^^^^

I have to differ with you there.  Whenever you write semantics of a
language what you are doing is specifying a SYNTATIC transformation
from the source langauge to the semantic language.  Thus if I write
the sematics of smalltalk in ML (which certanly is possible), I have
just written a description that can be used to convert Smalltalk into
ML.  Thus the programmer 'thinks' he is writing smalltalk but is 
'really' writting ML.  

The bottom line is that EVERYTHING a computer does is syntatic, so
if a computer can convert from one langage to another, then one
language can be defined in terms of the other.  Unfortuately the
reverse is almost always true, so you can't say that one language
is 'better' or 'more expressive' based on that arguement.

I think an important point that is often overlooked is that what a
language prohibits is at least as important as what a language 
provides.  The more constrained a language is, the easier it is
to reason about.  For example, in ML I can be sure my program is
type safe, and that I will never have aliasing problems (without
EVER seeing the program).  I can't do this in Smalltalk.  Now
granted, you could restrict yourself to a restricted form of Smalltalk
so that you could guarentee these properties in your smalltalk program,
but what you have just done is convert Smalltalk to ML.  Either you
always use the subset in which case you might as well be using ML,
or you don't in which case you can no longer reason simply about 
the program.  

Thus there is a continuous tradeoff between expressiveness and the
abilty to reason easily about your code.  In general for a particular
application you want to use the most RESTRICTIVE language that allows
you to express what you want to describe.   This way you get the most
'free' information about the behavior of your code.  Obviously
one language can't do this, but you can imagine a family of 'nested'
languages that might provide a good approximation.

Vance Morrison
Univ. of Illinois, Urbana-Champaign
Technical Details
Message-ID: <1990Aug20.143429.7659@ux1.cso.uiuc.edu>
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!decwrl!wuarchive!brutus.cs.uiuc.edu!ux1.cso.uiuc.edu!thucydides.cs.uiuc.edu!morrison
References: <24353@megaron.cs.arizona.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!decwrl!wuarchive!brutus.cs.uiuc.edu!ux1.cso.uiuc.edu!thucydides.cs.uiuc.edu!morrison
From: morrison@thucydides.cs.uiuc.edu (Vance Morrison)
Newsgroups: comp.lang.misc
Subject: Re: The Universal Language
Message-ID: <1990Aug20.143429.7659@ux1.cso.uiuc.edu>
Date: 20 Aug 90 14:34:29 GMT
References: <24353@megaron.cs.arizona.edu>
Sender: usenet@ux1.cso.uiuc.edu (News)
Reply-To: morrison@thucydides.cs.uiuc.edu.UUCP (Vance Morrison)
Organization: University of Illinois, Urbana-Champaign
Lines: 52