88
Applying Generative Communication to Symbolic Computation in Common Lisp onathan Heras, Vico Pascual and Julio Rubio Departamento de Matem´ aticas y Computaci´on Universidad de La Rioja Spain 2nd European Lisp Symposium 2009 May 29, 2009 J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 1/21

Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Applying Generative Communication to SymbolicComputation in Common Lisp

Jonathan Heras, Vico Pascual and Julio Rubio

Departamento de Matematicas y ComputacionUniversidad de La Rioja

Spain

2nd European Lisp Symposium 2009May 29, 2009

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 1/21

Page 2: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Table of Contents

1 Introduction

2 Architecture of the system

3 Communication among modules

4 Clients of our system

5 Conclusions and Further Work

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 2/21

Page 3: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Introduction

Table of Contents

1 Introduction

2 Architecture of the system

3 Communication among modules

4 Clients of our system

5 Conclusions and Further Work

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 3/21

Page 4: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Introduction

Introduction

Kenzo is a Common Lisp system devoted to SymbolicComputation in Algebraic Topology

Accessibility and usability are two weak points in KenzoAn intermediary layer was designed to interact with the KenzosystemBased on Microkernel pattern

Figure: Simplified diagram of the previous architecture.

Drawbacks:

Message passing style

Recalculations

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 4/21

Page 5: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Introduction

Introduction

Kenzo is a Common Lisp system devoted to SymbolicComputation in Algebraic TopologyAccessibility and usability are two weak points in Kenzo

An intermediary layer was designed to interact with the KenzosystemBased on Microkernel pattern

Figure: Simplified diagram of the previous architecture.

Drawbacks:

Message passing style

Recalculations

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 4/21

Page 6: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Introduction

Introduction

Kenzo is a Common Lisp system devoted to SymbolicComputation in Algebraic TopologyAccessibility and usability are two weak points in KenzoAn intermediary layer was designed to interact with the Kenzosystem

Based on Microkernel pattern

Figure: Simplified diagram of the previous architecture.

Drawbacks:

Message passing style

Recalculations

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 4/21

Page 7: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Introduction

Introduction

Kenzo is a Common Lisp system devoted to SymbolicComputation in Algebraic TopologyAccessibility and usability are two weak points in KenzoAn intermediary layer was designed to interact with the KenzosystemBased on Microkernel pattern

Figure: Simplified diagram of the previous architecture.

Drawbacks:

Message passing style

Recalculations

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 4/21

Page 8: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Introduction

Introduction

Kenzo is a Common Lisp system devoted to SymbolicComputation in Algebraic TopologyAccessibility and usability are two weak points in KenzoAn intermediary layer was designed to interact with the KenzosystemBased on Microkernel pattern

Figure: Simplified diagram of the previous architecture.

Drawbacks:

Message passing style

Recalculations

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 4/21

Page 9: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Introduction

Introduction

Kenzo is a Common Lisp system devoted to SymbolicComputation in Algebraic TopologyAccessibility and usability are two weak points in KenzoAn intermediary layer was designed to interact with the KenzosystemBased on Microkernel pattern

Figure: Simplified diagram of the previous architecture.

Drawbacks:

Message passing style

Recalculations

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 4/21

Page 10: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Introduction

Introduction

Kenzo is a Common Lisp system devoted to SymbolicComputation in Algebraic TopologyAccessibility and usability are two weak points in KenzoAn intermediary layer was designed to interact with the KenzosystemBased on Microkernel pattern

Figure: Simplified diagram of the previous architecture.

Drawbacks:

Message passing style

RecalculationsJ. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 4/21

Page 11: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system

Table of Contents

1 Introduction

2 Architecture of the systemLinda Model and Shared RepositoryAn adapted implementation of the Linda ModelAn example of complete computation

3 Communication among modules

4 Clients of our system

5 Conclusions and Further Work

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 5/21

Page 12: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system Linda Model and Shared Repository

Linda Model and Shared Repository

Linda Model:

Based on Generative Communication

Asynchronous communication is performed by means of the insertion and

extraction of data over a shared memory

Three ingredients:

tuple space: the shared memory repository

tuples: the data in the Linda Model, tuples can contain actual and

formal items, e.g, (3 ? 4.3)

operations:

Shared repository pattern:

Add the nuance that a component has no knowledge of:

what components have produced the data it uses,

what components will use its outputs

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 6/21

Page 13: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system Linda Model and Shared Repository

Linda Model and Shared Repository

Linda Model:

Based on Generative Communication

Asynchronous communication is performed by means of the insertion and

extraction of data over a shared memory

Three ingredients:

tuple space: the shared memory repository

tuples: the data in the Linda Model, tuples can contain actual and

formal items, e.g, (3 ? 4.3)

operations:

Shared repository pattern:

Add the nuance that a component has no knowledge of:

what components have produced the data it uses,

what components will use its outputs

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 6/21

Page 14: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system Linda Model and Shared Repository

Linda Model and Shared Repository

Linda Model:

Based on Generative Communication

Asynchronous communication is performed by means of the insertion and

extraction of data over a shared memory

Three ingredients:

tuple space: the shared memory repository

tuples: the data in the Linda Model, tuples can contain actual and

formal items, e.g, (3 ? 4.3)

operations:

Shared repository pattern:

Add the nuance that a component has no knowledge of:

what components have produced the data it uses,

what components will use its outputs

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 6/21

Page 15: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system Linda Model and Shared Repository

Linda Model and Shared Repository

Linda Model:

Based on Generative Communication

Asynchronous communication is performed by means of the insertion and

extraction of data over a shared memory

Three ingredients:

tuple space: the shared memory repository

tuples: the data in the Linda Model, tuples can contain actual and

formal items, e.g, (3 ? 4.3)

operations:

Shared repository pattern:

Add the nuance that a component has no knowledge of:

what components have produced the data it uses,

what components will use its outputs

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 6/21

Page 16: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system Linda Model and Shared Repository

Linda Model and Shared Repository

Linda Model:

Based on Generative Communication

Asynchronous communication is performed by means of the insertion and

extraction of data over a shared memory

Three ingredients:

tuple space: the shared memory repository

tuples: the data in the Linda Model, tuples can contain actual and

formal items, e.g, (3 ? 4.3)

operations:

Shared repository pattern:

Add the nuance that a component has no knowledge of:

what components have produced the data it uses,

what components will use its outputs

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 6/21

Page 17: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system Linda Model and Shared Repository

Linda Model and Shared Repository

Linda Model:

Based on Generative Communication

Asynchronous communication is performed by means of the insertion and

extraction of data over a shared memory

Three ingredients:

tuple space: the shared memory repository

tuples: the data in the Linda Model, tuples can contain actual and

formal items, e.g, (3 ? 4.3)

operations:

Shared repository pattern:

Add the nuance that a component has no knowledge of:

what components have produced the data it uses,

what components will use its outputs

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 6/21

Page 18: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system Linda Model and Shared Repository

Linda Model and Shared Repository

Linda Model:

Based on Generative Communication

Asynchronous communication is performed by means of the insertion and

extraction of data over a shared memory

Three ingredients:

tuple space: the shared memory repository

tuples: the data in the Linda Model, tuples can contain actual and

formal items, e.g, (3 ? 4.3)

operations:

Shared repository pattern:

Add the nuance that a component has no knowledge of:

what components have produced the data it uses,

what components will use its outputs

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 6/21

Page 19: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system Linda Model and Shared Repository

Linda Model and Shared Repository

Linda Model:

Based on Generative Communication

Asynchronous communication is performed by means of the insertion and

extraction of data over a shared memory

Three ingredients:

tuple space: the shared memory repository

tuples: the data in the Linda Model, tuples can contain actual and

formal items, e.g, (3 ? 4.3)

operations:

Shared repository pattern:

Add the nuance that a component has no knowledge of:

what components have produced the data it uses,

what components will use its outputs

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 6/21

Page 20: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system Linda Model and Shared Repository

Linda Model and Shared Repository

Linda Model:

Based on Generative Communication

Asynchronous communication is performed by means of the insertion and

extraction of data over a shared memory

Three ingredients:

tuple space: the shared memory repository

tuples: the data in the Linda Model, tuples can contain actual and

formal items, e.g, (3 ? 4.3)

operations:

Shared repository pattern:

Add the nuance that a component has no knowledge of:

what components have produced the data it uses,

what components will use its outputs

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 6/21

Page 21: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system Linda Model and Shared Repository

Linda Model and Shared Repository

Linda Model:

Based on Generative Communication

Asynchronous communication is performed by means of the insertion and

extraction of data over a shared memory

Three ingredients:

tuple space: the shared memory repository

tuples: the data in the Linda Model, tuples can contain actual and

formal items, e.g, (3 ? 4.3)

operations:

Shared repository pattern:

Add the nuance that a component has no knowledge of:

what components have produced the data it uses,

what components will use its outputs

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 6/21

Page 22: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system Linda Model and Shared Repository

Linda Model and Shared Repository

Linda Model:

Based on Generative Communication

Asynchronous communication is performed by means of the insertion and

extraction of data over a shared memory

Three ingredients:

tuple space: the shared memory repository

tuples: the data in the Linda Model, tuples can contain actual and

formal items, e.g, (3 ? 4.3)

operations:

Shared repository pattern:

Add the nuance that a component has no knowledge of:

what components have produced the data it uses,

what components will use its outputsJ. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 6/21

Page 23: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Architecture

Recalculations solvedNo longer message passing style

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 7/21

Page 24: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Architecture

Recalculations solvedNo longer message passing style

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 7/21

Page 25: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Architecture

Recalculations solvedNo longer message passing style

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 7/21

Page 26: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

About our Linda Model implementation

Desirable properties of any implementation of the Linda Model

Shared

Persistent

ACID compliant

Two possibilities

Implement the Linda Model from scratch.

Use an XML enabled database

An XML enabled database is built on top of relational orobject oriented databases.Include two kind of processes:XML data → database elementsdatabase elements → XML data

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 8/21

Page 27: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

About our Linda Model implementation

Desirable properties of any implementation of the Linda Model

Shared

Persistent

ACID compliant

Two possibilities

Implement the Linda Model from scratch.

Use an XML enabled database

An XML enabled database is built on top of relational orobject oriented databases.Include two kind of processes:XML data → database elementsdatabase elements → XML data

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 8/21

Page 28: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

About our Linda Model implementation

Desirable properties of any implementation of the Linda Model

Shared

Persistent

ACID compliant

Two possibilities

Implement the Linda Model from scratch.

Use an XML enabled database

An XML enabled database is built on top of relational orobject oriented databases.Include two kind of processes:XML data → database elementsdatabase elements → XML data

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 8/21

Page 29: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

About our Linda Model implementation

Desirable properties of any implementation of the Linda Model

Shared

Persistent

ACID compliant

Two possibilities

Implement the Linda Model from scratch.

Use an XML enabled database

An XML enabled database is built on top of relational orobject oriented databases.Include two kind of processes:XML data → database elementsdatabase elements → XML data

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 8/21

Page 30: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

About our Linda Model implementation

Desirable properties of any implementation of the Linda Model

Shared

Persistent

ACID compliant

Two possibilities

Implement the Linda Model from scratch.

Use an XML enabled database

An XML enabled database is built on top of relational orobject oriented databases.Include two kind of processes:XML data → database elementsdatabase elements → XML data

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 8/21

Page 31: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

About our Linda Model implementation

Desirable properties of any implementation of the Linda Model

Shared

Persistent

ACID compliant

Two possibilities

Implement the Linda Model from scratch.

Use an XML enabled database

An XML enabled database is built on top of relational orobject oriented databases.Include two kind of processes:XML data → database elementsdatabase elements → XML data

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 8/21

Page 32: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

About our Linda Model implementation

Desirable properties of any implementation of the Linda Model

Shared

Persistent

ACID compliant

Two possibilities

Implement the Linda Model from scratch.

Use an XML enabled database

An XML enabled database is built on top of relational orobject oriented databases.Include two kind of processes:XML data → database elementsdatabase elements → XML data

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 8/21

Page 33: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

About our Linda Model implementation

Desirable properties of any implementation of the Linda Model

Shared

Persistent

ACID compliant

Two possibilities

Implement the Linda Model from scratch.

Use an XML enabled database

An XML enabled database is built on top of relational orobject oriented databases.

Include two kind of processes:XML data → database elementsdatabase elements → XML data

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 8/21

Page 34: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

About our Linda Model implementation

Desirable properties of any implementation of the Linda Model

Shared

Persistent

ACID compliant

Two possibilities

Implement the Linda Model from scratch.

Use an XML enabled database

An XML enabled database is built on top of relational orobject oriented databases.Include two kind of processes:XML data → database elementsdatabase elements → XML data

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 8/21

Page 35: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Our Linda Model implementation

Implementation of a Linda Model

tuple space

tuples

operations

In our implementation

AllegroCache

persistent objects of AllegroCache

based on AllegroCache functionstuples:

tuples rely on XML-Kenzo but tuple space is based on AllegroCache, so it is

necessary to convert from XML to objects and viceversa

A tuple is implemented as an object belonging to any of the subclasses of the

tuple class

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 9/21

Page 36: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Our Linda Model implementation

Implementation of a Linda Model

tuple space

tuples

operations

In our implementation

AllegroCache

persistent objects of AllegroCache

based on AllegroCache functionstuples:

tuples rely on XML-Kenzo but tuple space is based on AllegroCache, so it is

necessary to convert from XML to objects and viceversa

A tuple is implemented as an object belonging to any of the subclasses of the

tuple class

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 9/21

Page 37: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Our Linda Model implementation

Implementation of a Linda Model

tuple space

tuples

operations

In our implementation

AllegroCache

persistent objects of AllegroCache

based on AllegroCache functionstuples:

tuples rely on XML-Kenzo but tuple space is based on AllegroCache, so it is

necessary to convert from XML to objects and viceversa

A tuple is implemented as an object belonging to any of the subclasses of the

tuple class

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 9/21

Page 38: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Our Linda Model implementation

Implementation of a Linda Model

tuple space

tuples

operations

In our implementation

AllegroCache

persistent objects of AllegroCache

based on AllegroCache functions

tuples:

tuples rely on XML-Kenzo but tuple space is based on AllegroCache, so it is

necessary to convert from XML to objects and viceversa

A tuple is implemented as an object belonging to any of the subclasses of the

tuple class

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 9/21

Page 39: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Our Linda Model implementation

Implementation of a Linda Model

tuple space

tuples

operations

In our implementation

AllegroCache

persistent objects of AllegroCache

based on AllegroCache functionstuples:

tuples rely on XML-Kenzo but tuple space is based on AllegroCache, so it is

necessary to convert from XML to objects and viceversa

A tuple is implemented as an object belonging to any of the subclasses of the

tuple class

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 9/21

Page 40: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Our Linda Model implementation

Implementation of a Linda Model

tuple space

tuples

operations

In our implementation

AllegroCache

persistent objects of AllegroCache

based on AllegroCache functionstuples:

tuples rely on XML-Kenzo but tuple space is based on AllegroCache, so it is

necessary to convert from XML to objects and viceversa

A tuple is implemented as an object belonging to any of the subclasses of the

tuple class

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 9/21

Page 41: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Our Linda Model implementation

Implementation of a Linda Model

tuple space

tuples

operations

In our implementation

AllegroCache

persistent objects of AllegroCache

based on AllegroCache functionstuples:

tuples rely on XML-Kenzo but tuple space is based on AllegroCache, so it is

necessary to convert from XML to objects and viceversa

A tuple is implemented as an object belonging to any of the subclasses of the

tuple class

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 9/21

Page 42: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Our Linda Model implementation

Implementation of a Linda Model

tuple space

tuples

operations

In our implementation

AllegroCache

persistent objects of AllegroCache

based on AllegroCache functionstuples:

tuples rely on XML-Kenzo but tuple space is based on AllegroCache, so it is

necessary to convert from XML to objects and viceversa

A tuple is implemented as an object belonging to any of the subclasses of the

tuple class

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 9/21

Page 43: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Implementation of the operations

writetuple: tuple→ Booleantaketuple: tuple→ tuplereadtuple: tuple→ tuple-persistenttaketuplep: tuple→ tuple ∨ nilreadtuplep: tuple→ tuple-persistent ∨ nil

Implemented using the select, insert and delete-instance ofAllegroCache

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 10/21

Page 44: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Relations between the tuple space and the modules

I/O modulewrites pending tuplesreads finished tuples

Intelligent system

writes valid tupleswrites finished non valid tuplestakes pending tuples

Kenzo module

writes finished tuplestakes valid tuples

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 11/21

Page 45: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Relations between the tuple space and the modules

I/O modulewrites pending tuplesreads finished tuples

Intelligent systemwrites valid tupleswrites finished non valid tuplestakes pending tuples

Kenzo module

writes finished tuplestakes valid tuples

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 11/21

Page 46: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An adapted implementation of the Linda Model

Relations between the tuple space and the modules

I/O modulewrites pending tuplesreads finished tuples

Intelligent systemwrites valid tupleswrites finished non valid tuplestakes pending tuples

Kenzo modulewrites finished tuplestakes valid tuples

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 11/21

Page 47: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 48: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 49: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 50: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 51: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 52: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 53: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 54: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 55: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 56: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 57: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 58: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 59: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 60: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 61: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 62: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 63: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 64: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Architecture of the system An example of complete computation

Computing π6(S3)

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 12/21

Page 65: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules

Table of Contents

1 Introduction

2 Architecture of the system

3 Communication among modulesCommunicationConcurrency issues

4 Clients of our system

5 Conclusions and Further Work

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 13/21

Page 66: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Communication

Communication among modules

By means of a reactive mechanism

publish-subscribe machinery

subjects (can be modified)observers (subscribed to any possible subjects modification)

In our implementation:

tuple space → subjecteach module → an observertuple space → has got associated an observer

Subscriptions are stored in an AllegroCache database

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 14/21

Page 67: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Communication

Communication among modules

By means of a reactive mechanism

publish-subscribe machinery

subjects (can be modified)observers (subscribed to any possible subjects modification)

In our implementation:

tuple space → subjecteach module → an observertuple space → has got associated an observer

Subscriptions are stored in an AllegroCache database

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 14/21

Page 68: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Communication

Communication among modules

By means of a reactive mechanism

publish-subscribe machinery

subjects (can be modified)

observers (subscribed to any possible subjects modification)

In our implementation:

tuple space → subjecteach module → an observertuple space → has got associated an observer

Subscriptions are stored in an AllegroCache database

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 14/21

Page 69: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Communication

Communication among modules

By means of a reactive mechanism

publish-subscribe machinery

subjects (can be modified)observers (subscribed to any possible subjects modification)

In our implementation:

tuple space → subjecteach module → an observertuple space → has got associated an observer

Subscriptions are stored in an AllegroCache database

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 14/21

Page 70: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Communication

Communication among modules

By means of a reactive mechanism

publish-subscribe machinery

subjects (can be modified)observers (subscribed to any possible subjects modification)

In our implementation:

tuple space → subjecteach module → an observertuple space → has got associated an observer

Subscriptions are stored in an AllegroCache database

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 14/21

Page 71: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Communication

Communication among modules

By means of a reactive mechanism

publish-subscribe machinery

subjects (can be modified)observers (subscribed to any possible subjects modification)

In our implementation:

tuple space → subjecteach module → an observer

tuple space → has got associated an observer

Subscriptions are stored in an AllegroCache database

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 14/21

Page 72: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Communication

Communication among modules

By means of a reactive mechanism

publish-subscribe machinery

subjects (can be modified)observers (subscribed to any possible subjects modification)

In our implementation:

tuple space → subjecteach module → an observertuple space → has got associated an observer

Subscriptions are stored in an AllegroCache database

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 14/21

Page 73: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Communication

Communication among modules

By means of a reactive mechanism

publish-subscribe machinery

subjects (can be modified)observers (subscribed to any possible subjects modification)

In our implementation:

tuple space → subjecteach module → an observertuple space → has got associated an observer

Subscriptions are stored in an AllegroCache database

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 14/21

Page 74: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Communication

Communication among modules

Module observer creates a passive socket

Tuple space observer

Consults the database of subscriptions

Sends a notification to the subscribers

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 15/21

Page 75: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Communication

Communication among modules

Module observer creates a passive socket

Tuple space observer

Consults the database of subscriptions

Sends a notification to the subscribers

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 15/21

Page 76: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Concurrency issues

Concurrency issues

Several requests could be in the system at the same time

Linda Model design avoids some of the concurrency problemsTwo situations can appear:

Different modules working at the same time

Absence of deadlocksMutual exclusion

Different processes working in a same module

No deadlocksNo race condition problemsNo starvation

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 16/21

Page 77: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Concurrency issues

Concurrency issues

Several requests could be in the system at the same timeLinda Model design avoids some of the concurrency problems

Two situations can appear:

Different modules working at the same time

Absence of deadlocksMutual exclusion

Different processes working in a same module

No deadlocksNo race condition problemsNo starvation

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 16/21

Page 78: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Concurrency issues

Concurrency issues

Several requests could be in the system at the same timeLinda Model design avoids some of the concurrency problemsTwo situations can appear:

Different modules working at the same time

Absence of deadlocksMutual exclusion

Different processes working in a same module

No deadlocksNo race condition problemsNo starvation

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 16/21

Page 79: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Concurrency issues

Concurrency issues

Several requests could be in the system at the same timeLinda Model design avoids some of the concurrency problemsTwo situations can appear:

Different modules working at the same time

Absence of deadlocksMutual exclusion

Different processes working in a same module

No deadlocksNo race condition problemsNo starvation

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 16/21

Page 80: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Concurrency issues

Concurrency issues

Several requests could be in the system at the same timeLinda Model design avoids some of the concurrency problemsTwo situations can appear:

Different modules working at the same time

Absence of deadlocksMutual exclusion

Different processes working in a same module

No deadlocksNo race condition problemsNo starvation

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 16/21

Page 81: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Concurrency issues

Concurrency issues

Several requests could be in the system at the same timeLinda Model design avoids some of the concurrency problemsTwo situations can appear:

Different modules working at the same time

Absence of deadlocksMutual exclusion

Different processes working in a same module

No deadlocksNo race condition problemsNo starvation

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 16/21

Page 82: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Communication among modules Concurrency issues

Concurrency issues

Several requests could be in the system at the same timeLinda Model design avoids some of the concurrency problemsTwo situations can appear:

Different modules working at the same time

Absence of deadlocksMutual exclusion

Different processes working in a same module

No deadlocksNo race condition problemsNo starvation

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 16/21

Page 83: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Clients of our system

Table of Contents

1 Introduction

2 Architecture of the system

3 Communication among modules

4 Clients of our system

5 Conclusions and Further Work

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 17/21

Page 84: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Clients of our system

A GUI and two web services

A GUI

Two web services

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 18/21

Page 85: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Conclusions and Further Work

Table of Contents

1 Introduction

2 Architecture of the system

3 Communication among modules

4 Clients of our system

5 Conclusions and Further Work

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 19/21

Page 86: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Conclusions and Further Work

Conclusions and Further Work

Conclusions

We have reported on a system to interact with the KenzoComputer Algebra system

We have obtained a system which can process queriesconcurrently and where persistent results are available thanksto an adapted implementation in Common Lisp of the LindaModel

Future Work

Liberate our system from the proprietary features of AllegroCommon Lisp

Decide when a computation is easy enough to solve it locallyor whether it must be sent to a central server

Devise good heuristics to decide what is the meaning of thepredicate “to be an easy computation”

Integration with other systems

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 20/21

Page 87: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Conclusions and Further Work

Conclusions and Further Work

Conclusions

We have reported on a system to interact with the KenzoComputer Algebra system

We have obtained a system which can process queriesconcurrently and where persistent results are available thanksto an adapted implementation in Common Lisp of the LindaModel

Future Work

Liberate our system from the proprietary features of AllegroCommon Lisp

Decide when a computation is easy enough to solve it locallyor whether it must be sent to a central server

Devise good heuristics to decide what is the meaning of thepredicate “to be an easy computation”

Integration with other systems

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 20/21

Page 88: Applying Generative Communication to Symbolic …Introduction Table of Contents 1 Introduction 2 Architecture of the system 3 Communication among modules 4 Clients of our system 5

Applying Generative Communication to SymbolicComputation in Common Lisp

Jonathan Heras, Vico Pascual and Julio Rubio

Departamento de Matematicas y ComputacionUniversidad de La Rioja

Spain

2nd European Lisp Symposium 2009May 29, 2009

J. Heras, V. Pascual and J. Rubio Applying Generative Communication to Symbolic Computation in Common Lisp 21/21