Checking modes of HAL programs
Maria Garcia de la Banda, Warwick Harvey, Kim Marriott, Peter J. Stuckey, Bart Demoen
Abstract
Recent constraint logic programming (CLP) languages, such as HAL and Mercury, require type, mode and determinism declarations for predicates. This information allows the generation of efficient target code and the detection of many errors at compile-time. Unfortunately, mode checking in such languages is difficult. One of the main reasons is that, for each predicate mode declaration, the compiler is required to appropriately re-order literals in the predicate's definition. The task is further complicated by the need to handle complex instantiations (which interact with type declarations and higher-order predicates) and automatic initialization of solver variables. Here we define mode checking for strongly typed CLP languages which require reordering of clause body literals. In addition, we show how to handle a simple case of polymorphic modes by using the corresponding polymorphic types.
Create a lesson
Related papers
How Often Does Your Program Fail?
Arnab Ray, Aalok Thakkar
Metamorphic Testing for Floating-Point Performance Issues in SMT Solvers
Rosa Abbasi, Eva Darulova
The Output-Space Hypothesis: Enumerative Equivalence Checking for Tensor Programs
Paul Biberstein, Joseph Devietti, Mayur Naik
Theories of Mind as Domain-Specific Languages of Thought
Kartik Chandra, Jonathan Ragan-Kelley, Joshua B. Tenenbaum et al.
LLVM Translation Validation Automated with Large Language Models and Lean
Chunhao Liao, Hongxu Xu, Xintong Zhou et al.
Splyce: SIMD Vectorization of Sparse Coiteration
Kabilan Mahathevan, Poorna Gunathilaka, Kirshanthan Sundararajah