I got your address, I think from Peter Deutsch, but I don't quite recall
the context. I was asking him about how to make a living when you want
to make your product (software) available for free. I include below a
resume. The stuff I'd like to see available for free is described in it.
Any suggestions would be appreciated. Thanks.
----------------
Donald Cohen
net address: donc@isi.edu phone: 310-559-1845
US Citizen
Education
BS in Mathematics from Carnegie-Mellon University 1973
PhD in Computer Science from Carnegie-Mellon University 1980
Thesis title: Knowledge based theorem proving and learning.
The thesis describes learning techniques used in a theorem proving
program for omega-order type theory (a form of higher order logic).
Employment:
summer 1970 - 1973: computer programming and algorithm development for
the Biotechnology program (Carnegie-Mellon University)
1973 - 1980: as a graduate student, research assistant in the
Computer Science Department (Carnegie-Mellon University)
summer 1980: Robotics Institute (Carnegie-Mellon University)
1980 - present: University of Southern California Information Sciences
Institute
Summary of research 1980 - present:
computer support for software development, including
- defining semantics of the Gist specification language
(This was a group effort. Other major contributors were Martin Feather,
Neil Goldman, Bob Balzer and Dave Wile.)
- building a program for symbolic execution of Gist specifications [1][2]
(I built the symbolic evaluator, which was used in conjunction with a
natural language explanation facility built by Bill Swartout.)
- building programming language extensions that provide some of the
specificational features of Gist yet achieve reasonable performance.
These extensions support the abstraction of relations for both stored
and computed data. Many parts of programs that are traditionally hand
coded are replaced in these languages by higher level specifications
which are automatically compiled:
- A query language based on relational calculus allows data to be
accessed independent of data representation or access algorithms [3]
(this is analogous to a database query language and optimizer but the
relations may be represented or computed however the programmer chooses)
- Constraints and Triggering conditions are expressed in a two-state
extension to the same language [5]
- Descriptions of data structures for representing relations are used
to generate code for relational operations on those data structures [6]
Language extensions include one large lisp extension, AP5 [4], built by
me, and recently, smaller extensions to lisp, Ada and C++, built with
Neil Goldman and K. Narayanaswamy. AP5 has been used as the primary
programming vehicle in my research group for the last 10 years, both for
internal work and for contract work.
Selected publications (more complete list available on request):
[1] Symbolic Execution of the GIST Specification Language
Cohen, IJCAI-83
[2] A Forward Inference Engine to Aid in Understanding Specifications
Cohen AAAI-84
[3] Automatic Compilation of Logical Specifications into Efficient Programs
Cohen, AAAI-86
[4] AP5 reference manual
Cohen, ISI report (many versions)
[5] Compiling Complex Database Transition Triggers
Cohen, Sigmod-89
[6] Automating Relational Operations on Data Structures
Cohen, Campbell, IEEE Software, May 1993