Our answer is algebra.
First of all, algebra is sufficiently abstract: languages like C++ distract the students with all sorts of details like memory management, pointers, and so forth. But the programmer who uses a search engine, a spreadsheet, or a word processor does not encounter any of these details.
Second, is algebra a programming language? Surely we can all agree upon the following definition of a programming language: A precise notation for expressing computations. Now let's look at a few algebraic expressions:
1 + 2
is a computation that says, ``compute 1, then
2, then add the results together and return the answer''.
1 + 2 x 3.5
is a computation that says, ``compute 2
and 3.5, multiply them, take the result, add 1, and return the
answer''.
f(x) =
x^2 - 3
. When we apply the function, like
so---f(4)
---we first substitute all instance of
x
with 4, then proceed as before (multiplying,
subtracting, and returning the answer).
But algebra is not a very precise language---there are lots of informal ways of writing algebraic expressions---so it can't usually be executed directly on a computer. To remedy this, we can use a programming language that behaves exactly like algebra, but has the benefit of running on contemporary computers.
PLT / scheme@cs.rice.edu
Last modified at 22:37:03 CST on Sunday, February 08, 1998