the proceedings contain 20 papers. the topics discussed include: thr2csp: toward transforming threads into communicating sequential processes;chopping concurrent programs;properties of slicing definitions;improving si...
ISBN:
(纸本)9780769537931
the proceedings contain 20 papers. the topics discussed include: thr2csp: toward transforming threads into communicating sequential processes;chopping concurrent programs;properties of slicing definitions;improving side-effect analysis with lazy access path resolving;towards comparing and combining points-to analyses;static estimation of test coverage;an assessment of type-3 clones as detected by state-of-the-art tools;identifying 'linchpin vertices' that cause large dependence clusters;lightweight techniques for tracking unique program statements;maintaining fine-grained code metadata regardless of moving, copying and merging;an evaluation of current Java bytecode decompilers;engineering abstractions in model checking and testing;metric extraction framework based on a high-level description language;and recovering grammar relationships for the Java language specification.
the FermaT Maintenance Environment (FME) is a platform independent graphical user interface for the FermaT program transformation system. It is able to represent WSL code and apply FermaT transformations on single sta...
详细信息
ISBN:
(纸本)9780769537931
the FermaT Maintenance Environment (FME) is a platform independent graphical user interface for the FermaT program transformation system. It is able to represent WSL code and apply FermaT transformations on single statements.
A chop for a source statement s and a target statement t reveals the program parts involved in conveying effects, from s to t. While precise chopping algorithms for sequential programs are known, no chopping algorithm...
详细信息
ISBN:
(纸本)9780769537931
A chop for a source statement s and a target statement t reveals the program parts involved in conveying effects, from s to t. While precise chopping algorithms for sequential programs are known, no chopping algorithm for concurrent programs has been reported at all. this work introduces five chopping algorithms for concurrent programs, which offer different degrees of precision, ranging from imprecise over context-sensitive to time-sensitive. Our evaluation on concurrent Java programs shows that context-sensitive and tinge-sensitive chopping can reduce chop sizes significantly.
sourcecode metadata on a file-level granularity is too coarse for certain applications. But fine-grained metadata (e.g. line-by-line authorship) easily gets lost dire to changes like merging, proving or copying code....
详细信息
ISBN:
(纸本)9780769537931
sourcecode metadata on a file-level granularity is too coarse for certain applications. But fine-grained metadata (e.g. line-by-line authorship) easily gets lost dire to changes like merging, proving or copying code. Enabling metadata to survive code evolution provides valuable insights into program sourcecode. this helps developers to understand the sources and opens up opportunities for advanced tools. We present a concept that utilizes different search heuristics to identify probable ancestors of source documents, and pair this with clone detection to locate origins of inserted code. Arbitrary kinds of metadata can then be linked to code sections and be preserved automatically while code evolves. We evaluate our approach using code from the Hydra and FreeCol projects, and sketch prospective applications.
Java 5 has introduced a number 4 new syntactical language features that make development faster, easier, and safer. However, at the same time, it has also introduced downward incompatibilities: code written for Java 5...
详细信息
ISBN:
(纸本)9780769537931
Java 5 has introduced a number 4 new syntactical language features that make development faster, easier, and safer. However, at the same time, it has also introduced downward incompatibilities: code written for Java 5 cannot be used on pre-Java 5 platforms. this tool demonstration presents a number of source-to-source transformations that backport sourcecode written for the Java 5 platform to legacy platforms. Developers who are, for different reasons, still bound to legacy platforms can benefit with help of this tool front the new language,features, and they can use third-party components written for more recent platforms. Compared to twisting tools, ours is the first that can backport all new syntactical Java 5 language features while the user maintains full control of the sourcecode.
Mane automated software engineering tools require tight integration of techniques for sourcecodeanalysis and manipulation. State-of-the-art tools exist for both, but the domains have remained notoriously separate be...
详细信息
ISBN:
(纸本)9780769537931
Mane automated software engineering tools require tight integration of techniques for sourcecodeanalysis and manipulation. State-of-the-art tools exist for both, but the domains have remained notoriously separate because different computational paradigms fit each domain best. this impedance mismatch hampers the development of new solutions because the desired functionality and scalability can only be achieved by repeated and ad hoc integration of different techniques. RASCAL is a domain-specific language that takes away most of this boilerplate by integrating sourcecodeanalysis and manipulation at the conceptual, syntactic, semantic and technical level. We give an overview of the language: and assess its merits by implementing a complex refactoring.
We demonstrate the value analysis of Frama-C. Frama-C is an Open source static analysis framework for the C language. In Frama-C, each static analysis technique, approach or idea can be implemented as a new plug-in, w...
详细信息
ISBN:
(纸本)9780769537931
We demonstrate the value analysis of Frama-C. Frama-C is an Open source static analysis framework for the C language. In Frama-C, each static analysis technique, approach or idea can be implemented as a new plug-in, withthe opportunity to obtain information from other plug-ins, and to leave the verification of difficult properties to yet other plug-ins. the new analysis may in turn provide access to the data it has computed. the value analysts of Frama-C is a plug-in based on abstract interpretation. It computes and stores supersets of possible values for all the variables at each statement of the analyzed program. It handles pointers, arrays, structs, and heterogeneous pointer casts. Besides producing supersets of possible values for the variables at each point of the execution, the value analysis produces run-time-error alarms. An alarm is emitted for each operation in the analyzed program where the value analysis cannot guarantee that there will not he a run-time error.
When we designed the first version of Rascal in 2009, we jokingly promised ourselves to only write a single paper on the language itself, and see it as vehicle for research from then on,that one paper became the scam ...
详细信息
ISBN:
(纸本)9781728149370
When we designed the first version of Rascal in 2009, we jokingly promised ourselves to only write a single paper on the language itself, and see it as vehicle for research from then on,that one paper became the scam 2009 article [2], now awarded withthe scam most influential paper award. Since then, Rascal has evolved significantly, and has been successfully applied in research, education, and industry. this extended abstract gives an overview of the impact of Rascal over the last 10 years, and looks at current and future developments.
Weiser9;s original papers on slicing defined the concept in an informal way. Since then there have been several attempts to formalise slicing using various formal methods and semantics of programs. In this paper we...
详细信息
ISBN:
(纸本)9780769537931
Weiser's original papers on slicing defined the concept in an informal way. Since then there have been several attempts to formalise slicing using various formal methods and semantics of programs. In this paper we start by defining some properties that a definition of slicing might reasonably be expected to satisfy and then compare different definitions of slicing to see which properties are satisfied. Properties are classified into "floor" requirements: all slices satisfying the property must be considered as valid, and "ceiling" requirements: slices which do not satisfy the property must not be considered valid. Any slicing relation which lies above a "floor" requirement, or below a "ceiling" requirement, satisfies the property in question. the main result of the paper is the proof that, given a certain property of the programming language (informally: it is possible to write an infinite loop in the language), two of the most basic and fundamental properties of slicing are sufficient to completely characterise the semantic part of the slicing relation. these properties are: behaviour preservation and truncation.
暂无评论