Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Magma2: a language oriented toward experiments in control
Turini F. ACM Transactions on Programming Languages and Systems6 (4):468-486,1984.Type:Article
Date Reviewed: Jun 1 1985

Periodically, it is claimed that research in programming languages is now terminated, and that nothing new can be invented after completion of the design of the ultimate language X. Replace X with ADA, C, PROLOG, LOGO, Functional Programming, or any other language you prefer; ten years ago, you could have replaced X with APL, ALGOL 68, PL/I, etc. Surprisingly, however, research in programming languages continues to flourish, although its mainstream shifts from time to time from some aspects to others. (Maybe, in fact, some celebrated programming languages have closed research activity in some specialized aspects, such as orthogonality for ALGOL 68, or strong data typing for ADA.)

Although I would not risk any prediction about the current research directions about programming languages, it seems to me that control structures, after the partial eclipse that followed the main explosion of structured programming, are again a subject of wide interest. See, for example, CLU [1], SL5 [2], ICON [3], or POLY [4]. Magma 2, presented in this paper, is another example of these attempts to make the programmers build their own control structures, instead of providing them with a restricted and completely closed set of predefined ones. In order to distinguish the semantics of control structures from their syntax, various authors prefer to call control regimes the mechanisms they provide, thus leaving the old term to the predefined syntax constructs.

New control regimes are defined in the areas of coroutines, backtracking, goal-directed evaluation, or generators. The mechanisms provided also include well-known control regimes, such as iterations and recursions; the overall success of some new mechanism for defining control regimes could be measured by the naturalness and facility in which iteration and recursion are synthesized anew. The paper under review describes such an attempt, built upon a language called Magma LISP. This language is not described in the paper, but one may assume it bears some resemblance with some dialect of LISP, of course. This hypothesis is confirmed by the examples occurring in the text.

The paper itself is not very easy to read. Its overall structure is hard to find, since the author is frequently shifting between three means of description: plain English, pseudo-LISP, and denotational semantics. The parts of the paper using this latter means are the hardest to understand, of course; in fact, it seems as if they had been added to the text afterwards in order to give it a sufficiently theoretical flavor so that the paper would be accepted by ACM Transactions on Programming Languages and Systems instead of ACM Transactions on Mathematical Software. I would like to make another slight criticism, however: maybe LISP is a very good vehicle for defining new structures, from the implementor’s point of view, but I think that is not the case from the reader’s point of view. It is especially difficult to understand how recursion is defined in a pseudo-LISP without using recursion.

The regrettable result of these weaknesses is that this paper, despite its qualities and interest, would not be extremely useful for people other than those deeply involved in exactly the same research area. This is somewhat unfortunate, in my opinion, since I think research in control structures is interesting and useful, and should be much more widely known.

Reviewer:  O. Lecarme Review #: CR108914
1) Liskov, B.; Snyder, A.; Atkinson, R.; and Shaffert, C.Abstraction mechanisms in CLU, Commun. ACM 20 (1978), 564–576.
2) Hanson, D. R.; and Griswold, R. E.The SL5 procedure mechanism, Commun. ACM 21 (1978), 392–400. See <CR> 20, 8 (Aug. 1979), Rev. 34,921.
3) Griswold, R. E.; and Griswold, M. T.The ICON programming language, Prentice-Hall, Englewood Cliffs, NJ, 1983.
4) Harland, D. M.Polymorphic programming languages: Design and implementation, Ellis Horwood/Wiley & Sons, New York, 1984.
Bookmark and Share
  Featured Reviewer  
 
Recurrences And Difference Equations (G.2.1 ... )
 
 
Control Primitives (F.3.3 ... )
 
 
Denotational Semantics (F.3.2 ... )
 
 
Extensible Languages (D.3.2 ... )
 
 
Magma 2 (D.3.2 ... )
 
 
Modules, Packages (D.3.3 ... )
 
  more  
Would you recommend this review?
yes
no
Other reviews under "Recurrences And Difference Equations": Date
Discrete dynamical systems: theory and applications
Sandefur J., Clarendon Press, New York, NY, 1990. Type: Book (9780198533849)
Jul 1 1991
An efficient formula for linear recurrences
Fiduccia C. SIAM Journal on Computing 14(1): 106-112, 1985. Type: Article
Oct 1 1985
Unique extrapolation of polynomial recurrences
Lagarias J., Reeds J. SIAM Journal on Computing 17(2): 342-362, 1988. Type: Article
Aug 1 1989
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