Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!samsung!caen!news.cs.indiana.edu!arizona.edu!arizona!gudeman From: gudeman@cs.arizona.edu (David Gudeman) Newsgroups: comp.lang.misc Subject: Expressiveness Message-ID: <924@optima.cs.arizona.edu> Date: 20 Mar 91 22:00:06 GMT Sender: news@cs.arizona.edu Lines: 33 In article <18502:Mar2014:07:0691@kramden.acf.nyu.edu> Dan Bernstein writes: ]In article <896@optima.cs.arizona.edu> gudeman@cs.arizona.edu (David Gudeman) writes: ] ]What language do you find most expressive? Let me guess: BCPL? :-) I could argue for Icon or Scheme on different grounds: Icon lets you express a collection of different evaluation paradigms that other languages don't. It has search-with-backtracking like Prolog, it has normal expressions and commands like most languages (but Prolog doesn't), it has success/failure semantics like SNOBOL4 (which also has expressions and comands, but not backtracking). Scheme has first-class continuations, closures, processes (sort of), and environments; which lets you express many things that you can't express without them (or without first implementing them). There are other, lesser known, languages that I could also argue for, but there isn't any language that has everything. And so far as I know there isn't any way to combine all these features without making the language unwieldy. One thing I would _not_ include in a definition of "expressive" is the ability to control the machine at a low level. Expressiveness should describe a language's suitability for "expressing" the solution to a large class of problems without regard to performance -- except (maybe) for algorithmic performance. Low-level control is certainly an important feature of some languages, but it is an entirely different kind of feature than expressiveness. -- David Gudeman gudeman@cs.arizona.edu noao!arizona!gudeman