Visual reasoning and visual programming are two areas sharing a common interest in the use of visual representations where nowadays textual formalisms are used. In this paper we present the design of a visual logic programming language, research that falls at the intersection of the two areas. On the one hand we are designing a (declarative) programming language and therefore many issues of visual programming will still apply. On the other hand, due to its declarative nature, its foundations are close to those of visual reasoning. We will first explain our research framework, and the motivation for designing a visual logic programming language. Our recent work has focused on the design of an intuitive and easily accessible language to formalize at very high level the preliminary specification of systems. A standard approach to formalization is to divide languages into two sublanguages, the type expressions sublanguage where a kind of preliminary specification is given and then the value expressions language where computation takes place. In this approach the ideal is to have rich (complicated) type expressions, where the typing relation between types and values could be automatically checked. In the design of the Calculus of Refinements [6] we explored —as an alternative to the former standard schema— to give up the clear cut distinction between type and value expressions. That is, to consider everything as types and the typing relation (a non-transitive relation) as a transitive subtyping relation between types. If we consider types as sets then all our expressions would be set expressions and the subtyping relation would be the inclusion between sets, where singletons play the role of values. The formalization process can then be seen as a refinement process where the definition of an object is given by successive refinements each of which is a set of inclusions —giving upper and lower bounds of the
[1]
David Stuart Robertson,et al.
A visual logic programming language
,
1996,
Proceedings 1996 IEEE Symposium on Visual Languages.
[2]
Jon Barwise,et al.
Heterogeneous logic
,
1996
.
[3]
G. G. Stokes.
"J."
,
1890,
The New Yale Book of Quotations.
[4]
Jordi Levy,et al.
Bi-Rewrite Systems
,
1996,
J. Symb. Comput..
[5]
David Harel,et al.
On visual formalisms
,
1988,
CACM.
[6]
Jordi Levy,et al.
The Calculus of Refinements, a Formal Specification Model Based on Inclusions
,
1994
.
[7]
Jordi Levy,et al.
Bi-rewriting, a Term Rewriting Technique for Monotonic Order Relations
,
1993,
RTA.
[8]
Jaume AGUST,et al.
GraSp : A GRAphical SPeci cation Language for the Preliminary Speci cation of Logic Programs
,
1995
.
[9]
Harald Ganzinger,et al.
Rewrite techniques for transitive relations
,
1994,
Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.
[10]
Marco Schorlemmer,et al.
Inclusional Theories in Declarative Programming
,
1996,
APPIA-GULP-PRODE.