Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Jacques Noyé

dblp:n/JacquesNoye · DBLP profile ↗
← Back
18ranked-venue papers
1as first author
0since 2021 · last 2012
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 15Artificial intelligence and machine learning · 2 · 1 first-authorTheory of computation · 2 · 1 first-authorSystems, architecture and hardware · 1Applied, interdisciplinary, general and emerging computing · 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
Programming languages and type systems · 69% Requirements engineering and software design · 19% Software maintenance and evolution · 12%
Network and information security
1 paper
Systems and software security · 100%

Topics — the 7 heaviest of 9, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems
aspect-oriented programming
0.222012
Aspectizing Java Access Control · IEEE Trans. Software Eng. 2012
Partial behavioral reflection: spatial and temporal selection of reification · OOPSLA 2003
Requirements engineering and software design › separation of concerns
crosscutting concerns
0.012012
Aspectizing Java Access Control · IEEE Trans. Software Eng. 2012
Software maintenance and evolution
software modularization
0.012012
Aspectizing Java Access Control · IEEE Trans. Software Eng. 2012
Programming languages and type systems › metaprogramming
behavioral reflection
0.012003
Partial behavioral reflection: spatial and temporal selection of reification · OOPSLA 2003
Requirements engineering and software design
software architecture
0.012000
A Declarative Approach for Designing and Developing Adaptive Components · ASE 2000
Processor architecture and microarchitecture › instruction set architecture
tagged architecture
0.011989
KCM: A Knowledge Crunching Machine · ISCA 1989
Memory systems › memory management
memory management unit
0.011989
KCM: A Knowledge Crunching Machine · ISCA 1989

Methods — techniques the papers use, named apart from their topics

scoping strategies · 0.3dynamic aspect deployment · 0.3aspectj · 0.3reflection · 0.0hooksets · 0.0declarative programming · 0.0consistency checking · 0.0code generation · 0.0
YearPublicationVenuePosition
2012 Aspectizing Java Access Control
abstract
It is inevitable that some concerns crosscut a sizeable application, resulting in code scattering and tangling. This issue is particularly severe for security-related concerns: It is difficult to be confident about the security of an application when the implementation of its security-related concerns is scattered all over the code and tangled with other concerns, making global reasoning about security precarious. In this study, we consider the case of access control in Java, which turns out to be a crosscutting concern with a nonmodular implementation based on runtime stack inspection. We describe the process of modularizing access control in Java by means of Aspect-Oriented Programming (AOP). We first show a solution based on AspectJ, the most popular aspect-oriented extension to Java, that must rely on a separate automata infrastructure. We then put forward a novel solution via dynamic deployment of aspects and scoping strategies. Both solutions, apart from providing a modular specification of access control, make it possible to easily express other useful policies such as the Chinese wall policy. However, relying on expressive scope control results in a compact implementation, which, at the same time, permits the straightforward expression of even more interesting policies. These new modular implementations allowed by AOP alleviate maintenance and evolution issues produced by the crosscutting nature of access control.
Rodolfo Toledo, Angel Núñez, Éric Tanter, Jacques Noyé
IEEE Trans. Software Eng.4
2010 Scoping strategies for distributed aspects
Éric Tanter, Johan Fabry, Rémi Douence, Jacques Noyé, Mario Südholt
Sci. Comput. Program.4
2008 An Event-Based Coordination Model for Context-Aware Applications
Angel Núñez, Jacques Noyé
COORDINATION2
2008 Dynamic AspectJ
abstract
This paper considers the difficulties linked to the static scheduling strategy of AspectJ and shows how to overcome them by turning to a more dynamic strategy, making it possible to order, cancel, and deploy aspects at runtime. We show that this more dynamic strategy can be obtained by a minor update of the semantics of AspectJ introducing the notion of current aspect group, that is, the aspects scheduled for the current join point. We show how to reflect this change at the language level and present a prototype of the resulting AspectJ variant, Dynamic AspectJ. This prototype reuses AspectJ to perform a first step of static weaving, which we complement by a second step of dynamic weaving, implemented through a thin interpretation layer. This can be seen as an interesting example of reconciling interpreters and compilers, the dynamic and the static world.
Ali Assaf 0001, Jacques Noyé
DLS2
2008 Flexible metaprogramming and AOP in Java
Éric Tanter, Rodolfo Toledo, Guillaume Pothier, Jacques Noyé
Sci. Comput. Program.4
2006 Concurrent aspects
abstract
Aspect-Oriented Programming (AOP) promises the modularization of so-called crosscutting functionalities in large applications. Currently, almost all approaches to AOP provide means for the description of sequential aspects that are to be applied to a sequential base program. In particular, there is no formally-defined concurrent approach to AOP, with the result that coordination issues between aspects and base programs as well as between aspects cannot precisely be investigated.This paper presents Concurrent Event-based AOP (CEAOP), which addresses this issue. Our contribution can be detailed as follows. First, we formally define a model for concurrent aspects which extends the sequential Event-based AOP approach. The definition is given as a translation into concurrent specifications using Finite Sequential Processes (FSP), thus enabling use of the Labelled Transition System Analyzer (LTSA) for formal property verification. Further, we show how to compose concurrent aspects using a set of general composition operators. Finally, we sketch a Java prototype implementation for concurrent aspects, which generates coordination specific code from the FSP model defining the concurrent AO application.
Rémi Douence, Didier Le Botlan, Jacques Noyé, Mario Südholt
GPCE3
2005 A Versatile Kernel for Multi-language AOP
Éric Tanter, Jacques Noyé
GPCE2
2004 Component specialization
abstract
Component-Based Software Development (CBSD)is an attractive way to deliver generic executable pieces of program, ready to be reused in many different contexts. Component reuse is based on a black-box model that frees component consumers from diving into implementation details. Adapting a generic component to a particular context of use is then based on a parameterized interface that becomes a specific component wrapper at runtime. This shallow adaptation, which keeps the component implementation unchanged, is a major source of inefficiency. By building on top of well-known specialization techniques, it is possible to take advantage of the genericity of components and adapt their implementation to their usage context without breaking the black-box model. We illustrate these ideas on a simple component model, considering dual specialization techniques, partial evaluation and slicing. A key to not breaking encapsulation is to use specialization scenarios extended with assumptions on the required services and to package components as component generators.
Gustavo J. Bobeff, Jacques Noyé
PEPM2
2004 Dynamic Configuration of Software Product Lines in ArchJava
Sebastian Pavel, Jacques Noyé, Jean-Claude Royer
SPLC2
2003 Partial behavioral reflection: spatial and temporal selection of reification
abstract
Behavioral reflection is a powerful approach for adapting the behavior of running applications. In this paper we present and motivate partial behavioral reflection, an approach to more efficient and flexible behavioral reflection. We expose the spatial and temporal dimensions of such reflection, and propose a model of partial behavioral reflection based on the notion of hooksets. In the context of Java, we describe a reflective architecture offering appropriate interfaces for static and dynamic configuration of partial behavioral reflection at various levels, as well as Reflex, an open reflective extension for Java implementing this architecture. Reflex is the first extension that fully supports partial behavioral reflection in a portable manner, and that seamlessly integrates load-time and runtime behavioral reflection. The paper shows preliminary benchmarks and examples supporting the approach. The examples, dealing with the observer pattern and asynchronous communication via transparent futures, also show the interest of partial behavioral reflection as a tool for open dynamic Aspect-Oriented Programming.
Éric Tanter, Jacques Noyé, Denis Caromel, Pierre Cointe
OOPSLA2
2002 Altering Java Semantics via Bytecode Manipulation
Éric Tanter, Marc Ségura-Devillechaise, Jacques Noyé, José M. Piquer
GPCE3
2000 A Declarative Approach for Designing and Developing Adaptive Components
abstract
An 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
ASE3
2000 Towards Partially Evaluating Reflection in Java
abstract
Reflection plays a major role in the programming of generic applications. However, it introduces an interpretation layer which is detrimental to performance. A solution consists of relying on partial evaluation to remove this interpretation layer. This paper deals with improving a standard partial evaluator in order to handle the Java reflection API. The improvements basically consist of taking type information into account when distinguishing between static and dynamic data, as well as introducing two new specialization actions: reflection actions. Benchmarks using the serialization framework show the benefits of the approach.
Mathias Braux, Jacques Noyé
PEPM2
2000 Accurate binding-time analysis for imperative languages: flow, context, and return sensitivity
Luke Hornof, Jacques Noyé
Theor. Comput. Sci.2
1997 Accurate Binding-Time Analysis For Imperative Languages: Flow, Context, and Return Sensitivity
abstract
Since a binding-time analysis determines how an off-line partial evaluator will specialize a program, the accuracy of the binding-time information directly determines the degree of specialization. We have designed and implemented a binding-time analysis for an imperative language, and integrated it into our partial evaluator for C, called Tempo [9]. This binding-time analysis includes a number of new features, not available in any existing partial evaluator for an imperative language, which are critical when specializing existing programs such as operating system components [24, 25].• Flow sensitivity. A different binding-time description is computed for each program point, allowing the same variable to be considered static at one program point and dynamic at another.• Context sensitivity. Each function call is analyzed with the context of the call site, generating multiple binding-time annotated instances of the same function definition.• Return sensitivity. A different binding-time description is computed for the side-effects and the return value of a function.
Luke Hornof, Jacques Noyé
PEPM2
1997 Effective Specialization of Realistic Programs via Use Sensitivity
Luke Hornof, Charles Consel, Jacques Noyé
SAS3
1992 The KCM System: Speeding-up Logic Programming through Hardware Support
Jacques Noyé
LPAR1
1989 KCM: A Knowledge Crunching Machine
abstract
KCM (Knowledge Crunching Machine) is a high-performance back-end processor which, coupled to a UNIX* desk-top workstation, provides a powerful and user-friendly Prolog environment catering for both development and execution of significant Prolog applications. This paper gives a general overview of the architecture of KCM stressing some new features like a 64-bit tagged architecture, shallow backtracking and an original memory management unit. Some early benchmark results obtained on prototype machines are presented. They show that KCM, which runs at a peak speed of 833 Klips on list concatenation, compares favorably with other dedicated Prolog machines and available commercial systems running on fast general purpose processors.
Hans Benker, Jean-Michel Beacco, Sylvie Bescos, Michel Dorochevsky, Thomas Jeffré, Anita Pohlmann, Jacques Noyé, Bruno Poterie, Alan P. Sexton, Jean-Claude Syre, Oliver Thibault, Günter Watzlawik
ISCA7