Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
The interface description language: definition and use
Snodgrass R. (ed), Computer Science Press, Inc., New York, NY, 1989. Type: Book (9789780716781981)
Date Reviewed: Oct 1 1990

The Interface Description language (IDL) provides a mechanism for specifying the properties of structured data. It can be applied to allow data to be communicated safely and efficiently among related programs.

The author explains that a compiler can be viewed as a simple programming environment, with each phase considered as a simple tool. Thus a parse tool takes source text and produces a parse tree. A pretty printer uses that parse tree, together with conventions defined in a style database, to produce a listing. A semantic analyzer then generates an attributed parse tree. Each of these tools must have a precise and compatible definition of the data structures used for communication between them.

The IDL is believed to have evolved from module interconnection languages defined during the late 1970s. A standard definition developed by Nestor, Lamb, and Wulf at Carnegie Mellon University during 1982 is used as the basis for this book. The author gained his doctorate at that university in 1982 and has obviously been a committed IDL exponent from that time onward. He is now at the University of North Carolina at Chapel Hill, where he directed the development of an IDL toolkit as part of the SoftLab Project. This book is intended for those interested in using that toolkit or in using IDL independently of it. Karen Shannon and a number of others involved in the SoftLab Project assisted in writing the book.

Part 1 of the book is a tutorial introduction to IDL that uses two examples. The first of these is a conventional batch billing program, which uses a list of transactions and a customer list to generate a list of bills and an updated customer list. Snodgrass introduces the concepts of such data structures as nodes, classes, and ports. He then illustrates the use of an IDL translator to generate target language code in either C or Pascal. For his second example, the author returns to the implementation of a simple compiler, introducing some more advanced concepts as he goes.

Part 2 of the book is a reference manual for IDL and the IDL toolkit. The first chapter covers syntax and semantics. The following chapters on assertion language definition and external (ASCII) representation serve as a lead-in to the chapters on “Using IDL with C” and “Using IDL with Pascal.”

Part 3 provides comprehensive details of a substantial example that illustrates the use of IDL. A cross-referencer language called XRef is defined, and IDL is used in its implementation.

In Part 4, the author presents another substantial example. He covers an IDL translator and its associated assertion checker and syntax tree walker tools in detail.

The book has a number of appendices relating to implementation details. These are followed by a set of answers to the valuable exercises that appear in each chapter and a comprehensive bibliography.

By the author’s own admission, this book is long; Parts 3 and 4 may be too advanced or too detailed for students pursuing courses in compiler writing. This is the era of object-oriented design, however, and all applications programmers owe it to themselves to acquire an understanding of the concepts covered in Parts 1 and 2.

Reviewer:  G. K. Jenkins Review #: CR114346
Bookmark and Share
  Featured Reviewer  
 
Idl (D.2.2 ... )
 
 
Requirements/ Specifications (D.2.1 )
 
 
Data Structures (E.1 )
 
Would you recommend this review?
yes
no
Other reviews under "Idl": Date
Practical IDL programming: creating effective data analysis and visualization applications
Gumley L., Morgan Kaufmann Publishers Inc., San Francisco, CA, 2002.  508, Type: Book (9781558607002)
May 31 2002

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