AspectJ [6] Figure 2: dflow[x, y](q) [8] 1. (q) 6 print. lookup. (p) ) print. p && dflow[x, y](q) lookup p. AspectJ dflow. Java. 2 dflow.
|
|
- Gervase Adams
- 5 years ago
- Views:
Transcription
1 AspectJ dflow Java dflow dflow AspectJ Java dflow 1 before(string x) : call(void Strm.print(String)) && args(x) && dflow[x, String y] [7] ( call(string Db.lookup(String)) && returns(y) ){ log.info(thisjoinpoint + ": " + x); } Java AspectJ [6] AspectJ Figure 1: dflow... 1 String id = in.read(); 2 String name = db.lookup(id); AspectJ strm.print("<h1>hello, "); 5 strm.print(name.touppercase()); 6 strm.print("</h1>"); Figure 2: 2 dflow dflow[x, y](q) [8] dflow 2 (x, y) 1 p (q) 1 lookup print (p) ( p 1 x q y ) 2 6 print p && dflow[x, y](q) 5,7 print lookup p x q y x y x 1 returns dflow [8] 1
2 1 pointcut atfilereading(string instr) : 2 target(t) && call(* *Reader.read*(..)) && returns(instr) && 3 dflow[object t, FileInputStream fis]( call(* FileInputStream.new(..)) && returns(fis) ); 4 5 pointcut atinetwriting(string outstr) : 6 target(t) && call(* *Writer.write*(String)) && args(outstr) && 7 dflow[object t, OutputStream os]( call(* Socket.getOutputStream()) && returns(os) ); 8 9 before(string w, String r) : atinetwriting(w) && dflow[w, r]( atfilereading(r) ){ 10 logger.warning(thisjoinpoint + ": " + w); 11 } Figure 3: dflow y instr x y 5 7 atinetwriting outstr 1.1 dflow 9 11 before atfilereading atinetwriting 1 Java 1.2 Java dflow Java [8, 5] [11] Java dflow AspectJ dflow dflow 3 2 AspectJ AspectJ Java atfilereading instr 2 Reader read dflow invoke invoke t instr 3 FileInputStream fis 2, 3 Reader dflow read 1 invoke invoke (t) FileInputStream (fis) dflow dflow 2
3 3 AspectJ set(y) = if(y points to a primitive value p) 4 5 associate flag with p; 6 else if(y points to a non-array object o) associate flag with o; for(each field fd of o) set(o.fd); else if(y points to an array a) for(each i of 0 i < a.length) set(a[i]); 2 dflow check(x) = dflow if(x points to a primitive value p) dflow if(flag is associated with p) return T; else if(x points to a non-array object o) v1 if(flag is associated with o) return T; else v1 for(each field fd of o) 1 if(check(o.fd)) return T; else if(x points to an array a) Db.lookup for(each i of 0 i < a.length) if(check(a[i])) return T; return F; Strm.read Figure 4: set, check 2.1 p && dflow[x, y](q) dflow propagate [8] set declare propagate : q y call(stringbuffer StringBuffer.append(*)) && y args(s1) && target(s2) && returns(s3) : 4 set from s1, s2 to s3; append s1 s2 check true (+ - ) s3 set propagate check p x 3 dflow x 4 check dflow check AspectJ p && dflow[x, y](q) dflow ( 5) 3 dflow dflow set/check (1) (2) dflow (set$/check$ ) (1),(2) if(a == 0) ++b; a b dflow check 3
4 :;<=>0/123-./ *+,+-./ 0/123-./ *+, ! "#"#"#"#$%&'() Figure 5: AspectJ 2 String id = in.read(); 3 String name = db.lookup(id); 4 set$(name); String s1 = "<h1>hello, "; 7 if(check$(s1)) log.info(...); 8 strm.print("<h1>hello, "); 9 String s2 = name.touppercase(); 10 if(check$(s2)) log.info(...); 11 strm.print(s2); 12 String s3 = "</h1>"; 13 if(check$(s3)) log.info(...); 14 strm.print(s3); boolean Figure 6: : set$, check$ boolean 3 key dflow value 1 2 Java 6 Java java.util.weakhashmap AspectJ dflow, Java ( 7) AspectJ set$/check$ boolean set$/check$ 4 set/check ,7 boolean print 6 boolean 7,13 check$ ( check key value) 3 4
5 !"! " Figure 8: Figure 7: set, check 1 (iaload, iastore ) p set p true check 4 ( 8 true false (1)) set/check 4 API ( 8 (2)) ( 8 (3)) ( 8 (4)), (iload, istore, iadd, dup ) 7 stack[1] iload 2 iload 5; istore 7 2 Java set$/check$ set/check 5 dflow (getfield, putfield) check 4 java.lang.threadlocal 5
6 1 0? 1 0? ?? 0 1 0? 0? 0?? 1?????? 1. set$/check$ Figure 9: 2. check check mayaddone x X if check X 0 else X mayaddone (X 0) X int mayaddone(int x){ if(...) return x + 1; else return x; } 2.1 append propagate mayaddone 1 (X 0) X X = ? 5 : 1 ( ) Var 0 ( ) V 1,..., V n 6 Var = V 1... V n? ( ) (iadd ) ( ) 2 9 ( 5 6 V 1,..., V n 6
7 Point p1 = new Point(); 3 p1.x = 10; p1.y = 100; 4 int hx = p1.x; 5... (Linpack [1]) (Compress [2]) (Mtrt [2]) Figure 10: : Point class Point { int x, y; } (Db [2]) 2 x set/check dflow 2 y set void return check points-to flow-insensitive set/check 10 2 new Point dflow set$ 3? AspectJ 3 0 int CPU Pentium4(1.7GHz) 256MByte x, y OS Windows JDK hx? check 6.1.1? check ( 11) load/store set/check ( check$ (p call/return ) )? p check Linpack Compress p? Db points-to 1.5 Mtrt 7!"#$% Figure 11:
8 Compress 1.2 %&!"# Linpack Db!"# $ $ $ Linpack double +,-. '( )* )* Db boolean int boolean int 2 Figure 13: ( Compress, Mtrt 100 / ) Compress (1.00) 2/3 Compress!"#$% %&!"#!"# +,-. )* Figure 12: Linpack Db Mtrt Linpack check load/store 11 set/check API Mtrt API Compress Mtrt AspectJ cflow set/check dflow 7 cflow ( 13) Perl taint-check [12] $ '( )* 1 points-to flow-insensitive 8
9 ID boolean dflow taint-check Perl 9 dflow 1.1 dflow 1 dflow dflow [11] 0 dflow 60 1 dflow 1/3 Slam [4] JFlow [9] dflow Java points-to points-to [10, 13, 3] API set/check dflow ( ) context-sensitive dflow POPL 8 dflow 1 References dflow [1] Linpack dflow benchmark/linpackjava/. dflow [2] SPECjvm98. jvm98. (ID) [8] set/check [3] B. Blanchet. Escape analysis for object oriented languages. In OOPSLA 1999, pages 20 ID set/check 34, [4] N. Heintze and J. G. Riecke. The slam calculus: programming with secrecy and integrity. In ID POPL 1998, pages , [5] K. Kawauchi and H. Masuhara. (1, 0,?). In 3 SPA, ID AOP ( ),
10 [6] G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W.G. Griswold. An overview of aspectj. In ECOOP 2001, LNCS 2072, pages , [7] G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In ECOOP 1997, LNCS 1241, pages , [8] H. Masuhara and K. Kawauchi. Dataflow pointcut in aspect-oriented programming. In APLAS 2003, LNCS 2895, pages , [9] A. C. Myers. Jflow: Practical mostly-static information flow control. In POPL 1999, pages , [10] A. Rountev, A. Milanova, and B. G. Ryder. Points-to analysis for java using annotated constrains. In OOPSLA 2001, pages 43 55, [11] A. Sabelfeld and A. C. Myers. Language-based information-flow security. IEEE J. Selected Areas in Communications, 21(1):5 19, January [12] L. Wall and R. Schwartz. Programming Perl. O Reilly and Associates, [13] J. Whaley and M. Rinard. Compositional pointer and escape analysis for java programs. In OOPSLA 1999, pages ,
A 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 informationBugdel: An Aspect-Oriented Debugging System
Bugdel: An Aspect-Oriented Debugging System Yoshiyuki Usui and Shigeru Chiba Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology 2-12-1-W8-50 Ohkayama, Meguro-ku Tokyo 152-8552,
More informationdataflow pointcut in aspect-oriented programming
dataflow pointcut in aspect-oriented programming Hidehiko Masuhara (University of Tokyo) joint work with Kazunori Kawauchi 1 background: aspect-oriented programming (AOP) a paradigm for modularizing crosscutting
More informationJosh. Java. AspectJ weave. 2 AspectJ. Josh Javassist[1] Javassist Java. AspectJ[3, 4] Java. AspectJ. weave. weave. weave. weave. weaver 1.
Josh Java Aspect Weaver weaver 1 AspectJ Java AspectJ Java weave AspectJ weave Josh weave Javassist weave 1 weaver 1 AspectJ[3, 4] 1 Java AspectJ Java weave Java AspectJ weave Josh Josh Java weave weave
More informationUML4COP: UML-based DSML for Context-Aware Systems
UML4COP: UML-based DSML for Context-Aware Systems Naoyasu Ubayashi Kyushu University ubayashi@acm.org Yasutaka Kamei Kyushu University kamei@ait.kyushu-u.ac.jp Abstract Context-awareness plays an important
More informationAssertion with Aspect
Assertion with Aspect Takashi Ishio, Toshihiro Kamiya, Shinji Kusumoto, Katsuro Inoue Graduate School of Engineering Science, PRESTO, Japan Science and Technology Agency Osaka University 1-3 Machikaneyama-cho,
More informationAn Aspect-Oriented Approach to Modular Behavioral Specification
Electronic Notes in Theoretical Computer Science 163 (2006) 45 56 www.elsevier.com/locate/entcs An Aspect-Oriented Approach to Modular Behavioral Specification Kiyoshi Yamada 1 Research Center for Information
More informationAPPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION *
APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION * Xiaoqing Wu, Barrett Bryant and Jeff Gray Department of Computer and Information Sciences The University
More informationOn the Impact of Aspect-Oriented Programming on Object-Oriented Metrics
On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics Jean-Yves Guyomarc h and Yann-Gaël Guéhéneuc GEODES - Group of Open and Distributed Systems, Experimental Software Engineering Department
More informationStatic Program Analysis
Static Program Analysis Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ws-1617/spa/ Recap: Taking Conditional Branches into Account Extending
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 informationAn Aspect-Oriented Language for Exception Handling
Vol. 47 No. 4 Apr. 2006 GluonJ/R GluonJ/R block recover GluonJ/R An Aspect-Oriented Language for Exception Handling Natsuko Kumahara, Kenichi Kourai and Shigeru Chiba We must often handle exceptions raised
More informationUsing Aspects to Make Adaptive Object-Models Adaptable
Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba 1, Ralph Johnson 2 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,
More informationUsing Aspects to Make Adaptive Object-Models Adaptable
Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba, and Ralph Johnson 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,
More informationAn Aspect-Based Approach to Modeling Security Concerns
An Aspect-Based Approach to Modeling Security Concerns Geri Georg Agilent Laboratories, Agilent Technologies, Fort Collins, USA geri_georg@agilent.com Robert France, Indrakshi Ray Department of Computer
More informationAdvice Weaving in ÉNFASIS
2010 Electronics, Robotics and Automotive Mechanics Conference Advice Weaving in ÉNFASIS Ulises Juárez-Martínez Division of Research and Postgraduate Studies Instituto Tecnológico de Orizaba 94320, Veracruz,
More informationLanguage-Based Information- Flow Security
Language-Based Information- Flow Security Andrei Sabelfeld Andrew C. Myers Presented by Shiyi Wei About the paper Literature review Information flow security Static program analysis to enforce information-flow
More informationContext-oriented Programming With Only Layers
Robert Hirschfeld Hasso-Plattner-Institute University of Potsdam Germany hirschfeld@hpi.uni-potsdam.de L Context-oriented Programming With Only Layers Hidehiko Masuhara Mathematical and Computing Sciences
More informationAspect-Oriented Programming and Modular Reasoning
Copyright 2004 Gregor Kiczales, Mira Mezini. All rights reserved. 1 Aspect-Oriented Programming and Modular Reasoning Gregor Kiczales University of British Columbia gregork@acm.org Mira Mezini Technische
More informationApplying Aspect Oriented Programming on Security
Original Article Applying Aspect Oriented Programming on Security Mohammad Khalid Pandit* 1, Azra Nazir 1 and Arutselvan M 2 1 Department of computer Science and engineering, National institute of technology
More informationAnalysis and Research on the Automated Generation of Unit Test
1+, 1 1, 1 (, 200062) Analysis and Research on the Automated Generation of Unit Test XU Guo-qing 1+, YANG Zong-yuan 1, HUANG Hai-tao 1 1 (Software Engineering Lab, Department of Computer Science, East
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 informationAspect-Oriented Programming and Modular Reasoning
Aspect-Oriented Programming and Modular Reasoning Gregor Kiczales University of British Columbia 2366 Main Mall Vancouver, BC, Canada gregork@acm.org Mira Mezini Technische Universität Darmstadt Hochschulstrasse
More informationProfiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming Techniques Ritu Arora, Yu Sun, Zekai Demirezen, Jeff Gray University of Alabama at Birmingham Department of Computer and Information Sciences Birmingham,
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 informationUnweaving the Impact of Aspect Changes in AspectJ
Unweaving the Impact of Aspect Changes in AspectJ Luca Cavallaro Politecnico di Milano Piazza L. da Vinci, 32 20133 Milano, Italy cavallaro@elet.polimi.it Mattia Monga Università degli Studi di Milano
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 informationUsing Pointcut Delta Analysis to Support Evolution of Aspect-Oriented Software
Using Pointcut Delta Analysis to Support Evolution of Aspect-Oriented Software Maximilian Stoerzer and Juergen Graf University of Passau Passau, Germany {stoerzer, grafj@fmi.uni-passau.de Abstract Aspect
More informationCSC 4181 Handout : JVM
CSC 4181 Handout : JVM Note: This handout provides you with the basic information about JVM. Although we tried to be accurate about the description, there may be errors. Feel free to check your compiler
More informationOn Aspect-Orientation in Distributed Real-time Dependable Systems
On Aspect-Orientation in Distributed Real-time Dependable Systems Andreas Gal, Wolfgang Schröder-Preikschat, and Olaf Spinczyk University of Magdeburg Universitätsplatz 2 39106 Magdeburg, Germany gal,wosch,olaf
More informationCompiling Techniques
Lecture 10: Introduction to 10 November 2015 Coursework: Block and Procedure Table of contents Introduction 1 Introduction Overview Java Virtual Machine Frames and Function Call 2 JVM Types and Mnemonics
More informationAn Introduction to Multicodes. Ben Stephenson Department of Computer Science University of Western Ontario
An Introduction to Multicodes Ben Stephenson Department of Computer Science University of Western Ontario ben@csd csd.uwo.ca Outline Java Virtual Machine Background The Current State of the Multicode Art
More informationProgramming Languages
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Programming Languages Aspect Oriented Programming Dr. Michael Petter Winter 2017/18 Aspect Oriented Programming 1 / 34 Is modularity the key principle
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 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 information3 GluonJ. 1 GluonJ Web. {rei, DAO. GluonJ Web. GluonJ. glue DAO. glue 1 DAO DAO. ( AOP) AspectJ [6] [7] DAO.
GluonJ {rei, chiba@csg.is.titech.ac.jp GluonJ GluonJ AOP GluonJ GluonJ AspectJ GluonJ 1 GluonJ Web AOP GluonJ Web glue GluonJ ( DAO) DAO glue 1 DAO DAO ( AOP) AspectJ [6] [7] DAO Web 2 AOP DAO 1 DAO AOP
More informationRefactoring of Aspect-Oriented Software
Refactoring of Aspect-Oriented Software Stefan Hanenberg, Christian Oberschulte, Rainer Unland University of Duisburg-Essen, Institute for Computer Science and Business Information Systems (ICB) 45127
More informationGETTING STARTED WITH ASPECTJ
a GETTING STARTED WITH ASPECTJ An aspect-oriented extension to Java enables plug-and-play implementations of crosscutting. Many software developers are attracted to the idea of AOP they recognize the concept
More informationThe Essence of AspectJ
The Essence of AspectJ [Functional Pearl] Mark P. Jones Pacific Software Research Center Oregon Graduate Institute of Science & Technology 20000 NW Walker Road, Beaverton, Oregon 97006, USA mpj@cse.ogi.edu
More informationA State-Based Approach to Testing Aspect-Oriented Programs
A State-Based Approach to Testing Aspect-Oriented Programs Dianxiang Xu, Weifeng Xu, and Kendall Nygard Department of Computer Science North Dakota State University Fargo, ND 58105, USA {dianxiang.xu,
More informationDeterministically Executing Concurrent Programs for Testing and Debugging
Deterministically Executing Concurrent Programs for Testing and Debugging Steve MacDonald and Jun Chen David R. Cheriton School of Computer Science University of Waterloo, Waterloo, Ontario, Canada {stevem,
More informationOpen Modules: Reconciling Extensibility and Information Hiding
Open Modules: Reconciling Extensibility and Information Hiding Jonathan Aldrich School of Computer Science Carnegie Mellon University 5000 Forbes Avenue Pittsburgh, PA 15213, USA jonathan.aldrich@cs.cmu.edu
More informationDynamic Weaving for Building Reconfigurable Software Systems
Dynamic Weaving for Building Reconfigurable Software Systems FAISAL AKKAWI Akkawi@cs.iit.edu Computer Science Dept. Illinois Institute of Technology Chicago, IL 60616 ATEF BADER abader@lucent.com Lucent
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 informationCompiling Conditional Pointcuts for User-Level Semantic Pointcuts
Compiling Conditional Pointcuts for User-Level Semantic Pointcuts Tomoyuki Aotani Graduate School of Arts and Sciences, University of Tokyo aotani@graco.c.u-tokyo.ac.jp Hidehiko Masuhara Graduate School
More informationAnalysing the navigational aspect
A. M. Reina Dpto. Lenguajes y Sistemas Informáticos Universidad de Sevilla. e-mail: reinaqu@lsi.us.es Analysing the navigational aspect J. Torres Dpto. Lenguajes y Sistemas Informáticos Universidad de
More informationA Domain-Specific Language for Generating Dataflow Analyzers
LDTA 2006 A Domain-Specific Language for Generating Dataflow Analyzers Jia Zeng 2 Department of Computer Science Columbia University, New York Chuck Mitchell 3 Microsoft Corporation Redmond, Washington
More informationJava Instrumentation for Dynamic Analysis
Java Instrumentation for Dynamic Analysis and Michael Ernst MIT CSAIL Page 1 Java Instrumentation Approaches Instrument source files Java Debug Interface (JDI) Instrument class files Page 2 Advantages
More informationAspectScope: An Outline Viewer for AspectJ Programs
Vol. 6, No. 9, 2007 AspectScope: An Outline Viewer for AspectJ Programs Michihiro Horie, Tokyo Institute of Technology, Japan Shigeru Chiba, Tokyo Institute of Technology, Japan This paper presents the
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 informationIntroduction to Compiler Construction in a Java World
Introduction to Compiler Construction in a Java World Bill Campbell, Swami Iyer, Bahar Akbal-Delibaş Errata Here you can find a listing of known errors in our text. If you find others, please let us know
More informationTopics. Structured Computer Organization. Assembly language. IJVM instruction set. Mic-1 simulator programming
Topics Assembly language IJVM instruction set Mic-1 simulator programming http://www.ontko.com/mic1/ Available in 2 nd floor PC lab S/W found in directory C:\mic1 1 Structured Computer Organization 2 Block
More informationA Quantitative Evaluation of the Contribution of Native Code to Java Workloads
A Quantitative Evaluation of the Contribution of Native Code to Java Workloads Walter Binder University of Lugano Switzerland walter.binder@unisi.ch Jarle Hulaas, Philippe Moret EPFL Switzerland {jarle.hulaas,philippe.moret}@epfl.ch
More informationAspects and Data Refinement
Aspects and Data Refinement Pavel Avgustinov 1, Eric Bodden 2, Elnar Hajiyev 1, Oege de Moor 1, Neil Ongkingco 1, Damien Sereni 1, Ganesh Sittampalam 1, Julian Tibble 1 1 Programming Tools Group, Oxford
More informationReference Analyses. VTA - Variable Type Analysis
Reference Analyses Variable Type Analysis for Java Related points-to analyses for C Steengaard Andersen Field-sensitive points-to for Java Object-sensitive points-to for Java Other analysis approaches
More informationUsing Aspect-Oriented Programming to extend Protégé. Henrik Eriksson Linköping University
Using Aspect-Oriented Programming to extend Protégé Henrik Eriksson Linköping University Questions about MOP and Protégé Original goal: Extending the JessTab plug-in What is the class precedence in Protégé?
More informationPoints-to Analysis for Java Using Annotated Constraints*
Points-to Analysis for Java Using Annotated Constraints* Dr. Barbara G. Ryder Rutgers University http://www.cs.rutgers.edu/~ryder http://prolangs.rutgers.edu/ *Joint research with Atanas Rountev and Ana
More informationPattern Transformation for Two-Dimensional Separation of Concerns
Transformation for Two-Dimensional Separation of Concerns Xiaoqing Wu, Barrett R. Bryant and Jeff Gray Department of Computer and Information Sciences The University of Alabama at Birmingham Birmingham,
More informationA Small Extension to Java for Class Refinement
A Small Extension to Java for Class Refinement Muga Nishizawa Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology 2-12-1 Ohkayama, Meguro-ku Tokyo 152-8552, Japan muga@csg.is.titech.ac.jp
More informationOn Aspect-Orientation in Distributed Real-time Dependable Systems
On Aspect-Orientation in Distributed Real-time Dependable Systems Andreas Gal, Olaf Spinczyk, and Wolfgang Schröder-Preikschat University of California, 552 Engineering Tower, Irvine, CA 92697, USA University
More informationCMSC430 Spring 2014 Midterm 2 Solutions
CMSC430 Spring 2014 Midterm 2 Solutions 1. (12 pts) Syntax directed translation & type checking Consider the following grammar fragment for an expression for C--: exp CONST IDENT 1 IDENT 2 [ exp 1 ] Assume
More informationDynamic Instantiation-Checking Components
Dynamic Instantiation-Checking Components Nigamanth Sridhar Electrical and Computer Engineering Cleveland State University 318 Stilwell Hall, 2121 Euclid Ave Cleveland OH 44113 n.sridhar1@csuohio.edu ABSTRACT
More informationJarcler: Aspect-Oriented Middleware for Distributed Software in Java
Jarcler: Aspect-Oriented Middleware for Distributed Software in Java Muga Nishizawa Shigeru Chiba Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology Email: {muga,chiba@csg.is.titech.ac.jp
More informationDetecting Precedence-Related Advice Interference
Detecting Precedence-Related Advice Interference Technical Report TR #0607, University of Passau, Computer Science Department, Passau, Germany, July 2006 Maximilian Stoerzer and Robin Sterr University
More informationCScheme in Traditional Concurrency Problems
CScheme in Traditional Concurrency Problems Nathar Shah and Visham Cheerkoot Abstract CScheme, a concurrent programming paradigm based on scheme concept enables concurrency schemes to be constructed from
More informationA Theory of Aspects for Aspect-Oriented Software Development
A Theory of Aspects for Aspect-Oriented Software Development Christina von Flach G. Chavez 1,2 Carlos J. P. de Lucena 2 1 UFBA, Computer Science Department Av. Adhemar de Barros, s/n 40170-110, Salvador,
More informationA Tour of Language Implementation
1 CSCE 314: Programming Languages Dr. Flemming Andersen A Tour of Language Implementation Programming is no minor feat. Prometheus Brings Fire by Heinrich Friedrich Füger. Image source: https://en.wikipedia.org/wiki/prometheus
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 informationThread-Sensitive Points-to Analysis for Multithreaded Java Programs
Thread-Sensitive Points-to Analysis for Multithreaded Java Programs Byeong-Mo Chang 1 and Jong-Deok Choi 2 1 Dept. of Computer Science, Sookmyung Women s University, Seoul 140-742, Korea chang@sookmyung.ac.kr
More informationMorphing Software for Easier Evolution
Morphing Software for Easier Evolution Shan Shan Huang 1,2, and Yannis Smaragdakis 2 1 Georgia Institute of Technology, College of Computing, ssh@cc.gatech.edu 2 University of Oregon, Department of Computer
More informationJVM. What This Topic is About. Course Overview. Recap: Interpretive Compilers. Abstract Machines. Abstract Machines. Class Files and Class File Format
Course Overview What This Topic is About PART I: overview material 1 Introduction 2 Language processors (tombstone diagrams, bootstrapping) 3 Architecture of a compiler PART II: inside a compiler 4 Syntax
More informationJava and C II. CSE 351 Spring Instructor: Ruth Anderson
Java and C II CSE 351 Spring 2017 Instructor: Ruth Anderson Teaching Assistants: Dylan Johnson Kevin Bi Linxing Preston Jiang Cody Ohlsen Yufang Sun Joshua Curtis Administrivia Lab 5 Due TONIGHT! Fri 6/2
More informationA Model for Software Plans
A Model for Software Plans Robert R. Painter and David Coppit Department of Computer Science The College of William and Mary private static Vector readdata() { BufferedReader stdin = new BufferedReader(
More informationPractical Mostly-Static Information Flow Control. Andrew Myers MIT Lab for Computer Science
Practical Mostly-Static Information Flow Control Andrew Myers MIT Lab for Computer Science Privacy Old problem (secrecy, confidentiality) : prevent programs from leaking data Untrusted, downloaded code:
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 informationImproving Java Code Performance. Make your Java/Dalvik VM happier
Improving Java Code Performance Make your Java/Dalvik VM happier Agenda - Who am I - Java vs optimizing compilers - Java & Dalvik - Examples - Do & dont's - Tooling Who am I? (Mobile) Software Engineering
More informationLet s make some Marc R. Hoffmann Eclipse Summit Europe
Let s make some Marc R. Hoffmann Eclipse Summit Europe 2012 24.10.2012 public class WhatIsFaster { int i; void inc1() { i = i + 1; } void inc2() { i += 1; } void inc3() { i++; } } Why? Compilers Scrip;ng
More informationMidterm 2. CMSC 430 Introduction to Compilers Fall Instructions Total 100. Name: November 19, 2014
Name: Midterm 2 CMSC 430 Introduction to Compilers Fall 2014 November 19, 2014 Instructions This exam contains 10 pages, including this one. Make sure you have all the pages. Write your name on the top
More informationJava byte code verification
Java byte code verification SOS Master Science Informatique U. Rennes 1 Thomas Jensen SOS Java byte code verification 1 / 26 Java security architecture Java: programming applications with code from different
More informationImproving Java Performance
Improving Java Performance #perfmatters Raimon Ràfols ...or the mumbo-jumbo behind the java compiler Agenda - Disclaimer - Who am I? - Our friend the java compiler - Language additions & things to consider
More informationOn Aspect-Oriented Technology and Object-Oriented Design Patterns
On Aspect-Oriented Technology and Object-Oriented Design Patterns Ouafa Hachani and Daniel Bardou Equipe SIGMA, LSR-IMAG BP 72 38402 Saint Martin d Hères Cedex, France {Ouafa.Hachani, Daniel.Bardou}@imag.fr
More informationCourse Overview. PART I: overview material. PART II: inside a compiler. PART III: conclusion
Course Overview PART I: overview material 1 Introduction (today) 2 Language Processors (basic terminology, tombstone diagrams, bootstrapping) 3 The architecture of a Compiler PART II: inside a compiler
More informationGenerating correct and efficient equality and hashing methods using JEqualityGen
Workshop on Generative Technologies 2010 Generating correct and efficient equality and hashing methods using JEqualityGen Neville Grech 1,4,5 Julian Rathke 2,5 Bernd Fischer 3,6,5 School of Electronics
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 informationThe Java Virtual Machine. CSc 553. Principles of Compilation. 3 : The Java VM. Department of Computer Science University of Arizona
The Java Virtual Machine CSc 553 Principles of Compilation 3 : The Java VM Department of Computer Science University of Arizona collberg@gmail.com Copyright c 2011 Christian Collberg The Java VM has gone
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 informationA Quantitative Analysis of Java Bytecode Sequences
A Quantitative Analysis of Java Bytecode Sequences Ben Stephenson Wade Holst Department of Computer Science, University of Western Ontario, London, Ontario, Canada 1 Introduction A variety of studies have
More informationA Proposal For Classifying Tangled Code
A Proposal For Classifying Tangled Code Stefan Hanenberg and Rainer Unland Institute for Computer Science University of Essen, 45117 Essen, Germany {shanenbe, unlandr@csuni-essende Abstract A lot of different
More informationCS 12 Fall 2003 Solutions for mid-term exam #2
CS 12 Fall 2003 Solutions for mid-term exam #2 1. (10 points) Compilers and interpreters Provide short answers (a few sentences at most) to the following questions. (a) What is the difference between a
More informationUniversity of Huddersfield Repository
University of Huddersfield Repository Ghareb, Mazen and Allen, Gary Improving the Design and Implementation of Software Systems uses Aspect Oriented Programming Original Citation Ghareb, Mazen and Allen,
More informationProgram Instrumentation for Debugging and Monitoring with AspectC++
Program Instrumentation for Debugging and Monitoring with AspectC++ Daniel Mahrenholz, Olaf Spinczyk, and Wolfgang Schröder-Preikschat University of Magdeburg Universitätsplatz 2 D-39106 Magdeburg, Germany
More informationAn Aspect-to-Class Advising Architecture Based on XML in Aspect Oriented Programming
An Aspect-to-Class Advising Architecture Based on XML in Aspect Oriented Programming T. Hussain, M. M. Awais, S. Shamail, M. A. Adnan Department of Computer Science Lahore University of Management Sciences,
More informationLecture 9 Dynamic Compilation
Lecture 9 Dynamic Compilation I. Motivation & Background II. Overview III. Compilation Policy IV. Partial Method Compilation V. Partial Dead Code Elimination VI. Escape Analysis VII. Results Partial Method
More informationPreserving Separation of Concerns through Compilation
Preserving Separation of Concerns through Compilation A Position Paper Hridesh Rajan Robert Dyer Youssef Hanna Dept. of Computer Science Harish Narayanappa Iowa State University Ames, IA 50010 {hridesh,
More informationA join point for loops in AspectJ
A join point for loops in AspectJ Bruno Harbulot bruno.harbulot@cs.man.ac.uk John R. Gurd jgurd@cs.man.ac.uk Centre for Novel Computing, School of Computer Science, University of Manchester, Oxford Road,
More informationProgrammer-friendly Decompiled Java
McGill University School of Computer Science Sable Research Group Programmer-friendly Decompiled Java Sable Technical Report No. 2006-2 Nomair A. Naeem Laurie Hendren {nnaeem, hendren@cs.mcgill.ca March
More informationRoadmap. Java: Assembly language: OS: Machine code: Computer system:
Roadmap C: car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Assembly language: Machine code: Computer system: get_mpg: pushq movq... popq ret %rbp %rsp, %rbp
More informationCode Generation. Frédéric Haziza Spring Department of Computer Systems Uppsala University
Code Generation Frédéric Haziza Department of Computer Systems Uppsala University Spring 2008 Operating Systems Process Management Memory Management Storage Management Compilers Compiling
More informationShared Mutable State SWEN-220
Shared Mutable State SWEN-220 The Ultimate Culprit - Shared, Mutable State Most of your development has been in imperative languages. The fundamental operation is assignment to change state. Assignable
More informationContext Threading: A flexible and efficient dispatch technique for virtual machine interpreters
: A flexible and efficient dispatch technique for virtual machine interpreters Marc Berndl Benjamin Vitale Mathew Zaleski Angela Demke Brown Research supported by IBM CAS, NSERC, CITO 1 Interpreter performance
More information