Re: Progams which can create efficient programs

From: Stephen Reed (reed@cyc.com)
Date: Fri Feb 25 2005 - 06:08:00 MST


Michael,

Interesting that you should ask. At Cycorp, my recent presentation on a
behavior engine for Cyc described Cyc Behavior Language, a new AI
procedural language rooted in the Cyc event vocabulary. CBL is
specialized for creating James Albus-style nodes in a hierarchical
task/perception network. However, my senior manager criticized the need
for yet another new language, as we already program in SubL (a lisp
dialect) and java for applications. I was challenged to find a way not
to need a new computer language when authoring intelligent behaviors for
Cyc.

You may know that automatic programming, program synthesis, program
refinement, aspect-oriented programming, and most recently generative
programming (see http://www.generative-programming.org ) are fields of
study about programs creating programs. After a survey, I began
developing a way to create Cyc Behavior Language deductively by
factoring out every syntactic and semantic feature of the language along
the dimensions of domain, application, and problem-solving methods. My
goal is to create a minimal number of Cyc Behavior Language routines
that deduce general program structure top-down (like a hierarchical task
network planner), then via many cross-cutting features, fill in the
domain, application and problem-solving method details.
While Aspect-oriented programming does this tailoring at compilation or
runtime, in contrast my idea employs the techniques of generative
programming to do this at program composition (authoring) time. The
advantage of using Cyc for this effort is that the knowledge base
provides a rich vocabulary for describing features, which I will
specialize for the features of Cyc Behavior Language, and I can easily
bottom out the composition routines in KB asks (first order queries).

Although this work is just beginning, and it is an extra-effort activity
among my sponsored tasks, I aspire to complete a bootstrap by year end
2005. By bootstrap I mean a full characterization of the composition
routines as generative features, so that the composition routines
themselves can be automatically composed from domain, application, and
problem-solving method requirements, constraints and preferences that are
declaratively stated in the Cyc knowledge base. One can imagine a likely
elaboration in which Cyc dialog enables a developer to incrementally
prototype and refine a Cyc application implemented by the Cyc behavior
engine.

Cheers,
-Steve

On Thu, 24 Feb 2005, Bantz, Michael S \(UMC-Student\) wrote:

> Just a curious question. I know that people have been very successful at writing programs which can play chess more or less perfectly. Would it be possible to write a program which can write chess playing programs? Has anyone tried this or some equivalent?
>
> Thanks,
> Michael
>
>

-- 
===========================================================
Stephen L. Reed                  phone:  512.342.4036
Cycorp, Suite 100                  fax:  512.342.4040
3721 Executive Center Drive      email:  reed@cyc.com
Austin, TX 78731                   web:  http://www.cyc.com
         download OpenCyc at http://www.opencyc.org
===========================================================


This archive was generated by hypermail 2.1.5 : Wed Jul 17 2013 - 04:00:50 MDT