:e · offinalizing functional requirements and goonto discuss hardware/software issues...

3
:e p The AI Business: Commercial Uses of Artificial Intelligence-Patrick H. Winston and Karen A. Prendergast, editors (MIT Press, Cambridge, Mass., 1984, 324 pp., $15.95) This book consists of the edited transcripts of an MIT colloquium that was designed to bring together four groups of people with different perspec- tives on Al. The first group represented the academic community (it included recognizable names from MIT like J. Michael Brady, Randall Davis, Marvin Minsky, Charles Rich, and Patrick Winston); the second group supplied the perspective of "hard-core" financial ex- perts; the third represented industrial R&D people; and the fourth presented the views of "solution-oriented" people (they were somewhat reluctant to label their work as Al). The result is a thought-provoking (albeit rather disjointed) overview of the field of artificial intelligence that is presented at a level that the layman will understand. The book is organized into four parts: "Expert Systems," "Work and Play," "Robotics," and "Today and Tomor- row." Each part records members of the groups mentioned above contributing in- dividually by discussing their products or presenting their ideas, and collectively by participating in panel discussions. Of the four parts, the first, which deals with expert systems, is the most complete and successful. It starts with an overview and geneology of the major expert systems built to date, such as DENDRAL (chemistry), MYCIN (medi- cal diagnosis), and others. It follows with a more detailed description of other important systems: XCON (computer configuration), DIPMETER (oil ex- ploration), and CADUCEUS (medical diagnosis). The "Work and Play" part deals with natural language interfaces and intelli- gent programming aids. The section on "Robotics" consists of a general introduction followed by descriptions of present industrial ap- plications and considerations of the future. One of the articles has several black-and-white pictures of industrial robots in action. Unfortunately, the quality of these pictures is so inferior to those usually seen in magazines and advertisements that one has the impres- sion of leafing through a very old book. Pictures of higher quality that were more suited to the text would have helped its appearance. Finally, in the "Today and Tomor- row" part, the book deals with the issue of balancing the private financing of practical, short-term projects with such financing for the long-term projects nec- essary to keep Al basic research healthy in the foreseeable future. It is difficult to review the panel discussions (one is included at the end of each part). Suffice it to say that they do provide insight into the thinking of many of the "movers" in this field. What emerges from these discussions is a set of fresher, more human, gut-level points of view than can be obtained from reading most of the articles. In conclusion, this book presents a well balanced and realistic view of Al. It should be pleasant and worthwhile for the layman who wishes to gain an under- standing of the state of the art and read about implications for the future of this field. Experts in the field (the book claims that there are very few) would probably also enjoy reading the discus- sions and gain from the general perspec- tive presented. This book is not suitable as an Al textbook for undergraduates in technical majors, but it might serve well as additional reading for those who are more philosophically or socially oriented. Silvano P. Colombano NASA Ames Research Center MS 239-4 Moffet Field, CA 94035 Reader Service Number 97 Problen Solving Using UCSD Pascal (2nd ed.)-Kenneth L. Bowles, Stephen D. Franklin, and Dennis J. Volper (Springer-Verlag, New York, 1984, 340 pp., $17.95) UCSD Pascal is one of the best known and most widely imitated of Pascal dialects. In this text, UCSD Pascal proponent Kenneth Bowles and cohorts present a straightforward in- troduction to programming in Pascal. They start with turtle graphics and, after discussing control structures, structured programming, data structures, pointers, and I/O, wind up with a presentation on searching and sorting. Examples of complete programs (59 in all) are given in all chapters except those that cover searching and sorting. Each chapter begins with a statement of objectives and ends with a set of exercises that tests the reader's understanding of the material. Readers are expected to master the material in a chapter before proceeding to the next. Computer jargon is used throughout, but the first occurrence of each term is clearly marked and ex- plained; a glossary is included as an ap- pendix. In the first chapter, "Getting Started," the authors use turtle graphics to in- troduce the concepts of executable statements and action. The chapter also contains a brief introduction to the UCSD Pascal system facilities (these are treated in greater detail in Appendix D, "The UCSD Pascal System"). Syntax diagrams illustrate the composition of variable names and turtle graphics pro- grams; the diagrams become increasingly complex as the book progresses because they incorporate new programming con- structs as these are introduced. (A com- plete set of syntax diagrams constitutes Appendix E.) The chapter also includes, as do most others, some examples in- volving string manipulation for readers without systems capable of displaying turtle graphics. 140 COMPUTER

Upload: buitu

Post on 01-Sep-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

:e p

The AI Business: Commercial Uses ofArtificial Intelligence-Patrick H.Winston and Karen A. Prendergast,editors (MIT Press, Cambridge, Mass.,1984, 324 pp., $15.95)

This book consists of the editedtranscripts of an MIT colloquium thatwas designed to bring together fourgroups of people with different perspec-tives on Al. The first group representedthe academic community (it includedrecognizable names from MIT like J.Michael Brady, Randall Davis, MarvinMinsky, Charles Rich, and PatrickWinston); the second group supplied theperspective of "hard-core" financial ex-perts; the third represented industrialR&D people; and the fourth presentedthe views of "solution-oriented" people(they were somewhat reluctant to labeltheir work as Al).The result is a thought-provoking

(albeit rather disjointed) overview of thefield of artificial intelligence that ispresented at a level that the layman willunderstand.The book is organized into four parts:

"Expert Systems," "Work and Play,""Robotics," and "Today and Tomor-row." Each part records members of thegroups mentioned above contributing in-dividually by discussing their products orpresenting their ideas, and collectively byparticipating in panel discussions.Of the four parts, the first, which

deals with expert systems, is the mostcomplete and successful. It starts withan overview and geneology of the majorexpert systems built to date, such asDENDRAL (chemistry), MYCIN (medi-cal diagnosis), and others. It followswith a more detailed description of otherimportant systems: XCON (computerconfiguration), DIPMETER (oil ex-ploration), and CADUCEUS (medicaldiagnosis).The "Work and Play" part deals with

natural language interfaces and intelli-gent programming aids.The section on "Robotics" consists of

a general introduction followed by

descriptions of present industrial ap-plications and considerations of thefuture. One of the articles has severalblack-and-white pictures of industrialrobots in action. Unfortunately, thequality of these pictures is so inferior tothose usually seen in magazines andadvertisements that one has the impres-sion of leafing through a very old book.Pictures of higher quality that weremore suited to the text would havehelped its appearance.

Finally, in the "Today and Tomor-row" part, the book deals with the issueof balancing the private financing ofpractical, short-term projects with suchfinancing for the long-term projects nec-essary to keep Al basic research healthyin the foreseeable future.

It is difficult to review the paneldiscussions (one is included at the end ofeach part). Suffice it to say that they doprovide insight into the thinking ofmany of the "movers" in this field.What emerges from these discussions isa set of fresher, more human, gut-levelpoints of view than can be obtainedfrom reading most of the articles.

In conclusion, this book presents awell balanced and realistic view of Al. Itshould be pleasant and worthwhile forthe layman who wishes to gain an under-standing of the state of the art and readabout implications for the future of thisfield. Experts in the field (the bookclaims that there are very few) wouldprobably also enjoy reading the discus-sions and gain from the general perspec-tive presented. This book is not suitableas an Al textbook for undergraduates intechnical majors, but it might serve wellas additional reading for those who aremore philosophically or sociallyoriented.

Silvano P. ColombanoNASA Ames Research CenterMS 239-4Moffet Field, CA 94035

Reader Service Number 97

Problen Solving Using UCSD Pascal(2nd ed.)-Kenneth L. Bowles, StephenD. Franklin, and Dennis J. Volper(Springer-Verlag, New York, 1984, 340pp., $17.95)

UCSD Pascal is one of the bestknown and most widely imitated ofPascal dialects. In this text, UCSDPascal proponent Kenneth Bowles andcohorts present a straightforward in-troduction to programming in Pascal.They start with turtle graphics and, afterdiscussing control structures, structuredprogramming, data structures, pointers,and I/O, wind up with a presentation onsearching and sorting. Examples ofcomplete programs (59 in all) are givenin all chapters except those that coversearching and sorting. Each chapterbegins with a statement of objectives andends with a set of exercises that tests thereader's understanding of the material.Readers are expected to master thematerial in a chapter before proceedingto the next. Computer jargon is usedthroughout, but the first occurrence ofeach term is clearly marked and ex-plained; a glossary is included as an ap-pendix.

In the first chapter, "Getting Started,"the authors use turtle graphics to in-troduce the concepts of executablestatements and action. The chapter alsocontains a brief introduction to theUCSD Pascal system facilities (these aretreated in greater detail in Appendix D,"The UCSD Pascal System"). Syntaxdiagrams illustrate the composition ofvariable names and turtle graphics pro-grams; the diagrams become increasinglycomplex as the book progresses becausethey incorporate new programming con-structs as these are introduced. (A com-plete set of syntax diagrams constitutesAppendix E.) The chapter also includes,as do most others, some examples in-volving string manipulation for readerswithout systems capable of displayingturtle graphics.

140 COMPUTER

The next three chapters, "Proceduresand Variables," "Control Structures I,"and "Control Structures II," provide acomprehensive treatment of Pascal'sflow of control statements, procedures,and variables. They cover control struc-tures, Boolean expressions, Booleanvariables, and the uses (and misuses) ofrecursion. Each also describes acceptedprogramming practices, such as indent-ing to show nesting within blocks. Theauthors provide examples that explainthe differences between WHILE andREPEAT loops; GOTO is mentionedonly in passing. Each topic is accom-panied by syntax diagrams and by ex-amples that incorporate turtle graphicsor string manipulation. In several cases,the examples also include sample outputfrom the programs in the examples.

In Chapters 5, "More on Proce-dures-Scope" and 6, "Handling Com-plex Program Structure," the authorspresent structured programming tech-niques. They explain stepwise refinementby making use of structure diagrams(rather than flowcharts) to specify thesteps involved in making a long-distancecall from a pay telephone. The exampleshows how one goes from an abstractproblem description (How do I make along-distance call from a pay tele-phone?) to physical actions (puttingmoney in the phone, asking the operatorfor the number, etc.) by intuitivelyfollowing a sequence of refinements.The programming examples are drawnfrom those used in earlier chapters; theyhave been redesigned to illustrate step-wise refinement. The chapter concludeswith some exercises in which the authorspresent partial solutions, but leave theprincipal problem-solving to the student.

Chapter 7, "Data Representation,"explains how computers store simpledata types, such as characters and in-tegers. It introduces Pascal's REAL typedeclaration and shows how programmerscan avoid rounding errors and trunca-tion by carefully selecting the order ofevaluation used in expressions.

The eighth chapter, "Input and Out-put," discusses some of UCSD Pascal'smost commonly used built-in functions,such as READ, READLN, WRITE,WRITELN, EOF, EOLN, RESET, andREWRITE. The chapter's final sectionexplains TEXT files, which are used tostore and retrieve information rapidly.Because input and output vary to someextent from implementation to imple-mentation, the authors point out dif-ferences that readers may come across inusing their particular systems.

Chapters 9, 10, and 11 collectivelydescribe basic data structures-arrays,

sets and enumerated types, and records,respectively. The authors use simple datamanagement problems to illustrate thepurpose of arrays. These examples pre-sent a rationale for the use of arrayswith more than two indices. Sets and setoperations, as well as type definitions,are clearly explained in conjunction withenumeration and subrange types. Thechapter on records discusses how theycan be used with arrays (arrays ofrecords and arrays within records) andintroduces Pascal's WITH statement.

"Pointers," Chapter 12, explains thedifference between static and dynamicvariables. The authors present Pascal'sbuilt-in NEW procedure, and reworksome previous examples to illustrate theuse of pointers within records and as abasis for linked lists.The remaining chapters are "Search-

ing," "Sorting-I. Simple Algorithms,"and "Sorting-II. QUICKSORT." Theauthors discuss both linear and binarysearching. They examine the recursiveform of the latter by centering theirpresentation on a structure diagram.Chapter 14 ("Sorting-I. Simple Algo-rithms") describes insertion, bubble, andmerge sorting, and the final chapter isdevoted to sorting with the "quicksort"algorithm. Implementation of quicksortin Pascal is left as an exercise for thereader.This text is especially well suited for

persons with access to a UCSD Pascalsystem that supports turtle graphics. Allreaders will find the authors' inclusionof both program text and sample out-put helpful in understanding turtlegraphics, knowledge of which is, inturn, helpful in understanding string ex-amples. (Turtle graphics is discussedprimarily in the earlier sections of thebook, and access to a machine with tur-tle graphics is not essential forunderstanding this text.)The typeface used is not the most

readable, but overall, this is a fine intro-ductory book. It can be used for in-troductory computer science courses inwhich students proceed at their own

pace, such as the Keller PersonalizedSystem of Instruction. Professionalsdesiring a Pascal tutorial will find Prob-lem Solving Using UCSD Pascal avaluable text.

David M. BristorProgramming Technology DepartmentHewlett-Packard Laboratories1501 Page Mill Rd.Palo Alto, CA 94304

Reader Service Number 98

Designmg Systems with Mwcrocom-puters-M. David Freedman and Lans-ing B. Evans (Prentice-Hall, EnglewoodCliffs, N.J., 1983, 332 pp., $26.00)New applications for microprocessors

are being found every day in both tradi-tional and developing disciplines, withthe result that the demand for micro-computer-systems engineers continues togrow. This growth is causing the"purist" approach to hardware andsoftware design to disappear very rapid-ly. Engineers trained to work with digitalhardware find themselves spending a sig-nificant amount of time writing pro-grams-at the very least, designing firm-ware-and software engineers constantlyhave to deal with new hardware. Thereare many textbooks available that de-scribe only hardware development (thedesign of logic circuits, for example) orsoftware design (the formulation of pro-gramming languages, for instance). Thisbook makes a major contribution tomicrocomputer-based system design bytreating the design of hardware and soft-ware as a single process for purposes ofsystems engineering. It describes the en-tire process for developing microcom-puter-based systems, from requirementsgathering and analysis to hardware andsoftware maintenance.The authors very effectively use the

example of a burglar alarm system to il-lustrate the various steps involved indesigning a product of this nature. Theystart out by emphasizing the importance

141June 1985

of finalizing functional requirements andgo on to discuss hardware/softwareissues and various levels of documenta-tion, planning, testing and so on. Theauthors also describe six stages/levels ofdocumentation:

(1) User requirements and functionalspecifications,

(2) Functional design, including theuse of design languages that makehardware/software trade-offspossible,

(3) Programming-language versions ofprocedures and modules,

(4) Plans for incorporating the systeminto management's schedule,

(5) Functional and schematic descrip-tions of hardware, and a

(6) Hardware integration andcheckout plan.

These documentations are basic to anydevelopment effort. (Of course, thedetails, level, and depth of the documen-tation generated will vary with thenature and complexity of the system be-ing designed.) I feel, though, that theauthors should have included an addi-tional documentation level: plans forhardware/software integration andmaintenance (by "software," I mean, inthis context, application software ratherthan firmware).

The authors provide very good discus-sions of concepts like data modulariza-tion, decoupling, information hiding,and structured design. They present the8085 CPU chip and associated hardwarein such a manner that even end users,who are not usually familiar with thefield, will grasp many aspects of hard-ware logic design. I do wish that theauthors had provided a more completesolution of the design of the burglaralarm in their example-I especially wishthat they had included hardware sche-matics. Software design aspects of thealarm have been described thoroughly,but the detailed hardware design hasbeen left for the reader to complete.

The authors also devote some sectionsto project management. Their presenta-tion, which is somewhat sketchy, givesthe reader a taste of what it means todesign a system in industry. A few addi-tional sections describing cost-controlmethods and the division of a projectinto tasks would have given a morepractical understanding of the project-planning task.

The book is basically self-contained-the authors even go so far as to discussthe concept of number systems in Ap-pendix A. The appendices are extremely

useful, since PL/M, BASIC, FOR-TRAN, and Pascal language constructsare defined.As expected, the book does not treat

all of its subjects in great depth; such atreatment would have resulted in avolume of encyclopedic proportions.The authors describe various tools forsoftware and hardware design, but I per-sonally would have appreciated one ortwo chapters on hardware interfacedesign (controller design, interfacingwith synchronous input-output chips,and so on).

I recommend this book very highlyfor use in a course on microcomputersystems design and for use by engineersin the field of microcomputer design.The examples in the book are based onthe Intel 8085 chip, but the reader in-terested in designing systems based onother chip sets will benefit from thesystem development methodology andapproach described by Freedman andEvans.

Anil AgrawalMember of Technical StaffJet Propulsion LaboratoryPasadena, CA 91109

Reader Service Number 99

PUBLICATIONS ORDER FORM PLEASESHIPTO:Return with remittance to: [1 1 1 1 1 1[1 1 1 li I JNAMEIEEE Computer Society Order DepartmentP.O. Box 80452 __ __ _ __ __ _ __ __ _ __ __ _ __ __ _ __ __I__ _ __ __ __I__ __I__ __I_Worldway Postal Center

9 U.. AFFILIATION (company or attention of)

Discounts, Orders, and Shipping Policies: llll llADDRESS (Line -) IMember discounts apply on the FIRST COPY OF A MULTIPLE- I I I I I I I I I I I l Il Il I I II *II ICOPY ORDER (for the same title) ONLY! Additional copies are l l l l l llllll lsold at list price. ADDRESS (Line 2)Priority shipping in U.S. or Canada, ADD S5.00 PER BOOK'FORDERED. Airmail service to Mexico and Foreign countries, CITY/STATE/ZIP-CODE 11ADD $15.00 PER BOOK ORDERED.CIYSAEZPODRequestsforrefunds/returnshonoredfor60daysfromdateof 1 I Ishipment (90 days for ov6rseas). COUNTRY IALL PRICES ARE SUBJECT TO CHANGE WITHOUT NOTICE. [r [ (required for discount) JALL BOOKS SUBJECT TO AVAILABILITY ON DATE OF IPAYMENT. IEEE/COMPUTER SOCIETY MEMBER NUMBER PHONE/TELEX NUMBERALL FOREIGN/OVERSEAS ORDERS MUST BE PREPAID. Hl II l l l Il l lMinimum credit card charges (excluding postage and PURCHASE ORDER NUMBER AUTHORIZED SIGNATUREhandling), $15.00. OREM_N

TYa ORDER TITLE/DESCRIPTION M/NM AMOUNTService charge for checks returned or expired credit cards, PRICE$10.00.PAYMENTS MUST BE MADE IN U.S. FUNDS ONLY, DRAWNON A U.S. BANK. UNESCO coupons, International moneyorders, travelers checks are accepted. PLEASE DO NOT SENDCASH. l

ORDER HANDLING CHARGES (based on the $ value of your If your selection is no lonaer~~. _._,_- _Zvalue ofM yourL @._~~

Phone Inquires: (714) 821-8380; minimum $50 order.To order the IEEE-CS 1985 Publications Catalog, circle entry 1CReader Service Card at the back of the magazine.

in print, will you accept CALIFORNIA RESIDENTS ADD6% SALES TAX $

microfiche at the same price? HANDLING CHAGE (BASEDON SUB-TOTAL) $

O Yes O No OPTIC NALPRIORITYSHIPPINGCHARGE $METHOD OF PAYMENT (CHECK ONE) TOTAL $

El CHECK ENCL. El VISA rO MASTF:RCARD El AMERICAN EXPRESS

CHARGE CARD NUMBER EXPIRATION SIGNATUREDATED1 on the

C-JUN-8E

order-not including sales tax and postage)For orders totaling: Add:$ 1.00 to $ 10.00 $ 3.00 handling charge$ 10.01 to $ 25.00 $ 4.00 handling charge$ 25.01 to $ 50.00 $ 5.00 handling charge$ 50.01 to $100.00 $ 7.00 handling charge$100.01 to $200.00 $10.00 handling charge

over $200.00 $15.00 handling charge

IIIIIIIIIIIIII1

5 11