Spreadsheet
A spreadsheet is a rectangular table (or grid) of information, often
financial information. (It is, therefore, a kind of matrix.) The word came
from "spread" in its sense of a newspaper or magazine item (text and/or
graphics) that covers two facing pages, extending across the center fold and
treating the two pages as one large one. The compound word "spread-sheet"
came to mean the format used to present bookkeeping ledgers -- with columns
for categories of expenditures across the top, invoices listed down the left
margin, and the amount of each payment in the cell where its row and column
intersect, for example -- which were traditionally a "spread" across facing
pages of a bound ledger (= book for keeping accounting records) or on
oversized sheets of paper ruled into rows and columns in that format and
approximately twice as wide as ordinary paper.
One of the first commercial uses of computers was in processing payroll and
other financial records, so the programs (and, indeed, the programming
languages themselves) were designed to generate reports in the standard
"spreadsheet" format bookkeepers and accountants used. The more available
and affordable computers themselves became in the last quarter of the 20th
century, the more software became available for them, and programs to keep
financial records and generate spreadsheet reports were always in demand.
Those spreadsheet programs can be used to tabulate many kinds of
information, not just financial records, so the term "spreadsheet" has
developed a more general meaning as information (= data = facts) presented
in a rectangular table, usually generated by a computer.
Spreadsheet programming
Just as the early programming languages were designed to generate
spreadsheet printouts, programming techniques themselves have evolved to
process tables (= spreadsheets = matrices) of data more efficiently in the
computer itself. A spreadsheet program is designed to perform general
computation tasks using spatial relationships rather than time as the
primary organizing principle. Many programs designed to perform general
computation use timing, the ordering of computational steps, as their
primary way to organize a program. A well defined entry point is used to
determine the first instructions, and all other instructions must be
reachable from that point.
In a spreadsheet, however, a set of cells is defined, with a spatial
relation to one another. In the earliest spreadsheets, this arrangments were
a simple two-dimensional grid. Over time, the model has been expanded to
include a third dimension, and in some cases a series of named grids. The
most advanced examples allow inversion and rotation operations which can
slice and project the data set in various ways.
The cells are functionally equivalent to variables in a sequential
programming model. Cells often have a formula, a set of instructions which
can be used to compute the value of a cell. Formulas can use the contents of
other cells or external variables such as the current date and time. It is
often convenient to think of a spreadsheet as a mathematical graph, where
the nodes are spreadsheet cells, and the edges are references to other cells
specified in formulas. This is often called the dependency graph of the
spreadsheet. References between cells can take advantage of spatial concepts
such as relative position and absolute position, as well as named locations,
to make the spreadsheet formulas easier to understand and manage.
Spreadsheets usually attempt to automatically update cells when the cells on
which they depend have been changed. The earliest spreadsheets used simple
tactics like evaluating cells in a particular order, but modern spreadsheets
compute a minimal recomputation order from the dependency graph. Later
spreadsheets also include a limited ability to propagate values in reverse,
altering source values so that a particular answer is reached in a certain
cell. Since spreadsheet cells formulas are not generally invertable, though,
this technique is of somewhat limited value.
Many of the concepts common to sequential programming models have analogues
in the spreadsheet world. For example, the sequential model of the indexed
loop is usually represented as a table of cells, with similar formulas.
Cyclic dependency graphs produce the traditional construct known as the
infinite loop. Most spreadsheets allow iterative recalculation in the
presence of these cyclic dependencies, whch can be either directly
controlled by a user or which stop when threshold conditions are reached.
The power of spreadsheets derives largely from the fact that human beings
have a well developed intuition about spaces, and a well developed notion of
dependency between items. Thus, many people find it easier to perform
complex calculations in a spreadsheet than writing the equivalent sequential program.
Origins of the Spreadsheet
The computerized spreadsheet was invented by Pardo and Landau, who applied
for a patent on it in 1970. The spreadsheet concept was reinvented by Dan
Bricklin. Legend has it that Bricklin was watching his university professor
create a table of calculation results on a blackboard. When the professor
found an error, he had to tediously erase and rewrite a number of sequential
entries in the table, triggering Bricklin to think that he could replicate
the process on a computer, using a blackboard/spreadsheet paradigm to view
results of underlying formulas.
His idea became VisiCalc, the first spreadsheet, and the "killer
application" that turned the personal computer from a hobby for computer
enthusiasts into a business tool.
This content from Wikipedia is licensed under the GNU Free Documentation License.
|
|