(This page uses CSS style sheets)

8th International Workshop on

Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems

July 2, Montpellier (France)

(Co-located with ECOOP/ECSA/ECMFA 2013)



Important dates

Paper submission deadline: 3 May 2013 (closed)
Authors notification: 23 May 2013
Papers final version: 4 June  2013
Early registration : 5 June 2013 (extended)
ICOOOLPS 2013 in Montpellier: 2 July  2013



9:15-10:30: SESSION 1: RUNTIME

Session chair: Olivier Zendra

9:15-10:00 INVITED TALK. Tony Printezis. Garbage Collection : 50+ Years Later (Slides)
Abstract: It's been more than 50 years since John McCarthy invented garbage collection. The last 15 years or so have been the most exciting as garbage collection became mainstream and is now considered the norm for all/most modern programming languages. However, despite its overall success, programmers still face challenges when relying on garbage collection for their memory management, especially when their applications push the limits in terms of latency, predictability, and scalability. In this talk I'll describe some of these challenges, share some of my real-world experiences with helping customers solve their garbage collection issues, go over which garbage collection algorithms and techniques are, in my opinion, effective and which are not, and suggest some interesting research directions.

10:00-10:30 PAPER. Alexandre Terrasa and Jean Privat. Efficiency of Subtype Test in Object Oriented Languages with Generics (Slides) (Paper)
Abstract: In a programming language, the choice of a generics typing policy impacts both typing test semantics and type safety. In this paper, we compare the cost of the generic policy chosen and analyze its impacts on the subtype test performance. To make this comparison we implement two compilers for the Nit language. One applies covariant policy using a homogeneous implementation and the second applies an erased policy and implementation. We compare the time efficiency of our solution against engines for C++, C#, Eiffel, Java and Scala. Results show that our implementations give the best performances compared to existing solutions. We also compare covariant and erased policies on existing Nit programs using our two compilers. Results show that covariance does not imply significant overhead regarding subtype test performances. Due to the small difference between the costs of the different policies, the choice of a policy by a language designer should not be influenced by performance considerations.

10:30-11:00: COFFEE BREAK

11:00-12:15: SESSION 2: MOBILITY

Session chair: Jan Vitek

11:00-11:45 INVITED TALK. Eric Jul. Programming Highly Mobile Cloud Applications of the Future (Slides)
Abstract: Two major trends are affecting how we program applications for highly mobile devices. First trend is the proliferation of mobile devices, e.g., smartphones and Google Glass, that have megabyte/second connectivity and the ability to run applications that are empowered by the clout of the Cloud. Second, for applications requiring low latency, e.g., gaming, real-time face recognition and the like, the Cloud cannot really provide the service required: Cloud computing provides inexpensive, massive compute and storage power, but the low cost is due to concentrating the resources in massive data centers, as exemplified by Amazon, who essentially has one data center per continent. So the current mobile app model is for a light weight program, an app, to run on a smartphone, and then it accesses the Cloud, if it needs any type of real compute power or data access - an access model basically no different than the client-server model of fifty years ago. We are investigating a much more decentralized Cloud model where compute and storage resources are placed closed to the edge of the cloud: this will enable applications that require low latency, which can be achieved only by resources close to the smartphone. This also means that the data and computation must move along with the smartphone as the smartphone moves along the edge of the cloud. Solving this problem is demanding, and will require new programming models and new implementation paradigms. In this talk, I will further expand upon these issues and discuss some proposals for enabling the splitting of applications over apps on a smartphone, support programs running at decentralized data centers close by, and the (traditional) cloud computing centers.

11:45-12:15 PAPER. Eric Jul. TRACK: Keeping Track of Highly Mobile Objects (Slides)
Abstract: This paper proposes a novel language mechanism to accommodate applications that depend on keeping track of the location of highly mobile objects. New applications are driven by several new trends: new, powerful devices such as smartphones and Google Glass and vastly improved connectivity between such devices and powerful data centers in the Cloud. Applications running on such new, relatively thin clients, can immensely benefit from the enormous data and compute power provided by Cloud computing. As such devices are inherently highly mobile, they will move along the edge of the cloud and it may be advantageous to track such mobility. Furthermore, objects executing in the cloud may move onto the devices to achieve low latency, or, vice versa, may move from the device into the cloud as to leverage the power of the Cloud. In this paper, we propose a novel language mechanism to \emph{track} the mobility of individual objects. The intent is to be able dynamically to adjust the behavior and configuration of an application as to adapt to changes in the location of its constituent objects. The implementation is integrated into the underlying virtual machine. The construct is proposed for Emerald, but will be applicable to most other OO languages albeit not as cleanly as in Emerald.

12:15-14:00: BUFFET LUNCH

14:00-15:30 SESSION 3: WEB & SECURITY

Session chair: Eric Jul.

14:00-14:45: INVITED TALK. Jan Vitek. History-based Security for JavaScript (Slides)
Abstract: Providing security guarantees for software systems built out of untrusted components requires the ability to enforce fine-grained access control policies. This is evident in Web 2.0 applications where JavaScript code from different origins is often combined on a single page, leading to well-known vulnerabilities. We present a security infrastructure which allows users and content providers to specify access control policies over subsets of JavaScript execution traces and reversion to a safe state if a violation is detected. The proposal is evaluated in the context of a production browser where security principals are based on the browser's same origin policy. Simple security policies can be shown to prevent real attacks without imposing drastic restrictions on legacy applications. We have evaluated our infrastructure with two non-trivial policies on 50 of the Alexa top websites with no changes to the legacy JavaScript code and measured the performance overheads of our instrumentation.

14:45-15:15: PAPER. Georgios Chinis, Polyvios Pratikakis, Sotiris Ioannidis and Elias Athanasopoulos. Practical Information Flow for Legacy Web Applications (Slides) (Paper)
Abstract: The popularity of web applications, coupled with the data they operate on, makes them prime targets for miscreants that want to misuse them. Moreover, a lot of these applications have not been implemented with security in mind, while refactoring an existing, large web application to implement a security or privacy policy is prohibitively difficult. This paper presents LabelFlow, an extension of PHP that simplifies implementation of security policies in web applications. To enforce a policy, LabelFlow tracks the propagation of information throughout the application, transparently and efficiently, both in the PHP runtime and through persistent storage. We define the semantics of LabelFlow for a simple calculus and prove it protects against information leaks. We used LabelFlow to enforce access control policies in three popular real-world large-scale web applications: MediaWiki, Wordpress and OpenCart. LabelFlow requires minimal code changes (50--100 LoC) per application, with little execution overhead of up to 5.6%.

15:30-16:00: COFFEE BREAK


Session chair: Etienne Gagnon.

Afterthoughts, new questions about talks.
Impromptu presentations.
Worthy topics. Main trends. Discussions, debates.
Next year.


Object-oriented languages, prototypes, implementation, optimization, runtime, virtual machines, program analysis, garbage collection, resources


Object-oriented languages and similar languages are pervasive and play a significant role in computer science and engineering life and sometime appear as ubiquitous and completely mature. However, despite a large number of works, there is still a clear need for solutions for efficient implementation and compilation of these languages in various application domains ranging from embedded and real-time systems to desktop systems.

The ICOOOLPS workshop series thus aims to address this crucial issue of optimization in OO and OO-like languages, programs and systems. It intends to do so by bringing together researchers and practitioners working in the field of object- oriented languages implementation and optimization. Its main goals are identifying fundamental bases and key current issues pertaining to the efficient implementation,compilation and optimization of such languages, and outlining future challenges and research directions.

Major topics of interest for ICOOOLPS comprize implementation of fundamental OO and OO-like features (inheritance, parametric types, memory management, objects, prototypes...), runtime systems (compilers, linkers, virtual machines, garbage collectors), optimizations (static or dynamic analyses, adaptive virtual machines), resource constraints (time for real-time systems, space or low-power for embedded systems) and relevant choices and tradeoffs (constant time vs. non- constant time mechanisms, separate compilation vs. global compilation, dynamic loading vs. global linking, dynamic checking vs. proof-carrying code...)..


Topics of interest for ICOOOLPS include but are not limited to:

Submission and attendance

This is a one day workshop.  The workshop should comprise about 2 invited talks, presentations by authors of accepted refereed papers, and brainstorming sessions with all the participants. The latter are important to keep the spirit of a workshop, not a mini-conference.

Authors are encouraged to submit papers describing ongoing work, papers describing research results, or position papers describing an open issue, likely solutions, drawbacks of current solutions or alternative solutions to well known problems. Sensational, daring, provocative ideas are welcome in such a workshop, as a good way to trigger fruitful discussions.
Reviewing is done by the PC members, each paper being reviewed by 3+ reviewers.
Accepted papers will be published to the ACM Digital Library and the workshop web site, unless the authors choose not to.
At least one author of the paper will be expected to attend the workshop.

Papers must be written in English, formatted according to ACM SIG Proceedings style, and their final version should range from 2 pages to 12 pages.

Papers must be submitted electronically in PDF format via EasyChair at

Submission is now closed.

Organizing and Program Committee

Antoine Beugnard Télécom Bretagne FR
Mark van den Brand TUE NL
Walter Cazzola Univ. degli studi di Milano IT
Roland Ducournau LIRMM, Univ. of Montpellier FR
Etienne Gagnon UQAM CA
David Grove IBM TJ Watson RC US
Eric Jul (co-chair) Bell Labs Ireland / Oslo Univ. IE / NO
Floréal Morandat LABRI, Univ. of Bordeaux FR
Jean Privat UQAM CA
Tony Printezis Adobe US
Ian Rogers
Jeremy Singer
Univ. of Glasgow
Jan Vitek Purdue University, USA US
Mario Wolczko
Oracle Labs
Olivier Zendra (chair) INRIA - LORIA, France FR