MODULARITY Companion 2015 – Author Index |
Contents -
Abstracts -
Authors
|
Baumeister, Hubert |
MODULARITY Companion '15-FOAL: "Towards Separation of Concerns ..."
Towards Separation of Concerns in Flow-Based Programming
Bahram Zarrin and Hubert Baumeister (DTU, Denmark) Flow-Based Programming (FBP) is a programming paradigm that models software systems as a directed graph of predefined processes which run asynchronously and exchange data through input and output ports. FBP decomposes software systems into a network of processes. However there are concerns in software systems which do not fit this dominant decomposition. In this paper, we address the cross-cutting-concerns in FBP by using some examples and propose an aspect-oriented extension to FBP. @InProceedings{MODULARITY Companion15p58, author = {Bahram Zarrin and Hubert Baumeister}, title = {Towards Separation of Concerns in Flow-Based Programming}, booktitle = {Proc.\ MODULARITY Companion}, publisher = {ACM}, pages = {58--63}, doi = {}, year = {2015}, } |
|
Garcia, Ronald |
MODULARITY Companion '15-FOAL: "Essential Retroactive Weaving ..."
Essential Retroactive Weaving
Robin Salkeld and Ronald Garcia (University of British Columbia, Canada) To help analyze unexpected behaviour, programming language environments and tools are beginning to support high-fidelity recordings of program executions. Such recordings are typically low-level and difficult to work with directly. Debugging and analyzing these recordings is easier and more powerful if it is possible to simulate executing additional code in the past context of the recording. In prior work we proposed retroactive weaving, the process of evaluating aspects as if they were present during a past execution. This concept is intended as a general framework for introducing additional code and defining the semantics of executing it post-hoc. In this paper we express retroactive weaving as a transformation on aspect-oriented programming languages and their semantics. We demonstrate this transformation by applying it to a simple core aspect-oriented language, and through a definitional interpreter illustrate its interactions with first-class function values, mutable state, and external input and output. In particular a key concern of retroactive weavers is maintaining soundness: behaving consistently with the context of the past execution, and failing if missing information makes this impossible. Retroactive weavers may need to include extra isolation or runtime checks to meet this requirement. @InProceedings{MODULARITY Companion15p52, author = {Robin Salkeld and Ronald Garcia}, title = {Essential Retroactive Weaving}, booktitle = {Proc.\ MODULARITY Companion}, publisher = {ACM}, pages = {52--57}, doi = {}, year = {2015}, } Info |
|
Leavens, Gary T. |
MODULARITY Companion '15-FOAL: "Enforcing Information Hiding ..."
Enforcing Information Hiding in Interface Specifications: A Client-Aware Checking Approach
Henrique Rebêlo and Gary T. Leavens (Federal University of Pernambuco, Brazil; University of Central Florida, USA) Information hiding is an established principle that controls which parts of a module are visible to non-privileged and privileged clients (e.g., subclasses). This aids maintenance because hidden implementation details can be changed without affecting clients. The benefits of information hiding apply not only to code but also to other artifacts, such as specifications. Unfortunately, contemporary formal interface specification languages and their respective runtime assertion checkers (RACs) are inconsistent with information hiding rules because they check assertions in an overly-dynamic manner on the supplier side. We explain how overly-dynamic RACs compromise information hiding and how our client-aware checking technique allows these RACs to use the privacy information in specifications, which promotes information hiding. @InProceedings{MODULARITY Companion15p47, author = {Henrique Rebêlo and Gary T. Leavens}, title = {Enforcing Information Hiding in Interface Specifications: A Client-Aware Checking Approach}, booktitle = {Proc.\ MODULARITY Companion}, publisher = {ACM}, pages = {47--51}, doi = {}, year = {2015}, } |
|
Marchand de Kerchove, Florent |
MODULARITY Companion '15-FOAL: "Towards Modular Instrumentation ..."
Towards Modular Instrumentation of Interpreters in JavaScript
Florent Marchand de Kerchove, Jacques Noyé, and Mario Südholt (INRIA, France; LINA, France; École des Mines de Nantes, France) With an initial motivation based on the security of web applications written in JavaScript, we consider the instrumentation of an interpreter for a dynamic analysis as a crosscutting concern. We define the instrumentation problem — an extension to the expression problem with a focus on modifying interpreters. We then illustrate how we can instrument an interpreter for a simple language using only the bare language features provided by JavaScript. @InProceedings{MODULARITY Companion15p64, author = {Florent Marchand de Kerchove and Jacques Noyé and Mario Südholt}, title = {Towards Modular Instrumentation of Interpreters in JavaScript}, booktitle = {Proc.\ MODULARITY Companion}, publisher = {ACM}, pages = {64--69}, doi = {}, year = {2015}, } |
|
Noyé, Jacques |
MODULARITY Companion '15-FOAL: "Towards Modular Instrumentation ..."
Towards Modular Instrumentation of Interpreters in JavaScript
Florent Marchand de Kerchove, Jacques Noyé, and Mario Südholt (INRIA, France; LINA, France; École des Mines de Nantes, France) With an initial motivation based on the security of web applications written in JavaScript, we consider the instrumentation of an interpreter for a dynamic analysis as a crosscutting concern. We define the instrumentation problem — an extension to the expression problem with a focus on modifying interpreters. We then illustrate how we can instrument an interpreter for a simple language using only the bare language features provided by JavaScript. @InProceedings{MODULARITY Companion15p64, author = {Florent Marchand de Kerchove and Jacques Noyé and Mario Südholt}, title = {Towards Modular Instrumentation of Interpreters in JavaScript}, booktitle = {Proc.\ MODULARITY Companion}, publisher = {ACM}, pages = {64--69}, doi = {}, year = {2015}, } |
|
Rebêlo, Henrique |
MODULARITY Companion '15-FOAL: "Enforcing Information Hiding ..."
Enforcing Information Hiding in Interface Specifications: A Client-Aware Checking Approach
Henrique Rebêlo and Gary T. Leavens (Federal University of Pernambuco, Brazil; University of Central Florida, USA) Information hiding is an established principle that controls which parts of a module are visible to non-privileged and privileged clients (e.g., subclasses). This aids maintenance because hidden implementation details can be changed without affecting clients. The benefits of information hiding apply not only to code but also to other artifacts, such as specifications. Unfortunately, contemporary formal interface specification languages and their respective runtime assertion checkers (RACs) are inconsistent with information hiding rules because they check assertions in an overly-dynamic manner on the supplier side. We explain how overly-dynamic RACs compromise information hiding and how our client-aware checking technique allows these RACs to use the privacy information in specifications, which promotes information hiding. @InProceedings{MODULARITY Companion15p47, author = {Henrique Rebêlo and Gary T. Leavens}, title = {Enforcing Information Hiding in Interface Specifications: A Client-Aware Checking Approach}, booktitle = {Proc.\ MODULARITY Companion}, publisher = {ACM}, pages = {47--51}, doi = {}, year = {2015}, } |
|
Salkeld, Robin |
MODULARITY Companion '15-FOAL: "Essential Retroactive Weaving ..."
Essential Retroactive Weaving
Robin Salkeld and Ronald Garcia (University of British Columbia, Canada) To help analyze unexpected behaviour, programming language environments and tools are beginning to support high-fidelity recordings of program executions. Such recordings are typically low-level and difficult to work with directly. Debugging and analyzing these recordings is easier and more powerful if it is possible to simulate executing additional code in the past context of the recording. In prior work we proposed retroactive weaving, the process of evaluating aspects as if they were present during a past execution. This concept is intended as a general framework for introducing additional code and defining the semantics of executing it post-hoc. In this paper we express retroactive weaving as a transformation on aspect-oriented programming languages and their semantics. We demonstrate this transformation by applying it to a simple core aspect-oriented language, and through a definitional interpreter illustrate its interactions with first-class function values, mutable state, and external input and output. In particular a key concern of retroactive weavers is maintaining soundness: behaving consistently with the context of the past execution, and failing if missing information makes this impossible. Retroactive weavers may need to include extra isolation or runtime checks to meet this requirement. @InProceedings{MODULARITY Companion15p52, author = {Robin Salkeld and Ronald Garcia}, title = {Essential Retroactive Weaving}, booktitle = {Proc.\ MODULARITY Companion}, publisher = {ACM}, pages = {52--57}, doi = {}, year = {2015}, } Info |
|
Südholt, Mario |
MODULARITY Companion '15-FOAL: "Towards Modular Instrumentation ..."
Towards Modular Instrumentation of Interpreters in JavaScript
Florent Marchand de Kerchove, Jacques Noyé, and Mario Südholt (INRIA, France; LINA, France; École des Mines de Nantes, France) With an initial motivation based on the security of web applications written in JavaScript, we consider the instrumentation of an interpreter for a dynamic analysis as a crosscutting concern. We define the instrumentation problem — an extension to the expression problem with a focus on modifying interpreters. We then illustrate how we can instrument an interpreter for a simple language using only the bare language features provided by JavaScript. @InProceedings{MODULARITY Companion15p64, author = {Florent Marchand de Kerchove and Jacques Noyé and Mario Südholt}, title = {Towards Modular Instrumentation of Interpreters in JavaScript}, booktitle = {Proc.\ MODULARITY Companion}, publisher = {ACM}, pages = {64--69}, doi = {}, year = {2015}, } |
|
Zarrin, Bahram |
MODULARITY Companion '15-FOAL: "Towards Separation of Concerns ..."
Towards Separation of Concerns in Flow-Based Programming
Bahram Zarrin and Hubert Baumeister (DTU, Denmark) Flow-Based Programming (FBP) is a programming paradigm that models software systems as a directed graph of predefined processes which run asynchronously and exchange data through input and output ports. FBP decomposes software systems into a network of processes. However there are concerns in software systems which do not fit this dominant decomposition. In this paper, we address the cross-cutting-concerns in FBP by using some examples and propose an aspect-oriented extension to FBP. @InProceedings{MODULARITY Companion15p58, author = {Bahram Zarrin and Hubert Baumeister}, title = {Towards Separation of Concerns in Flow-Based Programming}, booktitle = {Proc.\ MODULARITY Companion}, publisher = {ACM}, pages = {58--63}, doi = {}, year = {2015}, } |
9 authors
proc time: 0.99