scispace - formally typeset
Search or ask a question
Author

Christopher Dutchyn

Bio: Christopher Dutchyn is an academic researcher from University of Saskatchewan. The author has contributed to research in topics: Semantics (computer science) & Aspect-oriented programming. The author has an hindex of 9, co-authored 22 publications receiving 725 citations. Previous affiliations of Christopher Dutchyn include University of Alberta & University of British Columbia.

Papers
More filters
Journal ArticleDOI
TL;DR: In this paper, the authors give a denotational semantics for a minilanguage that embodies the key features of dynamic join points, pointcuts, and advice, which is intended as a baseline semantics against which future correctness results may be measured.
Abstract: A characteristic of aspect-oriented programming, as embodied in Aspect J, is the use of advice and point cuts to define behavior that crosscuts the structure of the rest of the code. The events during execution at which advice may execute are called join points. A pointcut is a set of join points. An advice is an action to be taken at the join points in a particular pointcut. In this model of aspect-oriented programming, join points are dynamic in that they refer to events during the flow of execution of the program.We give a denotational semantics for a minilanguage that embodies the key features of dynamic join points, pointcuts, and advice. This is the first semantics for aspect-oriented programming that handles dynamic join points and recursive procedures. It is intended as a baseline semantics against which future correctness results may be measured.

256 citations

Book ChapterDOI
07 Apr 2003
TL;DR: A semantics-based compilation model for an aspect-oriented programming language based on its operational semantics can explain several issues in compilation processes, including how to find places in program text to insert aspect code and how to remove unnecessary run-time checks.
Abstract: This paper presents a semantics-based compilation model for an aspect-oriented programming language based on its operational semantics Using partial evaluation, the model can explain several issues in compilation processes, including how to find places in program text to insert aspect code and how to remove unnecessary run-time checks It also illustrates optimization of calling-context sensitive pointcuts (cflow), implemented in real compilers

203 citations

01 Jan 2002
TL;DR: A semantics-based compilation frame- work for an aspect-oriented programming language based on its operational semantics model can explain several issues in compilation processes, including how to find places in program text to insert aspect code and how to remove unnecessary run-time checks.
Abstract: paper presents a semantics-based compilation frame- work for an aspect-oriented programming language based on its operational semantics model. Using partial evalua- tion, the framework can explain several issues in compilation processes, including how to find places in program text to insert aspect code and how to remove unnecessary run-time checks. It also illustrates optimization of calling-context sen- sitive pointcuts (cflow), implemented in real compilers.

70 citations

Journal ArticleDOI
TL;DR: The subtleties of pointcuts and advice for higher-order languages, particularly Scheme are described and resolved by alluding to traditional notions of scope, and programmers can now define both dynamic aspects traditional to AOP and static aspects that can capture common security-control paradigms.

66 citations

Proceedings Article
29 Jan 2001
TL;DR: The general-purpose technique provides smaller dispatch latency than programmer-written double-dispatch code with equivalent functionality and isolates the performance penalty and semantic changes of multimethod dispatch to the program sections which use it.
Abstract: Mainstream object-oriented languages, such as C++ and Java, provide only a restricted form of polymorphic methods, namely uni-receiver dispatch. In common programming situations, developers must work around this limitation. We describe how to extend the Java Virtual Machine to support multi-dispatch and examine the complications that Java imposes on multidispatch in practice. Our technique avoids changes to the Java programming language itself, maintains source code and library compatibility, and isolates the performance penalty and semantic changes of multimethod dispatch to the program sections which use it. We have micro-benchmark and application-level performance results for a dynamic Most Specific Applicable (MSA) dispatcher, a framework-based Single Receiver Projections (SRP) dispatcher, and a tuned SRP dispatcher. Our general-purpose technique provides smaller dispatch latency than programmer-written double-dispatch code with equivalent functionality.

29 citations


Cited by
More filters
Journal Article
TL;DR: AspectJ as mentioned in this paper is a simple and practical aspect-oriented extension to Java with just a few new constructs, AspectJ provides support for modular implementation of a range of crosscutting concerns.
Abstract: Aspect] is a simple and practical aspect-oriented extension to Java With just a few new constructs, AspectJ provides support for modular implementation of a range of crosscutting concerns. In AspectJ's dynamic join point model, join points are well-defined points in the execution of the program; pointcuts are collections of join points; advice are special method-like constructs that can be attached to pointcuts; and aspects are modular units of crosscutting implementation, comprising pointcuts, advice, and ordinary Java member declarations. AspectJ code is compiled into standard Java bytecode. Simple extensions to existing Java development environments make it possible to browse the crosscutting structure of aspects in the same kind of way as one browses the inheritance structure of classes. Several examples show that AspectJ is powerful, and that programs written using it are easy to understand.

2,947 citations

01 Aug 2001
TL;DR: The study of distributed systems which bring to life the vision of ubiquitous computing systems, also known as ambient intelligence, is concentrated on in this work.
Abstract: With digital equipment becoming increasingly networked, either on wired or wireless networks, for personal and professional use alike, distributed software systems have become a crucial element in information and communications technologies. The study of these systems forms the core of the ARLES' work, which is specifically concerned with defining new system software architectures, based on the use of emerging networking technologies. In this context, we concentrate on the study of distributed systems which bring to life the vision of ubiquitous computing systems, also known as ambient intelligence.

2,774 citations

BookDOI
01 Jan 2013
TL;DR: Books and internet are the recommended media to help you improving your quality and performance.
Abstract: Inevitably, reading is one of the requirements to be undergone. To improve the performance and quality, someone needs to have something new every day. It will suggest you to have more inspirations, then. However, the needs of inspirations will make you searching for some sources. Even from the other people experience, internet, and many books. Books and internet are the recommended media to help you improving your quality and performance.

565 citations

01 Jun 2008
TL;DR: This chapter discusses designing and Developing Agent-Based Models, and building the Collectivities Model Step by Step, as well as reporting on advances in agent-Based Modeling.
Abstract: Series Editor's Introduction Preface Acknowledgments 1. The Idea of Agent-Based Modeling 1.1 Agent-Based Modeling 1.2 Some Examples 1.3 The Features of Agent-Based Modeling 1.4 Other Related Modeling Approaches 2. Agents, Environments, and Timescales 2.1 Agents 2.2 Environments 2.3 Randomness 2.4 Time 3. Using Agent-Based Models in Social Science Research 3.1 An Example of Developing an Agent-Based Model 3.2 Verification: Getting Rid of the Bugs 3.3 Validation 3.4 Techniques for Validation 3.5 Summary 4. Designing and Developing Agent-Based Models 4.1 Modeling Toolkits, Libraries, Languages, Frameworks, and Environments 4.2 Using NetLogo to Build Models 4.3 Building the Collectivities Model Step by Step 4.4 Planning an Agent-Based Model Project 4.5 Reporting Agent-Based Model Research 4.6 Summary 5. Advances in Agent-Based Modeling 5.1 Geographical Information Systems 5.2 Learning 5.3 Simulating Language Resources Glossary References Index About the Author

473 citations

Proceedings ArticleDOI
12 Oct 2005
TL;DR: A new history-based language feature called tracematches is presented that enables the programmer to trigger the execution of extra code by specifying a regular pattern of events in a computation trace by exploiting the introduction of free variables in the matching patterns.
Abstract: An aspect observes the execution of a base program; when certain actions occur, the aspect runs some extra code of its own. In the AspectJ language, the observations that an aspect can make are confined to the current action: it is not possible to directly observe the history of a computation.Recently, there have been several interesting proposals for new history-based language features, most notably by Douence et al. and by Walker and Viggers. In this paper, we present a new history-based language feature called tracematches that enables the programmer to trigger the execution of extra code by specifying a regular pattern of events in a computation trace. We have fully designed and implemented tracematches as a seamless extension of AspectJ.A key innovation in our tracematch approach is the introduction of free variables in the matching patterns. This enhancement enables a whole new class of applications in which events can be matched not only by the event kind, but also by the values associated with the free variables. We provide several examples of applications enabled by this feature.After introducing and motivating the idea of tracematches via examples, we present a detailed semantics of our language design, and we derive an implementation from that semantics. The implementation has been realised as an extension of the abc compiler for AspectJ.

456 citations