TITLE: Beautiful Sentences: Scientific Data as Program
AUTHOR: Eugene Wallingford
DATE: April 29, 2015 1:52 PM
On the way to making a larger point about
the role of software in scientific research,
Konrad Hinsen writes these beautiful sentences:
Software is just data that can be interpreted as instructions
for a computer. One could conceivably write some interpreter
that turns previously generated data into software by executing
They express one side of one of the great ideas of computer science,
the duality of program and data:
This is one of the reasons why it is so important for CS students
to study the principles of programming languages, create languages,
and build interpreters. These activities help bring this great
idea to life and prepare those who understand it to solve problems
in ways that are otherwise hard to imagine.
Besides, the duality is a thing of beauty. We don't have to use
it as a tool in order to appreciate this sublime truth.
As Hinsen writes, few people outside of computer science (and, sadly,
too many within CS) appreciate "the particular status of software as
both tool an information carrier and a tool". The same might be said
for our appreciation of data, and the role that language plays in
bridging the gap between the two.
- Every program is data to some other program, and
- every set of data is a program to some machine.