Tech News
← Back to articles

A look back: LANPAR, the first spreadsheet

read original related products more articles

Tech writers use all kinds of tools, including spreadsheets. But one spreadsheet you've never heard of is LANPAR, the very first spreadsheet.

Many people think of VisiCalc as the first spreadsheet, and while VisiCalc was the first spreadsheet on the desktop, it’s not actually the first spreadsheet.

Ten years before VisiCalc, two engineers at Bell Canada came up with a pretty neat idea. At the time, organizational budgets were created using a program that ran on a mainframe system. If a manager wanted to make a change to the budget model, that might take programmers months to create an updated version.

Rene Pardo and Remy Landau discussed the problem and asked “what if the managers could make their own budget forms as they would normally write them?” And with that, a new idea was created: the spreadsheet program.

The new spreadsheet was called LANPAR, for “LANguage for Programming Arrays at Random” (but really it was a mash-up of their last names: LANdau and PARdo).

A grid of boxes

LANPAR used a grid of cells, called “boxes.” Each box was referenced by a row and column: the box in the upper left corner was box 101 (think of this box address as row 1 and column 01), the box on row 1 and column 99 was box 199, and the box on row 999 and column 1 was box 99901. LANPAR supported up to 999 rows and 99 columns.

101 102 103 104 201 202 203 204 301 302 303 304 401 402 403 404

The patent application (filed in 1970, granted in 1983, now expired) highlights how the first LANPAR worked: users would enter box data into a file using plain text. Each row started on a new line, and boxes were separated by semicolons. The boxes could contain one of three kinds of values:

INPUT to prompt the user for a value K to create a numerical constant, such as K3.14 for the value 3.14 a calculation that references only other boxes, using addition ( + ), subtraction ( - ), multiplication ( * ), division ( / ) and exponentiation ( ^ )

... continue reading