Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
The design of Apple--a language for modular programs
Kieburtz R., Nordstrom B. Information Systems10 (1):1-22,1985.Type:Article
Date Reviewed: Dec 1 1985

This is a well written paper that provides insight into advanced principles of programming language design. The paper will be most informative to those who have a background in formal language theory.

The paper is devoted to how a specific set of principles leads to the design of a language. The paper is divided into the following chapters: Introduction, Overview, Design Goals, Modularity, Type Polymorphism, Static Environments, Imperative Parts of APPLE, Recursive Data Types, How Control Structures Complement Data Types, Streams, Implementation, and Conclusions.

Although the APPLE language includes statement forms, it is a functional language because there are no global variables. Variables to which values may be assigned are local to functions. The subject of the paper and the obvious restrictions on its length forced the authors to cope with the difficulties of using the language in examples without first defining the language syntax. The “Rosetta Stone” that solved this dilemma was the definition and use of our old friend the “stack” abstract data type. Using this well-known example and relying on the knowledge base of the intended reader, enough of the forms of the language are exhibited.

The chapter on Type Polymorphism left me dissatisfied. Two methods were proposed, the familiar operator overloading and the unfamiliar use of formal parameter names for operators of parameter types. The latter was said to be vastly preferable. However, operator overloading was explained in great detail, and the formal parameter names had very few words of explanation.

On the more trivial level of the concrete representation of APPLE’s lexical and syntactic rules, I think that identifers are case sensitive. The delimiters of the language are all in the ASCII character set.

The authors’ own words are the most succinct characterization of APPLE. “APPLE programs are composed and analyzed by inductive reasoning rather than by mental simulation of execution. We believe that this is the most valuable contribution to programming style and programmer effectiveness that a programming language can make.” I agree with the authors’ sentiments, but I am afraid that APPLE programmers will not exist in effective numbers for many years. When I first read the description of APPLE in the paper I was repelled by the formality of the language. But rereading it several times made me overcome that feeling. It grew on me.

Reviewer:  Erwin Book Review #: CR109760
Bookmark and Share
 
Apple (D.3.2 ... )
 
 
Modules, Packages (D.3.3 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Apple": Date
Foundation iPhone app development: build an iPhone app in 5 days with iOS 6 SDK
Kuh N., Friends of ED, New York, NY, 2012.  468, Type: Book (978-1-430243-74-8)
Feb 28 2013
The advanced iOS 6 developer’s cookbook (4th ed.)
Sadun E., Pearson, Boston, MA, 2013.  528, Type: Book (978-0-321884-22-0), Reviews: (1 of 2)
Jan 9 2014
The advanced iOS 6 developer’s cookbook (4th ed.)
Sadun E., Pearson, Boston, MA, 2013.  528, Type: Book (978-0-321884-22-0), Reviews: (2 of 2)
Mar 19 2014

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