A Type System for Functional Traversal-Based Aspects
|
|
- Wesley Higgins
- 6 years ago
- Views:
Transcription
1 A Type System for Functional Traversal-Based Aspects Bryan Chadwick and Karl Lieberherr March 2 nd / 30
2 Outline Introduction Example (Pure) Semantics Example (Full Dispatch) Type System Soundness 2 / 30
3 Intro: Traversals AOP Modularizes Crosscutting Concerns Traversal is an Important Concern ˆ Walk a Data Structure... Do Some Work ˆ Tedious to Write ˆ Crosscuts Data Definitions 3 / 30
4 Intro: Functional Traversal Functional Traversal ˆ Compute Without Mutation ˆ Multi-threading ˆ Safe But Flexible ˆ Eliminate Implicit Ordering 4 / 30
5 Intro: Functional Traversal Tree Contraction 5 / 30
6 Intro: Functional Traversal Tree Contraction 6 / 30
7 Intro: Functional Traversal Tree Contraction 7 / 30
8 Intro: Functional Traversal Tree Contraction 8 / 30
9 Intro: Functional Traversal Tree Contraction... 9 / 30
10 Goals: Modularity and Safety Separate Traversals and Computation ˆ Traversal Flexibility/Control ˆ Freedom of Implementation ˆ Write Once or Generate from Structures Enforce Safety With Types ˆ Express More of the Computation ˆ Assumptions Are Checked 10 / 30
11 Functional Traversal-Based Aspects Sets of Functions Over a Depth-First Traversal ˆ Each Function Is Advice ˆ Join Points Are After Subtraversals Complete ˆ Pointcuts Are Function Signatures Benefits ˆ Functional! ˆ Type Sound 11 / 30
12 Surface Syntax x C A T ::= variable names ::= concrete type names ::= abstract type names ::= C A P ::= D 1... D n e D ::= concrete C ( T 1,..., T n ) abstract A ( T 1,..., T n ) e ::= x new C ( e 1,..., e n ) traverse( e 0, F ) F ::= funcset(f 1... f n ) f ::= (T 0 x 0,..., T n x n ){ return e; } 12 / 30
13 Example: Boolean Expressions Data Definitions abstract Exp ( Lit, Neg, And, Or) abstract Lit ( True, False ) concrete True () concrete False () concrete Neg ( Exp ) concrete And ( Exp, Exp ) concrete Or ( Exp, Exp ) 13 / 30
14 Example: Boolean Expressions An Expression &! F T F new Or(new And ( new False (), new True ()), new Neg ( new False ())) 14 / 30
15 Example: Boolean Expressions & Or Elimination! F T F funcset ( F T F (True t){ return t; } (False f){ return f; } (Neg n, Exp e) { return new Neg (e); } (And a, Exp l, Exp r){ return new And (l,r); }! & &!!! ) (Or o, Exp l, Exp r){ return new Neg ( new And ( new Neg (l), new Neg (r ))); } 15 / 30
16 Example: Boolean Expressions & Or Elimination! F T F! & &!!! F T F Other Functions Just Reconstruct (Or o, Exp l, Exp r){ return new Neg ( new And ( new Neg (l), new Neg (r ))); } 16 / 30
17 Semantics Traversals and Dispatch ˆ Adaptive Depth-First Traversal ˆ Dispatch on First Argument Type ˆ Enforce Safety With Types Functions ˆ Depend on Argument Order ˆ Can implement Field Access 17 / 30
18 Semantics: Expanded Expanded Dispatch Semantics ˆ Asymmetric Multiple Dispatch ˆ Pattern Matching with Safety Similar to CLOS Generic Functions 18 / 30
19 Example: Refactored Abstract Binary Exp abstract Exp ( Lit, Neg, Bin )... concrete Bin ( Op, Exp, Exp ) abstract Op ( And, Or) concrete And () concrete Or () 19 / 30
20 Example: Refactored Evaluation funcset ( (Lit l){ return l; } (Neg n, True t) { return new False (); } (Neg n, False t){ return new True (); } (Op o){ return o; } (Bin b, And a, True l, True r){ return l; } (Bin b, And a, Lit l, Lit r) { return new False (); } ) (Bin b, Or o, False l, False r){ return l; } (Bin b, Or o, Lit l, Lit r) { return new True (); } 20 / 30
21 Benefits of Extended Dispatch ˆ Abstraction (Lit l){...} (Bin b, And a, Lit l, Lit r){...} Handle Multiple Cases ˆ Type Flexibility (Bin b,...) {...} Lit (Op o){...} Op Not Strictly Type Unifying or Preserving ˆ Type Safety Adding XOr to Op *error* (Bin b, XOr x,...) not handled 21 / 30
22 Type System Connect Static and Dynamic Worlds ˆ Advice Lookup Never Fails ˆ Advice Application Never Fails Enables Flexible Traversal ˆ Dynamic (Reflection) ˆ Heap Based, With/Without Stack ˆ Complete Inlining 22 / 30
23 Typing Rules [T-Var] x : T Γ Γ e x : T [T-New] concrete C ( T 1,..., T n ) P Γ e e i : T i T i T i for all i 1..n Γ e new C ( e 1,..., e n ) : C [T-Func] x i : T i e e 0 : T F (T 0 x 0,..., T n x n ){ return e 0 ; } : T [T-Trav] Γ e e 0 : T 0 T T 0, F : T ; traverse( e 0, F ) : T 23 / 30
24 Traversal Typing Rules [T-CTrav] concrete C ( T 1,..., T n ) P types(choose(f, C)) = (C, T 1,..., T n ) F choose(f, C) : T for all i 1..n T i X X {C} T T i, F : T i ; Φ i T i T i (C, T ) (Φ 1 Φ n) T T Φ = { (T j, T j ) j 1..n T j X } Φ = Φ (Φ 1 Φ n)\(c, ) X T C, F : T ; Φ [T-ATrav] abstract A ( T 1,..., T n ) P for all i 1..n T i X X {A} T T i, F : T i ; Φ i T i T (A, T ) (Φ 1 Φ n) T T Φ = { (T j, T ) j 1..n T j X } Φ = Φ (Φ 1 Φ n)\(a, ) X T A, F : T ; Φ 24 / 30
25 Soundness Type System: Rules Out Runtime Errors ˆ Advice Lookup Never Fails ˆ Advice Application Never Fails ˆ Correctly Predicts Program Result Notables ˆ Complete Functions ˆ Subtype Traversals Return Subtypes 25 / 30
26 Related Work AOP Semantics: Bruns et al. [2004] Jagadeesan et al. [2003] Wand et al. [2004] AOP Soundness: Kammüller and Voesgen [2009] Walker et al. [2003] OO Type Soundness: Igarashi et al. [1999] Flatt et al. [1998] Constraint Type Systems: Palsberg and Schwartzbach [1991] 26 / 30
27 Next Steps Adding Features to the Model ˆ Multiple-dispatch ˆ Function Set Extension ˆ Traversal Control and Abstraction Towards Traditional Adaptive Programming 27 / 30
28 Next Steps Full Language Implementation ˆ Independent ˆ Or in a Future Functional Language Implementation Features ˆ Type Directed Inlining ˆ Type Directed Traversal Generation ˆ Performance results 28 / 30
29 Contact Bryan Chadwick: Karl Lieberherr: DemeterF Home: / 30
30 References Glenn Bruns, Radha Jagadeesan, Alan Jeffrey, and James Riely. µabc: A minimal aspect calculus. In Proceedings of the 2004 International Conference on Concurrency Theory, pages Springer-Verlag, Matthew Flatt, Shriram Krishnamurthi, and Matthias Felleisen. Classes and mixins. In In POPL, pages ACM Press, Atsushi Igarashi, Benjamin Pierce, and Philip Wadler. Featherweight java: A minimal core calculus for java and gj. In TOPLAS, pages , Radha Jagadeesan, Alan Jeffrey, and James Riely. A calculus of untyped aspect-oriented programs. In ECOOP, pages 54 73, Florian Kammüller and Matthias Voesgen. Towards type safety of aspect-oriented languages. In AOSD 2006, FOAL Workshop, Jens Palsberg and Michael I. Schwartzbach. Object-oriented type inference. In OOPSLA, pages , New York, NY, USA, ACM. ISBN doi: David Walker, Steve Zdancewic, and Jay Ligatti. A theory of aspects. In ICFP, pages , New York, NY, USA, ACM. ISBN doi: Mitchell Wand, Gregor Kiczales, and Chris Dutchyn. A semantics for advice and dynamic join points in aspect-oriented programming. TOPLAS, 26(5): , / 30
A Type System for Functional Traversal-Based Aspects
A Type System for Functional Traversal-Based Aspects Bryan Chadwick College of Computer & Information Science Northeastern University, 360 Huntington Avenue Boston, Massachusetts 02115 USA chadwick@ccs.neu.edu
More informationA Calculus of Untyped Aspect-Oriented Programs
A Calculus of Untyped Aspect-Oriented Programs Radha Jagadeesan, Alan Jeffrey, and James Riely CTI, DePaul University Abstract. Aspects have emerged as a powerful tool in the design and development of
More informationGraph-Based Specification and Simulation of Featherweight Java with Around Advice
Graph-Based Specification and Simulation of Featherweight Java with Around Advice ABSTRACT Tom Staijen Software Engineering Group University of Twente P.O. Box 217, 7500 AE Enschede, The Netherlands staijen@cs.utwente.nl
More informationFunctional Adaptive Programming
Functional Adaptive Programming A dissertation presented by Bryan Chadwick to the Faculty of the Graduate School of the College of Computer and Information Science in partial fulfillment of the requirements
More informationFunctional Adaptive Programming
Functional Adaptive Programming A dissertation presented by Bryan Chadwick to the Faculty of the Graduate School of the College of Computer and Information Science in partial fulfillment of the requirements
More informationFunctions and Traversals in Combination
Functions and Traversals in Combination Bryan Chadwick Therapon Skotiniotis Karl Lieberherr Northeastern University chadwick, skotthe, lieber @ccs.neu.edu Abstract In this paper we describe a new traversal
More informationWeaving Generic Programming and Traversal Performance
Weaving Generic Programming and Traversal Performance Bryan Chadwick chadwick@ccs.neu.edu College of Computer & Information Science Northeastern University, 360 Huntington Avenue Boston, Massachusetts
More informationAspect-Oriented Generation of the API Documentation for AspectJ
Aspect-Oriented Generation of the API Documentation for AspectJ Michihiro Horie Tokyo Institute of Technology 2-12-1 Ohkayama, Meguro-ku, Tokyo 152-8552, Japan www.csg.is.titech.ac.jp/ horie Shigeru Chiba
More informationCall by Declaration. Erik Ernst 1. Dept. of Computer Science, University of Aarhus, Denmark
Call by Declaration Erik Ernst 1 Dept. of Computer Science, University of Aarhus, Denmark eernst@daimi.au.dk Abstract. With traditional inheritance mechanisms, a subclass is able to use inherited features
More informationA Unit Testing Framework for Aspects without Weaving
A Unit Testing Framework for Aspects without Weaving Yudai Yamazaki l01104@sic.shibaura-it.ac.jp Kouhei Sakurai sakurai@komiya.ise.shibaura-it.ac.jp Saeko Matsuura matsuura@se.shibaura-it.ac.jp Hidehiko
More informationType Systems. Today. 1. Organizational Matters. 1. Organizational Matters. Lecture 1 Oct. 20th, 2004 Sebastian Maneth. 1. Organizational Matters
Today Type Systems 1. Organizational Matters 2. What is this course about? 3. Where do types come from? 4. Def. of the small language Expr. Its syntax and semantics. Lecture 1 Oct. 20th, 2004 Sebastian
More informationSafe Instantiation in Generic Java
Safe Instantiation in Generic Java January 31, 2003 Abstract This paper presents the safe-instantiation principle a new design principle for evaluating extensions of Java with support for generic types.
More informationTyped Lambda Calculus. Chapter 9 Benjamin Pierce Types and Programming Languages
Typed Lambda Calculus Chapter 9 Benjamin Pierce Types and Programming Languages t ::= x x. t t t Call-by-value small step perational Semantics terms variable v ::= values abstraction x. t abstraction values
More information5. Semantic Analysis!
5. Semantic Analysis! Prof. O. Nierstrasz! Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes.! http://www.cs.ucla.edu/~palsberg/! http://www.cs.purdue.edu/homes/hosking/!
More informationLifted Java: A Minimal Calculus for Translation Polymorphism
Lifted Java: A Minimal Calculus for Translation Polymorphism Matthias Diehn Ingesman and Erik Ernst Department of Computer Science, Aarhus University, Denmark, {mdi,eernst}@cs.au.dk Abstract. To support
More informationSpecifying Pointcuts in AspectJ
Specifying Pointcuts in AspectJ Yi Wang Department of Computer Science Shanghai Jiao Tong University 800 Dongchuan Rd, Shanghai, 200240, China yi_wang@sjtu.edu.cn Jianjun Zhao Department of Computer Science
More informationEfficient Separate Compilation of Object-Oriented Languages
Efficient Separate Compilation of Object-Oriented Languages Jean Privat, Floréal Morandat, and Roland Ducournau LIRMM Université Montpellier II CNRS 161 rue Ada 34392 Montpellier cedex 5, France {privat,morandat,ducour}@lirmm.fr
More informationCompilation Semantics of Aspect-Oriented Programs
Compilation Semantics of Aspect-Oriented Programs Hidehiko Masuhara Graduate School of Arts and Sciences University of Tokyo masuhara@acm.org Gregor Kiczales Department of Computer Science University of
More informationControl Flow Analysis with SAT Solvers
Control Flow Analysis with SAT Solvers Steven Lyde, Matthew Might University of Utah, Salt Lake City, Utah, USA Abstract. Control flow analyses statically determine the control flow of programs. This is
More informationBeyond Aspect-Oriented Programming: Toward Naturalistic Programming
Beyond Aspect-Oriented Programming: Toward Naturalistic Programming Cristina Videira Lopes Institute for Software Research and University of California, Irvine Outline AOP and AspectJ The problem and the
More information5. Semantic Analysis. Mircea Lungu Oscar Nierstrasz
5. Semantic Analysis Mircea Lungu Oscar Nierstrasz Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes. http://www.cs.ucla.edu/~palsberg/
More informationTemporal Aspects as Security Automata
Temporal Aspects as Security Automata Peter Hui CTI, DePaul University Chicago, IL, USA James Riely CTI, DePaul University Chicago, IL, USA Abstract Aspect-oriented programming (AOP) has been touted as
More informationReasoning about modules: data refinement and simulation
Reasoning about modules: data refinement and simulation David Naumann naumann@cs.stevens-tech.edu Stevens Institute of Technology Naumann - POPL 02 Java Verification Workshop p.1/17 Objectives of talk
More informationTypes for Flexible Objects
Types for Flexible Objects Building a Typed Scripting Language Pottayil Harisanker Menon, Zachary Palmer, Alexander Rozenshteyn, Scott F. Smith The Johns Hopkins University November 17th, 2014 2/1 Objective
More informationThe Polymorphic Blame Calculus and Parametricity
1 / 31 The Polymorphic Blame Calculus and Parametricity Jeremy G. Siek Indiana University, Bloomington University of Strathclyde August 2015 2 / 31 Integrating static and dynamic typing Static Dynamic
More informationFeatherweight Java (FJ)
x = 1 let x = 1 in... x(1).!x(1) x.set(1) Programming Language Theory Featherweight Java (FJ) Ralf Lämmel This lecture is based on David Walker s lecture: Computer Science 441, Programming Languages, Princeton
More informationFunctional Concepts in C++
Trends in Functional Programming 2006 Nottingham Functional Concepts in C++ Rose H. Abdul Rauf, Anton Setzer, Ulrich Berger Swansea 1 Goal: Integrating Functional and Object-Oriented Programming A first
More informationAspects and Soar: A Behavior Development Model. Jacob Crossman
Aspects and Soar: A Behavior Development Model Jacob Crossman jcrossman@soartech.com Motivation: Why is Soar Useful? Soar Systems are often complex Often require multiple processes Are built of hundreds/thousands
More informationCombining Event-driven and Capsule-oriented Programming to Improve Integrated System Design
Computer Science Technical Reports Computer Science 7-2017 Combining Event-driven and Capsule-oriented Programming to Improve Integrated System Design Jackson Maddox jlmaddox@iastate.edu Follow this and
More informationToward Abstract Interpretation of Program Transformations
Abstract Toward Abstract Interpretation of Program Transformations Developers of program transformations often reason about transformations to assert certain properties of the generated code. We propose
More informationFunctional Visitors Revisited
Functional Visitors Revisited Bryan Chadwick chadwick@ccs.neu.edu Therapon Skotiniotis skotthe@ccs.neu.edu College of Computer and Information Science Northeastern University 360 Huntington Avenue 202
More informationarxiv: v2 [cs.pl] 29 Dec 2017
Towards a Java Subtyping Operad arxiv:1706.00274v2 [cs.pl] 29 Dec 2017 Abstract Moez A. AbdelGawad Informatics Research Institute, SRTA-City, Alexandria, Egypt moez@cs.rice.edu The subtyping relation in
More informationJam: A Smooth Extension With Java Mixins
Jam: A Smooth Extension With Java Mixins Davide Ancona, Giovanni Lagorio, Ellena Zucca Presentation created by Left-out Jam abstract syntax Formal definitions of Jam static semantics Formal definitions
More information(Advanced) topics in Programming Languages
Spring 2012 (Advanced) topics in Programming Languages Instructor: Mooly Sagiv TA: Shachar Itzhaky http://www.cs.tau.ac.il/~msagiv/courses/apl12.html Inspired by John Mitchell CS 242 Compilation course
More informationOperational Semantics. One-Slide Summary. Lecture Outline
Operational Semantics #1 One-Slide Summary Operational semantics are a precise way of specifying how to evaluate a program. A formal semantics tells you what each expression means. Meaning depends on context:
More informationOpen Modules: Modular Reasoning in Aspect-Oriented Programming
Open Modules: Modular Reasoning in Aspect-Oriented Programming Jonathan Aldrich School of Computer Science Carnegie Mellon University 5000 Forbes Avenue Pittsburgh, PA 15213, USA jonathan.aldrich@cs.cmu.edu
More informationClass-graph Inference for Adaptive Programs
Theory and Practice of Object Systems 3(2):75-85, 1997. Class-graph Inference for Adaptive Programs Jens Palsberg Purdue University Abstract Software generators can adapt components to changes in the architectures
More informationAspect-Oriented Programming and AspectJ
What is Aspect-Oriented Programming? Many possible answers: a fad Aspect-Oriented Programming and AspectJ Aspect-oriented programming is a common buzzword lately Papers from ECOOP 1997 (early overview
More informationPL Punta Arenas
PL 2008 - Punta Arenas Aspects, Processes, and Components Jacques Noyé OBASCO - Ecole des Mines de Nantes/INRIA, LINA Jacques.Noye@emn.fr 12 November 2008 Introduction The basic idea There is usually no
More informationFeatherweight Scala. Week 14
Featherweight Scala Week 14 1 Today Previously: Featherweight Java Today: Featherweight Scala Live research, unlike what you have seen so far. Focus today on path-dependent types Plan: 1. Rationale 2.
More informationProgramming Languages
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Programming Languages Mixins Dr. Michael Petter Winter 2014 Mixins 1 / 30 What advanced techiques are there besides multiple implementation inheritance?
More informationExploring Possibilities for Symmetric Implementation of Aspect-Oriented Design Patterns in Scala
Exploring Possibilities for Symmetric Implementation of Aspect-Oriented Design Patterns in Scala Pavol PIDANIČ Slovak University of Technology in Bratislava Faculty of Informatics and Information Technologies
More informationEfficient Separate Compilation of Object-Oriented Languages
Efficient Separate Compilation of Object-Oriented Languages Jean Privat, Floréal Morandat, and Roland Ducournau LIRMM Université Montpellier II CNRS 161 rue Ada 34392 Montpellier cedex 5, France {privat,morandat,ducour}@lirmm.fr
More informationLanguage support for AOP
Language support for AOP AspectJ and beyond Mario Südholt www.emn.fr/sudholt INRIA and École des Mines de Nantes OBASCO project, Nantes, France Language support for AOP ; Mario Südholt; INRIA/EMN; March
More informationProgramming Languages Fall 2014
Programming Languages Fall 2014 Lecture 7: Simple Types and Simply-Typed Lambda Calculus Prof. Liang Huang huang@qc.cs.cuny.edu 1 Types stuck terms? how to fix it? 2 Plan First I For today, we ll go back
More informationStatic type safety guarantees for the operators of a relational database querying system. Cédric Lavanchy
Static type safety guarantees for the operators of a relational database querying system Cédric Lavanchy June 6, 2008 Contents 1 Previous work 2 2 Goal 3 3 Theory bases 4 3.1 Typing a relation...........................
More informationWeaving Rewrite-Based Access Control Policies
Weaving Rewrite-Based Access Control Policies Anderson Santana de Oliveira a, Eric Ke Wang ab, Claude Kirchner a, Hélène Kirchner a INRIA & LORIA The University of Hong Kong FMSE, 2007 Oliveira, Wang,
More informationSafe Metaclass Composition Using Mixin-Based Inheritance
Safe Metaclass Composition Using Mixin-Based Inheritance Noury Bouraqadi bouraqadi@ensm-douai.fr http://csl.ensm-douai.fr/noury Dépt. G.I.P. - Ecole des Mines de Douai 941, rue Charles Bourseul - B.P.
More informationDenotational Semantics. Domain Theory
Denotational Semantics and Domain Theory 1 / 51 Outline Denotational Semantics Basic Domain Theory Introduction and history Primitive and lifted domains Sum and product domains Function domains Meaning
More informationAspects, Information Hiding and Modularity
Aspects, Information Hiding and Modularity Daniel S. Dantas Princeton University ddantas@cs.princeton.edu David Walker Princeton University dpw@cs.princeton.edu ABSTRACT Aspect-oriented programming languages
More informationVisitor-Oriented Programming
Visitor-Oriented Programming Thomas VanDrunen Purdue University Department of Computer Science West Lafayette, IN 47907 vandrutj@cs.purdue.edu Jens Palsberg UCLA Computer Science Department 4531K Boelter
More informationOperational Semantics of Cool
Operational Semantics of Cool Key Concepts semantics: the meaning of a program, what does program do? how the code is executed? operational semantics: high level code generation steps of calculating values
More informationSeparation of Concerns
Separation of Concerns Erik Ernst Dept. of Computer Science, University of Aarhus, Denmark eernst@daimi.au.dk Abstract. Separation of concerns is a crucial concept in discussions about software engineering
More informationUniAspect: A Language-Independent Aspect-Oriented Programming Framework
UniAspect: A Language-Independent Aspect-Oriented Programming Framework Akira Ohashi Kazunori Sakamoto Tomoyuki Kamiya Reisha Humaira Satoshi Arai Hironori Washizaki Yoshiaki Fukazawa Waseda University
More informationA Novel Approach to Unit Testing: The Aspect-Oriented Way
A Novel Approach to Unit Testing: The Aspect-Oriented Way Guoqing Xu and Zongyuan Yang Software Engineering Lab, Department of Computer Science East China Normal University 3663, North Zhongshan Rd., Shanghai
More informationInterlanguage Migration
Interlanguage Migration From Scripts to Programs Sam Tobin-Hochstadt and Matthias Felleisen Northeastern University DLS 2006 1 A Story 2 About a programmer 3 Who needed to manage his budget 4 And so, he
More informationConsistent Subtyping for All
Consistent Subtyping for All Ningning Xie Xuan Bi Bruno C. d. S. Oliveira 11 May, 2018 The University of Hong Kong 1 Background There has been ongoing debate about which language paradigm, static typing
More informationCOS 320. Compiling Techniques
Topic 5: Types COS 320 Compiling Techniques Princeton University Spring 2016 Lennart Beringer 1 Types: potential benefits (I) 2 For programmers: help to eliminate common programming mistakes, particularly
More informationLearning from Components: Fitting AOP for System Software
Learning from Components: Fitting AOP for System Software Andreas Gal, Michael Franz Department of Computer Science University of California, Irvine Irvine, CA 92697-3425, USA {gal,franz@uci.edu Danilo
More informationModularity: what, why and how
Modularity: what, why and how Stephen Kell Stephen.Kell@cl.cam.ac.uk Computer Laboratory University of Cambridge Modularity... p.1/33 Some problematic code Imagine implementing a syntax tree evaluator.
More informationDefaulting Generic Java to Ownership
Defaulting Generic Java to Ownership Alex Potanin, James Noble, Dave Clarke 1, and Robert Biddle 2 {alex, kjx@mcs.vuw.ac.nz, dave@cwi.nl, and robert biddle@carleton.ca School of Mathematical and Computing
More informationASaP: Annotations for Safe Parallelism in Clang. Alexandros Tzannes, Vikram Adve, Michael Han, Richard Latham
ASaP: Annotations for Safe Parallelism in Clang Alexandros Tzannes, Vikram Adve, Michael Han, Richard Latham Motivation Debugging parallel code is hard!! Many bugs are hard to reason about & reproduce
More informationDISCUSSING ASPECTS OF AOP
a DISCUSSING ASPECTS OF AOP How would you define AOP? Gregor Kiczales: Aspect-oriented programming is a new evolution in the line of technology for separation of concerns technology that allows design
More informationFJMIP: a calculus for a modular object initialization
FJMIP: a calculus for a modular object initialization Viviana Bono 1 and Jaros law D. M. Kuśmierek 2 1 Torino University, Dept. of Computer Science 2 Warsaw University, Institute of Informatics Abstract.
More informationProgramming AspectJ with Eclipse and AJDT, By Example. Chien-Tsun Chen Sep. 21, 2003
Programming AspectJ with Eclipse and AJDT, By Example Chien-Tsun Chen Sep. 21, 2003 ctchen@ctchen.idv.tw References R. Laddad, I want my AOP!, Part 1-Part3, JavaWorld, 2002. R. Laddad, AspectJ in Action,
More informationSoftwaretechnik. Lecture 03: Types and Type Soundness. Peter Thiemann. University of Freiburg, Germany SS 2008
Softwaretechnik Lecture 03: Types and Type Soundness Peter Thiemann University of Freiburg, Germany SS 2008 Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 1 / 35 Table of Contents Types and Type correctness
More informationStatic Type Analysis of Pattern Matching by Abstract Interpretation
Static Type Analysis of Pattern Matching by Abstract Interpretation Pietro Ferrara ETH Zurich, Switzerland pietro.ferrara@inf.ethz.ch Abstract. Pattern matching is one of the most attractive features of
More informationProcesses as Types: A Generic Framework of Behavioral Type Systems for Concurrent Processes
Processes as Types: A Generic Framework of Behavioral Type Systems for Concurrent Processes Atsushi Igarashi (Kyoto Univ.) based on joint work [POPL2001, TCS2003] with Naoki Kobayashi (Tohoku Univ.) Programming
More informationOpen Modules: A Proposal for Modular Reasoning in Aspect-Oriented Programming
Open Modules: A Proposal for Modular Reasoning in Aspect-Oriented Programming Jonathan Aldrich Institute for Software Research, International Carnegie Mellon University 5000 Forbes Avenue Pittsburgh, PA
More informationRepresentation Independence, Confinement and Access Control
Representation Independence, Confinement and Access Control Anindya Banerjee and David Naumann ab@cis.ksu.edu and naumann@cs.stevens-tech.edu Kansas State University and Stevens Institute of Technology,
More informationTyped Scheme From Scripts to Programs. Sam Tobin-Hochstadt Northeastern University
Typed Scheme From Scripts to Programs Sam Tobin-Hochstadt Northeastern University 1 The PL Renaissance 2 The PL Renaissance 3 The PL Renaissance 4 What s good These languages are interactive designed for
More informationarxiv: v1 [cs.pl] 29 Mar 2016
arxiv:1603.08648v1 [cs.pl] 29 Mar 2016 A Comparison of NOOP to Structural Domain-Theoretic Models of Object-Oriented Programming Moez A. AbdelGawad moez@cs.rice.edu College of Mathematics and Econometrics,
More informationUML Aspect Specification Using Role Models
UML Aspect Specification Using Role Models Geri Georg Agilent Laboratories, Agilent Technologies, Fort Collins, USA geri_georg@agilent.com Robert France Department of Computer Science, Colorado State University
More informationSimply-Typed Lambda Calculus
#1 Simply-Typed Lambda Calculus #2 Back to School What is operational semantics? When would you use contextual (small-step) semantics? What is denotational semantics? What is axiomatic semantics? What
More informationTyped Compilation Against Non-Manifest Base Classes
Typed Compilation Against Non-Manifest Base Classes Christopher League Long Island University christopher.league@liu.edu Stefan Monnier Université de Montréal monnier@iro.umontreal.ca FTfJP workshop 26
More informationData Structures, ADTs, and PDAs. Lists and Procedural Data Abstractions. COMP 210: Object-Oriented Programming Lecture Notes 7
COMP 210: Object-Oriented Programming Lecture Notes 7 Data Structures, ADTs, and PDAs Based on notes by Logan Mayfield In these notes we explore the paradigm of designing Procedural Data Abstractionsand
More informationMcJava A Design and Implementation of Java with Mixin-Types
McJava A Design and Implementation of Java with Mixin-Types Tetsuo Kamina and Tetsuo Tamai University of Tokyo 3-8-1, Komaba, Meguro-ku, Tokyo, 153-8902, Japan {kamina,tamai}@graco.c.u-tokyo.ac.jp Abstract.
More information15-819M: Data, Code, Decisions
15-819M: Data, Code, Decisions 08: First-Order Logic André Platzer aplatzer@cs.cmu.edu Carnegie Mellon University, Pittsburgh, PA André Platzer (CMU) 15-819M/08: Data, Code, Decisions 1 / 40 Outline 1
More informationOpen Modules: Modular Reasoning about Advice
Open Modules: Modular Reasoning about Advice Jonathan Aldrich December 2004 CMU-ISRI-04-141 Institute for Software Research International School of Computer Science Carnegie Mellon University 5000 Forbes
More informationDynamic Weaving for Building Reconfigurable Software Systems
Dynamic Weaving for Building Reconfigurable Software Systems JAGDISH LAKHANI lakhjag@iitedu Computer Science Dept Illinois Institute of Technology Chicago, IL 60616 FAISAL AKKAWI akkawif@iitedu Computer
More informationxtc Robert Grimm Making C Safely Extensible New York University
xtc Making C Safely Extensible Robert Grimm New York University The Problem Complexity of modern systems is staggering Increasingly, a seamless, global computing environment System builders continue to
More informationPh.D. Thesis Proposal: Programming Language Support For Separation Of Concerns
Ph.D. Thesis Proposal: Programming Language Support For Separation Of Concerns Doug Orleans April 19, 2002 Abstract Separation of concerns is a useful problem-solving technique. Ideally, each program module
More informationExtensible Java Pre-processor
Extensible Java Pre-processor National Institute of Advanced Industrial Science and Technology(AIST) Yuuji Ichisugi http://staff.aist.go.jp/y-ichisugi/ 2002/12/17 1 What is EPP? Language extension framework
More informationA Distributed Dynamic Aspect Machine for Scientific Software Development
A Distributed Dynamic Aspect Machine for Scientific Software Development Chanwit Kaewkasi Centre for Novel Computing School of Computer Science University of Manchester John R. Gurd Centre for Novel Computing
More informationA Gentle Introduction to Program Analysis
A Gentle Introduction to Program Analysis Işıl Dillig University of Texas, Austin January 21, 2014 Programming Languages Mentoring Workshop 1 / 24 What is Program Analysis? Very broad topic, but generally
More informationERC 4th Workshop KAIST. Sukyoung Ryu KAIST. August 26, 2010
ERC 4th Workshop Sukyoung Ryu August 26, 2010 : Members Coq Mechanization of Basic Core Fortress for Type Soundness Adding Pattern Matching to Existing Object- Oriented Languages FortressCheck: Automatic
More informationCS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106
CS 565: Programming Languages Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106 Administrivia Who am I? Course web page http://www.cs.purdue.edu/homes/peugster/cs565spring08/ Office hours By appointment Main
More informationA Calculus for Constraint-Based Flow Typing
A Calculus for Constraint-Based Flow Typing David J. Pearce School of Engineering and Computer Science,Victoria University of Wellington, New Zealand djp@ecs.vuw.ac.nz Abstract Flow typing offers an alternative
More informationStatic Program Analysis
Static Program Analysis Lecture 1: Introduction to Program Analysis Thomas Noll Lehrstuhl für Informatik 2 (Software Modeling and Verification) noll@cs.rwth-aachen.de http://moves.rwth-aachen.de/teaching/ws-1415/spa/
More informationIdioms for Building Software Frameworks in AspectJ
Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,
More informationConstrained Types and their Expressiveness
Constrained Types and their Expressiveness JENS PALSBERG Massachusetts Institute of Technology and SCOTT SMITH Johns Hopkins University A constrained type consists of both a standard type and a constraint
More informationFormal AOP: Opportunity Abounds
Formal AOP: Opportunity Abounds James Riely http://www.depaul.edu/ jriely DePaul CTI, Chicago, USA Much of this talk reports on joint work with Glen Bruns Radha Jagadeesan Alan Jeffrey FOAL 04 p.1/68 Thanks
More informationDesign by Contract: An Overview
: An Overview CSCI 5828 Michael M. Vitousek University of Colorado at Boulder michael.vitousek@colorado.edu March 21, 2012 1 / 35 Outline 1 Introduction Motivation and Introduction Simple Example Contract
More informationEnforcing Resource Usage Protocols via Scoped Methods
Enforcing Resource Usage Protocols via Scoped Methods Gang Tan Xinming Ou David Walker Princeton University {gtan, xou, dpw@cs.princeton.edu Abstract Traditional modularity mechanisms such as Java s classes
More informationImplementing Software Connectors through First-Class Methods
Implementing Software Connectors through First-Class Methods Cheoljoo Jeong and Sangduck Lee Computer & Software Technology Laboratory Electronics and Telecommunications Research Institute Taejon, 305-350,
More informationSubstructural Typestates
Programming Languages meets Program Verification 2014 Substructural Typestates Filipe Militão (CMU & UNL) Jonathan Aldrich (CMU) Luís Caires (UNL) Motivation! File file = new File( out.txt );! file.write(
More informationImproving Scala's Safe Type-Level Abstraction
Seminar: Program Analysis and Transformation University of Applied Sciences Rapperswil Improving Scala's Safe Type-Level Abstraction Stefan Oberholzer, soberhol@hsr.ch Dez 2010 Abstract Scala cannot nd
More informationLecture Outline. COOL operational semantics. Operational Semantics of Cool. Motivation. Lecture 13. Notation. The rules. Evaluation Rules So Far
Lecture Outline Operational Semantics of Cool Lecture 13 COOL operational semantics Motivation Notation The rules Prof. Aiken CS 143 Lecture 13 1 Prof. Aiken CS 143 Lecture 13 2 Motivation We must specify
More informationLecture Outline. COOL operational semantics. Operational Semantics of Cool. Motivation. Notation. The rules. Evaluation Rules So Far.
Lecture Outline Operational Semantics of Cool COOL operational semantics Motivation Adapted from Lectures by Profs. Alex Aiken and George Necula (UCB) Notation The rules CS781(Prasad) L24CG 1 CS781(Prasad)
More informationAspect Design Pattern for Non Functional Requirements
Aspect Design Pattern for Non Functional Requirements FAZAL-E-AMIN¹, ANSAR SIDDIQ², HAFIZ FAROOQ AHMAD³ ¹ ²International Islamic University Islamabad, Pakistan ³NUST Institute of Information Technology,
More information