Re: Q: Definition of a scripting lang.

lwall@netlabs.com (Larry Wall)
Mon, 27 Mar 1995 18:42:40 GMT

          From comp.compilers

Related articles
Q: Definition of a scripting lang. ariel@ccs.neu.edu (1995-03-04)
Re: Q: Definition of a scripting lang. macrakis@osf.org (1995-03-10)
Re: Q: Definition of a scripting lang. eifrig@beanworld.cs.jhu.edu (1995-03-15)
Re: Q: Definition of a scripting lang. lwall@netlabs.com (1995-03-27)
Re: Q: Definition of a scripting lang. rpereda@wotangate.sc.ti.com (1995-04-05)
Re: Q: Definition of a scripting lang. lwall@netlabs.com (1995-04-16)
Whitespace (Was: Q: Definition of a scripting lang.) eifrig@beanworld.cs.jhu.edu (1995-04-16)
The semicolon habit (was: Q: Definition of a scripting lang.) prechelt@i41s25.ira.uka.de (1995-04-11)
Re: Q: Definition of a scripting lang. leichter@zodiac.rutgers.edu (1995-04-18)
Re: The semicolon habit (was: Q: Definition of a scripting lang.) stidev@gate.net (1995-04-19)
[34 later articles]
| List of all articles for this month |

Newsgroups: comp.compilers
From: lwall@netlabs.com (Larry Wall)
Keywords: design, interpreter
Organization: NetLabs, Inc., Los Altos, California.
References: 95-03-034 95-03-094
Date: Mon, 27 Mar 1995 18:42:40 GMT

Our moderator writes:
>[I suppose one might draw the line by saying that a scripting language is
>one where the main effect of a program is to drive another system, while in a
>programming language the program itself is the main action. -John]


Jonathan Eifrig <eifrig@beanworld.cs.jhu.edu> wrote:
: Of course, "traditional" programs are nothing more than scripts for a
: microprocessor. :-)
:
: Ultimately, these sorts of distinctions aren't very helpful; at best they
: can be descriptive, not proscriptive.


And all good Computer Scientists just love to proscribe things, don't they? :-)


: Personally, I view a language as a "scripting" language if (1) whitespace
: is significant...


According to this criterion, Fortran was the last great scripting language. :-)


Whitespace is significant in nearly all modern languages. You can't
put whitespace inside a token in C, Ada, Modula, Lisp, Perl, etc. And
you typically *must* put whitespace between two adjacent alphanumeric
tokens in any of these languages.


Now, if what you meant is that newlines have syntactic meaning in addition
to their ordinary whitespace meaning, I'll grant you that many languages
do this, including sh, awk, Tcl and Python. But not Perl. Perl doesn't
even care if you put a newline inside a literal string. Please tar Perl
with a different brush.


: and (2) there is an anti-quotation facility to turn strings into programs.


By this definition all computer languages are scripts. Of course, some
"anti-quotation facilities" are clunkier than others...


: Both are horrid features, and both are amply found in sh, perl, and Tk. :-)


Maybe this explains their lack of popularity. :-)


Anyway, I suppose it's not fair to snipe at your definitions without
giving my own. The question of "scripts" vs "programs" comes up
frequently in the comp.lang.perl newsgroup. Speaking as a computer
scientist, my answer is: These are not (yet) technical terms.
Speaking as a linguist, my answer is: These words (like most words)
are defined by prototype, not by boundary. A script is what you give
the actors, and a program is what you give the audience.


Larry Wall
lwall@netlabs.com


P.S. Vigor is more useful than rigor, unless you're dead.
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.