Robert Frankston is vice-chairman andexecutive vice-president of software program Arts, Inc., developers of theVisiCalc digital spreadsheet.When Dan Bricklin andI composed the original VisiCalc program in 1979, our goal to be to providea high-performance device that would permit financial planners the samekind the flexibility enjoyed by human being using indigenous processors. The twokey ingredients that made this possible were Dan Bricklin"s experiencewith word handling using full-screen editing, coupled with hisbackground in finance, and also the ease of access of low-priced computers. We had actually to make countless hard decision in the process ofturning our principle into a usable program. Our biggest challenge wascreating a package the performed every the vital sophisticatedoperations so the the user didn"t have to work hard to usage it. Someideas, such as graphics, didn"t fit right into the Apple computers of thattime. On the other hand, us did employ windowing to allow effective useof the display for viewing an ext than one component of the spreadsheet. Dandesigned much of what VisiCalc should do, and also I concentrated on just how tomake the program perform it. When there are many complicated aspects ofimplementing the VisiCalc program, the basic idea is fairly simple. Aspreadsheet routine is a computerized version of the traditionalaccountant"s ledger sheet, with added "intelligence" in the kind ofmathematical or reasonable relationships between entries or "cells" sothat changes in one entry can cause other entries to changeaccordingly. Among the basic mechanisms in any kind of spreadsheetprogram is the capability to remember the calculation rule for every cellin the sheet. For example, when the user beginning a formula, the programis able to remember just how to recalculate the cell anytime a valuechanges. There space many, many style issues, both technicaland aesthetic, associated with creating a spreadsheet program. Ratherthan offer a superficial overview, I will concentrate on specificaspects in ~ the heart of this form of program-the an approach it provides ofkeeping track of calculations and also performing the calculations each timea value changes. We call this procedure recalculation due to the fact that we arecalculating again and also again and again ... Also, ns will define onlythe simplest methods for performing one operation. Before we deserve to perform calculations, us must have actually arepresentation because that the values and also the arithmetic expressions. Us canthink that a spreadsheet as variety of numbers. Because that example, us candeclare the paper to have actually 99 rows and 26 columns. Each intersection ofrows and columns specifies a cell. In addition to a value, each cell onthe paper may have actually a calculation dominance or expression (for budgeting orfinancial planning) offered to compute a new value whenever various other valueschange. Hence the cell B3 (second column, third row) could representcost and also be computed by multiplying the sales in B1 by 80 percent or .8and adding a fixed expense of $5. We present this as >B3: +B1*.8+5The ">" way go to the cell. The ":" is a separator. The "*" meansmultiply. More technically us say that B3 contains the expression B1times.8 plus 5. VisiCalc was designed so the we might describe just how toset up a spreadsheet in a manual. Hence you can type the instance asshown and it will certainly work. Of course, if you are actually using theprogram, you don"t think of B1 or B3; you just think of sales andcost. However if we are trying come understand just how the regime works inside,then us think of B1 or <2,1> (column 2, heat 1) and B3 or <2,3>. The challenge is to enable the user to kind inB1*.8+5 so the the value can be recomputed at any time necessary. Theleast complex approach is merely to save the character string thatthe user typed. VisiCalc chin was originally written in assemblylanguage, although the newer versions space written in a languagedeveloped at software application Arts for the function of writing and also translatingprograms for different personal computer models. Due to the fact that I don"t want tooverwhelm girlfriend with technical details, ns will define what the programwould perform without giving instances of its structure. When we must recompute the worths (because somevalue has changed on the spreadsheet), we can look at every column. Foreach column, we look at the worth at every row. When we are done, wehave processed all the values on the sheet. When we look at the cell,we should evaluate the expression. This method that if we compose 2 + 3*4,we first add 2 and also 3 to gain 5 and also then main point by 4 to obtain 20. This isthe method it is on most straightforward calculators. Computing the value consists of handling theexpression native left to right. One expression combines values (or"operands") such as .8 or B1 and operations such as "*"(multiplication) or "+" (addition). If the operand has a cell name(such together B1), we an initial convert it into a coordinate, <2,1> in thiscase, then use this come look up the value. We transform B1 by taking thefirst letter and counting its position in the alphabet. Hence B becomes2. The heat is already a number, so we just use the value. We then use the "current" worth as if the user hadtyped it instead of the B1. If the existing amount is 168, then us arereally analyzing "168*.8 + 5." The crucial thing here is to rememberthat we room really talking around B1. The next time us evaluate theexpression, the value of B1 can be different. When we have actually the firstvalue the the expression, we acquire the adhering to operation ("*") and thefollowing amount. We carry out the operation using the value so far (168)and the next one (.8). This 134.4 is currently our new value. Us then repeatthis process until us reach the finish of the expression. The following time we have actually "+" and "5," so us compute134.4 + 5 and get 139.4. This is now the worth in B3. If we expressprofit as B5:B1-B3we gain the an initial value (168). Us then gain the operation ("-" forsubtraction) and the next value (134.4). The result is 33.6. If the value in B1 transforms to 100, we recalculateand compute 85 for the worth in B3. Then, using this result, us computethat the worth in B5 is 15. This is essentially all that is connected inrecalculating the values on a spreadsheet. That course, as soon as we arecreating a product, there room many additional considerations. Forexample:• Most vital is error checking. We must take care of these casesgracefully. One an approach is to usage a unique value referred to as ERROR as anindication that we can"t compute the value. We additionally extend the numbersto incorporate a "not available" (NA) value.• The program have to run fast. Use of personality strings because that expressionsmay be also slow. Instead, we store the worths in a parsed form. Thismeans that we execute the analysis of the expression first and keep directreferences choose <2,3> instead of B3. The number deserve to be preserved convertedinto the machine"s representation.• The expressions space richer and much more complex. Over there are many additionalfunctions such as exponentiation, logs and statistical functions. Theseexpressions deserve to have parentheses too to collection them off.• Coordinate recommendations consist of more than a solitary letter. Therefore AA isequivalent come 27. Because that some functions (such together SUM) we permit a rangeinstead that a solitary coordinate. For this reason SUM(D1 ... D10) will add the tennumbers in the cells from D1 with D10.• The user must have the ability to control the order of evaluation. In thesimple example given, if cabinet A1 refers to cell B1, it won"t have actually thecorrect worth on the first recalculation. Over there are assorted approachesto solving this. A list deserve to be maintained so that all the expressionsdependent top top a chained value get recomputed instead of scanning rowsand columns.• In order come handle big sheets in a tiny amount the memory, us usemany space-saving techniques. For example, we don"t allocate space forexpressions until we require it. Many languages have actually an clues or NEWstatement that permits us to perform this. Us then release it v a totally free orDISPOSE statement.Input ProcessingWe have actually assumed the somehow the expressions have actually been typed in.Obviously, we need to give the user a means of keying in newexpressions and also updating old ones. Fairly than go into information here, Iwill concentrate on how a very interactive program prefer VisiCalcdiffers from utilizing the entry statement in basic or the check out statementin Pascal. The problem is the if we usage the intake statement, the useris speaking just to the operating system. What we want instead is toalways be obtainable to aid the user and give instant feedback. Thuswe fully divorce the input from the output. The user"s action arereflected only in their effect on the spreadsheet. In the an easy case shown, this looks to the user asif us are simply typing the personality on the screen. Actually, we aremaking changes to the spreadsheet and also showing the effects of thetyping. Hence what you view is what you get, and also any mistakes friend makeshow up immediately so they can be corrected immediately. This alsoallows united state to overview the user with proper prompts. The most essential characteristic of the intake isthat the program must be readily accessible in stimulate to give the userthe feeling of being in control. Thus, instead of questioning for input, theprogram is always accepting what we enter and also will perform an activity assoon as it has finish input. When the enter key or an arrowhead is typed,the expression (or label) is stored at the present position. The current position is critical concept. Itrepresents the emphasis for the user activity. Expression entry and also manycommands use to this current position. The present position is simplya coordinate such together B3. Whenever us modify the contents of a cell, wemust do the recalculation operation defined above. The arrowcommands serve to move the coordinate to the following position up, down,left or right.RedisplayAs through recalculation, us are always recomputing the display. In thesimplest view, we simply rewrite the screen every time miscellaneous changes.The challenge is to carry out this fast sufficient so it seems instantaneous or toredisplay just the changed section of the screen. As we noted in the input processing section, we donot "echo" the user"s inputting on the screen. Rather we readjust thesheet-either by changing the materials or by updating a keying buffer,such together one used for the existing expression. This result is presented tothe user once the adjust is made and also we redraw the display. Redisplayproceeds through displaying each section of the screen: status area.This reflects the current position, the contents of the position (i.e.,the expression if any) and also any extr information such as therecalculation mode. Prompt. Anyprompting information. Present input.This is offered if the user is in the center of keying an expression orlabel. Headers. Wedisplay column and row headers. Cells. Wefirst make sure that the current position is displayable. If it isoutside the present window, us must adjust the upper left place tomake certain that it is shown. We can then scan the sheet throughout each rowfrom the upper left position. Because that each cell, we recognize whether the isempty or includes a label or one expression. If over there is an expression,we display screen the existing value. In simple my description of the displayoperation, I have omitted many facets of VisiCalc such together theoptimizations possible, number formating, graphics and also other features.In addition, there are many methods for new forms that presentationnow the high-speed screens are just approximately the corner.
INTEGRATING software application
*
*
Why not? VisiPlot (left) and VisiTrend were the seed of combined software. There"s nothingrevolutionary around the idea for an individual computersoftware that uses the very same input for several different applicationswithout swapping disks. Top top the contrary, "integrated software" is adirect outgrowth of the means business users work-related at their desktopcomputers. When a spreadsheet has been put together, they might want togain view by looking in ~ a graph or comparing your informationwith the contents of a data base. Or probably they"ll want tocommunicate their results by creating a letter or sending electronicmail. Under the traditional software philosophy of oneprogram/one disk,implementing these attributes is tedious in ~ best-and have the right to be simplyimpossible if the applications programs usage incompatible files. Ilearned this the hard way when ns was making VisiPlot/ VisiTrend, agraphics package for producing charts native VisiCalc files. To draw up achart, you had actually to dump your spreadsheet right into a particularly formated file,change program disks and also then proceed; if you wanted to change a little bit ofdata, you had to return to your VisiCalc model and also start all over again. Having actually a rather eclectic lift (includingstints as a radiodisk jockey and also a psychiatric hospital worker), I had tendency to see thingsa small differently from my programming colleagues. One day as soon as I wasusing VisiCalc to task the royalties I"d it is in making if i everfinished mine program, I stated to a friend that what VisiCalc neededwas a "/G" command that would let us do graphics instantly. That couldn"tunderstand what ns was talk about. Then I argued putting VisiPloton the very same disk v VisiCalc, yet this to be met with strong objectionsthat VisiCalc would certainly be "polluted." Besides, most an individual computers atthe time didn"t have actually the essential internal memory to pull it off. I waited till I was in a position to produce aprogram native theground up. V the money I acquired from marketing VisiPlot outright, andwith assistance from designer man Sachs, I set out to create amultifunction software package. We hired someone to create a wordprocessing module, however he quit after a month and we worked out for aspreadsheet and also graphics. Us didn"t create "integrated software." others werealso functioning inthis direction, so the hatchet was currently in the air. As soon as we saw aprogram that had a data base, we decided to include this function toour software. Us still weren"t sure which device we would release iton, yet in respectable 1982, as soon as IBM introduced its pc with the powerfulIntel 8088 processor, we knew this was the computer system to walk with. ThatOctober us announced our program. Originally codenamed Trio, that becameknown to the human being as 1-2-3. Once we came up v a much more versatileintegrated software program package complete with word handling andtelecommunications capacity in 1984, we decided to call it Symphony. It has actually been argued that 1-2-3 did because that the IBM PCwhat VisiCalcdid for the apple II, providing a factor for placing these machines onmanagers" and executives" desks. Yet the influence just wasn"t the same,even despite our integrated software has actually proven extremely popular. Wewere building on an currently awareness of helpful computer functions,not producing an entirely brand-new market. Together for the future, we might see the proliferation of a"featuresrace" to cram more and an ext applications attributes onto a single disk.The reality remains the it doesn"t issue how numerous functions you have ona disk; you have the right to only do one point at a time. It would be quite toreceive digital mail at the very same time you"re developing a spreadsheet,but this kind of concurrent operation is not practical on today"smachines. For the can be fried in incorporated software, we"ll have to waitfor the next generation of an individual computers. MITCHELL KAPOR, chairman of Lotus development Corporation
*

THE DISCREETCHARMSOF VISICALC Onething details about the nascent period of an individual computers is the asingle helpful program did more to provide these machines respectabilitythan every other significant developments placed together. The program: VisiCalc,the very first good reason for service executives and also managers come putpersonal computer systems on your office desks. Now as ubiquitous as the three-piece suit, whetherin that originalform or as one of the dozens of dear flattering "visiclones" thatrival it in sales, VisiCalc is no great shakes to look at. The presentsyou v a disarmingly an easy screen, resembling a huge accountant"sledger consisted of of 254 rows and 63 columns (though it shows you only asmall block of this at any kind of one time). Each box, or "cell," deserve to containwords, numbers, or (and herein lies that is genius) formulas that operateon those numbers. In one column, because that example, the peak cell mightcontain the label"Expenses." In the cells listed below there could be a selection of numbers,with the bottom-most cabinet holding a formula instructing the computer todisplay the amount of all the number in the column. Then, no matter howmany numbers are put in the cell on that column, the electronicspreadsheet program provides you a brand-new running full of prices each timeyou put it through its paces. But VisiCalc have the right to do far more than simply add. Making use of asimple formula,you have the right to program a cell to include the numbers in the first three rows,subtract the sum froma number held in the next row, multiply the result by a constant,divide by a number from an additional column, and also write the number in a cellsomewhere throughout the sheet. Then, ~ doing all that, VisiCalc canexpress the result as a percentage or in clinical notation roundedout come the nearest essence or come twelve decimals. Start to gain thepicture? In a trice, VisiCalc makes in-depth calculationsthat would store aplatoon that accountants liven for hours. This is its tourism de force,allowing you to get information friend wouldn"t challenge ask because that otherwise. Itlets you crunch several alternative sets of numbers and also compare theresults. For the first time, the individual or little business deserve to dowhat the big-leaguers have constantly been able to perform with large, expensivecomputers: make several projections based upon different assumptions andplay castle all the end on paper. Think about the possibilities. Say you own a widgetfactory. Here, ona disk, is the capability to reckon the unit cost for every individualwidget, taking right into account materials, labor, inflation, taxes,shipping and overhead. Should any kind of one of this variables change, youjust reenter the one value, push a switch and-voila!-the projection"stotals are all adjusted to the new information. Or, if you"re aninvestor in Consolidated Widget stock and also your shares rise ten pointswhile the element drops a point, a couple of quick strokes can tell girlfriend if itmakes feeling to refinance the loan you gained at 13 percent. The speculative plugging in and recalculating offinancial figureshave charmingly been dubbed "what-if games." These are the kinds ofgames that masters that business management spend two years inB-school playing so they can then creatively boost on a company"sbalance sheet. Unfortunately, there is a propensity on the component of MBAsand U.S. Businessmen in basic to rely on such gamings instead that commonsense in running your affairs. That is worth noting the while electronicspreadsheets have beenamong the most successful personal computer programs in America, theirimportance overseas has generally been secondary to info filingand retrieval software; in Europe and Japan, the seems, facts are moreimportant than projections. VisiCalc"s success on this shores isindicative of America"s organization culture, including some of itsdisturbing flaws. Plan as specific planning tool, VisiCalc isoften used rather to "fudge" financial figures in the eternal searchfor glowing projections. With few of VisiCalc"s results as fictitious as thebudgetestimates approve by commonwealth agencies and yet simply as an important to long-termplanning (and waste), it"s no wonder that administrators of every stripeshave taken to using and also abusing the powers. Don"t think of it assoftware; think that it together realpolitik on a disk. DAVID NIMMONS

YOUR IRS REFUND inspect The InternalRevenue organization collects the one hundreds million federalincome taxes returns with ample human help at ten local centers acrossthe U.S.A. Also so, the growing complexity of the taxation code has made itimpossible for your refund to be processed easily without theintervention of computers. ~ the returns have actually been sorted, and checks andforms comparedand edited by hand for computer processing, tax details is enteredon magnetic tape by a clerk at an automatically Collection mechanism terminal.Powerful mainframe computers procedure the tapes for accuracy withoutside data and also flag feasible audit problems. The national ComputerCenter because that Account Posting and also Settlement in Martinsburg, WestVirginia, climate reconciles all taxpayer tapes, which automatically go tothe Treasury Department"s Disbursing center for automated composing ofchecks.


You are watching: A spreadsheet program is a computerized version of


See more: Who Is Carlson In Of Mice And Me, Steinbeck'S Of Mice And Men Character List

Complete elapsed time: 3 to ripe weeks.
*
Return to Table the Contents| vault Article| following Article