K. Itoh et al., A WORKBENCH SYSTEM FOR NOVICE PROLOG PROGRAMMERS - VISUALLY-STRUCTURED INTERACTIVE TRACER AND PHOTOTYPE-BASED PROGRAMMING SUPPORT, IEICE transactions on information and systems, E77D(1), 1994, pp. 57-67
The paper proposes and reports on pototyping a work bench system for n
ovice Prolog programmers which consists of a visually-structured inter
active tracer and a prototype-based programming support. The tracer ac
tually is a simulated interpreter in Prolog, It is interpreted by a Pr
olog interpreter being embedded with facilities interfacing programs i
n Prolog and the objects programmed in C. It displays, by way of these
objects, the past, current and future goals, highlights variable shar
ing and value substitution, and marks the current goals and backtrack
choice points. It is at user's will to let the tracer show and hide su
bgoals as well as to let it backtrack when it failed, step back for re
doing or terminate tracing. The programming support module first provi
des the programmer with structural prototype patterns and the roles of
the constituent functions. We developed a support system for the 2 ty
pes of recursive definitions. After having selected the prototype, the
user is requested to specify the data types and the names of variable
s to be put in the arguments, which propagate through the structure. T
he support module then offers a menu of primitive or user-registered c
onstituent functions as may be useful in processing and/or obtaining u
ser-specified types of data. Thirdly the system lets the user express
his/her intention by sample input-output data instances in his/her tas
k goals. It makes the values propagate through the structures thus mot
ivating the user to design the constituent functions. At the goal recu
rsion point, the user is allowed to creep into examining the definitio
ns of the reduced versions of the instances, helping the user find the
condition with which the recursion terminates. Finally the module ass
ists the user to convert the structural descriptions into Prolog progr
ams.