140,458 research outputs found
XAGra - an XML dialect for attribute grammars
Attribute Grammars (AG) are a powerful and well-known formalism used to create language processors. The meta-language used to write an AG (to specify a language and its processor) depends on the compiler generator tool chosen. This fact can be an handicap when it is necessary to share or transfer information between language-based systems; this is, we face an interchangeability
problem, if we want to reuse the same language specification (the AG) on another
development environment.
To overcome this interoperability flaw, we present in this paper XAGra - an XML dialect to describe attribute grammars. XAGra was precisely conceived aiming at adapting the output of a visual attribute grammar editor (named VisualLISA) to any compiler generator tool.
Based on the formal definition of Attribute Grammar and on the usual requirements
for the generation of a language processor, XAGra schema is divided into five main fragments: symbol declarations, attribute declarations, semantic productions (including attribute evaluation rules, contextual conditions, and translation
rules), import, and auxiliary functions definitions. In the paper we present those components, but the focus will be on the systematic way we followed to design the XML schema based on the formal definition of AG.
To strength the usefulness of XAGra as a universal AG specification, we show at a
glance XAGraAl, a tool taking as input an AG written in XAGra, is a Grammar Analyzer and Transformation system that computes dependencies among symbols, various metrics, slices and rebuilds the grammar
Learning metamorphic malware signatures from samples
Metamorphic malware are self-modifying programs which apply semantic preserving transformations to their own code in order to foil detection systems based on signaturematching. Metamorphism impacts both software security and code protection technologies: it is used by malware writers to evade detection systems based on pattern matching and by software developers for preventing malicious host attacks through software diversification. In this paper, we consider the problem of automatically extracting metamorphic signatures from the analysis of metamorphic malware variants. We define a metamorphic signature as an abstract program representation that ideally captures all the possible code variants that might be generated during the execution of a metamorphic program. For this purpose, we developed MetaSign: a tool that takes as input a collection of metamorphic code variants and produces, as output, a set of transformation rules that could have been used to generate the considered metamorphic variants. MetaSign starts from a control flow graph representation of the input variants and agglomerates them into an automaton which approximates the considered code variants. The upper approximation process is based on the concept of widening automata, while the semantic preserving transformation rules, used by the metamorphic program, can be viewed as rewriting rules and modeled as grammar productions. In this setting, the grammar recognizes the language of code variants, while the production rules model the metamorphic transformations. In particular, we formalize the language of code variants in terms of pure context-free grammars, which are similar to context-free grammars with no terminal symbols. After the widening process, we create a positive set of samples from which we extract the productions of the grammar by applying a learning grammar technique. This allows us to learn the transformation rules used by the metamorphic engine to generate the considered code variants. We validate the results of MetaSign on some case studies
The ModelCC Model-Driven Parser Generator
Syntax-directed translation tools require the specification of a language by
means of a formal grammar. This grammar must conform to the specific
requirements of the parser generator to be used. This grammar is then annotated
with semantic actions for the resulting system to perform its desired function.
In this paper, we introduce ModelCC, a model-based parser generator that
decouples language specification from language processing, avoiding some of the
problems caused by grammar-driven parser generators. ModelCC receives a
conceptual model as input, along with constraints that annotate it. It is then
able to create a parser for the desired textual syntax and the generated parser
fully automates the instantiation of the language conceptual model. ModelCC
also includes a reference resolution mechanism so that ModelCC is able to
instantiate abstract syntax graphs, rather than mere abstract syntax trees.Comment: In Proceedings PROLE 2014, arXiv:1501.0169
Modeling and Reasoning over Distributed Systems using Aspect-Oriented Graph Grammars
Aspect-orientation is a relatively new paradigm that introduces abstractions
to modularize the implementation of system-wide policies. It is based on a
composition operation, called aspect weaving, that implicitly modifies a base
system by performing related changes within the system modules. Aspect-oriented
graph grammars (AOGG) extend the classic graph grammar formalism by defining
aspects as sets of rule-based modifications over a base graph grammar. Despite
the advantages of aspect-oriented concepts regarding modularity, the implicit
nature of the aspect weaving operation may also introduce issues when reasoning
about the system behavior. Since in AOGGs aspect weaving is characterized by
means of rule-based rewriting, we can overcome these problems by using known
analysis techniques from the graph transformation literature to study aspect
composition. In this paper, we present a case study of a distributed
client-server system with global policies, modeled as an aspect-oriented graph
grammar, and discuss how to use the AGG tool to identify potential conflicts in
aspect weaving
- …