Object-oriented software specification in programming language design and implementation

An object-oriented formal specification workbench is proposed for defining the syntax and semantics of programming languages, using which the formal properties of different languages can be elaborated and analyzed. Our specification approach is an object-oriented representation, structured around a denotational semantics methodology which abstracts out various common details so that formal syntax and semantics can be defined elegantly. Specific details can be inherited and specialized in defining the semantics of various programming languages, and the reusability and modifiability of many programming language features can be manifested across language paradigms. Furthermore, prototype implementations for these languages may be automatically developed from the formal specifications, providing a mechanism for compiler/interpreter reuse at the specification level.

[1]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[2]  Dines Bjørner,et al.  Formal specification and software development , 1982 .

[3]  Andrew W. Appel,et al.  Modern Compiler Implementation in Java , 1997 .

[4]  Paul Hudak,et al.  Monad transformers and modular interpreters , 1995, POPL '95.

[5]  Roger Duke,et al.  Object-Z: a specification language advocated for the description of standards , 1995 .

[6]  Jin Song Dong,et al.  An object-oriented approach to the semantics of programming languages , 1994 .

[7]  Jens Palsberg,et al.  Object-oriented type systems , 1994, Wiley professional computing.

[8]  Yuri Gurevich,et al.  Evolving Algebras: an Attempt to Discover Semantics , 1993, Current Trends in Theoretical Computer Science.

[9]  Chris t ian Weber Creation of a Family of Compilers and Runtime Environments by Combining Reusable Components , 1992, CC.

[10]  Peter D. Mosses,et al.  An Action Semantics for ML Concurrency Primitives , 1994, FME.

[11]  David A. Schmidt Denotational Semantics: A Methodology for Language Development by Phil , 1987 .

[12]  John H. Reppy,et al.  Simple objects for Standard ML , 1996, PLDI '96.

[13]  Kevin Lano The B language and method - a guide to practical formal development , 1996, FACIT: Formal approaches to computing and information technology.

[14]  J. Roger Hindley,et al.  Introduction to combinators and λ-calculus , 1986, Acta Applicandae Mathematicae.

[15]  Robin Milner,et al.  Definition of standard ML , 1990 .

[16]  Peter Lee Realistic compiler generation , 1989, Foundations of Computing Series.

[17]  Flemming Nielson,et al.  Semantics directed compiling for functional languages , 1986, LFP '86.

[18]  Shirley Dex,et al.  JR 旅客販売総合システム(マルス)における運用及び管理について , 1991 .

[19]  Matthias Felleisen,et al.  The Denotational Specifications of Complex Languages , 2005 .

[20]  M. Felleisen,et al.  Extensible Denotational Language Speciications Extensible Denotational Language Specifications ? 2 Extensible Operational Semantics Are Expressions, with X Possibly Free in E, 4 , 1994 .

[21]  Guy L. Steele,et al.  Building interpreters by composing monads , 1994, POPL '94.

[22]  Andrea Clematis,et al.  Reusing a compiler , 1994, SAC '94.

[23]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[24]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[25]  Graeme Smith,et al.  The Object-Z Specification Language , 1999, Advances in Formal Methods.

[26]  Jim Holmes Object-oriented compiler construction , 1994 .