`
`Vol. 6. No. a _
`AUGUST51981
`$250 in USA/$2.95 In Canada
`
`A McGraw-HH! Publication
`
`BUY
`
`the small ysta, ,
`
`
`
`
`
`
`CHASE EX. 1006 5p. 1/1 5
`
`CHASE EX. 1006 - p. 1/15
`
`
`
`In The Queue
`
`Volume 6, Number 8
`
`August 1981
`
`Features
`1 4 Introducing the Smalltalk-BO System by
`Adele Goldberg I A readers' guide to the Smalltalk articles in
`this issue.
`
`36 The Smalltalk-BO System by the Xerox Learning
`
`Research Group / How message-sending objects are used in the
`Smalltalk-BO system.
`
`SO Build a ZB-Based Control Computer with
`BASIC, Part 2 by Steve Ciarcia I Steve continues his
`description of the ZB-BASIC Microcomputer and suggests two ap(cid:173)
`plications.
`
`74 Object-Oriented Software Systems by
`David Robson I Object-oriented software systems provide the
`underlying design of Smalltalk.
`90 The Smalltalk Environment by Larry
`
`Tesler I Programming and debugging in Smalltalk are always in(cid:173)
`teractive activities.
`
`147 User-Oriented Descriptions of Smalltalk
`Systems by Trygve M H Reenskaug I A Smalltalk applica(cid:173)
`tion program will limit the user's access to the language.
`1 68 The Smalltalk Graphics Kernel by Daniel H
`
`H Ingalls I The Graphics Kernel provides the interface through
`which all text and graphics are displayed.
`
`200 The Japanese Computer Invasion by Stan
`
`Miastkowski I Like it or nor. the Japanese small computers are
`on their way.
`
`230 Building Data Structures In the
`
`Smalltalk-BO System by James C Althoff Jr I
`Many kinds of data structures can be added easily to the
`Smalltalk-BO system.
`
`286 Design Principles Behind Smalltalk by
`Daniel H H Ingalls I The design principles of a language
`strongly affect its power and usability.
`300 The Smalltalk-BO Virtual Machine by Glenn
`
`Krasner I The use of a Smalltalk-BO Virtual Machine allows the
`system to be transported easily among different I 6-bit
`microprocessors.
`
`3 2 2 Building Control Structures In the
`
`Smalltalk-BO System by L Peter Deutsch I
`Design of complicated control structures is easy in the
`Smalltalk-BO language.
`
`348 Is the Smalltalk-BO System for Chlldren7 by
`
`Adele Goldberg and Joan Ross I Although Smalltalk-BO is
`not meant to be used by children, application programs can be
`written that will allow them to be creative and, at the same
`time, learn about programming.
`
`369 ToolBox: A Smalltalk illustration System by
`
`William Bowman and Bob Flegal I The versatile
`Smalltalk-BO language can create an environment for graphics
`design that can be used by non technically oriented people.
`
`3 78 Virtual Memory for an Object-Oriented
`
`Language by Ted Kaehler I Virtual memory techniques must
`be used when the active memory space needed by a language
`is much larger than the amount of available memory.
`
`Reviews
`398 Microsoft Editor/Assembler Plus by Keith Carlson
`401 BOSS: A Debugging Utility for the TRS-BO
`Model I by Scott Mitchell
`
`Nucleus
`6 Editorial: Smalltalk: A Language for the 19BOs
`30 Letters
`197 BYTE's Bits
`224 BYTELINES
`392 BYTE's Bugs
`388 Ask BYTE
`391 Books Received
`391 Software Received
`392 Clubs and Newsletters
`394 Event Queue
`402, 413 System Notes: Indirect I/O Addressing on the BOBO;
`Aim-65 16-bit Hexadecimal to Decimal Conversion
`404, 408, 414, 41 7, 418 Programming Quickies: A Disk
`Catalog for the Eighties; Alpha-Beta Tree Search Con(cid:173)
`verted to Assembler; Fast Line-Drawing Techniques;
`Word Ujbnmarle; Binary-to-BCD Converter Program for
`the BOBO
`421 What's New?
`478 Unclassified Ads
`479 Reader Service
`480 BOMB, BOMB Results
`
`5FZ - - . - ......
`
`Page 14
`
`Page 50
`
`Page 90
`
`Page 168
`
`June 1981 © BYTE Publications Inc
`
`3
`
`CHASE EX. 1006 - p. 2/15
`
`
`
`Design Principles
`Behind Smalltalk
`
`The purpose of the Small talk pro(cid:173)
`ject is to provide computer support
`for the creative spirit in everyone.
`Our work flows from a vision that in(cid:173)
`cludes a creative individual and the
`best computing hardware available.
`We have chosen to concentrate on
`two principal areas of research : a
`language of description (program(cid:173)
`ming language) that serves as an in(cid:173)
`terface between the models in the
`human mind and those in computing
`hardware, and a language of interac(cid:173)
`tion (user interface) that matches the
`human communication system to that
`of
`the computer. Our work has
`followed a two-
`to four-year cycle
`that can be seen to parallel the scien(cid:173)
`tific method :
`
`Daniel H H Ingalls
`Learning Research Group
`Xerox Palo Alto Research Center
`3333 Coyote Hill Rd
`Palo Alto CA 94304
`
`• Build an application program
`within the current system (make an
`observation)
`• Based on that experience, redesign
`the language (formulate a theory)
`• Build a new system based on the
`new design (make a prediction that
`can be tested)
`
`The Smalltalk-80 system marks our
`fifth time through this cycle. In this
`article, I present some of the general
`principles we have observed in the
`
`ATTENTION GO'/ERNMENT D P
`USERS AND PURCHASERS
`We represent many fine micro products and manufacturers
`on the U.S. Government's GSA Schedule, including
`Apple, Cromem,co, Micropolis
`and Seequa Computers
`time
`Purchasing from
`the Schedule will save you the
`consumed by the bid process. Products shipped throughout
`the United States and world-wide. Visit or write any of our
`stores for more information or to receive our catalogue of
`products represented.
`
`•••••••
`able store
`257 West Street, Annapolis, MID 21401 - (30 I) 268-6505
`13A Allegheny Avenue, Towson, MD 21204 - (301) 296-0520
`9330 Georgia Avenue, Silver Sprilllg, MD 20910 - (301) 588-3748
`6671 Backlick Road , Springfield , VA 22150 - (703) 644-5500
`Plaza 38. 2442 Route 38, Cherry Hill, NJ 08002 - (609) 779-0023
`Callers outside metropolitan areas served by our stores
`Please call (301) 268-5801
`Career Opportunities Available '* An Equal Opportunity Employer
`
`286
`
`August 1981 © BYTE Publications Inc
`
`Circ le 80 on inquiry card .
`
`course of our work. While the presen(cid:173)
`tation frequently
`touches on
`Small talk "motherhood," the prin(cid:173)
`ciples themselves are more general
`and should prove useful i.n evaluating
`other systems and in guiding future
`work.
`Just to get warmed up, I'll start
`with a principle that is more social
`than technical and that is
`largely
`responsible for the particular bias of
`the Small talk project :
`
`Personal Mastery: If a system is to
`serve the creative spirit, it must be en(cid:173)
`tirely comprehensible to a single in(cid:173)
`dividual.
`
`The point here is that the human
`potential manifests
`itself
`in
`in(cid:173)
`dividuals. To realize this potential,
`we must provide a medium that can
`be mastered by a single individual.
`Any barrier that exists between the
`user and some part of the system will
`eventually be a barrier to creative ex(cid:173)
`pression. Any part of the system that
`cannot be changed or that is not suffi(cid:173)
`ciently general is a likely source of
`impediment. If one part of the system
`works differently from all the rest,
`that part will require additional effort
`to control. Such an added burden
`may detract from the final result and
`will inhibit future endeavors in that
`area . We can thus infer a general
`principle of design:
`
`Good Design: A system should be
`built with a minimum set of un(cid:173)
`changeable parts; those parts should
`be as general as possible; and all parts
`of the system should be held in a
`uniform framework.
`
`Language
`In designing a language for use
`with computers, we do not have to
`look
`far
`to
`find helpful hints .
`
`CHASE EX. 1006 - p. 3/15
`
`
`
`$629.00
`
`FEATURE PRODUCT
`ADDS VIEWPOINT TERMINAL
`• Detach able keyboard weighs onlv 2 Ibs.
`• 110-1 9.200 Baud - RS-232C
`• Cursor control keys - audible tone
`• 24 x SO characters - 12" screen
`• 14 key numeric keypad
`• 7 switch selectable character sets
`• Addressable cursor
`• 2 position screen tilt
`• Normal or reverse video
`• Half or zero intensitv
`• 3 function keys (six functions)
`• Lightweight (22 Ibs. with keyboard)
`• Switch select block or underline cursor
`• Switch select blinking or stead), cursor
`
`16K MEMORY
`EXPANSION KIT $29.00
`
`For Apple, TRS-BO keyboard. Exidy. and all
`other systems using 4116 dynami c rams or
`equi va lent. All IC's are prime Mitsubishi M K
`4116-3.
`200 NSEC access , 375 NSEC cycle
`Burned-in a nd full v tested
`I full year pa rts repl acement gua ra ntee
`
`S-100 PHODl'CTS
`
`QUALITY RAM FROM SYSTEMS GROUP
`
`Z-SO 4MHZ operation with no wait states
`IEEE compatible timing - 200 NS 4116's
`Factorv assembled . tested & burned in
`DMB6400 ' 64K (Bank Select, shown) .. .... $749 .00
`.. .. ............. 545 .00
`DM640064K
`OM4BOO 4B K .. ........ .. ..
`.. ...... ....... .. 520.00
`OM 3200 32K .
`.. 495 .00
`
`wabasH
`
`8" or 5 V,' flexible diskettes certified 100 %
`error free with m anufacturers 5 yea r limited
`warranty on all S" media. Soft sectored in tilt(cid:173)
`back' boxes of 10. 5 '1. " available in 10 Sector .
`(A dd $3. 00 for plastic library cases)
`....... $29. 95
`S" sin gle sided , .sin gle density.
`S" single sided . doubl e density ...
`37 .95
`48 .95
`8" doubl e sided. doubl e densit\,
`27.95
`5 '1." single sided , single densit)'
`5 ';' '' single sided. doubl e densit)
`29 .95
`
`8" DISK DRIVES
`
`........ . $390.00
`Shugart SOIR
`.. . 595 .00
`NEC FOl160 (double sided).
`Memorex M~,( - 101 S" Winchester style , ha rd
`disk drive, 10 me,;abytes .. .. .. .... .... .... $2,000.00
`
`TERMS: Minimum order $15 .00. Minimum
`shipping and handling $3. 00. Calif. residellts
`add 6 % sales tax. Cash . checks. Mastercard.
`Visa and purchase orders from qualified firm s
`and institutious are accepted . Product availabili(cid:173)
`ty alld pricin g are subject to change w ithout
`notice.
`INTERNATIONAL ORDERS: Add 15 % to pur(cid:173)
`chase price f o r all orders. Millimum shipping
`charge is $20.00. Orders with insufficient funds
`w ill be delayed. Excess fUllds will be retu rll ed
`w ith YOllr o rder. All prices are U.S. ollly.
`
`CONFIGURE A COMPLETE S-100 SYSTEM
`WITH 2nd GENER~TION' PRODUCTS
`FROM SYSTEMS GROUP.
`
`C PC 2810 (shown) Z-BOA processor board
`(4MHZ) with 4 serial & 2 pa rallel
`ports.......
`.. $369. 00
`C PC 2S13 - sam e as C PC2SI0 but 2 serial
`.............. . ... $345 .00
`po rts ani v
`fl oppy disk controll er
`- S"
`FDC 2S01lS
`board. up to 4 sin gle/double sided drives,
`.. .. .. $349 .00
`Single or doubl e densit y.
`INO-2S04 - 4 channel serial I/O..... 329 .00
`C RA- IOO - C romi,' adaptor board.. 45 .00
`
`CALL US FOR OUR MOST
`CURRENT PRICES!
`
`' 2nd CC l1cr<lti o n is a tradema rk of Measurement
`Svstcms and Controls. C romix is a trademark of
`Cromcrnco. Inc. Tilt- Back is a trademark of
`\Vabash. Inc.
`
`6502 PRODUCTS
`
`BETA 32K BYTE EXPANDABLE RAM FOR
`6502 AND 6800 SYSTEMS
`AIM 65 KIM SYM PET S44-BUS
`Plug compatible w ith the AIM-65/SYM expan(cid:173)
`sion connector by using a right angle connec(cid:173)
`tor (supplied).
`Memory board edge connector plugs into the
`6S00 544 bus.
`Connects to PET using an adaptor cable.
`Uses + 5V onl y, supplied from the host com(cid:173)
`puter.
`Full documentation. Assembled and tested
`boards are guaranteed for one full year.
`Purchase price is full y refundable if board is
`returned undamaged within 14 days.
`Assembled w ith 32K MM
`............ $349.00
`& Tested with 16K MM .. .......
`329.00
`Bare board, manual & 6 hard-to-get parts. 99.00
`PET interface kit. Connects the 32K RAM board
`to a 4K or 8K PET.. .... .. ...
`.. .. .. ... $ 69.00
`
`ROCKWELL AIM 65
`
`AIM 65 with IK ra m .
`AIM 65 w ith 4K ra m
`AIM power suppl y .. .
`Professional AIM enclosure
`Budget AI M enclosure.
`KIM ' enciosure...
`.. .. .. .. .. .. ..
`SYM enciosure ...
`
`...... $425 .00
`4S5 .00
`125 .00
`169.00
`50.00
`40.00
`30.00
`
`CHASE EX. 1006 - p. 4/15
`
`
`
`Purpose of Language: To provide a
`framework for communication.
`
`FREE CATALOG * * *
`
`The MAX BOX: Manufactured by John D. Owens A ssociates. 8" dual drive cabinet com(cid:173)
`plete with power supply & fan. Will hold Qumes, Shugarts or Siemens. Excellent design
`and engineering . . . . . . . . . . . . . . . . . . .
`. . . . . . . . . . .
`, .. . , . , .. $ 325.
`With 2 Shugart 801R Drives . . $1,275.
`With 2 QUME Double sided drives .. $1,680.
`
`CALIFORNIA COMPUTER SYSTEMS HIGH IN QUALITY, LOW IN PRICE
`Z80 CPU, 4 Mhz, with one serial port; 12 slot S-100 mainframe, disk controller, 64K
`Dynamic Ram , CP / M2 .2® SYSTEM 2210A ....... .. , , ..... , , .. , , .. , , ,. , , , ,$1,750.
`We configure complete systems with drives and additionalllO.
`
`son is presented as having a body and
`Everything we know about how peo(cid:173)
`a mind. The body is
`the site of
`ple think and communicate is ap(cid:173)
`primary experience, and, in the con(cid:173)
`plicable. The mechanisms of human
`in(cid:173)
`two
`interaction between
`The
`text of
`this discussion,
`it
`is
`the
`thought and communication have
`dividuals is represented in figure 1 as
`physical channel through which the
`been engineered for millions of years,
`two arcs. The solid arc represents ex(cid:173)
`universe is perceived and through
`and we should respect them as being
`the actual
`plicit communication:
`which intentions are carried out. Ex(cid:173)
`of sound design. Moreover, since we
`words and movements uttered and
`perience is recorded and processed in
`must work with this design for the
`perceived . The dashed arc represents
`the mind . Creative thought (without
`next million years, it will save time if
`implicit communication: the shared
`going into its mechanism) can be
`we make our computer models com(cid:173)
`culture and experience that form the
`viewed as
`the spontaneous ap(cid:173)
`patible with the mind, rather than the
`context of the explicit communica(cid:173)
`pearance of information in the mind .
`other way around .
`tion. In human interaction, much of
`Language is the key to that informa(cid:173)
`Figure 1 illustrates the principal
`the actual communication is achieved
`tion :
`components in our discussion. A per-
`- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . through reference to the shared con(cid:173)
`text, and human language is built
`around such allusion. This is the case
`with computers as well.
`It is no coincidence that a computer
`can be viewed as one of the par(cid:173)
`ticipants in figure 1 . In this case, the
`"body" provides for visual display of
`information and for sensing input
`from a human user. The "mind" of a
`computer
`includes
`the
`internal
`memory and processing elements and
`their contents. Figure 1 shows that
`several different issues are involved in
`the design of a computer language :
`
`IMS 5000 and 8000 Systems and IMS Memory
`Outstanding long term reliability and performance. These systems feature a Z80A CPU,
`S-l00 bus; double density drives (either single or double sided), DMA disk controller, 64K
`RAM, 2 serial & 1 parallel port. Prices include the very finest implementation of CP I M®
`available in the entire industry. Hard disk and multi user software options.
`
`Multi-User, Networking Operating System: TURBODOS
`Turbodos: Spectacular new CP I M® compatible operating system. Z80 code, interrupt
`driven . Up to 6X faster than CP I M~ up to 35 % increased disc capacity. IMS compatible.
`Single user ,
`. $250.
`Multi-user (up to 16 users) , .. , , .. , , .. , ,$750.
`
`PER SCI- THE KING AND QUEEN OF DRIVES!
`Model 299B: Dual headed drives, total 3.2 MB unformatted .................... $2,300.
`Model 277: Dual 8 inch drives, voice coil positioned, IBM compatible, 1600 K BYTES per
`drive, unformatted, , , , , , , , . , ... ... , .... , , . , . , . .. ... , ... ' , , , , . $1,245 .
`.... , , , .. , ... , .. , ... , , .... $ 300.
`Slim line cabinet and powerfor either 277 or 299,
`
`GRAPHICS EQUIPMENT
`MICROANGELO .... , .. .. " . . , ... " .......... ,", .. " .. , ... , ..... ,., .$2,295 .
`High resolution graphics system. 15" 22MHZ, green phosphor screen, 72 key keyboard;
`includes complete cabling and software. From SCION . Screen ware PAK II , , ,., , .$ 350.
`5-100
`card .. . .. ,
`. . . . . . . . . . .
`. ... . $ 985 .
`
`Scope: The design of a language for
`using computers must deal with inter(cid:173)
`nal models , external media , and the
`interaction between these in both the
`human and the computer.
`
`This fact is responsible for the dif(cid:173)
`ficulty of explaining Small talk to peo(cid:173)
`ple who view computer languages in
`a more restricted sense. Small talk is
`
`Figure 1: The scope of language design.
`Communication between two people (or
`between one person and a computer) in(cid:173)
`cludes communication on two levels. Ex(cid:173)
`plicit communication includes the infor(cid:173)
`mation that is
`transmitted in a given
`message. Implicit communication in cludes
`the relevant assumptions common to th e
`two beings.
`
`288
`
`August 1981 © BYTE Publications Inc
`
`CHASE EX. 1006 - p. 5/15
`
`
`
`not simply a better way of organizing
`procedures or a different technique
`for storage management. It is not just
`an extensible hierarchy of data types,
`or a graphical user interface. It is all
`of these things and anything else that
`is needed to support the interactions
`shown in figure 1.
`
`When all references to an object have
`disappeared from the system, the ob(cid:173)
`ject itself vanishes, and its storage is
`reclaimed . Such behavior is essential
`to
`full
`support of
`the object
`metaphor:
`
`Storage Management: To be truly
`"object-oriented, " a computer system
`must provide automatic storage
`management.
`
`working well is to see it the programs
`look like they are doing what they are
`doing. If they are sprinkled with
`statements that relate to the manage(cid:173)
`ment of storage, then their internal
`model is not well matched to that of
`humans . Can you imagine having to
`prepare someone for each thing you
`tell them or having to inform them
`Communicating Objects
`when you are through with a given
`The mind observes a vast universe
`topic and that it can be forgotten?
`of experience, both immediate and
`Each object in our universe has a
`recorded. One can derive a sense of A way to find out if a language is
`life of its own. Similarly, the brain
`oneness with the universe simply by .---~---------------------_______ _
`letting this experience be, just as it is.
`to par(cid:173)
`if one wishes
`However,
`ticipate, literally to take a part, in the
`universe, one must draw distinctions.
`In so doing one identifies an object in
`the universe, and simultaneously all
`the
`rest becomes not-that-object.
`Distinction by itself is a start, but the
`process of distinguishing does not get
`any easier. Every time you want to
`talk about "that chair over there, "
`you have to repeat the entire process
`of distinguishing that chair. This is
`where the act of reference comes in:
`we can associate a unique identifier
`with an object, and, from that time
`on, only the mention of that identifier
`is necessary to refer to the original
`object.
`that a computer
`We have said
`system should provide models that
`are compatible with
`those in
`the
`mind . Therefore :
`
`Objects: A computer language should
`support the concept of "o bject" and
`provide a uniform means for referring
`to the objects in its universe.
`
`The Small talk storage manager pro(cid:173)
`vides an object-oriented model of
`memory
`for
`the entire
`system.
`Uniform reference is achieved simply
`by assoc,:iating a unique integer with
`every object
`in
`the system. This
`uniformity is important because it
`means that variables in the system
`can take on widely differing values
`and yet can be implemented as simple
`memory cells. Objects are created
`when expressions are evaluated, and
`they can then be passed around by
`uniform reference, so that no provi(cid:173)
`sion for their storage is necessary in
`the procedures that manipulate them .
`
`* * * GREETINGS TO OUR FRIENDS IN CHILE * * *
`
`SO SYSTEMS
`Z80 STARTER KIT: single board compu(cid:173)
`ter with RAM I ROM, I I 0, display, key-
`bd, kluge area . ............... ... $360
`VAl: double density floopy controller kit,
`with software ............ ... .. .. $390
`CPU Z80A, 4 Mhz, serial & parallel 110
`IK on-board RAM , Z80 CTC. ...... $345
`EXPANDORAM II including high quality
`4116s ..... ... .......... . . . .... . $540
`Complete SD line available including kits
`and FACTORY Assembled and tested
`boards &
`TELETYPE
`Model 4320 AAA or AAK
`... $2,595.
`Model 43ASR, 8leveI. 1"
`dBASE II Ashton-Tate ........ $615.
`Brings power of mainframe database
`software to a microcomputer. Runs under
`CP/ M® . Extremely easy to use. Manual
`and demo software . ......... ... .. $50.
`Back Guarantee
`MUSYS Single BD Computer
`Z80 processor, 64K Dyn RAM, Console
`serial port , S-100 parallel interface,
`Kn",c,.,n PROM . . ............ $1300.
`HAZELTINE 1500 .. ... . . . .... $ 925.
`1510 ........................ $1,030.
`1520 .. .. ... .............. ... $1,265.
`220 volt models, add $100
`EXEC 80 .............. ... . . . . $1,115.
`90
`on-site warrantee.
`IBM 3101 CRT Model 10 .. ... ... $1,250.
`Model 20 ... .... . $1,450.
`Selectric-like, detached keyboard. 9x16
`dot matrix. Maintenance contract from
`IBM
`$70
`INTERSYSTEMS
`
`MARINCHIP SYSTEMS M9900
`Uses TI9900 16 bit CPU. Full S-loo, IEEE .
`Extensive software. Boards from $550,
`systems $4,995 .
`
`EPSON MXSO ...... .. . .......... 550.
`RS 232 Interface .. ... ... .. .... .. $ 50.
`CORVUS Hard Drives
`Model 11, Hard Disk System .. .. $4,820.
`Mirror
`System .. .. . . . . . $ 715.
`DMA-DOS NORTH STAR 8" Floppy
`Subsystem
`A new operating sytem, completely
`CP I M® compatible that allows use of
`both 8" (Shugart single sided, double
`density via Tarbell controller) and 5'/ ,'
`drives. Allows transfer of file from 8" to
`5% " and vice versa. Complete hardware,
`with software
`TARBELL
`Double density controller . .. . . ... $435.
`Z80CPU ................. .... .. 395.
`TEl MAINFRAMES, S-100
`. We are proud to announce that we are
`now a TEl stocking distributor. For the
`best in mainframes . .. .TEI!I
`TELEVIDEO CRTs
`950 .. $1,050.
`912 . . $780.
`920 .. $850.
`COMMUNICATIONS SOFTWARE
`from Hawkeye GraHx
`Enables communcations from a micro to a
`terminal or to another micro, mini or
`maxi computer.
`Source Code $250.
`Object Code $75.
`3M SCOTCH® Diskettes
`5 box minimum, price per box
`Model 740, 8" single sided,
`single density . . .. . .. ... $27.00
`Model 741, 8" single sided,
`double density .......... 35.50
`Model 743, 8" double sided,
`double density .......... 43.00
`Model 744-0, 5V. soft sectored, single sided
`744-10, 5V,', hard sectored,
`single sided ......... . ..... 27.00
`
`Prices subJect to change without notIce
`
`JOHN D. OWENS
`Associates, Inc.
`SEE OUR AD ON FACING PAGE
`
`August 1981 © BYTE Publications Inc
`
`289
`
`CHASE EX. 1006 - p. 6/15
`
`
`
`provides for independent processing
`along with the storage of each mental
`object. This suggests a third principle
`for object-oriented design:
`
`Messages: Computing should be
`viewed as an intrinsic capability of
`objects that can be uniformly invoked
`by sending messages.
`
`Just as programs get messy if object
`storage is dealt with explicitly, con(cid:173)
`the system becomes com(cid:173)
`trol in
`plicated if processing is performed ex(cid:173)
`trinsically. Let us consider the process
`of adding 5 to a number. In most
`computer systems,
`the compiler
`figures out what kind of number it is
`and generates code to add 5 to it. This
`is not good enough for an object(cid:173)
`oriented system because the exact
`kind of number cannot be determined
`by the compiler (more on this later).
`A possible solution is to call a general
`addition routine that examines the
`type of the arguments to determine
`the appropriate action. This is not a
`good approach because it means that
`
`this critical routine must be edited by
`novices who just want to experiment
`with their own class of numbers. It is
`also a poor design because intimate
`knowledge about the internals of ob(cid:173)
`jects
`is sprinkled
`throughout
`the
`system.
`Small talk provides a much cleaner
`solution: it sends the name of the
`desired operation, along with any
`arguments, as a message
`to
`the
`number, with the understanding that
`the receiver knows best how to carry
`out the desired operation . Instead of a
`bit-grinding processor raping and
`plundering data structures, we have a
`universe of well-behaved objects that
`courteously ask each other to c~rry
`out
`their various desires. The
`transmission of messages is the only
`process that is carried on outside of
`objects and this is as it should be,
`since messages travel between ob(cid:173)
`jects. The principle of good design
`can be restated for languages :
`
`Uniform Metaphor: A
`language
`should be designed around a power-
`
`ful metaphor that can be uniformly
`applied in all areas.
`
`Examples of success in this area in(cid:173)
`clude LISP, which is built on the
`model of
`linked structures; APL,
`which is built on the model of arrays;
`and Small talk, which is built on the
`model of communicating objects . In
`each case,
`large applications are
`viewed in the same way as the fun(cid:173)
`damental units
`from which
`the
`system is built. In Small talk especial(cid:173)
`ly, the interaction between the most
`primitive objects is viewed in the
`same way as the highest-level interac(cid:173)
`tion between the computer and its
`user. Every object in Small talk, even
`a lowly integer, has a set of messages,
`a protocol, that defines the explicit
`communication to which that object
`can respond. Internally, objects may
`have local storage and access to other
`shared information which comprise
`the implicit context of all communica(cid:173)
`tion. For instance, the message + 5
`(add five) carries an implicit assump(cid:173)
`tion that the augend is the present
`
`DER DISCOUNTS
`)Il
`
`. O c!oIAAl '
`
`.
`
`~
`
`ATARI'
`
`gt§iir':if.:E~~
`
`.
`
`..
`
`.
`
`.:
`
`I
`
`_
`
`• - apple! computczr
`Sales and Service
`.
`APPLE II PLUS 48K
`$1,099
`
`WE DISCOUNT PRICES - NOT !;ERVICE
`
`HARDWARE
`DISK II DRIVE & INTERFACE ............. 499
`DISK II SECOND DRiVE ..... ............ 445
`25
`BASF 5V," DISKETIES (10) .
`LANGUAGE SYSTEM WIPASCAL ......... 395
`INTEGER BASIC FIRMWARE CARD ........ 149
`APPLESOFT II FIRMWARE CARD .
`. .. 149
`CENTRONICS PRINTER INTERFACE CARD . 179
`HIGH·SPEED SERIAL INTERFACE CARD ... 145
`GRAPHICS TABLET .
`. ........ 649
`APPLE IEEE·488 INTERFACE CARD ....... 369
`30
`M&R SUp·R·MOD RF MODULATOR . . .
`MICROSOFT Z·80 SOFTCARD SYSTEM ..... 290
`MICROSOFT 16K RAM CARD ............. 169
`VIDEX 80 COLUMN BOARD .
`. ....... 295
`HAYES MICROMODEM II ...........•... 299
`AMDEX 13" COLOR MONITOR .
`.429
`NEC 12" GREEN MONITOR .
`. .239
`SILENTYPE PRINTER WIINTERFACE ...... 350
`EPSON MX·BO FT ' .
`. .......... 649
`QUME SPRINT 5/45 PRINTER ........... 2499
`
`SOFTWARE
`65
`APPLE DOS TOOLKIT .
`. .... 60
`APPLE PLOT . ......... . .
`. .... 99
`TAX PLANNER ...
`. .. 159
`APPLE FORTRAN . . . . . . . . . . . . • .
`. .. 125
`APPLE PILOT . . . . .
`APPLE MUSIC THEORY . . . . . . . . . . . . . . . . . 39
`APPLEWRITER . . . . . . . . . . . . . . . . . . . . . . . .. 65
`DOW JONES PORTFOLIO EVALUATOR .
`45
`DOW JONES NEWS & QUOTES REPORTER . 85
`THE CONTROLLER . . .
`. . 515
`VISICALC (16 SECTOR) .................. 165
`VISIPLOT.
`. . . . . . . . . •
`. 149
`VISITRENDIVISIPLOT ....... . ........ ... . 215
`DESKTOP PLAN II ............. .. .. ... . .. 159
`BPI BUSINESS SOFTWARE (EACH) ........ 335
`SUPER TEXT II ..................... . .. .. 125
`PROGRAMMA APPLE PIE .
`. ........... 110
`EASYWRITER (80 COLUMNS)
`.... 219
`D.B. MASTER ........................... 180
`MICROSOFT FORTRAN ............ . .... 165
`
`ATARI 8oo '32K *
`$759
`
`............ 350
`ATARI 400 (16K)
`.... 69
`410 PROGRAM RECORDER
`810 DISK DRIVE .. ............. • .•.... . . 499
`815 DUAL DISK DRiVE .......... .. ..
`. 1199
`16K RAM MEMORY MODULE .
`. .. . 89
`850 INTERFACE MODULE .
`. 175
`830 ACOUSTIC MODEM .................. 159
`825 PRINTER (C ENTRONIC 737)" .. . ...... 650
`JOYSTICK PAIR . .
`18
`LIGHT PEN . . . . . . . . . . . . . . . . . . .
`65
`ATARI VISICALC ... .
`. 169
`BASIC LANGUAGE .......... . ..
`45
`ASSEMBLER EDITOR
`45
`MUSIC COMPOSER . . . . . . . . . • .
`.. 45
`STAR RAIDER .
`. . .........
`39
`COMPUTER CHESS .
`. . 30
`BASKETBALL .
`30
`TELELINK
`20
`
`"SPECIAL: Effective until 8131181
`
`compu~r ag~.lnc.
`Authorized Apple DE,laler & Service Center
`
`4688 CONVOY STREET, SAt-! DIEGO, CA 92111
`(714) 565-4962
`
`TO ORDER: Please send cashier's check, money order or personal check
`(allow 10 business days to clear). VISA and Master Card credit card service
`add 3%. American Express credit card service add 5%. Shipping , handling
`and insurance in U.S. add 3% (minimum $4). California residents add 6 %
`sales tax. Foreign orders add 10% for shipping. Equipment is subject to
`price change and availability. All equipment carries factory warranty. Store
`prices ~iffer from mail order prices . TELEX: 697120 DATAMAX·S DG
`CALL OR WRITE FOR A COMPLETE PRICE LIST
`
`290
`
`'August 1981 © BYTE Publications Inc
`
`Circle 65 on inquiry card.
`
`CHASE EX. 1006 - p. 7/15
`
`
`
`of two man(cid:173)
`world that
`both 8" and 5.25" models,
`has. tape and disk experience, and
`~"' Ooppy d;,k OOv".
`
`Special self-c1eaningjacket and
`liner help eliminate data errors
`and media wear and tear.
`
`Center hole diameter punched to
`more accurate standards than
`industry specifications, for top
`performance.
`
`Bi-axially oriented polyester
`substrate-for uniform and reli(cid:173)
`able performance year after year.
`
`Double lubrication -lubricants
`both in the formula and on the
`disk surface, to minimize media
`wear due to head friction.
`
`Packaging to suit your
`requirements - standard flip-top
`box, Kassette 10® storage case,
`or bulk pack.
`
`100% certification - every single
`disk is tested at thresholds 2-3
`times higher than system require(cid:173)
`ments, to be 100% error-free.
`
`For the name of your nearest
`supplier, write BASF Systems,
`Crosby Drive, Bedford,
`MA 01730, or call 617-271-4030.
`
`~BASF
`
`Floppy Disks Mag Cards Cassettes Computer Tapes Disk Packs Computer Peripherals
`
`Circle 33 on inquiry card.
`
`CHASE EX. 1006 - p. 8/15
`
`
`
`value of the number receiving the
`message .
`
`Organization
`A uniform metaphor provides a
`framework in which complex systems
`can be built. Several related organiza(cid:173)
`tional principles contribute to the suc(cid:173)
`cessful management of complexity.
`To begin with :
`
`Figure 2: System complexity. As
`the
`number of components in a system in(cid:173)
`creases, th e chances for unwanted interac(cid:173)
`tioll increase rapidly . Because of this, a
`cOlllputer language should be design ed to
`minimize
`the possibilities of such
`in(cid:173)
`terdependence.
`
`Modularity: No component in a com(cid:173)
`plex system should depend on the in(cid:173)
`ternal details of any other compo(cid:173)
`nent.
`
`This principle is depicted in figure
`2. If there are N components in a
`system,
`then
`there are
`roughly
`N-squared potential dependencies
`between them . If computer systems
`are ever to be of assistance in complex
`h~man tasks, they must be designed
`to minimize such interdependence.
`The message-sending metaphor pro(cid:173)
`vides modularity by decoupling the
`intent of a message (embodied in its
`name) from the method used by the
`to carry out the intent.
`recipient
`Structural information
`is similarly
`protected because all access to the in(cid:173)
`ternal state of an object is through
`this same message interface.
`The complexity of a system can
`often be reduced by grouping similar
`components. Such grouping
`is
`achieved through data typing in con(cid:173)
`languages,
`ventional programming
`and through classes in Small talk. A
`
`class describes other objects-their
`internal state, the message protocol
`they
`recognize, and
`the
`internal
`methods for responding
`to
`those
`messages. The objects so described
`are called instances of that class. Even
`classes
`themselves
`fit
`into
`this
`framework; they are just instances of
`class Class, which describes the ap(cid:173)
`propriate protocol and implementa(cid:173)
`tion for object description:
`
`Classification: A language must pro(cid:173)
`vide a means for classifying similar
`objects, and for adding new classes of
`objects on equal footing with the
`kernel classes of the system .
`
`Classification is the objectification of
`nessness. In other words, when a
`human sees a chair, the experience is
`taken both literally as "that very
`thing" and abstractly as "that chair(cid:173)
`like thing." Such abstraction results
`from the marvelous ability of the
`mind to merge "similar" experi