We propose a computation model based on the separation between truth and action. The state of an agent is considered to consist of two components: the task, representing actions to be performed, and the database, representing certain truths. The task specifies a composition (parallel, sequential, choice, synchronous) of elementary actions: queries and commands. Queries may only be executed when certain truths are entailed by the database. Commands always execute and as an effect may change the database. We thus have the osmosis metaphor: the task and database are separated as if by a membrane through which information flows in both directions causing the system to evolve. Truth may enable actions (queries) to be accomplished, and actions (commands) may change what is true. Commands are assumed to have a deterministic nature. We discuss the fundamental semantic properties needed for accommodating this basic model, and consider extensions to accomodate named tasks and their refinement rules, variables in tasks, and systems of named agents with separate rules and databases.
[1]
Robin Milner,et al.
Communication and concurrency
,
1989,
PHI Series in computer science.
[2]
António Porto,et al.
The AbstrAct Scheme for Concurrent Programming
,
1992,
ELP.
[3]
Luís Monteiro,et al.
A language for contextual logic programming
,
1993
.
[4]
Daniel Le Métayer.
Higher-Order Multiset Programming
,
1994,
Specification of Parallel Algorithms.
[5]
Daniel Le Métayer,et al.
The GAMMA Model and Its Discipline of Programming
,
1990,
Sci. Comput. Program..
[6]
Patrick Lincoln,et al.
Linear logic
,
1992,
SIGA.
[7]
Ehud Shapiro,et al.
The family of concurrent logic programming languages
,
1989,
CSUR.
[8]
Edwin D. de Jong,et al.
Schedules for multiset transformer programs
,
1996
.
[9]
Antonio Brogi,et al.
The concurrent language, Shared Prolog
,
1991,
TOPL.
[10]
Vijay A. Saraswat,et al.
Concurrent constraint programming
,
1989,
POPL '90.
[11]
David Gelernter,et al.
Generative communication in Linda
,
1985,
TOPL.