Subject: looking for employment
From: donc@ISI.EDU (Don Cohen)
Date: Thu, 23 Mar 95 11:52:22 -0800

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