Jump to content

Semantics encoding

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Yoric~enwiki (talk | contribs) at 13:54, 18 April 2005. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Introduction

An semantics encoding is a "translation" between formal languages -- typically programming languages or description languages.

An encoding of a formal language A in a formal language B is a mapping of all terms of language A into language B. If there is a 'satisfactory' encoding of A in B, B is considered at least as powerful (or at least as 'expressive') as A.

Classifications of encodings

This informal notion of translation is not sufficient to help determine expressivity of languages, as it permits trivial encodings such as mapping all elements of A to the same element of B. Therefore, it is necessary to determine the definition of a "good enough" encoding.

This notion varies with the application. Commonly, an encoding can be judged on the following properties:

preservation of compositions
for every n-ary operator of A, there is an n-ary operator of B such that
preservation of observations (soundness)
assuming the existence of a notion of observation, for every observable behaviour of terms of A, there is a behaviour of terms of B such that for any term with behaviour , has behaviour .
preservation of observations (completeness)
assuming the existence of a notion of observation, for every observable behaviour of terms of A, there is a behaviour of terms of B such that for any term with behaviour , has behaviour .
preservation of equivalences (soundness)
assuming the existence of a notion of equivalence on A (typically, equality structural congruence or structural equivalence) and a notion of equivalence on B, if two terms and are equivalent in A, then and are equivalent in B.
preservation of equivalences (completeness)
assuming the existence of a notion of equivalence on A (typically, equality, structural congruence or structural equivalence) and a notion of equivalence on B, if two terms and are equivalent in B, then and are equivalent in A.
preservation of termination (soundness)
assuming a notion of reduction/rewriting, for any term , if all reductions of converge, then all reductions of converge.
preservatio of termination (completeness)
assuming a notion of reduction/rewriting, for any term , if all reductions of converge, then all reductions of converge.

Domain-specific properties

Under some circumstances, other properties can be important.

For instance, in process algebras, encodings are often expected to preserve distribution:

preservation of distribution
if a term is the composition of two agents then must be

the composition of two agents