This was the topic of my Ph.D. thesis. In more modern terms, the thesis was about a constraint functional logic language. At the time - mid-eighties - this term was not introduced yet. And the subject was referred to as a functional specification language. This specification language is built on top of a functional language with pre-defined higher-order functions. Programs are specified by constraints having the form of equalities or atomic predicate expressions. Derivation of programs is based on using rules which are in essence Horn clauses over equalities, lambda definitions, and atomic predicate expressions.
I published more than a dozen of papers on this topic. The most notable ones are:
- Production-Based Program Synthesis, Computers and Artificial Intelligence (now Computing and Informatics), 7(1988), #6
- A Means for the Structural Synthesis of Programs, Programming and Computer Software, 13(1987), #1
- D/M: an Interactive Functional Language for the Modular Construction of Programs, Universitat Hamburg, Fachbereich Informatik, FBI-HH-B-112, 1985
Later this approach was reinvented and deeper results were achieved by other researches.
Alas, my Ph.D. thesis appeared too early. And by the same token, it was not early enough.
As my official opponent Prof. Aleksei Semenov said
at the dissertation defense, he got surprised while studying my thesis and wondered why
nobody had done a similar work 30 years or so before my thesis. After Alonzo Church
introduced lambda calculus, background for this work was laid
down because the tools of mathematical logic were already in place and
the next 'logical' thing to do would be to merge the two.
I agree with him and I am grateful to him for this comment:
this statement by A. Semenov remains the best
appreciation of my research work I have ever heard.
Need to relax? Try brain teasers. I would recommend those marked 'cool'.