Linking the semantics of a multithreaded discrete event simulation language
Verilog is a hardware description language (HDL) that has been standardized and widely used in
industry. MDESL is a Verilog-like language, which is a multithreaded discrete event simulation
language. The language contains interesting features such as event-driven computation and sharedvariable
concurrency. For ensuring correctness of hardware design, precise understanding of the
language based on semantics is very important. There are several semantics for the language and the
consistency of these semantics is challenging. This dissertation focuses on the semantics of MDESL
and their linking theory.
The denotational semantics of MDESL has been formalized under a discrete time model. In order
to deal with the shared-variable feature, the behaviour of a process is described in terms of a trace
of snapshots. The operational semantics has been formalised as a set of transition rules, which is
expressed in the notation of SOS( Structural Operational Semantics. A prototype of the operational
semantics has been developed using Prolog. The operational semantics is fully compositional, which
can be linked with the denotational semantics. Algebraic properties have been studied, which can be
used in support of program simplification and optimization. The program properties can be proved
by two approaches: denotational semantics and operational semantics (via bisimulation).
Two approaches have been proposed in order to formally link operational semantics with denotational
semantics. The first approach is to derive denotational semantics from operational semantics.
The second is the inverse approach, which is to derive operational semantics from denotational semantics.
In order to represent the denotational view of a transition, the concept of transition condition
and phase semantics has been defined for each type of transition and applied in both approaches.
Regarding the operational semantics, two significant questions have been investigated: soundness
and completeness. The understanding of these two aspects is based on the denotational semantics.
The operational semantics has been proved to be sound and complete. The aspect of
non-redundancy for operational semantics has also been discussed.
How the algebraic semantics relates with the operational semantics and denotational semantics
has also been explored. The approach starts from the algebraic semantics, where every program
is expressed as a healthy normal form of guarded choice. A transition system (i. e., operational
semantics) for MDESL has been derived and the equivalence between the derived transition system
and the derivation strategy has been proved. The healthy normal form has also been derived back
from the transition system. The denotational semantics for finite programs has also been derived
from the healthy normal form.
The results achieved here are not limited to MDESL. The approaches taken may also be applicable
to some other languages with different programming features.