C-expressions: A variable-free calculus for equational logic programming (Q1208416): Difference between revisions

From MaRDI portal
Import240304020342 (talk | contribs)
Set profile property.
ReferenceBot (talk | contribs)
Changed an Item
Property / cites work
 
Property / cites work: Q4287474 / rank
 
Normal rank
Property / cites work
 
Property / cites work: The occur-check problem revisited / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q3776598 / rank
 
Normal rank
Property / cites work
 
Property / cites work: Logic and functional programming by retractions : operational semantics / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q4027618 / rank
 
Normal rank
Property / cites work
 
Property / cites work: The relation between logic and functional languages: a survey / rank
 
Normal rank
Property / cites work
 
Property / cites work: Suprema of open and closed formulas and their application to resolution / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q3771660 / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q5667469 / rank
 
Normal rank
Property / cites work
 
Property / cites work: Orderings for term-rewriting systems / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q4385532 / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q3210187 / rank
 
Normal rank
Property / cites work
 
Property / cites work: On the sequential nature of unification / rank
 
Normal rank
Property / cites work
 
Property / cites work: Properties of substitutions and unifications / rank
 
Normal rank
Property / cites work
 
Property / cites work: A logical reconstruction of Prolog II / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q3911367 / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q3883561 / rank
 
Normal rank
Property / cites work
 
Property / cites work: An implementation of narrowing / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q4038667 / rank
 
Normal rank
Property / cites work
 
Property / cites work: How to invent a Prolog machine / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q3789064 / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q3783516 / rank
 
Normal rank
Property / cites work
 
Property / cites work: An Efficient Unification Algorithm / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q4038706 / rank
 
Normal rank
Property / cites work
 
Property / cites work: Linear unification / rank
 
Normal rank
Property / cites work
 
Property / cites work: The occur-check problem in Prolog / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q3716279 / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q5624680 / rank
 
Normal rank
Property / cites work
 
Property / cites work: A Machine-Oriented Logic Based on the Resolution Principle / rank
 
Normal rank
Property / cites work
 
Property / cites work: Q5289024 / rank
 
Normal rank
Property / cites work
 
Property / cites work: A verified prolog compiler for the Warren Abstract Machine / rank
 
Normal rank
Property / cites work
 
Property / cites work: A new implementation technique for applicative languages / rank
 
Normal rank

Revision as of 15:24, 17 May 2024

scientific article
Language Label Description Also known as
English
C-expressions: A variable-free calculus for equational logic programming
scientific article

    Statements

    C-expressions: A variable-free calculus for equational logic programming (English)
    0 references
    0 references
    0 references
    16 May 1993
    0 references
    Substitution is the basic notion used to formalize the computational model of functional (\(\beta\)-rule of \(\lambda\) calculus) and logic (resolution) languages. However, substitutions and related operations, such as instantiation and unification, are metalevel notions which are not expressed in the language. Moreover, most of the implementations of functional and logic languages do not provide explicit representation of substitutions: variable bindings are maintained using implementation structures which are not very close to language constructs. In the case of functional languages, a first proposal to fill the gap between theory and implementation was based on combinatory logic. A more recent approach is based on an extended \(\lambda\)-calculus which allows explicit manipulation of substitutions. The authors use a similar approach to deal with narrowing for equational languages and with resolution for logic programming. The basic idea is to represent explicitely in the language the notion of most general instance: this allows to avoid substitutions since all the relevant operations (such as unification) can be expressed in terms of mgi. Moving from an existing algebra of first order atomic formulas, it is proposed an abstract syntax (\(c\) expressions) for linear structures of atomic formulas which does not uses variables. Using a suitable notion of normal form the authors then show that the computation of mgi can be expressed as a \(c\)-expression normalization. A term rewriting system for the computation of the normal form is provided and it is used to define reduction machines for narrowing and unification. Finally issues concerning efficiency, both in time and space, and parallelization of the calculus based on \(c\)-expressions are discussed.
    0 references
    variable free syntax
    0 references
    functional and logic languages
    0 references
    term rewriting
    0 references

    Identifiers