Although detractors of functional programming sometimes claim that functional programming
is too difficult or counter-intuitive for most programmers to understand and use, evidence
to the contrary can be found by looking at the popularity of spreadsheets. The spreadsheet
paradigm, a first-order subset of the functional programming paradigm, has found wide
acceptance among both programmers and end users. Still, there are many limitations with
most spreadsheet systems. In this paper, we discuss language features that eliminate several
of these limitations without deviating from the first-order, declarative evaluation model.
The language used to illustrate these features is a research language called Forms/3. Using
Forms/3, we show that procedural abstraction, data abstraction and graphics output can be
supported in the spreadsheet paradigm. We show that, with the addition of a simple model of
time, animated output and GUI I/O also become viable. To demonstrate generality, we also
present an animated Turing machine simulator programmed using these features. Throughout
the paper, we combine our discussion of the programming language characteristics with
how the language features prototyped in Forms/3 relate to what is known about human
effectiveness in programming.
Although spreadsheets can be argued to be the most widely-used visual programming languages (VPLs) today, most are very limited compared to other VPLs, supporting only a few built-in types and offering only primitive support for code reuse. The inheritance mechanisms of object-oriented programming might seem to offer help for the latter problem, but incorporating these mechanisms in a traditional way would introduce concepts foreign to spreadsheets, such as message passing. In this paper, we present similarity inheritance, a new approach to inheritance that is suitable for seamless integration into the spreadsheet paradigm. We first explain the model independently of any implementation, and then present a prototype implementation in the research spreadsheet VPL Forms/3. We show that bringing inheritance functionality to the spreadsheet paradigm can be done using the widely-understood idea of copy/paste. Further, we show why the approach requires the presence of a live, visual environment.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.