Destacada participación tendrán investigadores del DCC en ECOOP 2011


Compartir

 A dos profesores y un alumno de Doctorado del Departamento les aceptaron sus papers en la ECOOP, conferencia técnica de mayor impacto en el área de programación por objetos.

 

A los académicos del Departamento de Ciencias de la Computación (DCC) Alex Bergel, Éric Tanter y al alumno de Doctorado Guillaume Pothier, la European Conference on Object-Oriented Programming (ECOOP) aceptó sus papers, lo cual es muy significativo. “Tener un paper publicado en esta conferencia asegura máxima visibilidad y mayor impacto en la comunidad, además sólo dos universidades lograron tener tres papers ahí: CMU, y nosotros”, comenta el profesor Éric Tanter.

 

Según explica el académico, la European Conference on Object-Oriented Programming (ECOOP) junto con Object-Oriented Programming, Systems, Languages & Applications (OOPSLA) son las conferencias técnicas de mayor impacto en el área de programación por objetos, ya que abarcan desde ingeniería de software con objetos, hasta teoría de lenguajes de programación, pasando por herramientas, análisis y validación, entre otros.

 

La conferencia, donde los integrantes del Departamento y del laboratorio PLEIAD fueron aceptados tiene 25 años de existencia y se realiza una vez por año. “Siempre recibe más de 100 artículos, de los cuales unos 20 aproximadamente quedan aceptados”, explica Éric Tanter.

 

A su vez, es importante decir que la conferencia es de total referencia en el área. Por ejemplo, el sistema Microsoft Academic Search identifica casi 800 publicaciones ECOOP desde su inicio, con más de 20.000 citas en total; lo que significa un promedio de 25 citas por artículo.

 

En el área de lenguajes de programación, ese promedio ubica a ECOOP en tercer  lugar de las conferencias más impactantes, después de POPL y PLDI, “lo que es muy importante. Éstas dos son de lenguajes en general, mientras que ECOOP está dedicada sólo a objetos”, enfatiza el profesor Éric Tanter.

 

 

Resúmenes papers DCC aceptados en ECOOP 2011

 

Gradual Typestate

 

Roger Wolff, Carnegie Mellon University, USA
Ronald Garcia, Carnegie Mellon University, USA
Éric Tanter, University of Chile, Chile
Jonathan Aldrich, Carnegie Mellon University, USA

Typestate reflects how the legal operations on imperative objects can change at runtime as their internal state changes. A typestate checker can statically ensure, for instance, that an object method is only called when the object is in a state for which the operation is well-defined. Prior work has shown how modular typestate checking can be achieved thanks to access permissions and state guarantees. However, static typestate checking is still too rigid for some applications.
 

This paper formalizes a nominal object-oriented language with mutable state that integrates typestate change and typestate checking as primitive concepts. In addition to augmenting the types of object references with access permissions and state guarantees, the language extends the notion of gradual typing to account for typestate: gradual typestate checking seamlessly combines static and dynamic checking by automatically inserting runtime checks into programs. A novel flow-sensitive permission-based type system allows programmers to write safe code even when the static type checker can only partly verify it.

 

Summarized Trace Indexing and Querying for Scalable Back-in-Time Debugging    

    

Guillaume Pothier, University of Chile, Chile
Éric Tanter, University of Chile, Chile

 

Back-in-time debuggers offer an interactive exploration interface to execution traces. However, maintaining a good level of interactivity with large execution traces is challenging. Current approaches either maintain execution traces in memory, which limits scalability, or perform exhaustive on-disk indexing, which is not efficient enough.
 

We present a novel scalable disk-based approach that supports efficient capture, indexing, and interactive navigation of arbitrarily large execution traces. In particular, our approach provides strong guarantees in terms of query processing time, ensuring an interactive debugging experience. The execution trace is divided into bounded-size execution blocks about which summary information is indexed. Blocks themselves are discarded, and retrieved as needed through partial deterministic replay. For querying, the index provides coarse answers at the level of execution blocks, which are then replayed to find the exact answer. Benchmarks on a prototype for Java show that the system is fast in practice, and outperforms existing back-in-time debuggers.

 

Code profiling

 

Alexander Bergel, University of Chile, Chile

 

Code profilers are used to identify execution bottlenecks and understand the cause of a slowdown. Execution sampling is a monitoring technique commonly employed by code profilers because of its low impact on execution. Regularly sampling the execution of an application estimates the amount of time the interpreter, hardware or software, spent in each method execution time. Nevertheless, this execution time estimation is highly sensitive to the execution environment, making it non reproductive, non-deterministic and not comparable across platforms.

 

On our platform, we have observed that the number of messages sent per second remains within tight (±7%) bounds across a basket of 16 applications. Using principally the Pharo platform for experimentation, we show that such a proxy is stable, reproducible over multiple execu- tions, profiles are comparable, even when obtained in different execution contexts. We have produced Compteur, a new code profiler that does not suffer from execution sampling limitations and have used it to extend the SUnit testing framework for execution comparison.

 

Más información ECOOP 2011

 

Ranking Microsoft Academic Search Microsoft Academic Search  

 

 

 

---
Comunicaciones DCC