An Overview of ELAN
---
paper_title: A choice-point library for backtrack programming

paper_content:

Implementing a compiler for a language with nondeterministic features is known to be a difficult task. This paper presents two new functions setChoicePoint and fail that extend the C language to efficiently handle choice point management. Originally, these two functions were designed to compile the ELAN strategy language. However, they can be used by programmers for general programming in C. We illustrate their use by presenting the classical 8-queens problem and giving some experimental results. Algorithms and implementation techniques are sufficiently detailed to be easily modified and re-implemented.
---

Title: An Overview of ELAN

Section 1: Introduction
Description 1: Write about the background, purpose, and main features of ELAN.

Section 2: The Specification Language
Description 2: Describe the formalism of ELAN, signature introductions, and the application of structural axioms.

Section 3: Strategies Specification
Description 3: Detail various strategy operators, labelled rules, and their role in managing non-deterministic computations.

Section 4: Non-deterministic Computations
Description 4: Provide examples demonstrating the handling of non-determinism in ELAN.

Section 5: Rules Specification
Description 5: Discuss the syntax of ELAN rules, local evaluations, and the use of conditions and local assignments.

Section 6: Modularity and Parameterization
Description 6: Explain the modular structure of ELAN and its support for parameterized modules and importing mechanisms.

Section 7: The Prototyping Environment
Description 7: Outline the different components of ELAN’s prototyping environment including the library, preprocessor, parser, interpreter, and compiler.

Section 8: Parser
Description 8: Describe the role of the parser, its complexity, and the algorithm used for syntactic analysis.

Section 9: Preprocessor
Description 9: Explain the functions of the preprocessor in ELAN, highlighting how it automatically generates parts of specifications.

Section 10: Interpreter
Description 10: Provide details on the interpreter's functionality, including how it applies rules and strategies to queries and manages non-deterministic strategies.

Section 11: Comparison with Other Systems
Description 11: Compare ELAN with other rule-based systems and languages, discussing strengths and weaknesses.

Section 12: Future Work and Conclusion
Description 12: Summarize the current state of the ELAN system and suggest potential areas for future development.