ElGolog: A High-Level Programming Language with Memory of the Execution History


  • Giuseppe De Giacomo Sapienza Università di Roma
  • Yves Lespérance York University
  • Eugenia Ternovska Simon Fraser University




Most programming languages only support tests that refer exclusively to the current state. This applies even to high-level programming languages based on the situation calculus such as Golog. The result is that additional variables/fluents/data structures must be introduced to track conditions that the program uses in tests to make decisions. In this paper, drawing inspiration from McCarthy's Elephant 2000, we propose an extended version of Golog, called ElGolog, that supports rich tests about the execution history, where tests are expressed in a first-order variant of two-way linear dynamic logic that uses ElGolog programs with converse. We show that in spite of rich tests, ElGolog shares key features with Golog, including a sematics based on macroexpansion into situation calculus formulas, upon which regression can still be applied. We also show that like Golog, our extended language can easily be implemented in ElGolog.




How to Cite

De Giacomo, G., Lespérance, Y., & Ternovska, E. (2020). ElGolog: A High-Level Programming Language with Memory of the Execution History. Proceedings of the AAAI Conference on Artificial Intelligence, 34(03), 2806-2813. https://doi.org/10.1609/aaai.v34i03.5669



AAAI Technical Track: Knowledge Representation and Reasoning