Catálogo de publicaciones - libros

Compartir en
redes sociales


Programming Languages and Systems: 4th Asian Symposium, APLAS 2006, Sydney, Australia, November 8-10, 2006, Proceedings

Naoki Kobayashi (eds.)

En conferencia: 4º Asian Symposium on Programming Languages and Systems (APLAS) . Sydney, NSW, Australia . November 8, 2006 - November 10, 2006

Resumen/Descripción – provisto por la editorial

No disponible.

Palabras clave – provistas por la editorial

No disponibles.

Disponibilidad
Institución detectada Año de publicación Navegá Descargá Solicitá
No detectada 2006 SpringerLink

Información

Tipo de recurso:

libros

ISBN impreso

978-3-540-48937-5

ISBN electrónico

978-3-540-48938-2

Editor responsable

Springer Nature

País de edición

Reino Unido

Fecha de publicación

Información sobre derechos de publicación

© Springer-Verlag Berlin Heidelberg 2006

Tabla de contenidos

Widening Polyhedra with Landmarks

Axel Simon; Andy King

The abstract domain of polyhedra is sufficiently expressive to be deployed in verification. One consequence of the richness of this domain is that long, possibly infinite, sequences of polyhedra can arise in the analysis of loops. Widening and narrowing have been proposed to infer a single polyhedron that summarises such a sequence of polyhedra. Motivated by precision losses encountered in verification, we explain how the classic widening/narrowing approach can be refined by an improved extrapolation strategy. The insight is to record inequalities that are thus far found to be unsatisfiable in the analysis of a loop. These so-called landmarks hint at the amount of widening necessary to reach stability. This extrapolation strategy, which refines widening with thresholds, can infer post-fixpoints that are precise enough not to require narrowing. Unlike previous techniques, our approach interacts well with other domains, is fully automatic, conceptually simple and precise on complex loops.

Palabras clave: Convex Polyhedron; Loop Iteration; Abstract Interpretation; Abstract Domain; Widening Point.

- Session 4 | Pp. 166-182

Comparing Completeness Properties of Static Analyses and Their Logics

David A. Schmidt

Static analyses calculate abstract states, and their logics validate properties of the abstract states. We place into perspective the variety of forwards, backwards, functional, and logical completeness used in abstract-interpretation-based static analysis by giving examples and by proving equivalences, implications, and independences. We expose two fundamental Galois connections that underlie the logics for static analyses and reveal a new completeness variant, O-completeness . We also show that the key concept underlying logical completeness is covering , which we use to relate the various forms of completeness.

- Session 4 | Pp. 183-199

Polymorphism, Subtyping, Whole Program Analysis and Accurate Data Types in Usage Analysis

Tobias Gedell; Jörgen Gustavsson; Josef Svenningsson

There are a number of choices to be made in the design of a type based usage analysis. Some of these are: Should the analysis be monomorphic or have some degree of polymorphism? What about subtyping? How should the analysis deal with user defined algebraic data types? Should it be a whole program analysis? Several researchers have speculated that these features are important but there has been a lack of empirical evidence. In this paper we present a systematic evaluation of each of these features in the context of a full scale implementation of a usage analysis for Haskell. Our measurements show that all features increase the precision. It is, however, not necessary to have them all to obtain an acceptable precision.

Palabras clave: Usage Analysis; Program Transformation; Context Sensitivity; Program Point; Call Site.

- Session 4 | Pp. 200-216

A Modal Language for the Safety of Mobile Values

Sungwoo Park

In the context of distributed computations, local resources give rise to an issue not found in stand-alone computations: the safety of mobile code. One approach to the safety of mobile code is to build a modal type system with the modality □ that corresponds to necessity of modal logic. We argue that the modality □ is not expressive enough for safe communications in distributed computations, in particular for the safety of mobile values. We present a modal language which focuses on the safety of mobile values rather than the safety of mobile code. The safety of mobile values is achieved with a new modality $\boxdot$ which expresses that given code evaluates to a mobile value. We demonstrate the use of the modality $\boxdot$ with a communication construct for remote procedure calls.

Palabras clave: Modal Logic; Type System; Node Reference; Modal Language; Elimination Rule.

- Session 5 | Pp. 217-233

An Analysis for Proving Temporal Properties of Biological Systems

Roberta Gori; Francesca Levi

This paper concerns the application of formal methods to biological systems, modeled specifically in BioAmbients [34], a variant of the Mobile Ambients [4] calculus. Following the semantic-based approach of abstract interpretation, we define a new static analysis that computes an abstract transition system. Our analysis has two main advantages with respect to the analyses appearing in literature: (i) it is able to address temporal properties which are more general than invariant properties; (ii) it supports, by means of a particular labeling discipline , the validation of systems where several copies of an ambient may appear.

Palabras clave: Model Check; Abstract State; Temporal Property; Abstract Interpretation; Reachability Analysis.

- Session 5 | Pp. 234-252

Computational Secrecy by Typing for the Pi Calculus

Martín Abadi; Ricardo Corin; Cédric Fournet

We define and study a distributed cryptographic implementation for an asynchronous pi calculus. At the source level, we adapt simple type systems designed for establishing formal secrecy properties. We show that those secrecy properties have counterparts in the implementation, not formally but at the level of bitstrings, and with respect to probabilistic polynomial-time active adversaries. We rely on compilation to a typed intermediate language with a fixed scheduling strategy. While we exploit interesting, previous theorems for that intermediate language, our result appears to be the first computational soundness theorem for a standard process calculus with mobile channels.

Palabras clave: Input Process; Source Process; Mobile Channel; Intermediate Language; Secrecy Property.

- Session 5 | Pp. 253-269

Scheme with Classes, Mixins, and Traits

Matthew Flatt; Robert Bruce Findler; Matthias Felleisen

The Scheme language report advocates language design as the composition of a small set of orthogonal constructs, instead of a large accumulation of features. In this paper, we demonstrate how such a design scales with the addition of a class system to Scheme. Specifically, the PLT Scheme class system is a collection of orthogonal linguistic constructs for creating classes in arbitrary lexical scopes and for manipulating them as first-class values. Due to the smooth integration of classes and the core language, programmers can express mixins and traits, two major recent innovations in the object-oriented world. The class system is implemented as a macro in terms of procedures and a record-type generator; the mixin and trait patterns, in turn, are naturally codified as macros over the class system.

Palabras clave: Class System; Method Call; Multiple Inheritance; Initialization Argument; Method Declaration.

- Invited Tutorial | Pp. 270-289

Using Metadata Transformations to Integrate Class Extensions in an Existing Class Hierarchy

Markus Lumpe

Class extensions provide a fine-grained mechanism to define incremental modifications to class-based systems when standard subclassing mechanisms are inappropriate. To control the impact of class extensions, the concept of classboxes has emerged that defines a new module system to restrict the visibility of class extensions to selected clients. However, the existing implementations of the classbox concept rely either on a “classbox-aware” virtual machine, an expensive runtime introspection of the method call stack to build the structure of a classbox, or both. In this paper we present an implementation technique that allows for the structure of a classbox to be constructed at compile-time by means of metadata transformations to rewire the inheritance graph of refined classes. These metadata transformations are language-neutral and more importantly preserve both the semantics of the classbox concept and the integrity of the underlying deployment units. As a result, metadata transformation provides a feasible approach to incorporate the classbox concept into programming environments that use a virtual execution system .

Palabras clave: Virtual Machine; Class Hierarchy; Class Point; Class Extension; Text Section.

- Session 6 | Pp. 290-306

Combining Offline and Online Optimizations: Register Allocation and Method Inlining

Hiroshi Yamauchi; Jan Vitek

Fast dynamic compilers trade code quality for short compilation time in order to balance application performance and startup time. This paper investigates the interplay of two of the most effective optimizations, register allocation and method inlining for such compilers. We present a bytecode representation which supports offline global register allocation, is suitable for fast code generation and verification, and yet is backward compatible with standard Java bytecode.

Palabras clave: Compilation Time; Java Virtual Machine; Register Allocation; Online Optimization; Interference Graph.

- Session 6 | Pp. 307-322

A Localized Tracing Scheme Applied to Garbage Collection

Yannis Chicha; Stephen M. Watt

We present a method to visit all nodes in a forest of data structures while taking into account object placement. We call the technique a Localized Tracing Scheme as it improves locality of reference during object tracing activity. The method organizes the heap into regions and uses trace queues to defer and group tracing of remote objects. The principle of localized tracing reduces memory traffic and can be used as an optimization to improve performance at several levels of the memory hierarchy. The method is applicable to a wide range of uniprocessor garbage collection algorithms as well as to shared memory multiprocessor collectors. Experiments with a mark-and-sweep collector show performance improvements up to 75% at the virtual memory level.

Palabras clave: Main Memory; Garbage Collection; Memory Management; Memory Hierarchy; Primary Memory.

- Session 6 | Pp. 323-339