BABEL
Logic programming with functions and predicates: The language BABEL. We investigate the experimental programming language BABEL, designed to achieve integration of functional programming (as embodied in HOPE, Standard, ML, or MIRANDA) and logic programming (as embodied in PROLOG) in a simple, flexible, and mathematically well-bounded way. The language relies on a constructor discipline, well suited to accommodate PROLOG terms and HOPE-like patterns. From the syntactical point of view, BABEL combines pure PROLOG with a first order functional notation. On the other side, the language uses narrowing as the basis of a lazy reduction semantics which embodies both rewriting and SLD resolution and supports computation with potentially infinite data structures. There is also a declarative semantics, based on Scott domains, which provides a notion of least Herbrand model for BABEL programs. We develop both semantics and prove the existence of least Herbrand models, as well as a soundness result for the reduction semantics w.r.t. the declarative one. We also sketch a completeness result for the reduction semantics and illustrate the features of the language through some programming examples
Keywords for this software
References in zbMATH (referenced in 65 articles , 1 standard article )
Showing results 1 to 20 of 65.
Sorted by year (- Hanus, Michael: Functional logic programming: from theory to curry (2013)
- Alpuente, Maria; Ballis, Demis; Falaschi, Moreno: Transformation and debugging of functional logic programs (2010)
- Alpuente, M.; Ballis, D.; Correa, F.; Falaschi, M.: An integrated framework for the diagnosis and correction of rule-based programs (2010)
- Alpuente, M.; Escobar, S.; Gramlich, B.; Lucas, S.: On-demand strategy annotations revisited: an improved on-demand evaluation strategy (2010)
- Antoy, Sergio: Programming with narrowing: a tutorial (2010)
- Nishida, Naoki; Vidal, Germán: Termination of narrowing via termination of rewriting (2010)
- Vidal, Germán: Termination of narrowing in left-linear constructor systems (2008)
- Abramov, Sergei; Glück, Robert; Klimov, Yuri: An universal resolving algorithm for inverse computation of lazy languages (2007)
- Arroyo, Gustavo; Ramos, J. Guadalupe; Silva, Josep; Vidal, Germán: Improving offline narrowing-driven partial evaluation using size-change graphs (2007)
- Hofstedt, Petra; Pepper, Peter: Integration of declarative and constraint programming (2007)
- Ramos, J.Guadalupe; Silva, Josep; Vidal, Germán: Ensuring the quasi-termination of needed narrowing computations (2007)
- Silva, Josep; Vidal, Germán: Forward slicing of functional logic programs by partial evaluation (2007)
- Alemandros-Jiménez, Jesús M.; Becerra-Terón, Antonio: Database query languages and functional logic programming (2006)
- Alpuente, M.; Ballis, D.; Falaschi, M.: Rule-based verification of web sites (2006)
- Antoy, Sergio; Hanus, Michael: Overlapping rules and logic variables in functional logic programs (2006)
- Casas, Amadeo; Cabeza, Daniel; Hermenegildo, Manuel V.: A syntactic approach to combining functional notation, lazy evaluation, and higher-order in LP systems (2006)
- Albert, Elvira; Hanus, Michael; Huch, Frank; Oliver, Javier; Vidal, Germán: Operational semantics for declarative multi-paradigm languages (2005)
- Alpuente, María; Lucas, Salvador; Vidal, Germán; Hanus, Michael: Specialization of functional logic programs based on needed narrowing (2005)
- Antoy, Sergio: Evaluation strategies for functional logic programming (2005)
- Craig, Stephen-John; Leuschel, Michael: LIX: an effective self-applicable partial evaluator for Prolog (2004)