🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #6659

Re: Evaluating Programming Languages

#6659
From: Hank Dietz
Date: Mon, 05 Feb 1990 15:25
98 lines
4200 bytes
In article <3069@caesar.cs.montana.edu> icsu8209@caesar.cs.montana.edu (Glassy) writes:
>I would like to develop some set of criteria for evaluating
>programming languages (both microscopically, on the 'feature' level,
>and macroscopically, examining the language in toto).
...
>My starting point for a set of assessment criteria, is to try to
>classify some of the common languages in (reasonable?) groups.
>
>The languages I've used or read about seem to fall into about 5 distinctive
>categories:  
>
>a.  Homegrown:   FORTRAN', C', BASIC', FORTH'
>b.  Algol:       Algol-60, Pascal', Modula
>c.  Functional:  Lisp', Scheme, APL
>d.  Monsters:    Algol-68, PL/1, Ada'
>e.  Others:      Smalltalk, SNOBOL'
>
>(For reference, I've only written programs in the languages listed
>with a '.  I trust that partisans of each language will correct any
>misperceptions I may have of _their_ fave :) .)

I classify languages based on the types of programs they were designed to
implement...  the following is a QUICKIE PARTIAL LIST. Notice that some
languages appear in more than one group.  (I've also marked languages I've
actually used with a tick suffix.)  I'm curious if others generally agree
with my list:

Teaching languages:
	(Simple, fast-compile because student programs usually don't get
	 any further than that, only one programming idiom to force good
	 programming style, often has friendly graphics)
	Pascal', Karel', RatFor', various language subsets introduced in
	 textbooks -- especially data structure/algorithm textbooks,
	 Smalltalk', Logo'

Prototyping:
	(For testing/defining algorithms, highly interactive, inefficient
	 execution in many cases due to high-level primitives)
	BASIC', Lisp', Prolog', APL', SetL', CSP', FP', Id'

Numerical applications:
	ForTran', other languages also called "Fortran" (;-), Sisal', APL'

String/text processing:
	(Text manipulation, pattern/image orientation)
	CoBOL', SNOBOL', Awk', sed', Teco', Emacs (any version)', Lisp',
	 Prolog'

General purpose:
	(Usually big languages with many alternative idioms, synthesized as
	 best from other languages, usually merging numerical and string
	 processing, e.g., ForTran and CoBOL)
	Algol', PL/I', Ada', Scheme' (and other "efficient" Lisp dialects ;-)

Systems:
	(Support for large program development and maintenance, efficient
	 execution, low-Level HW access)
	BLISS, BCPL, B, C', C++', PL/M', Ada', Modula (pick any number ;-),
	 various assembly languages

AI:
	(Artificial intelligence languages...  really symbol-oriented)
	Lisp', Prolog', SAIL', OPS5

CAI:
	(Computer-Aided Instruction)
	Pilot', Plato', PILE'

Mathematical exploration:
	(Tools for numeric visualization and/or symbolic transformation)
	Macsyma, MuMath', IGL', NGL', Lotus, any language with a name ending
	 in "calc"

Control of automatic test equipment:
	Gaelic, Atlas'

Query languages:
	(The database/dictionary is THE data/knowledge structure)
	DBase, Ingres, SEQUEL, Forth', MUMPS, Prolog', OPS5

Asynchronous parallelism:
	(Typically associated with MIMD execution)
	CSP', Occam', Linda, Concurrent C', Euclid

Synchronous parallelism:
	(Typically associated with SIMD execution)
	Glypnir, Actus, Parallel C', C*', *Lisp

SPMD parallelism:
	(Single program, multiple data -- multiple paths through same code)
	PL/I', Ada', The Force', EPEX', BBN Uniform System, XPC', PCF Fortran

Languages designed for automatic parallelization:
	(Language constructs to help flow analysis for parallelization)
	Refined Languages (Refined C, Fortran, Pascal, and Lisp)', Blaze',
	Sisal'

						-hankd@ecn.purdue.edu
Technical Details
Message-ID: <14399@pur-ee.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!purdue!mentor.cc.purdue.edu!pur-ee!hankd
References: <3069@caesar.cs.montana.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!purdue!mentor.cc.purdue.edu!pur-ee!hankd
From: hankd@pur-ee.UUCP (Hank Dietz)
Newsgroups: comp.lang.misc
Subject: Re: Evaluating Programming Languages
Summary: Classify lang. on type of programming it was designed for
Message-ID: <14399@pur-ee.UUCP>
Date: 5 Feb 90 15:25:19 GMT
References: <3069@caesar.cs.montana.edu>
Reply-To: hankd@pur-ee.UUCP (Hank Dietz)
Distribution: usa
Organization: Purdue University Engineering Computer Network
Lines: 98