Results 1 
5 of
5
A HighLevel Modular Definition of the Semantics of C#
 Journal Theoretical Computer Science
, 2004
"... We propose a structured mathematical definition of the semantics of C# programs to provide a platformindependent interpreter view of the language for the C# programmer, which can also be used for a precise analysis of the ECMA [22] standard of the language and as a reference model for teaching. The ..."
Abstract

Cited by 16 (4 self)
 Add to MetaCart
We propose a structured mathematical definition of the semantics of C# programs to provide a platformindependent interpreter view of the language for the C# programmer, which can also be used for a precise analysis of the ECMA [22] standard of the language and as a reference model for teaching. The definition takes care to reflect directly and faithfully  as much as possible without becoming inconsistent or incomplete  the descriptions in the C# standard to become comparable with the corresponding models for Java in [37] and to provide for implementors the possibility to check their basic design decisions against an accurate highlevel model. The model sheds light on some of the dark corners of C# and on some critical differences between the ECMA standard and the implementations of the language.
Abstract State Machines: A unifying view of models of computation and of system design frameworks
 Annals of Pure and Applied Logic
, 2005
"... We capture the principal models of computation and specification in the literature by a uniform set of transparent mathematical descriptions which—starting from scratch—provide the conceptual basis for a comparative study 1. 1 ..."
Abstract

Cited by 9 (5 self)
 Add to MetaCart
We capture the principal models of computation and specification in the literature by a uniform set of transparent mathematical descriptions which—starting from scratch—provide the conceptual basis for a comparative study 1. 1
Exploiting abstraction for specification reuse. The Java/C♯ case study
 PROC. FMCO’03, LNCS
, 2004
"... From the models provided in [11] and [4] for the semantics of Java and C♯ programs we abstract the mathematical structure that underlies the semantics of both languages. The resulting model reveals the kernel of objectoriented programming language constructs and can be used for teaching them withou ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
From the models provided in [11] and [4] for the semantics of Java and C♯ programs we abstract the mathematical structure that underlies the semantics of both languages. The resulting model reveals the kernel of objectoriented programming language constructs and can be used for teaching them without being bound to a particular language. It also allows us to identify precisely some of the major differences between Java and C♯.
Turbo ASMs for functional equations and recursion schemes
 CNR, Istituto IEI—Dipartimento di Informatica, Università di
, 2002
"... Abstract. The question raised in [15] is answered how to naturally model widely used forms of recursion by abstract machines. We show that turbo ASMs as defined in [7] allow one to faithfully reflect the common intuitive singleagent understanding of recursion. The argument is illustrated by turbo A ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Abstract. The question raised in [15] is answered how to naturally model widely used forms of recursion by abstract machines. We show that turbo ASMs as defined in [7] allow one to faithfully reflect the common intuitive singleagent understanding of recursion. The argument is illustrated by turbo ASMs for Mergesort and Quicksort. Using turbo ASMs for returning function values allows one to seamlessly integrate functional description and programming techniques into the highlevel ’abstract programming ’ by state transforming ASM rules. 1
Abstract Effective Models
"... We modify Gurevich’s notion of abstract machine so as to encompass computational models, that is, sets of machines that share the same domain. We also add an effectiveness requirement. The resultant class of “Effective Models ” includes all known Turingcomplete statetransition models, operating ov ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
We modify Gurevich’s notion of abstract machine so as to encompass computational models, that is, sets of machines that share the same domain. We also add an effectiveness requirement. The resultant class of “Effective Models ” includes all known Turingcomplete statetransition models, operating over any countable domain. 1 Sequential Procedures We first define “sequential procedures”, along the lines of the “sequential algorithms ” of [3]. These are abstract state transition systems, whose states are algebras. Definition 1 (States). • A state is a structure (algebra) s over a (finitearity) vocabulary F, that is, a domain (nonempty set of elements) D together with interpretations [f]s over D of the function names f ∈ F. • A location of vocabulary F over a domain D is a pair, denoted f(a), where f is a kary function name in F and a ∈ D k. • The value of a location f(a) in a state s, denoted [f(a)]s, is the domain element [f]s(a). • We sometimes use a term f(t1,..., tk) to refer to the location f([t1]s,..., [tk]s). • Two states s and s ′ over vocabulary F with the same domain coincide over a set T of Fterms if [t]s = [[t]s ′ for all terms t ∈ T. • An update of location l over domain D is a pair, denoted l: = v, where v ∈ D. • The modification of a state s into another state s ′ over the same vocabulary and domain is ∆(s, s ′ ) = {l: = v ′  [l]s � = [l]s ′ = v ′}. • A mapping ρ(s) of state s over vocabulary F and domain D via injection ρ: D → D ′ is a state s ′ of vocabulary F over D ′ , such that ρ([f(a)]s) = [f(ρ(a))]s ′ for every location f(a) of s. • Two states s and s ′ over the same vocabulary with domains D and D ′ , respectively, are isomorphic if there is a bijection π: D ↔ D ′ , such that s ′ = π(s). A “sequential procedure ” is like Gurevich’s [3] “sequential algorithm”, with two modifications for computing a specific function, rather than expressing an abstract algorithm: the procedure vocabulary includes special constants “In ” and “Out”; there is a single initial state, up to changes in