Results 1  10
of
62
An algebraic semantics for mof
 Formal Asp. Comput
, 2010
"... Abstract. Modeldriven development is a field within software engineering in which software artifacts are represented as models in order to improve productivity, quality, and cost effectiveness. In this field, the MetaObject Facility (MOF) standard plays a crucial role by providing a generic fram ..."
Abstract

Cited by 31 (4 self)
 Add to MetaCart
(Show Context)
Abstract. Modeldriven development is a field within software engineering in which software artifacts are represented as models in order to improve productivity, quality, and cost effectiveness. In this field, the MetaObject Facility (MOF) standard plays a crucial role by providing a generic framework where the abstract syntax of different modeling languages can be defined. In this work, we present a formal, algebraic semantics of the MOF standard in membership equational logic (mel). By using the Maude language, which directly supports mel specifications, this formal semantics is furthermore executable, and can be used to perform useful formal analyses. The executable algebraic framework for MOF obtained this way has been integrated within the Eclipse Modeling Framework as a plugin. In this way, formal analyses, such as semantic consistency checks, become available within Eclipse to provide formal support for modeldriven development processes. Key words: MOF, modeldriven development, membership equational logic, metamodeling semantics, reflection. 1
Metamorphic Virus: Analysis and Detection
, 2008
"... Metamorphic viruses transform their code as they propagate, thus evading detection by static signaturebased virus scanners, while keeping their functionality. They use code obfuscation techniques to challenge deeper static analysis and can also beat dynamic analyzers, such as emulators, by altering ..."
Abstract

Cited by 22 (0 self)
 Add to MetaCart
Metamorphic viruses transform their code as they propagate, thus evading detection by static signaturebased virus scanners, while keeping their functionality. They use code obfuscation techniques to challenge deeper static analysis and can also beat dynamic analyzers, such as emulators, by altering their behavior. To achieve this, metamorphic viruses use several metamorphic transformations, including register renaming, code permutation, code expansion, code shrinking, and garbage code insertion. In this thesis, an indepth analysis of metamorphic viruses is presented, along with the techniques they use to transform their code to new generations. In order to give a better understanding of metamorphic viruses, a general discussion on malicious code and detection techniques is given first. Then, the description of several techniques to detect metamorphic viruses is given. A fair number of papers on metamorphic viruses exists in the literature, but no one is a complete discussion of all metamorphic techniques and detection methods. This thesis aims at a complete discussion of all metamorphic techniques used by
Substructural Operational Semantics as Ordered Logic Programming
"... We describe a substructural logic with ordered, linear, and persistent propositions and then endow a fragment with a committed choice forwardchaining operational interpretation. Exploiting higherorder terms in this metalanguage, we specify the operational semantics of a number of object language f ..."
Abstract

Cited by 17 (11 self)
 Add to MetaCart
(Show Context)
We describe a substructural logic with ordered, linear, and persistent propositions and then endow a fragment with a committed choice forwardchaining operational interpretation. Exploiting higherorder terms in this metalanguage, we specify the operational semantics of a number of object language features, such as callbyvalue, callbyname, callbyneed, mutable store, parallelism, communication, exceptions and continuations. The specifications exhibit a high degree of uniformity and modularity that allows us to analyze the structural properties required for each feature in isolation. Our substructural framework thereby provides a new methodology for language specification that synthesizes structural operational semantics, abstract machines, and logical approaches. 1
Matching logic: An alternative to Hoare/Floyd logic
 In AMAST’10, volume 6486 of LNCS
, 2010
"... Abstract. This paper introduces matching logic, a novel framework for defining axiomatic semantics for programming languages, inspired from operational semantics. Matching logic specifications are particular firstorder formulae with constrained algebraic structure, called patterns. Program configur ..."
Abstract

Cited by 16 (1 self)
 Add to MetaCart
(Show Context)
Abstract. This paper introduces matching logic, a novel framework for defining axiomatic semantics for programming languages, inspired from operational semantics. Matching logic specifications are particular firstorder formulae with constrained algebraic structure, called patterns. Program configurations satisfy patterns iff they match their algebraic structure and satisfy their constraints. Using a simple imperative language (IMP), it is shown that a restricted use of the matching logic proof system is equivalent to IMP’s Hoare logic proof system, in that any proof derived using either can be turned into a proof using the other. Extensions to IMP including a heap with dynamic memory allocation and pointer arithmetic are given, requiring no extension of the underlying firstorder logic; moreover, heap patterns such as lists, trees, queues, graphs, etc., are given algebraically using fistorder constraints over patterns. 1
Detection of metamorphic computer viruses using algebraic specification
 Journal in Computer Virology
, 2006
"... This paper describes a new approach towards the detection of metamorphic computer viruses through the algebraic specification of an assembly language. Metamorphic computer viruses are computer viruses that apply a variety of syntaxmutating, behaviourpreserving metamorphoses to their code in order ..."
Abstract

Cited by 14 (7 self)
 Add to MetaCart
(Show Context)
This paper describes a new approach towards the detection of metamorphic computer viruses through the algebraic specification of an assembly language. Metamorphic computer viruses are computer viruses that apply a variety of syntaxmutating, behaviourpreserving metamorphoses to their code in order to defend themselves against static analysis based detection methods. An overview of these metamorphoses is given. Then, in order to identify behaviourallyequivalent instruction sequences, the syntax and semantics of a subset of the IA32 assembly language instruction set is specified formally using OBJ – an algebraic specification formalism and theorem prover based on ordersorted equational logic. The concepts of equivalence and semiequivalence are given formally, and a means of proving equivalence from semiequivalence is given. The OBJ specification is shown to be useful for proving the equivalence or semiequivalence of IA32 instruction sequences by applying reductions – sequences of equational rewrites in OBJ. These proof methods are then applied to fragments of two different metamorphic computer viruses, Win95/Bistro and Win9x.Zmorph.A, in order to prove their (semi)equivalence. Finally, the application of these methods to the detection of metamorphic computer viruses in general is discussed.
A Rewriting Logic Approach to Type Inference ⋆
"... Abstract. Meseguer and Ros,u proposed rewriting logic semantics (RLS) as a programing language definitional framework that unifies operational and algebraic denotational semantics. RLS has already been used to define a series of didactic and real languages, but its benefits in connection with defini ..."
Abstract

Cited by 11 (4 self)
 Add to MetaCart
(Show Context)
Abstract. Meseguer and Ros,u proposed rewriting logic semantics (RLS) as a programing language definitional framework that unifies operational and algebraic denotational semantics. RLS has already been used to define a series of didactic and real languages, but its benefits in connection with defining and reasoning about type systems have not been fully investigated. This paper shows how the same RLS style employed for giving formal definitions of languages can be used to define type systems. The same termrewriting mechanism used to execute RLS language definitions can now be used to execute type systems, giving type checkers or type inferencers. The proposed approach is exemplified by defining the HindleyMilner polymorphic type inferencer W as a rewrite logic theory and using this definition to obtain a type inferencer by executing it in a rewriting logic engine. The inferencer obtained this way compares favorably with other definitions or implementations of W. The performance of the executable definition is within an order of magnitude of that of highly optimized implementations of type inferencers, such as that of OCaml. 1
Formal Specification and Verification of Java refactorings
, 2006
"... There is an extensive literature about refactorings of objectoriented programs, and many refactoring tools for the Java programming language. However, except for a few studies, in practice it is difficult to find precise formal specifications of the preconditions and mechanisms of automated refactor ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
(Show Context)
There is an extensive literature about refactorings of objectoriented programs, and many refactoring tools for the Java programming language. However, except for a few studies, in practice it is difficult to find precise formal specifications of the preconditions and mechanisms of automated refactorings. Moreover, there is usually no formal proof that a refactoring is correct, i.e., that it preserves the behavior of the program. We present an equational semantics based approach to Java refactoring. Specifically, we use an executable Java formal semantics in the Maude language to: (i) formally specify a number of useful Java refactorings; and (ii) give detailed proofs of correctness for two of those refactorings, showing that they are behaviorpreserving transformations. Besides the obvious benefits of providing rigorous specifications for refactoring tool builders and rigorous correctness guarantees, our approach has the additional advantage of its executability: our formal refactoring specifications can be used directly to refactor Java programs and yield a provably correct Java refactoring tool. Another important advantage of our approach is its extensibility by new userdefined refactorings that, when defined in terms of a basic library of verified refactorings, can be guaranteed to be correct by construction.
A Formal Executable Semantics of Verilog
"... This paper describes a formal executable semantics for the Verilog hardware description language. The goal of our formalization is to provide a concise and mathematically rigorous reference augmenting the prose of the official language standard, and ultimately to aid developers of Verilogbased tools ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
(Show Context)
This paper describes a formal executable semantics for the Verilog hardware description language. The goal of our formalization is to provide a concise and mathematically rigorous reference augmenting the prose of the official language standard, and ultimately to aid developers of Verilogbased tools; e.g., simulators, test generators, and verification tools. Our semantics applies equally well to both synthesizeable and behavioral designs and is given in a familiar, operationalstyle within a logic providing important additional benefits above and beyond static formalization. In particular, it is executable and searchable so that one can ask questions about how a, possibly nondeterministic, Verilog program can legally behave under the formalization. The formalization should not be seen as the final word on Verilog, but rather as a starting point and basis for community discussions on the Verilog semantics.
Partial order reduction for rewriting semantics of programming languages
, 2005
"... Abstract. Partial order reduction (POR) capabilities are typically added by extending a model checking algorithm supporting analysis of programs in a given programming language. In this paper we propose a generic method to generate a model checker with POR capabilities for any programming language ..."
Abstract

Cited by 9 (7 self)
 Add to MetaCart
(Show Context)
Abstract. Partial order reduction (POR) capabilities are typically added by extending a model checking algorithm supporting analysis of programs in a given programming language. In this paper we propose a generic method to generate a model checker with POR capabilities for any programming language of interest. The method is based on giving a formal executable specification of the semantics of a programming language L as a rewrite theory RL, and then exploiting the efficient execution, search, and LTL model checking capabilities of the Maude rewriting logic language to generate a model checker for L essentially for free. The key idea is to achieve the desired POR reduction by means of a theory transformation that transforms the theory RL into a semantically equivalent theory which is then used to explore the PORreduced state space. This can be done for a language L with relatively little effort (a few manweeks in total, including defining the language semantics, for a language like Java) and has the advantage of not requiring any changes in the underlying model checker. Our experiments with the JVM and with a Promelalike language indicate that significant state space reductions and time speedups can be gained for the tools generated this way. 1
A Rewriting Logic Semantics Approach to Modular Program Analysis
 Proceedings of the 21st International Conference on Rewriting Techniques and Applications, RTA 2010
"... Abstract. The K framework, based on rewriting logic semantics, provides a powerful logic for defining the semantics of programming languages. While most work in this area has focused on defining an evaluation semantics for a language, it is also possible to define an abstract semantics that can be u ..."
Abstract

Cited by 9 (4 self)
 Add to MetaCart
(Show Context)
Abstract. The K framework, based on rewriting logic semantics, provides a powerful logic for defining the semantics of programming languages. While most work in this area has focused on defining an evaluation semantics for a language, it is also possible to define an abstract semantics that can be used for program analysis. Using the SILF language (Hills, Serbanuta and Rosu, 2007), this paper describes one technique for defining such a semantics: policy frameworks. In policy frameworks, an analysisgeneric, modular framework is first defined for a language. Individual analyses, called policies, are then defined asextensions ofthisframework, witheachpolicydefininganalysisspecific semantic rulesandanannotationlanguagewhich, incombinationwithsupportinthelanguagefrontend, allows users to annotate program types and functions with information used during program analysis. Standard term rewriting techniques are used to analyze programs by evaluating them in the policy semantics.