Demo Data from SIGIR 2026 / reviewers in the wild / expert
Nic Volanschi
dblp:44/3693 · also Eugen-Nicolae Volanschi
· DBLP profile ↗
16ranked-venue papers
10as first author
0since 2021 · last 2020
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 12 · 10 first-authorHuman-computer interaction and ubiquitous computing · 2Theory of computation · 2 · 1 first-authorSystems, architecture and hardware · 1
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
3 papers |
Software maintenance and evolution · 62% Programming languages and type systems · 21% Compilers and program optimization · 14% |
Topics — the 6 heaviest of 7, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software maintenance and evolution › program comprehension
code comprehension |
0.4 | 1 | 2020 | The Impact of Generic Data Structures: Decoding the Role of Lists in the Linux Kernel · ASE 2020 |
Programming languages and type systems
type inference |
0.1 | 1 | 2020 | The Impact of Generic Data Structures: Decoding the Role of Lists in the Linux Kernel · ASE 2020 |
Program analysis
data flow analysis |
0.0 | 1 | 2006 | A Portable Compiler-Integrated Approach to Permanent Checking · ASE 2006 |
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
program specialization |
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 |
Methods — techniques the papers use, named apart from their topics
list visualization · 0.4list type inference · 0.4constrained reachability queries · 0.1code pattern matching · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | The Impact of Generic Data Structures: Decoding the Role of Lists in the Linux KernelabstractThe increasing adoption of the Linux kernel has been sustained by a large and constant maintenance effort, performed by a wide and heterogeneous base of contributors. One important problem that maintainers face in any code base is the rapid understanding of complex data structures. The Linux kernel is written in the C language, which enables the definition of arbitrarily uninformative datatypes, via the use of casts and pointer arithmetic, of which doubly linked lists are a prominent example. In this paper, we explore the advantages and disadvantages of such lists, for expressivity, for code understanding, and for code reliability. Based on our observations, we have developed a toolset that includes inference of descriptive list types and a tool for list visualization. Our tools identify more than 10,000 list fields and variables in recent Linux kernel releases and succeeds in typing 90%. We show how these tools could have been used to detect previously fixed bugs and identify 6 new ones. Nic Volanschi, Julia Lawall |
ASE | 1 |
| 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. | 2 |
| 2019 | AllenRV: An Extensible Monitor for Multiple Complex Specifications with High Reactivity
Nic Volanschi, Bernard P. Serpette |
RV | 1 |
| 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 | 1 |
| 2018 | Stereo: Editing Clones Refactored as Code GeneratorsabstractClone detection is a largely mature technology able to detect many code duplications, also called clones, in software systems of practically any size. The classic approaches to clone management are either clone removal, which consists in refactoring clones as an available language abstraction, or clone tracking, using a so-called linked editor, able to propagate changes between clone instances. However, past studies have shown that clone removal is not always feasible due to the limited expressiveness of language abstractions, or not desirable because of the abstraction overhead or the risks inherent to the refactoring. Linked editors, on the other hand, provide costless abstraction at no risk, but have their own issues, such as limited expressiveness, scalability, and controllability. This paper presents a new approach in which clones are safely refactored as code generators, but the unmodified code is presented to the maintainers with the same look-and-feel as in a linked editor. This solution has good expressiveness, scalability, and controllability properties. A prototype such editor is presented along with a first application within an industrial project. Nic Volanschi |
ICSME | 1 |
| 2017 | Designing parallel data processing for enabling large-scale sensor applications
Milan Kabác, Charles Consel, Nic Volanschi |
Pers. Ubiquitous Comput. | 3 |
| 2012 | Pattern matching for the masses using custom notations
Nic Volanschi |
Sci. Comput. Program. | 1 |
| 2010 | Theory and practice of unparsed patterns for metacompilation
Christian Rinderknecht, Nic Volanschi |
Sci. Comput. Program. | 2 |
| 2008 | Unparsed patterns: easy user-extensibility of program manipulation toolsabstractPattern matching in concrete syntax is very useful in program manipulation tools. In particular, user-defined extensions to such tools are written much easier using concrete syntax patterns. A few advanced frameworks for language development implement support for concrete syntax patterns, but mainstream frameworks used today still do not support them. This prevents most existing program manipulation tools from using concrete syntax matching, which in particular severely limits the writing of tool extensions to a few language experts. Nic Volanschi, Christian Rinderknecht |
PEPM | 1 |
| 2008 | A portable compiler-integrated approach to permanent checking
Nic Volanschi |
Autom. Softw. Eng. | 1 |
| 2006 | A Portable Compiler-Integrated Approach to Permanent CheckingabstractProgram checking technology is now a mature technology, but is not yet used on a large scale. We identify one cause of this gap in the decoupling of checking tools from the everyday development tools. To radically change the situation, we explore the integration of simple user-defined checks into the core of every development process: the compiler. The checks we implement express constrained reachability queries in the control flow graph taking the form "from x to y avoiding z", where x, y, and z are native code patterns containing a blend of syntactic, semantic and dataflow information. Compiler integration enables continuous checking throughout development, but also a pervasive propagation of checking technology. This integration poses some interesting challenges, but opens up new perspectives. Factorizing analyses between checking and compiling improves both the efficiency and the expressiveness of the checks. Minimalist user properties and language-independent code pattern matching ensure that our approach can be integrated almost for free in any compiler for any language. We illustrate this approach with a full-fledged checking compiler for C. We demonstrate the need for permanent checking by partially analyzing two different releases of the Linux kernel Nic Volanschi |
ASE | 1 |
| 2006 | Condate: a proto-language at the confluence between checking and compilingabstractRecent years have seen the advent of many different tools for program checking against user-defined properties. Despite this encouraging trend, checking technology is used still marginally today, and only on an occasional basis. Existing checkers are standalone tools, associated --- correctly or not --- with low efficiency, and duplicating much work already done in the compiler. We believe that, as a complement to more precise verifiers, the next generation of compilers should integrate some amount of user-defined checks that can be performed efficientlyCombining checking and compiling enables a pervasive propagation of checking technology and continuous use of checking throughout development. It also enables cross-fertilization between the two passes, resulting in increased expressiveness, precision, and even in improved complexity of the checking algorithm.We illustrate this integrated approach with a full-fledged checking compiler for C, extensible through Condate. Condate is a declarative language for expressing simple user-defined program properties to be checked in addition to normal compilation. Condate mixes in a very concise form syntactic, semantic, control flow, and data flow properties. These properties are defined as a new class of regular path expressions over the control-flow graph, checkable in linear time and covering many useful checks.We demonstrate the viability of the integrated approach based on Condate by applying it to successfully check some parts of the Linux kernel. Nic Volanschi |
PPDP | 1 |
| 2000 | Accurate program analyses for successful specialization of legacy system software
Gilles Muller, Renaud Marlet, Nic Volanschi |
Theor. Comput. Sci. | 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 | 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 | 1 |
| 1997 | Scaling up Partial Evaluation for Optimizing the Sun Commercial RPC ProtocolabstractWe report here a successful experiment in using partial evaluation on a realistic program, namely the Sun commercial RPC (Remote Procedure Call) protocol. The Sun RPC is implemented in a highly generic way that offers multiple opportunities of specialization.Our study also shows the incapacity of traditional binding-time analyses to treat real system programs. Our experiment has been made with Tempo, a partial evaluator for C programs targeted towards system software. Tempo's binding-time analysis had to be improved to integrate partially static data structures (interprocedurally), context sensitivity, use sensitivity and return sensitivity.The Sun RPC experiment files, including the specialized implementation, are publicly available upon request to the authors. Gilles Muller, Nic Volanschi, Renaud Marlet |
PEPM | 2 |