A Framework for Incorporating Abstraction Mechanisms into the Logic Programming Paradigm.

Abstract

To help make logic programming more suitable for writing large systems, we develop linguistic mechanisms that permit the organization of logic programs around abstractions. In particular, we present the design of Denali, an equational logic programming language that supports predicate and data abstraction. The key issue in introducing predicate abstraction is dealing with the difference between the declarative and procedural interpretations of logic programs. We address this issue by introducing a two-dimensional type system to describe predicate interfaces. The two components are a sort system and a novel multi-valued mode system. Multi-valued modes constrain the ways in which arguments to predicates may be instantiated. A collection of such modes is defined by the programmer for each sort. The key issue in introducing data abstraction is providing ways to obtain equational unification procedures. We develop a pragmatic approach that relies upon the programmer to implement these procedures. We facilitate this by supporting a variety of techniques that simplify the problem. Among these techniques are treating unification on a sort-by-sort basis, layering implementations so as to exploit built-in unification procedures, and using the mode system to constrain the unification problem.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Aug 01, 1987
Accession Number
ADA190381

Entities

People

  • Joseph L. Zachary

Organizations

  • Massachusetts Institute of Technology

Tags

Communities of Interest

  • C4I
  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Abstracts
  • Artificial Intelligence
  • Computer Programming
  • Computer Science
  • Computers
  • Construction
  • Engineering
  • Formal Languages
  • Grammars
  • Information Processing
  • Language
  • Massachusetts
  • Military Research
  • Programming Languages
  • Software Development
  • Theses
  • Two Dimensional

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Software Engineering.