The formal execution semantics of SpecC

We present a rigorous but transparent semantics definition of the SpecC language that covers the execution of SpecC behaviors and their interaction with the kernel process. The semantics include wait, wait for, par, and try statements as they are introduced in SpecC. We present our definition in form of distributed abstract state machine (ASM) rules strictly following the lines of the SpecC Language Reference Manual. We mainly see our formal semantics in three application areas. First, it is a concise, unambiguous description for documentation and standardization. Second, it applies as a high-level, pseudo code-oriented specification for the implementation of a SpecC simulator. Finally, it is a first step for SpecC synthesis in order to identify similar concepts with other languages like VHDL and SystemC for the definition of common patterns and language subsets.

[1]  Wolfgang Rosenstiel,et al.  The simulation semantics of SystemC , 2001, Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001.

[2]  Charles Wallace,et al.  The semantics of the C++ programming language , 1995, Specification and validation methods.

[3]  Daniel D. Gajski,et al.  SPECC: Specification Language and Methodology , 2000 .

[4]  Yuri Gurevich,et al.  Evolving algebras 1993: Lipari guide , 1995, Specification and validation methods.

[5]  Hisashi Sasaki,et al.  Semantic Validation of VHDL-AMS by an Abstract State Machine , 1997 .

[6]  Andreas Prinz,et al.  Towards a New Formal SDL Semantics based on Abstract State Machines , 1999 .

[7]  H. Sasaki A formal semantics for Verilog-VHDL simulation interoperability by abstract state machine , 1999, Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078).

[8]  Andreas Gerstlauer,et al.  System Design - A Practical Guide with SpecC , 2001 .

[9]  Yuri Gurevich,et al.  The Semantics of the C Programming Language , 1992, CSL.

[10]  Carlos Delgado Kloos,et al.  Formal Semantics for VHDL , 1995 .

[11]  Egon Börger,et al.  Annotated bibliography on evolving algebras , 1995, Specification and validation methods.

[12]  Egon Börger,et al.  Defining the Java Virtual Machine as Platform for Provably Correct Java Compilation , 1998, MFCS.

[13]  Yuri Gurevich Specification and validation methods , 1993, Specification and validation methods.

[14]  Egon Brger,et al.  Formal de nition of an abstract VHDL''''93 simulator by EA - machines , 1995 .