VLDB 2026 Research / reviewers in the wild / expert
Charles Consel
dblp:c/CConsel
· DBLP profile ↗
79ranked-venue papers
23as first author
0since 2021 · last 2020
0000-0001-8851-9357ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 52 · 19 first-authorHuman-computer interaction and ubiquitous computing · 10 · 1 first-authorComputer networks · 6Systems, architecture and hardware · 3 · 1 first-authorTheory of computation · 2 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 2Artificial intelligence and machine learning · 1Security and privacy · 1Databases, data management, data science and information retrieval · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
27 papers |
Requirements engineering and software design · 38% Compilers and program optimization · 19% Programming languages and type systems · 18% | |
| Human-computer interaction and pervasive computing
5 papers |
Ubiquitous computing and smart environments · 59% User interface design and tools · 32% Accessibility and assistive technology · 8% | |
| Computer architecture, parallel and distributed computing, and storage systems
6 papers |
Embedded and real-time systems · 74% Electronic design automation · 20% Distributed systems · 4% |
Topics — the 30 heaviest of 52, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Requirements engineering and software design
software architecture |
0.4 | 5 | 2012 | Toward a Tool-Based Development Methodology for Pervasive Computing Applications · IEEE Trans. Software Eng. 2012 Leveraging software architectures to guide and verify the development of sense/compute/control applications · ICSE 2011 A domain-specific approach to architecturing error handling in pervasive computing · OOPSLA 2010 |
Ubiquitous computing and smart environments
pervasive application development |
0.2 | 2 | 2012 | Toward a Tool-Based Development Methodology for Pervasive Computing Applications · IEEE Trans. Software Eng. 2012 High-level Programming Support for Robust Pervasive Computing Applications · PerCom 2008 |
Programming languages and type systems
domain-specific languages |
0.2 | 5 | 2008 | High-level Programming Support for Robust Pervasive Computing Applications · PerCom 2008 A Programmable Client-Server Model: Robust Extensibility via DSLs · ASE 2003 A DSL Approach to Improve Productivity and Safety in Device Drivers Development · ASE 2000 |
Requirements engineering and software design
software design methodology |
0.2 | 1 | 2013 | A case for human-driven software development · ICSE 2013 |
Requirements engineering and software design › software architecture
architecture-implementation mapping |
0.1 | 1 | 2011 | Leveraging software architectures to guide and verify the development of sense/compute/control applications · ICSE 2011 |
Compilers and program optimization
program specialization |
0.1 | 6 | 2003 | Automatic program specialization for Java · ACM Trans. Program. Lang. Syst. 2003 Specialization Patterns · ASE 2000 Declarative Specialization of Object-Oriented Programs · OOPSLA 1997 |
Compilers and program optimization › program specialization
runtime specialization |
0.1 | 3 | 2008 | Remote specialization for efficient embedded operating systems · ACM Trans. Program. Lang. Syst. 2008 Efficient Incremental Run-Time Specialization for Free · PLDI 1999 A General Approach for Run-Time Specialization and its Application to C · POPL 1996 |
Requirements engineering and software design › design process
error handling design |
0.1 | 1 | 2010 | A domain-specific approach to architecturing error handling in pervasive computing · OOPSLA 2010 |
Software testing
simulation-based testing |
0.1 | 1 | 2009 | DiaSim: A Parameterized Simulator for Pervasive Computing Applications · PerCom 2009 |
Compilers and program optimization
partial evaluation |
0.1 | 7 | 1999 | Efficient Incremental Run-Time Specialization for Free · PLDI 1999 Mapping Software Architectures to Efficient Implementations via Partial Evaluation · ASE 1997 A General Approach for Run-Time Specialization and its Application to C · POPL 1996 |
Programming languages and type systems › domain-specific languages
interface definition language |
0.1 | 1 | 2008 | High-level Programming Support for Robust Pervasive Computing Applications · PerCom 2008 |
Embedded and real-time systems › embedded software
embedded operating systems |
0.1 | 1 | 2008 | Remote specialization for efficient embedded operating systems · ACM Trans. Program. Lang. Syst. 2008 |
Embedded and real-time systems
program specialization |
0.1 | 1 | 2008 | Remote specialization for efficient embedded operating systems · ACM Trans. Program. Lang. Syst. 2008 |
Program synthesis and code generation › generative programming
modular code generation |
0.1 | 1 | 2005 | Clearwater: extensible, flexible, modular code generation · ASE 2005 |
Accessibility and assistive technology
assistive technology |
0.0 | 1 | 2013 | A case for human-driven software development · ICSE 2013 |
Software testing
mobile application testing |
0.0 | 1 | 2012 | Toward a Tool-Based Development Methodology for Pervasive Computing Applications · IEEE Trans. Software Eng. 2012 |
Programming languages and type systems
language design |
0.0 | 1 | 2003 | A Programmable Client-Server Model: Robust Extensibility via DSLs · ASE 2003 |
Embedded and real-time systems
cyber-physical system platforms |
0.0 | 1 | 2011 | Leveraging software architectures to guide and verify the development of sense/compute/control applications · ICSE 2011 |
Compilers and program optimization › code size reduction
code compression |
0.0 | 1 | 2000 | Java bytecode compression for low-end embedded systems · ACM Trans. Program. Lang. Syst. 2000 |
Operating systems › i/o › i/o subsystem
device drivers |
0.0 | 1 | 2000 | A DSL Approach to Improve Productivity and Safety in Device Drivers Development · ASE 2000 |
Operating systems › i/o › i/o subsystem › device drivers
device driver development |
0.0 | 1 | 2000 | A DSL Approach to Improve Productivity and Safety in Device Drivers Development · ASE 2000 |
Electronic design automation
hardware description language |
0.0 | 1 | 2000 | Devil: An IDL for Hardware Programming · OSDI 2000 |
Electronic design automation
hardware verification and test |
0.0 | 1 | 2000 | Devil: An IDL for Hardware Programming · OSDI 2000 |
Services computing and microservices
service discovery |
0.0 | 1 | 2008 | High-level Programming Support for Robust Pervasive Computing Applications · PerCom 2008 |
Program verification
static verification |
0.0 | 1 | 2008 | High-level Programming Support for Robust Pervasive Computing Applications · PerCom 2008 |
Compilers and program optimization
code generation |
0.0 | 1 | 1999 | Domain-Specific Languages: From Design to Implementation Application to Video Device Drivers Generation · IEEE Trans. Software Eng. 1999 |
Program synthesis and code generation › domain-specific code generation
device driver synthesis |
0.0 | 1 | 1999 | Domain-Specific Languages: From Design to Implementation Application to Video Device Drivers Generation · IEEE Trans. Software Eng. 1999 |
Programming languages and type systems › programming paradigms
generic programming |
0.0 | 1 | 1997 | Declarative Specialization of Object-Oriented Programs · OOPSLA 1997 |
Compilers and program optimization
specialization |
0.0 | 1 | 1997 | Declarative Specialization of Object-Oriented Programs · OOPSLA 1997 |
Programming languages and type systems
object-oriented programming |
0.0 | 1 | 2003 | Automatic program specialization for Java · ACM Trans. Program. Lang. Syst. 2003 |
Methods — techniques the papers use, named apart from their topics
code generation · 0.3domain-specific design language · 0.3static verification · 0.2domain-specific modeling · 0.2parameterized simulation · 0.2emulation · 0.2program specialization · 0.2virtualization · 0.2compiler generation · 0.2partial evaluation · 0.1declarative specification · 0.1protocol adaptation · 0.0DSL · 0.0bytecode factorization · 0.0optimistic specialization · 0.0incremental specialization · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Empowering Caregivers to Customizing the Assistive Computing Support of Older Adults - an End-User Domain-Specific ApproachabstractSmart homes are a promising infrastructure to support assistive services that can prolong independent living of older adults. However, smart homes are mostly developed using a technology-centered approach, raising challenges for users to comprehend the purpose of smart home services and anticipate their behavior. These challenges are more acute when services are to be deployed in homes of older adults, preventing the expert knowledge of their caregivers to be leveraged. This paper presents a user study that assesses the comprehensibility of an end-user language, named Maloya, dedicated to developing assistive services. Participants (9 professional caregivers) are presented with services written in Maloya and must determine whether they detect scenarios of daily living. Our results show that Maloya is well-understood by participants; they successfully determine whether a service detects a scenario (success rate of 94%) and substantiate their answers with consistent explanations. As such, Maloya should be effective in empowering caregivers to select appropriate services for their care-receivers and to accurately anticipate the service behavior. Stéphanie Giraud, Nic Volanschi, Charles Consel |
Int. J. Hum. Comput. Interact. | 3 |
| 2019 | Early Detection of Mild Cognitive Impairment With In-Home Monitoring Sensor Technologies Using Functional Measures: A Systematic ReviewabstractThe aging of the world population is accompanied by a substantial increase in neurodegenerative disorders, such as dementia. Early detection of mild cognitive impairment (MCI), a clinical diagnostic that comes with an increased chance to develop dementias, could be an essential condition for promoting quality of life and independent living, as it would provide a critical window for the implementation of early pharmacological and nonpharmacological interventions. This systematic review aims to investigate the current state of knowledge on the effectiveness of smart home sensors technologies for the early detection of MCI through the monitoring of everyday life activities. This approach offers many advantages, including the continuous measurement of functional abilities in ecological environments. A systematic search of publications in MEDLINE, EMBASE, and CINAHL, before November 2017, was conducted. Seventeen studies were included in this review. Thirteen studies were based on real-life monitoring, with several sensors installed in participants' actual homes, and four studies included scenario-based assessments, in which participants had to complete various tasks in a research lab apartment. In real-life monitoring, the most used indicators of MCI were walking speed and activity/motion in the house. In scenario-based assessment, time of completion, quality of activity completion, number of errors, amount of assistance needed, and task-irrelevant behaviors during the performance of everyday activities predicted MCI in participants. Despite technological limitations and the novelty of the field, smart home technologies represent a promising potential for the early screening of MCI and could support clinicians in geriatric care. Maxime Lussier, Monica Lavoie, Sylvain Giroux, Charles Consel, Manon Guay, Joël Macoir, Carol Hudon, Dominique Lorrain, Lise Talbot, Francis Langlois, Hélène Pigot, Nathalie Bier |
IEEE J. Biomed. Health Informatics | 4 |
| 2018 | Implementing a semi-causal domain-specific language for context detection over binary sensorsabstractIn spite of the fact that many sensors in use today are binary (i.e. produce only values of 0 and 1), and that useful context-aware applications are built exclusively on top of them, there is currently no development approach specifically targeted to binary sensors. Dealing with notions of state and state combinators, central to binary sensors, is tedious and error-prone in current approaches. For instance, developing such applications in a general programming language requires writing code to process events, maintain state and perform state transitions on events, manage timers and/or event histories. Nic Volanschi, Bernard P. Serpette, Charles Consel |
GPCE | 3 |
| 2017 | Internet of Things: From Small- to Large-Scale OrchestrationabstractThe domain of Internet of Things (IoT) is rapidly expanding beyond research, and becoming a major industrial market with such stakeholders as major manufacturers of chips and connected entities (i.e., things), and fast-growing operators of wide-area networks. Importantly, this emerging domain is driven by applications that leverage an IoT infrastructure to provide users with innovative, high-value services. IoT infrastructures range from small scale (e.g., homes and personal health) to large scale (e.g., cities and transportation systems). In this paper, we argue that there is a continuum between orchestrating connected entities in the small and in the large. We propose a unified approach to application development, which covers this spectrum. To do so, we examine the requirements for orchestrating connected entities and address them with domainspecific design concepts. We then show how to map these design concepts into dedicated programming patterns and runtime mechanisms. Our work revolves around domain-specific concepts and notations, integrated into a tool-based design methodology and dedicated to develop IoT applications. We have applied our work across a spectrum of infrastructure sizes, ranging from an automated pilot in avionics, to an assisted living platform for the home of seniors, to a parking management system in a smart city. Charles Consel, Milan Kabác |
ICDCS | 1 |
| 2017 | Designing parallel data processing for enabling large-scale sensor applications
Milan Kabác, Charles Consel, Nic Volanschi |
Pers. Ubiquitous Comput. | 2 |
| 2017 | Frameworks compiled from declarations: a language-independent approachabstractSummary Programming frameworks are an accepted fixture in the object‐oriented world, motivated by the need for code reuse, developer guidance and restriction. A new trend is emerging where frameworks require domain experts to provide declarations using a domain‐specific language, influencing the structure and behaviour of the resulting application. These mechanisms address concerns such as user privacy. Although many popular open platforms such as Android are based on declaration‐driven frameworks, current implementations provide ad hoc and narrow solutions to concerns raised by their openness to non‐certified developers. Most widely used frameworks fail to address serious privacy leaks and provide the user with little insight into application behaviour. To address these shortcomings, we show that declaration‐driven frameworks can limit privacy leaks, as well as guide developers, independently from the underlying programming paradigm. To do so, we identify concepts that underlie declaration‐driven frameworks and apply them systematically to an object‐oriented language, Java and a dynamic functional language, Racket. The resulting programming framework generators are used to develop a prototype mobile application, illustrating how we mitigate a common class of privacy leaks. Finally, we explore the possible design choices and propose development principles for developing domain‐specific language compilers to produce frameworks, applicable across a spectrum of programming paradigms. Copyright © 2016 John Wiley & Sons, Ltd. Paul van der Walt, Charles Consel, Emilie Balland |
Softw. Pract. Exp. | 2 |
| 2015 | A Unifying Notification System To Scale Up Assistive ServicesabstractAging creates needs for assistive technology to support all activities of daily living (meal preparation, dressing, social participation, stove monitoring, etc.). These needs are mostly addressed by a silo-based approach that requires a new assistive service (e.g., a reminder system, a pill prompter) to be acquired for every activity to be supported. In practice, these services manifest their silo-based nature in their user interactions, and more specifically, in the heterogeneity of their notification system. This heterogeneity incurs a cognitive cost that prevents scaling up assistive services and compromises adoption by older adults. This paper presents an approach to scaling up the combination of technology-based, assistive services by proposing a unifying notification system. To do so, (1) we propose a decomposition of assistive services to expose their needs in notification; (2) we introduce a notification framework, allowing heterogeneous assistive services to homogeneously notify users; (3) we present how this notification framework is carried out in practice for an assisted living platform. Charles Consel, Lucile Dupuy, Hélène Sauzéon |
ASSETS | 1 |
| 2015 | Orchestrating masses of sensors: a design-driven development ApproachabstractThis paper proposes a design-driven development approach that is dedicated to the domain of orchestration of masses of sensors. The developer declares what an application does using a domain-specific language (DSL). Our compiler processes domain-specific declarations to generate a customized programming framework that guides and supports the programming phase. Milan Kabác, Charles Consel |
GPCE | 2 |
| 2014 | Verification of daily activities of older adults: a simple, non-intrusive, low-cost approachabstractThis paper presents an approach to verifying the activities of daily living of older adults at their home. We verify activities, instead of inferring them, because our monitoring approach is driven by routines, initially sketched by users in their environment. Monitoring is supported by a lightweight sensor infrastructure, comprising non-intrusive, low-cost, wireless devices. Verification is performed by applying a simple formula to sensor log data, for each activity of interest. The result value determines whether an activity has been performed. Loïc Caroux, Charles Consel, Lucile Dupuy, Hélène Sauzéon |
ASSETS | 2 |
| 2014 | Tablet-based activity schedule for children with autism in mainstream environmentabstractIncluding children with Autism Spectrum Disorders (ASD) in mainstreamed environments creates a need for new interventions whose efficacy must be assessed in situ. Charles Fage, Leonard Pommereau, Charles Consel, Emilie Balland, Hélène Sauzéon |
ASSETS | 3 |
| 2014 | DiaSuite: A tool suite to develop Sense/Compute/Control applications
Benjamin Bertran, Julien Bruneau 0001, Damien Cassou, Nicolas Loriant, Emilie Balland, Charles Consel |
Sci. Comput. Program. | 6 |
| 2013 | A case for human-driven software developmentabstractHuman-Computer Interaction (HCI) plays a critical role in software systems, especially when targeting vulnerable individuals (e.g., assistive technologies). However, there exists a gap between well-tooled software development methodologies and HCI techniques, which are generally isolated from the development toolchain and require specific expertise. In this paper, we propose a human-driven software development methodology making User Interface (UI) a full-fledged dimension of software design. To make this methodology useful in practice, a UI design language and a user modeling language are integrated into a tool suite that guides the stakeholders during the development process, while ensuring the conformance between the UI design and its implementation. Emilie Balland, Charles Consel, Bernard N'Kaoua, Hélène Sauzéon |
ICSE | 2 |
| 2013 | DiaSim: a simulator for pervasive computing applicationsabstractSUMMARY Pervasive computing applications involve both software concerns, such as any software system, and integration concerns, for the constituent networked devices of the pervasive computing environment. This situation is problematic for testing because it requires acquiring, testing, and interfacing a variety of software and hardware entities. This process can rapidly become costly and time‐consuming when the target environment involves many entities. This paper introduces DiaSim, a simulator for pervasive computing applications. To cope with widely heterogeneous entities, DiaSim is parameterized with respect to a description of a target pervasive computing environment. This description is used to generate both a programming framework to develop the simulation logic and an emulation layer to execute applications. Furthermore, a simulation renderer is coupled to DiaSim to allow a simulated pervasive system to be visually monitored and debugged. DiaSim has been implemented and used to simulate various pervasive computing systems in different application areas, demonstrating the generality of our parameterized approach. Copyright © 2012 John Wiley & Sons, Ltd. Julien Bruneau 0001, Charles Consel |
Softw. Pract. Exp. | 2 |
| 2012 | Virtual Testing for Smart BuildingsabstractSmart buildings promise to revolutionize the way we live. Applications ranging from climate control to fire management can have significant impact on the quality and cost of these services. However, smart buildings and any technology with direct effect on human safety and life must undergo extensive testing. Virtual testing by means of computer simulation can significantly reduce the cost of testing and, as a result, accelerate the development of novel applications. Unfortunately, building physically-accurate simulation codes can be labor intensive. To address this problem, we propose a framework for rapid, physically-accurate virtual testing. The proposed framework supports analytical modeling of both a discrete distributed system as well as the physical environment that hosts it. The discrete models supported are accurate enough to allow the automatic generation of a dedicated programming framework that will help the developer in the implementation of these systems. The physical environment models supported are equational specifications that are accurate enough to produce running simulation codes. Combined, these two frameworks enable simulating both active systems and physical environments. These simulations can be used to monitor the behavior and gather statistics about the performance of an application in the context of precise virtual experiments. To illustrate the approach, we present models of Heating, Ventilating and Air-Conditioning (HVAC) systems. Using these models, we construct virtual experiments that illustrate how the approach can be used to optimize energy and cost of climate control for a building. Julien Bruneau 0001, Charles Consel, Marcia Kilchenman O'Malley, Walid Taha, Wail Masry Hannourah |
Intelligent Environments | 2 |
| 2012 | Toward a Tool-Based Development Methodology for Pervasive Computing ApplicationsabstractDespite much progress, developing a pervasive computing application remains a challenge because of a lack of conceptual frameworks and supporting tools. This challenge involves coping with heterogeneous devices, overcoming the intricacies of distributed systems technologies, working out an architecture for the application, encoding it in a program, writing specific code to test the application, and finally deploying it. This paper presents a design language and a tool suite covering the development life-cycle of a pervasive computing application. The design language allows us to define a taxonomy of area-specific building-blocks, abstracting over their heterogeneity. This language also includes a layer to define the architecture of an application, following an architectural pattern commonly used in the pervasive computing domain. Our underlying methodology assigns roles to the stakeholders, providing separation of concerns. Our tool suite includes a compiler that takes design artifacts written in our language as input and generates a programming framework that supports the subsequent development stages, namely, implementation, testing, and deployment. Our methodology has been applied on a wide spectrum of areas. Based on these experiments, we assess our approach through three criteria: expressiveness, usability, and productivity. Damien Cassou, Julien Bruneau 0001, Charles Consel, Emilie Balland |
IEEE Trans. Software Eng. | 3 |
| 2011 | Architecturing Conflict Handling of Pervasive Computing Resources
Henner Jakob, Charles Consel, Nicolas Loriant |
DAIS | 2 |
| 2011 | A Step-Wise Approach for Integrating QoS throughout Software Development
Stéphanie Gatti, Emilie Balland, Charles Consel |
FASE | 3 |
| 2011 | Leveraging software architectures to guide and verify the development of sense/compute/control applicationsabstractA software architecture describes the structure of a computing system by specifying software components and their interactions. Mapping a software architecture to an implementation is a well known challenge. A key element of this mapping is the architecture's description of the data and control-flow interactions between components. The characterization of these interactions can be rather abstract or very concrete, providing more or less implementation guidance, programming support, and static verification. Damien Cassou, Emilie Balland, Charles Consel, Julia Lawall |
ICSE | 3 |
| 2011 | DiaSuite: a paradigm-oriented software development approachabstractWe present a software development approach, whose underlying paradigm goes beyond programming. This approach offers a language-based design framework, high-level programming support, a range of verifications, and an abstraction layer over low-level technologies. Our approach is instantiated with the Sense-Compute-Control paradigm, and uniformly integrated into a suite of declarative languages and tools. Charles Consel |
PEPM | 1 |
| 2010 | SIP as a Universal Communication Bus: A Methodology and an Experimental StudyabstractThis paper describes a methodology and a programming support that use the SIP protocol as a universal communication bus in pervasive computing environments. In doing so, our work enables homogeneous communications between heterogeneous distributed entities. We present a classification of a wide variety of entities in terms of features, capabilities and network connectors. Based on this classification, a methodology and a programming support are described for connecting entities on the SIP communication bus. This work has been validated by applications using the SIP communication bus to coordinate widely varying entities, including serial-based sensors (RS232, 1-Wire), ZigBee devices, X10 devices, PDA, native SIP entities, and software components. Benjamin Bertran, Charles Consel, Wilfried Jouve, Hongyu Guan, Patrice Kadionik |
ICC | 2 |
| 2010 | Preliminary Results in Virtual Testing for Smart Buildings
Julien Bruneau 0001, Charles Consel, Marcia Kilchenman O'Malley, Walid Taha, Wail Masry Hannourah |
MobiQuitous | 2 |
| 2010 | A domain-specific approach to architecturing error handling in pervasive computingabstractThe challenging nature of error handling constantly escalates as a growing number of environments consists of networked devices and software components. In these environments, errors cover a uniquely large spectrum of situations related to each layer ranging from hardware to distributed platforms, to software components. Handling errors becomes a daunting task for programmers, whose outcome is unpredictable. Scaling up error handling requires to raise the level of abstraction beyond the code level and the try-catch construct, approaching error handling at the software architecture level. Julien Mercadal, Quentin Enard, Charles Consel, Nicolas Loriant |
OOPSLA | 3 |
| 2009 | A generative programming approach to developing pervasive computing systemsabstractDeveloping pervasive computing applications is a difficult task because it requires to deal with a wide range of issues: heterogeneous devices, entity distribution, entity coordination, low-level hardware knowledge. . . Besides requiring various areas of expertise, programming such applications involves writing a lot of administrative code to glue technologies together and to interface with both hardware and software components. Damien Cassou, Benjamin Bertran, Nicolas Loriant, Charles Consel |
GPCE | 4 |
| 2009 | DiaSim: A parameterized simulator for pervasive computing applicationsabstractPervasive computing applications involve both software concerns, like any software system, and integration concerns, for the constituent networked devices of the pervasive computing environment. This situation is problematic for testing because it requires acquiring, testing and interfacing a variet Julien Bruneau 0001, Wilfried Jouve, Charles Consel |
MobiQuitous | 3 |
| 2009 | DiaSim: A parameterized simulator for pervasive computing applicationsabstractPervasive computing applications involve both software concerns, like any software system, and integration concerns, for the constituent networked devices of the pervasive computing environment. This situation is problematic for testing because it requires acquiring, testing and interfacing a variet Julien Bruneau 0001, Wilfried Jouve, Charles Consel |
MobiQuitous | 3 |
| 2009 | DiaSim: A Parameterized Simulator for Pervasive Computing ApplicationsabstractPervasive computing applications involve both software concerns, like any software system, and integration concerns, for the constituent networked devices of the pervasive computing environment. This situation is problematic for testing because it requires acquiring, testing and interfacing a variety of software and hardware entities. This process can rapidly become costly and time-consuming when the target environment involves many entities. In this demonstration, we present DiaSim, a simulator for pervasive computing applications. To cope with widely heterogeneous entities, DiaSim is parameterized with respect to a description of a target pervasive computing environment. This description is used to generate both a programming framework to develop the simulation logic and an emulation layer to execute applications. Furthermore, a simulation renderer is coupled to DiaSim to allow a simulated pervasive system to be visually monitored and debugged. Wilfried Jouve, Julien Bruneau 0001, Charles Consel |
PerCom | 3 |
| 2008 | Pantaxou: a domain-specific language for developing safe coordination servicesabstractCoordinating entities in a networked environment has always been a significant challenge for software developers. In recent years, however, it has become even more difficult, because devices have increasingly rich capabilities, combining an ever larger range of technologies (networking, multimedia, sensors, etc.). Julien Mercadal, Nicolas Palix, Charles Consel, Julia Lawall |
GPCE | 3 |
| 2008 | High-level Programming Support for Robust Pervasive Computing ApplicationsabstractIn this paper, we present a domain-specific interface definition language (IDL) and its compiler, dedicated to the development of pervasive computing applications. Our IDL provides declarative support for concisely characterizing a pervasive computing environment. This description is (1) to be used by programmers as a high-level reference to develop applications that coordinate entities of the target environment and (2) to be passed to a compiler that generates a programming framework dedicated to the target environment. This process enables verifications to be performed prior to runtime on both the declared environment and a given application. Furthermore, customized operations are automatically generated to support the development of pervasive computing activities, such as service discovery and session negotiation for stream-oriented devices. Wilfried Jouve, Julien Lancia, Nicolas Palix, Charles Consel, Julia Lawall |
PerCom | 4 |
| 2008 | Remote specialization for efficient embedded operating systemsabstractPrior to their deployment on an embedded system, operating systems are commonly tailored to reduce code size and improve runtime performance. Program specialization is a promising match for this process: it is predictable and modules, and it allows the reuse of previously implemented specializations. A specialization engine for embedded systems must overcome three main obstacles: (i) Reusing existing compilers for embedded systems, (ii) supporting specialization on a resource-limited system and (iii) coping with dynamic applications by supporting specialization on demand. In this article, we describe a runtime specialization infrastructure that addresses these problems. Our solution proposes: (i) Specialization in two phases of which the former generates specialized C templates and the latter uses a dedicated compiler to generate efficient native code. (ii) A virtualization mechanism that facilitates specialization of code at a remote location. (iii) An API and supporting OS extensions that allow applications to produce, manage and dispose of specialized code. We evaluate our work through two case studies: (i) The TCP/IP implementation of Linux and (ii) The TUX embedded web server. We report appreciable improvements in code size and performance. We also quantify the overhead of specialization and argue that a specialization server can scale to support a sizable workload. Sapan Bhatia, Charles Consel, Calton Pu |
ACM Trans. Program. Lang. Syst. | 2 |
| 2006 | Language Technology for Internet-Telephony Service CreationabstractTelephony is evolving at a frantic pace, critically relying on the development of services to offer a host of new functionalities. However, programming Internet telephony services requires an intimate knowledge of a variety of protocols and technologies, which can be a challenge for many programmers. Furthermore, because telephony is a resource heavily relied on, programmability of telephony platforms should not compromise their robustness. This paper presents an approach to creating telephony services that builds on programming language technology (i.e., language design and implementation, language semantics, and program analysis). We have developed a language, named Session Processing Language (SPL), that offers domain-specific constructs, abstracting over the intricacies of the underlying technologies. By design, SPL guarantees critical properties that cannot be verified in general-purpose languages. SPL relies on a Service Logic Execution Environment for SIP (SIP-SLEE) that introduces a design framework for service development based around the notion of session. SPL and SIP-SLEE have been implemented and they are now being used to develop and deploy real services, demonstrating the practical benefits of our approach. Laurent Burgy, Charles Consel, Fabien Latry, Julia Lawall, Nicolas Palix, Laurent Réveillère |
ICC | 2 |
| 2006 | Memory-manager/scheduler co-design: optimizing event-driven servers to improve cache behaviorabstractEvent-driven programming has emerged as a standard to implement high-performance servers due to its flexibility and low OS overhead. Still, memory access remains a bottleneck. Generic optimization techniques yield only small improvements in the memory access behavior of event-driven servers, as such techniques do not exploit their specific structure and behavior.This paper presents an optimization framework dedicated to event-driven servers, based on a strategy to eliminate data-cache misses. We propose a novel memory manager combined with a tailored scheduling strategy to restrict the working data set of the program to a memory region mapped directly into the data cache. Our approach exploits the flexible scheduling and deterministic execution of event-driven servers.We have applied our framework to industry-standard webservers including TUX and thttpd, as well as to the Squid proxy server and the Cactus QoS framework. Testing TUX and thttpd using a standard HTTP benchmark tool shows that our optimizations applied to the TUX web server reduce L2 data cache misses under heavy load by up to 75% and increase the throughput of the server by up to 38%. Sapan Bhatia, Charles Consel, Julia Lawall |
ISMM | 2 |
| 2006 | Minimizing Cache Misses in an Event-driven Network Server: A Case Study of TUXabstractWe analyze the performance of CPU-bound network servers and demonstrate experimentally that the degradation in the performance of these servers under high-concurrency workloads is largely due to inefficient use of the hardware caches. We then describe an approach to speeding up event-driven network servers by optimizing their use of the L2 CPU cache in the context of the TUX Web server, known for its robustness to heavy load. Our approach is based on a novel cache-aware memory allocator and a specific scheduling strategy that together ensure that the total working data set of the server stays in the L2 cache. Experiments show that under high concurrency, our optimizations improve the throughput of TUX by up to 40% and the number of requests serviced at the time of failure by 21% Sapan Bhatia, Charles Consel, Julia Lawall |
LCN | 2 |
| 2006 | Efficient Packet Processing in User-Level OSes: A Study of UMLabstractNetwork server consolidation has become popular through virtualization technology that builds secure, isolated network systems on shared hardware. One of the virtualization techniques used is that of user-level operating systems. (ULOSes) However, the isolation and security they bring comes at the price of performance, as virtualization introduces a number of overheads into the system. Such overheads can be surprisingly large, especially for complex OS modules like network protocol stacks. Our studies of the TCP/IP stack in user-mode Linux (UML), an implementation of a ULOS, attribute the resulting slow-downs to three main sources: the execution of privileged code, memory management across layers, and additional instructions to execute. To mitigate these bottlenecks, we present five optimization techniques, improving the network performance significantly, reducing packet processing latency by 60% and increasing network throughput by three folds. Furthermore, the network throughput of the improved ULOS is comparable to that of native Linux up to gigabit speeds Younggyun Koh, Calton Pu, Sapan Bhatia, Charles Consel |
LCN | 4 |
| 2005 | A Generative Programming Approach to Developing DSL Compilers
Charles Consel, Fabien Latry, Laurent Réveillère, Pierre Cointe |
GPCE | 1 |
| 2005 | Clearwater: extensible, flexible, modular code generationabstractDistributed applications typically interact with a number of heterogeneous and autonomous components that evolve independently. Methodical development of such applications can benefit from approaches based on domain-specific languages (DSLs). However, the evolution and customization of heterogeneous components introduces significant challenges to accommodating the syntax and semantics of a DSL in addition to the heterogeneous platforms on which they must run. In this paper, we address the challenge of implementing code generators for two such DSLs that are flexible (resilient to changes in generators or input formats), extensible (able to support multiple output targets and multiple input variants), and modular (generated code can be re-written). Our approach, Clearwater, leverages XML and XSLT standards: XML supports extensibility and mutability for in-progress specification formats, and XSLT provides flexibility and extensibility for multiple target languages. Modularity arises from using XML meta-tags in the code generator itself, which supports controlled addition, subtraction, or replacement to the generated code via XML-weaving. We discuss the use of our approach and show its advantages in two non-trivial code generators: the Infopipe Stub Generator (ISG) to support distributed flow applications, and the Automated Composable Code Translator to support automated distributed application deployment. As an example, the ISG accepts as input an XML description and generates output for C, C++, or Java using a number of communications platforms such as sockets and publish-subscribe. Galen S. Swint, Calton Pu, Gueyoung Jung, Wenchang Yan, Younggyun Koh, Qinyi Wu, Charles Consel, Akhil Sahai, Koichi Moriyama |
ASE | 7 |
| 2004 | Remote customization of systems code for embedded devicesabstractDedicated operating systems for embedded systems are fast being phased out due to their use of manual optimization, which provides high performance and small footprint, but also requires high maintenance and portability costs every time hardware evolves.In this paper, we describe an approach based on customization of generic operating system modules. Our approach uses a remote customization server to automatically generate highly optimized code that is then loaded and executed in the kernel of the embedded device. This process combines the advantages of generic systems software code (leveraging portability and evolution costs) with the advantages of customization (small footprint and low overhead).We have validated our customization infrastructure with a case study: the TCP/IP stack of the Linux kernel. We analyzed the performance and size of the customized code generated on three platforms: a Pentium III (600MHz), an ARM SA1100 (200Mhz) on a COMPAQ iPAQ, and a 486 (40MHz). The customized code runs about 25% faster and its size reduces by up to a factor of 20. The throughput of the protocol stack improves by up to 21%. Sapan Bhatia, Charles Consel, Calton Pu |
EMSOFT | 2 |
| 2004 | Automatic Specialization of Protocol StacksabstractAbstract — Fast and optimized protocol stacks play a major role in the performance of network services. This role is especially important in embedded class systems, where performance metrics such as data throughput tend to be limited by the CPU. It is common on such systems, to have protocol stacks that are optimized by hand for better performance and smaller code footprint. In this paper, we propose a strategy to automate this process. Our approach uses program specialization, and enables appli-cations using the network to request specialized code based on the current usage scenario. The specialized code is generated dy-namically and loaded in the kernel to be used by the application. We have successfully applied our approach to the TCP/IP implementation in the Linux kernel and used the optimized protocol stack in existing applications. These applications were minimally modified to request the specialization of code based on the current usage context, and to use the specialized code generated instead of its generic version. Specialization can be performed locally, or deferred to a remote specialization server using a novel mechanism [1]. Experiments conducted on three platforms show that the specialized code runs about 25 % faster and its size reduces by up to 20 times. The throughput of the protocol stack improves by up to 21%. I. Sapan Bhatia, Charles Consel, Anne-Françoise Le Meur, Calton Pu |
LCN | 2 |
| 2004 | Infopipes: The ISL/ISG Implementation EvaluationabstractWe provide a performance comparison of generated Infopipes that have been translated and the Spi/XlP variant of Infopipe specification into executable code. Infopipes are abstractions to support information flow applications. These tools are evaluated through a realistic application: a continuous image streaming program. We implement the application in C and compare its performance to both a hand-written application and one that uses SunRPC. Galen S. Swint, Calton Pu, Younggyun Koh, Ling Liu 0001, Wenchang Yan, Charles Consel, Koichi Moriyama, Jonathan Walpole |
NCA | 6 |
| 2004 | A tour of Tempo: a program specializer for the C language
Charles Consel, Julia Lawall, Anne-Françoise Le Meur |
Sci. Comput. Program. | 1 |
| 2003 | Spidle: A DSL Approach to Specifying Streaming Applications
Charles Consel, Hédi Hamdi, Laurent Réveillère, Lenin Singaravelu, Calton Pu |
GPCE | 1 |
| 2003 | A Programmable Client-Server Model: Robust Extensibility via DSLsabstractThe client-server model has been successfully used to support a wide variety of families of services in the context of distributed systems. However, its server-centric nature makes it insensitive to fast changing client characteristics like terminal capabilities, network features, user preferences and evolving needs. To overcome these key limitations, we present an approach to enabling a server to adapt to different clients by making it programmable. A service-description language is used to program server adaptations. This language is designed as a domain-specific language to offer expressiveness and conciseness without compromising safety and security. We show that requiring the deployment of new protocols or server implementations. We illustrate our approach with the Internet Message Access Protocol (IMAP). An IMAP server is made programmable and a language, named Pems, is introduced to program robust variations of e-mail services. Our approach is uniformly used to develop a platform for multimedia communication services. This platform is composed of programmable servers for telephony service, e-mail processing, remote-document processing and stream adapters. Charles Consel, Laurent Réveillère |
ASE | 1 |
| 2003 | Automatic program specialization for JavaabstractThe object-oriented style of programming facilitates program adaptation and enhances program genericness, but at the expense of efficiency. We demonstrate experimentally that state-of-the-art Java compilers fail to compensate for the use of object-oriented abstractions in the implementation of generic programs, and that program specialization can eliminate a significant portion of these overheads. We present an automatic program specializer for Java, illustrate its use through detailed case studies, and demonstrate experimentally that it can significantly reduce program execution time. Although automatic program specialization could be seen as being subsumed by existing optimizing compiler technology, we show that specialization and compiler optimization are in fact complementary. Ulrik Pagh Schultz Lundquist, Julia Lawall, Charles Consel |
ACM Trans. Program. Lang. Syst. | 3 |
| 2002 | Towards bridging the gap between programming languages and partial evaluationabstractPartial evaluation is a program-transformation technique that automatically specializes a program with respect to user-supplied invariants. Despite successful applications in areas such as graphics, operating systems, and software engineering, partial evaluators have yet to achieve widespread use. One reason is the difficulty of adequately describing specialization opportunities. Indeed, under-specialization or over-specialization often occurs, without any direct feedback to the user as to the source of the problem.We have developed a high-level, module-based language allowing the programmer to guide the choice of both the code to specialize and the invariants to exploit during the specialization process. To ease the use of partial evaluation, the syntax of this language is similar to the declaration syntax of the target language of the partial evaluator. To provide feedback to the programmer, declarations are checked throughout the analyses performed by partial evaluation. The language has been successfully used by a signal-processing expert in the design of a specializable Forward Error Correction component. Anne-Françoise Le Meur, Julia Lawall, Charles Consel |
PEPM | 3 |
| 2001 | WebCaL - a domain specific language for web caching
Sumit Gulwani, A. Tarachandani, Deepak Gupta 0001, Dheeraj Sanghi, Luciano Porto Barreto, Gilles Muller, Charles Consel |
Comput. Commun. | 7 |
| 2001 | Specialization tools and techniques for systematic optimization of system softwareabstractSpecialization has been recognized as a powerful technique for optimizing operating systems. However, specialization has not been broadly applied beyond the research community because current techniques based on manual specialization, are time-consuming and error-prone. The goal of the work described in this paper is to help operating system tuners perform specialization more easily. We have built a specialization toolkit that assists the major tasks of specializing operating systems. We demonstrate the effectiveness of the toolkit by applying it to three diverse operating system components. We show that using tools to assist specialization enables significant performance optimizations without error-prone manual modifications. Our experience with the toolkit suggests new ways of designing systems that combine high performance and clean structure. Dylan McNamee, Jonathan Walpole, Calton Pu, Crispin Cowan, Charles Krasic, Ashvin Goel, Perry Wagle, Charles Consel, Gilles Muller, Renaud Marlet |
ACM Trans. Comput. Syst. | 8 |
| 2000 | A Declarative Approach for Designing and Developing Adaptive ComponentsabstractAn adaptive component is a component that is able to adapt its behavior to different execution contexts. Building an adaptive application is difficult because of component dependencies and the lack of language support. As a result, code that implements adaptation is often tangled, hindering maintenance and evolution. To overcome this problem, we propose a declarative approach to program adaptation. This approach makes the specific issues of adaptation explicit. The programmer can focus on the basic features of the application, and separately provide clear and concise adaptation information. Concretely, we propose adaptation classes, which enrich Java classes with adaptive behaviors. A dedicated compiler automatically generates Java code that implements the adaptive features. Moreover, these adaptation declarations can be checked for consistency to provide additional safety guarantees. As a working example throughout this paper, we use an adaptive sound encoder in an audio-conferencing application. We show the problems associated with a traditional implementation using design patterns, and how these problems are elegantly solved using adaptation classes. Philippe Boinot, Renaud Marlet, Jacques Noyé, Gilles Muller, Charles Consel |
ASE | 5 |
| 2000 | A DSL Approach to Improve Productivity and Safety in Device Drivers DevelopmentabstractAlthough new peripheral devices are emerging at a frantic pace and require the fast release of drivers, little progress has been made to improve the development of such device drivers. Too often, this development consists of decoding hardware intricacies, based on inaccurate documentation. Then, assembly-level operations need to be used to interact with the device. These low-level operations reduce the readability of the driver and prevent safety properties from being checked. This paper presents an approach based on domain-specific languages (DSLs) to overcome these problems. We define a language, named Devil (DEVice Interaction Language), dedicated to defining the basic communication with a device. Unlike a general-purpose language, Devil allows a description to be checked for consistency. This not only improves the safety of the interaction with the device but also uncovers bugs early in the development process. To asses our approach, we have shown that Devil is expressive enough to specify a large number of devices. To evaluate productivity and safety improvements over traditional development in C, we report an experiment based on mutation testing. Laurent Réveillère, Fabrice Mérillon, Charles Consel, Renaud Marlet, Gilles Muller |
ASE | 3 |
| 2000 | Specialization PatternsabstractDesign patterns offer many advantages for software development, but can introduce inefficiency into the final program. Program specialization can eliminate such overheads, but is most effective when targeted by the user to specific bottlenecks. Consequently, we propose that these concepts are complementary. Program specialization can optimize programs written using design patterns, and design patterns provide information about the program structure that can guide specialization. Concretely, we propose specialization patterns, which describe how to apply program specialization to optimize uses of design patterns. We analyze the specialization opportunities provided by specific uses of design patterns. Based on the analysis of each design pattern, we define the associated specialization pattern. These specialization opportunities can be declared using the specialization classes framework, developed previously. In our experiments, such specialization significantly improves performance. Ulrik Pagh Schultz Lundquist, Julia Lawall, Charles Consel |
ASE | 3 |
| 2000 | Devil: An IDL for Hardware Programming
Fabrice Mérillon, Laurent Réveillère, Charles Consel, Renaud Marlet, Gilles Muller |
OSDI | 3 |
| 2000 | Selected Papers from PEPM'97 - Foreword
Charles Consel |
Theor. Comput. Sci. | 1 |
| 2000 | Java bytecode compression for low-end embedded systemsabstractA program executing on a low-end embedded system, such as a smart-card, faces scarce memory resources and fixed execution time constraints. We demonstrate that factorization of common instruction sequences in Java bytecode allows the memory footprint to be reduced, on average, to 85% of its original size, with a minimal execution time penalty. While preserving Java compatibility, our solution requires only a few modifications which are straightforward to implement in any JVM used in a low-end embedded system. Lars Ræder Clausen, Ulrik Pagh Schultz Lundquist, Charles Consel, Gilles Muller |
ACM Trans. Program. Lang. Syst. | 3 |
| 1999 | Towards Automatic Specialization of Java Programs
Ulrik Pagh Schultz Lundquist, Julia Lawall, Charles Consel, Gilles Muller |
ECOOP | 3 |
| 1999 | Combining Program and Data Specialization
Sandrine Chirokoff, Charles Consel |
PEPM | 2 |
| 1999 | Efficient Incremental Run-Time Specialization for FreeabstractAvailability of data in a program determines computation stages. Incremental partial evaluation exploit these stages for optimization: it allows further specialization to be performed as data become available at later stages. The fundamental advantage of incremental specialization is to factorize the specialization process. As a result, specializing a program at a given stage costs considerably less than specializing it once all the data are available.We present a realistic and flexible approach to achieve efficient incremental run-time specialization. Rather than developing specific techniques, as previously proposed, we are able to re-use existing technology by iterating a specialization process. Moreover, in doing so, we do not lose any specialization opportunities. This approach makes it possible to exploit nested quasi-invariants and to speed up the run-time specialization process.This approach has been implemented in Tempo, a specializer for C programs that is publicly available. A preliminary experiment confirm that incremental that incremental specialization can greatly speed up the specialization process. Renaud Marlet, Charles Consel, Philippe Boinot |
PLDI | 2 |
| 1999 | Efficient Implementations of Software Architectures via Partial Evaluation
Renaud Marlet, Scott Thibault, Charles Consel |
Autom. Softw. Eng. | 3 |
| 1999 | Domain-Specific Languages: From Design to Implementation Application to Video Device Drivers GenerationabstractDomain-specific languages (DSL) have many potential advantages in terms of software engineering, ranging from increased productivity to the application of formal methods. Although they have been used in practice for decades, there has been little study of methodology or implementation tools for the DSL approach. We present our DSL approach and its application to a realistic domain: the generation of video display device drivers. The article focuses on the validation of our proposed framework for domain-specific languages, from design to implementation. The framework leads to a flexible design and structure, and provides automatic generation of efficient implementations of DSL programs. Additionally, we describe an example of a complete DSL for video display adaptors and the benefits of the DSL approach for this application. This demonstrates some of the generally claimed benefits of using DSLs: increased productivity, higher-level abstraction, and easier verification. This DSL has been fully implemented with our approach and is available. Compose project URL: http://www.irisa.fr/compose/gal. Scott Thibault, Renaud Marlet, Charles Consel |
IEEE Trans. Software Eng. | 3 |
| 1998 | Fast, Optimized Sun RPC Using Automatic Program SpecializationabstractFast remote procedure call (RPC) is a major concern for distributed systems. Many studies aimed at efficient RPC consist of either new implementations of the RPC paradigm or manual optimization of critical sections of the code. This paper presents an experiment that achieves automatic optimization of an existing, commercial RPC implementation, namely the Sun RPC. The optimized Sun RPC is obtained by using an automatic program specializer. It runs up to 1.5 times faster than the original Sun RPC. Close examination of the specialized code does not reveal further optimization opportunities which would lead to significant improvements without major manual restructuring. The contributions of this work are: the optimized code is safely produced by an automatic tool and thus does not entail any additional maintenance; to the best of our knowledge this is the first successful specialization of mature, commercial, representative system code; and the optimized Sun RPC runs significantly faster than the original code. Gilles Muller, Renaud Marlet, Nic Volanschi, Charles Consel, Calton Pu, Ashvin Goel |
ICDCS | 4 |
| 1998 | Safe and Efficient Active Network ProgrammingabstractActive networks are aimed at incorporating programmability into the network to achieve extensibility. One approach to obtaining extensibility is to download router programs into network nodes. This programmability is critical to allow multipoint distributed systems to adapt to network conditions and individual clients' needs. Although promising, this approach raises critical issues such as safety to achieve reliability despite the complexity of a distributed system, security to protect shared resources, and efficiency to maximize usage of bandwidth. This paper proposes the use of a domain-specific language, PLAN-P, to address all of the above issues. To address safety and security, we give examples of properties of PLAN-P programs that can be automatically checked due to the use of a restricted language. For efficiency, we show that an automatically generated run-time compiler for PLAN-P produces code which outperforms an equivalent compiled Java program. Additionally, we present performance results on a real application (learning bridge) where we obtain 100% of the maximum possible throughput. Scott Thibault, Charles Consel, Gilles Muller |
SRDS | 2 |
| 1997 | Mapping Software Architectures to Efficient Implementations via Partial EvaluationabstractFlexibility is recognized as a key feature in structuring software, and many architectures have been designed to that effect. However, they often come with performance and code size overhead, resulting in a flexibility vs. efficiency dilemma. The source of inefficiency in software architectures can be identified in the data and control integration of components, because flexibility is present not only at the design level but also in the implementation. We propose the use of program specialization in software engineering as a systematic way to improve performance and in some cases, to reduce program size. In particular, we advocate the use of partial evaluation, which is an automatic technique to produce efficient, specialized instances of generic programs. We study several representative, flexible mechanisms found in software architectures: selective broadcast, pattern matching, interpreters, layers, and generic libraries. We show how partial evaluation can systematically be applied in order to optimize those mechanisms. Renaud Marlet, Scott Thibault, Charles Consel |
ASE | 3 |
| 1997 | Declarative Specialization of Object-Oriented ProgramsabstractDesigning and implementing generic software components is encouraged by languages such as object-oriented ones and commonly advocated in most application areas. Generic software components have many advantages among which the most important is reusability. However, it comes at a price: genericity often incurs a loss of efficiency.This paper presents an approach aimed at reconciling genericity and efficiency. To do so, we introduce declarations to the Java language to enable a programmer to specify how generic programs should be specialized for a particular usage pattern. Our approach has been implemented as a compiler from our extended language into standard Java. Nic Volanschi, Charles Consel, Gilles Muller, Crispin Cowan |
OOPSLA | 2 |
| 1997 | Effective Specialization of Realistic Programs via Use Sensitivity
Luke Hornof, Charles Consel, Jacques Noyé |
SAS | 2 |
| 1996 | A General Approach for Run-Time Specialization and its Application to CabstractSpecializing programs with respect to run-time invariants is an optimization technique that has shown to improve the performance of programs substantially. It allows a program to adapt to execution contexts that are valid for a limited time.Run-time specialization is being actively investigated in a variety of areas. For example, recently, major operating system research projects have been focusing on run-time specialization as a means to obtain efficiency from highly extensible and parameterized systems.This paper describes a general approach to run-time specialization. For a given program and a declaration of its run-time invariants, it automatically produces source templates at compile time, and transforms them so that they can be processed by a standard compiler. At run time, only minor operations need to be performed: selecting and copying templates, filling holes with run-time values, and relocating jump targets. As a consequence, run-time specialization is performed very efficiently and thus does not require the specialized code to be executed many times before its cost is amortized.Our approach improves on previous work in that: (1) templates are automatically produced from the source program and its invariants, (2) the approach is not machine dependent, (3) it is formally defined and proved correct, (4) it is efficient, as shown by our implementation for the C language. Charles Consel, François Noël |
POPL | 1 |
| 1995 | Optimistic Incremental Specialization: Streamlining a Commercial Operating SystemabstractConventionaloperating system code is written to deal with all possible system stat es, and performs considerable interpretation to determine the current system state before taking action.A consequence of this approach is that kernel calls which perform little actual work take a long time to execute.To address this problem, we use specialized operating system code that reduces interpretation for common cases, but still behaves correctly in the fully general case.We describe how specialized operating system code can be generated and bound wtcrementally as the information on which it depends becomes available.We extend our specialization techniques to include the notion of optimistic in c remental specialization n: a technique for generating specialized kernel code optimistically for system states that are likely to occur, but not certain.The ideas outlined in this paper allow the conventional kernel design tenet of "optimizing for the common case" to be extended to the domain of adaptive operating systems.We also show that aggressive use of specialization can produce in-kernel implementations of operating system functionality with performance comparable to user-level implementations.We demonstrate that these ideas are applicable in realworld operating systems by describing a re-implementation of the HP-UX file system.Our specialized read system call reduces the cost of a single byte read by a factor of 3, and an 8 KB read by 26~o, while preserving the semantics of the HP-UXread call.By relaxing the semantics of HP-UX read we were able to cut the cost of a single byte read system call by more than an order of magnitude.1 Calton Pu, Tito Autrey, Andrew P. Black, Charles Consel, Crispin Cowan, Jon Inouye, Lakshmi Kethana, Jonathan Walpole |
SOSP | 4 |
| 1995 | On-Line & Off-Line Partial Evaluation: Semantic Specifications and Correctness ProofsabstractAbstract This paper presents semantic specifications and correctness proofs for both on-line and offline partial evaluation of strict first-order functional programs. To do so, our strategy consists of defining a core semantics as a basis for the specification of three non-standard evaluations: instrumented evaluation, on-line and off-line partial evaluation. We then use the technique of logical relations to prove the correctness of both on-line and off-line partial evaluation semantics. The contributions of this work are as follows: 1. We provide a uniform framework to defining and proving correct both on-line and off-line partial evaluation. 2. This work required a formal specification of on-line partial evaluation with polyvariant specialization. We define criteria for its correctness with respect to an instrumented standard semantics. As a by-product, on-line partial evaluation appears to be based on a fixpoint iteration process, just like binding-time analysis. 3. We show that binding-time analysis, the preprocessing phase of off-line partial evaluation, is an abstraction of on-line partial evaluation. Therefore, its correctness can be proved with respect to on-line partial evaluation, instead of with respect to the standard semantics, as is customarily done. 4. Based on the binding-time analysis, we formally derive the specialization semantics for off-line partial evaluation. This strategy ensures the correctness of the resulting semantics. Charles Consel, Siau-Cheng Khoo |
J. Funct. Program. | 1 |
| 1994 | Fast Strictness Analysis Via Symbolic Fixpoint Iteration
Charles Consel |
SAS | 1 |
| 1994 | Fixpoint Computation for Polyvariant Static Analyses of Higher-Order Applicative ProgramsabstractThis paper presents an optimized general-purpose algorithm for polyvariant, static analyses of higher-order applicative programs. A polyvariant analysis is a very accurate form of analysis that produces many more abstract descriptions for a program than does a conventional analysis. It may also compute intermediate abstract descriptions that are irrelevant to the final result of the analysis. The optimized algorithm addresses this overhead while preserving the accuracy of the analysis. The algorithm is also parameterized over both the abstract domain and degree of polyvariance. We have implemented an instance of our algorithm and evaluated its performance compared to the unoptimized algorithm. Our implementation runs significantly faster on average than the other algorithm for benchmarks reported here. J. Michael Ashley, Charles Consel |
ACM Trans. Program. Lang. Syst. | 2 |
| 1993 | Polyvariant Binding-Time Analysis For Applicative LanguagesabstractBinding-time analysis is a crucial component of an offline partial evaluator. The accuracy of the binding-time information that it produces determines the degree of specialization of programs. Charles Consel |
PEPM | 1 |
| 1993 | A Tour of Schism: A Partial Evaluation System For Higher-Order Applicative LanguagesabstractArticle A tour of Schism: a partial evaluation system for higher-order applicative languages Share on Author: Charles Consel View Profile Authors Info & Claims PEPM '93: Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulationAugust 1993 Pages 145–154https://doi.org/10.1145/154630.154645Online:01 August 1993Publication History 63citation115DownloadsMetricsTotal Citations63Total Downloads115Last 12 Months4Last 6 weeks1 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access Charles Consel |
PEPM | 1 |
| 1993 | Incremental Partial Evaluation: The Key to High Performance, Modularity and Portability in Operating SystemsabstractArticle Free Access Share on Incremental partial evaluation: the key to high performance, modularity and portability in operating systems Authors: Charles Consel View Profile , Calton Pu View Profile , Jonathan Walpole View Profile Authors Info & Claims PEPM '93: Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulationAugust 1993 Pages 44–46https://doi.org/10.1145/154630.154635Online:01 August 1993Publication History 20citation287DownloadsMetricsTotal Citations20Total Downloads287Last 12 Months9Last 6 weeks2 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF Charles Consel, Calton Pu, Jonathan Walpole |
PEPM | 1 |
| 1993 | Tutorial Notes on Partial EvaluationabstractThe last years have witnessed a flurry of new results in the area of partial evaluation. These tutorial notes survey the field and present a critical assessment of the state of the art. Charles Consel, Olivier Danvy |
POPL | 1 |
| 1993 | Semantics-Directed Generation of a Prolog Compiler
Charles Consel, Siau-Cheng Khoo |
Sci. Comput. Program. | 1 |
| 1993 | Parameterized Partial Evaluationabstractarticle Free AccessParameterized partial evaluation Authors: Charles Consel Yale University Yale UniversityView Profile , Siau Cheng Khoo Yale University Yale UniversityView Profile Authors Info & Claims ACM Transactions on Programming Languages and SystemsVolume 15Issue 3pp 463–493https://doi.org/10.1145/169683.174155Published:01 July 1993Publication History 47citation352DownloadsMetricsTotal Citations47Total Downloads352Last 12 Months11Last 6 weeks1 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF Charles Consel, Siau-Cheng Khoo |
ACM Trans. Program. Lang. Syst. | 1 |
| 1992 | A Programming Environment for Binding-time Based Partial Evaluators
Charles Consel, Satish Pai |
PEPM | 1 |
| 1991 | Parameterized Partial Evaluationabstractarticle Free Access Share on Parameterized partial evaluation Authors: Charles Consel Yale University, Department of Computer Science, New Haven, CT Yale University, Department of Computer Science, New Haven, CTView Profile , Siau Cheng Khoo Yale University, Department of Computer Science, New Haven, CT Yale University, Department of Computer Science, New Haven, CTView Profile Authors Info & Claims ACM SIGPLAN NoticesVolume 26Issue 6June 1991 pp 92–106https://doi.org/10.1145/113446.113454Online:01 May 1991Publication History 7citation244DownloadsMetricsTotal Citations7Total Downloads244Last 12 Months6Last 6 weeks2 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my Alerts New Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF Charles Consel, Siau-Cheng Khoo |
PLDI | 1 |
| 1991 | Monitoring Semantics: A Formal Framework for Specifying, Implementing, and Reasoning about Execution MonitorsabstractWe introduce monitoring semantics, a non-standard model Amir Kishon, Paul Hudak, Charles Consel |
PLDI | 3 |
| 1991 | Static and Dynamic Semantics ProcessingabstractThis paper presents a step forward in the use of partial evaluation for interpreting and compiling programs, as well as for automatically generating a compiler from denotational definitions of programming languages. We determine the static and dynamic semantics of a programming language, reduce the expressions representing the static semantics, and generate object code by instantiating the expressions representing the dynamic semantics. By processing the static semantics of the language, programs get compiled. By processing the static semantics of the partial evaluator, compilers are generated. The correctness of a compiler is guaranteed by the correctness of both the executable specification and our partial evaluator. The results reported in this paper improve on previous work in the domain of compiler generation [16, 30], and solves several open problems in the domain of partial evaluation [15]. In essence: ffl Our compilation goes beyond a mere syntax-tosemantics mapping since the ... Charles Consel, Olivier Danvy |
POPL | 1 |
| 1990 | From Interpreting to Compiling Binding Times
Charles Consel, Olivier Danvy |
ESOP | 1 |
| 1989 | Partial Evaluation of Pattern Matching in Strings
Charles Consel, Olivier Danvy |
Inf. Process. Lett. | 1 |
| 1988 | New Insights into Partial Evaluation: the SCHISM Experiment
Charles Consel |
ESOP | 1 |