Getting Started with Elisa

Using EDS




Language Description

1. Lexical Elements
2. Basic Data Types and Expressions
3. Definitions
4. Streams
5. Backtracking
6. Statements and Special Expressions
7. Arrays
8. Lists
9. Descriptors
10. Components
11. Collections
12. Generic Components
13. Terms
14. Categories
15. Types 

16. Built-in Definitions
17. Higher-order Definitions

18. External Interfaces


Data Structures

1. Sequences
2. Examples involving Lists
3. Trees
4. Graphs
5. Searching State Spaces
6. Language Processing
7. Knowledge Representations          



1. Introduction
2. What are Domain Definitions?

3.  Sorts of Domain Definitions

4.  Manipulations of Domain Definitions

5.  Translating Domain Definitions

6.  Dialogue Sessions

7.  Example of Concentric Circles

8.  Example of Domain Substitution applied to Concentric Circles

9.  Example of an Order Processing Application

10.Example of an Airport Information System

11.Example of a Rental Boat Business

12.Benefits of Domain Definitions


Back Home Up Next

1. Introduction

Metaprogramming with Domain Definitions

In this paper, a novel approach of metaprogramming is introduced based on so-called domain definitions. Domain definitions are describing the characteristics of concepts in a problem domain and are used as input of the metaprocessor. The metaprocessor generates source code, which can be used as input of a compiler. In this article we explain how metaprogramming can be applied to generate  skeleton source code based on declarative domain definitions and how this source code can be used to create executable programs. Several practical examples are given to explain the different software development phases and to illustrate some applications of domain definitions.

 1.  Introduction

There are many different forms of metaprogramming. In general, metaprogramming is writing programs that generate other programs. In this article we will explain a particular form of program transformation that will show how metaprogramming can be used to generate high-level executable source code based on declarative domain definitions.

     Domain definitions are describing the domains of a problem and are used as input of the metaprocessor. The metaprocessor generates source code that can be used as input of a compiler. In our case the current implementation uses the Elisa language [13, 14, 15] as the target language.

    We will explain what domain definitions are, how they can be used to generate program text, how this text can be tested and what the benefits are of this approach.


Back Home Up Next

  Part 6: Metaprogramming   Introduction


Home | Highlights of Elisa | Integrating Different Paradigms | Getting Started with Elisa | Demo's  | What is Domain Orientation | Bibliography | Copyright | News | Contact | Contents

Language Description:

Lexical Elements | Basic Data Types and Expressions | Definitions | Streams | Backtracking | Statements and Special Expressions | Arrays | Lists | Descriptors | Components | Collections | Generic Components | Terms | Categories | Types | Built-in Definitions | Higher-order Definitions | External Interfaces | Index 

Data Structures: Sequences | Examples involving Lists | Trees | Graphs | Searching State Spaces | Language Processing | Knowledge Representations
Domain Modeling:

Domain Modeling | Concepts | Domain Definitions | Domain Operations | Domain Implementations | Systems | Case study: an Order processing system | Case study: an Airport Support system | Domain Orientation versus Object Orientation

Design Patterns:

Introduction | Abstract Factory | Builder | Factory Method | Prototype | Singleton | Adapter | Bridge | Composite | Decorator | Facade | Flyweight | Proxy | Chain of Responsibility | Command | Interpreter | Iterator | Mediator | Memento | Observer | State | Strategy | Template Method | Visitor 


click tracking

This page was last modified on 19-05-2015 14:25:03   

free hit counter