[net.lang] "Function", "Object Oriented" and "Conventional" Languages

stuart@rochester.UUCP (06/26/84)

This is primarily motivated by Barry Margolin's (sp?) note that
automatic storage management (more than just stacks!) frees the
programmer from a lot of work and eliminates the potential for a wide
range of bugs.  This is quite true.

I am not generally a fan of "AI" languages.  No sneer intended, but I
think most of them either have no sophistication about data structures
(LISP) or have extremely specialized structures (knowledge rep
languages).  They do, however, provide the programmer with much nicer
management of the structures that ARE available.

For those in the AI community who may not be aware of what
"traditional" languages are going through, the Xerox Palo Alto Research
Center is developing a language called Cedar which
1) has its roots and takes its syntax from Mesa
2) provides automatic storage management
3) provides *polymorphic* strong type checking

As a result of its heritage, Cedar looks nothing at all like LISP or
any other "AI" language that I know of.  I won't sing its praises, but
it may be used as a "conventional" imperative language or as a fully
"functional" language or as an "object oriented" language with no need
to mess with storage management (with the understanding that the
syntax looks more like Pascal than Smalltalk!).

As an example of how sophisticated and powerful the language can be as
a "functional" language, there is a System Modelling Language used to
describe entire configurations of separated compiled modules, their
interrelations and dependencies which is based on Cedar and completely
stateless and completely type-safe in that arguments are guaranteed to
be of the expected "type"/"structure"/"properties"/whatever.

				Stu Friedberg
			{seismo, allegra}!rochester!stuart
				stuart@rochester