Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Towards monolingual programming environments
Heering J. (ed), Klint P. (ed) ACM Transactions on Programming Languages and Systems7 (2):183-213,1985.Type:Article
Date Reviewed: Nov 1 1985

Although this paper can be summarized (the abstract is satisfyingly concise), many of its virtues lie in the details of its developing argument. In brief, the authors present the following argument: Programming is not purely a matter of specifying a process in a particular language; it also involves a text editor, a system command language, a symbolic debugger, and possibly a linkage editor and a version control facility (all of which, more likely than not, define widely differing linguistic constructs to invoke conceptually similar functions).

The authors concentrate on unifying three of the above languages: the command language, the programming language, and the symbolic debugging language. A close examination of three UNIX version 7 shell procedures demonstrates nicely that there is already a strong overlap in function between programming languages and command languages. Unifying these two is primarily seen as a matter of:

  • treating files as external variables,

  • treating programs as procedures,

  • treating procedures and types as objects to be manipulated by programs like any other data object, and

  • treating the command language concept of a file directory like the programming language concept of an evaluation environment.

The unification of debugging mode with programming/command modes involves discussion of (1) program events (modifying a variable, calling a procedure) that are significant for debugging purposes, and (2) manipulating the program state during debugging. A section arguing that event association and state recovery are themselves valuable concepts in programming (exception handling, backtracking) and command-level activity (version control, undo actions) rounds out the unification process and makes interesting, if debatable points. There is some weakness in the treatment of command/debugging mode unification, and one wonders how the debugging/editing mode unification is to proceed.

A section on two existing programming environments that are presented as successfully monolingual--INTERLISP and SMALLTALK--and a section on implementation considerations (the design was not yet implemented at the time the paper was written) complete the discussion.

This is a paper rich in ideas that are carefully interrelated. Every reader with sufficient interest in the subject matter to stay the course will find some subtopic that cries out for further elaboration. These readers will also be able to think of an objection to the notion of monolingual environments that is not answered. The authors consider their criteria for the inclusion of a feature to be the main original contribution of their paper, and I agree; but the pleasure of following the ramifications of these criteria is a strong reason for recommending the paper.

Reviewer:  P. N. van den Bosch Review #: CR109505
Bookmark and Share
 
Programming Environments (D.2.6 )
 
 
Command And Control Languages (D.4.9 ... )
 
 
Data Types And Structures (D.3.3 ... )
 
 
Interlisp (D.3.2 ... )
 
 
Smalltalk-80 (D.3.2 ... )
 
 
Organization And Design (D.4.7 )
 
  more  
Would you recommend this review?
yes
no
Other reviews under "Programming Environments": Date
A prototyping environment for differential equations
Boubez T., Froncioni A., Peskin R. ACM Transactions on Mathematical Software 18(1): 1-10, 1992. Type: Article
Mar 1 1993
PICT: an interactive graphical programming environment
Gilnert E., Tanimoto S. Computer 17(11): 7-25, 1984. Type: Article
Jul 1 1985
Dealing with world-model-based programs
Gini G., Gini M. ACM Transactions on Programming Languages and Systems 7(2): 334-347, 1985. Type: Article
May 1 1986
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy