• DocumentCode
    1491175
  • Title

    Computational improvements in Prolog applications by predicate variable pointers

  • Author

    Karam, Geraland M.

  • Author_Institution
    Dept. of Syst. & Comput. Eng., Carleton Univ., Ottawa, Ont., Canada
  • Volume
    16
  • Issue
    5
  • fYear
    1990
  • fDate
    5/1/1990 12:00:00 AM
  • Firstpage
    490
  • Lastpage
    497
  • Abstract
    The programming tradeoffs between structure-oriented and clause-oriented operations on data structures in Prolog are limited in current implementations because the assertion of clauses that include uninstantiated variables destroys any binding between these variables and those with which they are unified in the execution of the program. Built-in predicates for Prolog that allow one to assert predicate variables pointers, which are constants, rather than uninstantiated variables, are presented. The author shows: the possible performance benefits of clause-oriented implementations of data structures over equivalent structure-oriented versions, the logical implications of the proposed built-in predicates, and their practical significance by integrating them in C-Prolog and evaluating the two different implementations of the symbol table dictionary in D.H.D. Warren´s pseudo-Pascal compiler example
  • Keywords
    PROLOG; computational complexity; data structures; C-Prolog; Prolog applications; Warren; built-in predicates; clause-oriented operations; computational improvements; data structures; logical implications; performance benefits; predicate variable pointers; pseudo-Pascal compiler; structure-oriented operations; symbol table dictionary; uninstantiated variables; Assembly; Computational complexity; Computational efficiency; Data mining; Data structures; Dictionaries; Logic programming; Manipulator dynamics; Programming profession; Reactive power;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.52772
  • Filename
    52772