Publications

Books

  • Andreas Gal; “Efficient Bytecode Verification and Compilation in a Virtual Machine” (Ph.D. Thesis); University of California, Irvine; Irvine, CA, November 28, 2006. (link)
  • Andreas Gal; “Reconciliation of an Object Oriented Runtime Environment and Resource Restricted Systems” (Master’s Thesis); University of Magdeburg; Magdeburg, Germany, April 2, 2001. (link)

Book Chapters

  • Olaf Spinczyk, Michael Schoettner, Andreas Gal; “Programming Languages and Operating Systems”; In Object-Oriented Technology, ECOOP 2004 Workshop Reader, J. Malenfant, Bjarte M. Ostvold (Eds.), Springer-Verlag, LNCS 3344/2005, p. 202 ff; Heidelberg, Germany, 2004. (link)
  • Andreas Gal, Olaf Spinczyk, Dario Alvarez; “Object-Orientation and Operating Systems”; In Object-Oriented Technology, ECOOP 2002 Workshop Reader, J. Hernandez, A. Moreira (Eds.), Springer-Verlag, LNCS 2548, p. 174 ff; Berlin, Germany, 2002. (link)

Peer-Reviewed Journal Articles

  • Andreas Gal, Christian W. Probst, Michael Franz; “Java Bytecode Verification via Static Single Assignment Form”; In ACM Transactions on Programming Languages and Systems (TOPLAS); to appear, 2007.
  • Michael Franz, Deepak Chandra, Andreas Gal, Vivek Haldar, Christian W. Probst, Fermin Reig, and Ning Wang; “A Portable Virtual Machine Target For Proof-Carrying Code”; In Science of Computer Programming, Special Issue on Interpreters, Virtual Machines, and Emulators; Amsterdam, The Netherlands, 2005. (link)
  • Michael Franz, Peter H. Froehlich, and Andreas Gal; “Supporting Software Composition at the Programming-Language Level”; In Special Issue on New Software Composition Concepts, Journal of Science of Computer Programming, Elke Pulvermueller, Gerhard Goos, Uwe Assmann (Eds.), Journal of Science of Computer Programming, Elsevier; Amsterdam, The Netherlands, 2005. (link)

Peer-Reviewed Conference and Workshop Papers

  • Kevin Williams, Albert Noll, Andreas Gal and David Gregg; “Optimization Strategies for a Java Virtual Machine Interpreter on the Cell Broadband Engine”; Proceedings of the 2008 Conference on Computing Frontiers; Ischia, Italy, May 5-7, 2008.
  • Babak Salamat, Andreas Gal, and Michael Franz; “Reverse Stack Execution in a Multi-Variant Execution Environment”Accepted to the 2008 Workshop on Compiler and Architectural Techniques for Application Reliability and Security (CATARS’08) in conjunction with DSN 2008; June 2008. 
  • Babak Salamat, Andreas Gal, Todd Jackson, Karthikeyan Manivannan, Gregor Wagner, and Michael Franz; “Multi-Variant Program Execution: Using Multi-Core Systems to Defuse Buffer-Overflow Vulnerabilities”; Accepted to the 2008 Workshop on Multi-Core Computing Systems (MuCoCoS’08); Barcelona, Spain, March 4-7, 2008. 
  • Michael Bebenita, Andreas Gal, Michael Franz; “Implementing Fast JVM Interpreters In Java Itself”; in V. Amaral, L. Veiga, L. Marcelino, and H. C. Cunningham (Eds.), Proceedings of the 5th International Conference on Principles and Practices of Programming Java (PPPJ 2007); ACM Press, ISBN 978-1-59593-672-1, pp. 145-154; Lisbon, Portugal, September 2007. (link)
  • Andreas Gal, Michael Bebenita, Michael Franz; “One Method At A Time Is Quite a Waste of Time”; Accepted to the 2nd Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS’2007); Berlin, Germany, 2007.
  • Michael Franz, Andreas Gal, and Christian W. Probst; “Automatic Generation of Machine Emulators: Efficient Synthesis of Robust Virtual Machines for Legacy Software Migration”; in W.-G. Bleek, J. Raasch, H. Zuellighoven (Eds.), Proceedings of Software Engineering Conference 2007 (SE 2007), Lecture Notes in Informatics (LNI) No. 105, GI-Edition, Gesellschaft feur Informatik, Bonn, ISBN 978-3-88579-199-7, pp. 83–94; Hamburg, Germany, March 2007. (link)
  • Michael Stilkerich, Christian Wawersich, Wolfgang Schroder-Preikschat, Andreas Gal, and Michael Franz; “OSEK/VDX API for Java;” in Linguistic Support for Modern Operating Systems (PLOS 2006); San Jose, California, October 2006. (link)
  • Christian W. Probst, Andreas Gal, Michael Franz: “HotpathVM: An effective JIT compiler for resource-constrained devices”; In Proceedings of the 2nd International Conference on Virtual Execution Environments (VEE ’06); Ottawa, Canada, 2006. (link)
  • Andreas Gal, Christian W. Probst, Michael Franz; “Average Case vs. Worst Case Margins of Safety in System Design”; In Proceedings of the 2005 New Security Paradigms Workshop (NSPW 2005); Lake Arrowhead, CA, 2005. (link)
  • Andreas Gal, Christian W. Probst, Michael Franz; “Structural Encoding of Static Single Assignment Form”; In Proceedings of the 4th International Workshop on Compiler Optimization Meets Compiler Verification COCV 2005; Edinburgh, Scotland, 2005. (link)
  • Andreas Gal, Christian W. Probst, Michael Franz; “Untyped Memory in the Java Virtual Machine”; In Proceedings of the 2nd ECOOP Workshop on Programming Languages and Operating Systems; Glasgow, Scotland, 2005 (author was also co-organizer of this event). (link)
  • Andreas Gal, Christian W. Probst and Michael Franz; “Integrated Java Bytecode Verification”; In Proceedings of the First International Workshop on Abstract Interpretation AIOOL 2005, Electronic Notes in Theoretical Computer Science, Elsevier B.V., Volume 131, Pages 27-38; Paris, France, Jaunary 21, 2005. (link)
  • Andreas Gal, Michael Yang, Christian W. Probst, Michael Franz; “Executing Legacy Applications on a Java Operating System”; In Proceedings of the 2004 First ECOOP Workshop on Programming Languages and Operating Systems; Oslo, Norway, 2004 (author was also co-organizer of this event). (link)
  • Christian W. Probst, Andreas Gal, Michael Franz; “Code Generating Routers: A Network-Centric Approach to Mobile Code”; In Proceedings of the 2003 IEEE 18th Annual Workshop on Computer Communications; Newport Beach, CA, 2003. (link)
  • Michael Franz, Deepak Chandra, Andreas Gal, Vivek Haldar, Fermin Reig, and Ning Wang; “A Portable Virtual Machine Target for Proof-Carrying Code”; In Proceedings of the 2003 Workshop on Interpreters, Virtual Machines and Emulators (IVME’03); ACM Press, ISBN:1-58113-655-2; San Diego, CA, June 12, 2003. (link)
  • Andreas Gal, Michael Franz, Danilo Beuche; “Learning from Components: Fitting AOP for System Software”; In Proceedings of the AOSD 2003 Workshop on Aspects, Components, and Patterns for Infrastructure Software; Boston, MA, March 17, 2003. (link)
  • Andreas Gal, Olaf Spinczyk; “Build Management for AspectC++”; In Proceedings of the OOPSLA 2003 Workshop on Tools for Aspect-Oriented Software Development; Seattle, USA, November 4, 2002. (link)
  • Olaf Spinczyk, Andreas Gal, Wolfgang Schroeder-Preikschat; “AspectC++: An Aspect-Oriented Extension to C++”; In Proceedings of the 40th International Conference on Technology of Object-Oriented Languages and Systems (TOOLS Pacific 2002); Sydney, Australia, February 18-21, 2002. (link)
  • Andreas Gal, Peter H. Froehlich, Michael Franz; “An Efficient Execution Model for Dynamically Reconfigurable Component Software”; In Proceedings of the 7th International Workshop on Component-Oriented Programming (ECOOP-WCOP’2002); Malaga, Spain, June 10-14, 2002. (link)
  • Daniel Mahrenholz, Olaf Spinczyk, Andreas Gal, Wolfgang Schroeder-Preikschat; “An Aspect-Oriented Implementation of Interrupt Synchronization in the Pure Operating System Family”; In Proceedings of the 5th ECOOP Object-Oriented Operating System Workshop (ECOOP-OOOSWS’2002); Malaga, Spain, June 10-14, 2002 (author was co-organizer of this event). (link)
  • Andreas Gal, Wolfgang Schroeder-Preikschat, Olaf Spinczyk; “On Aspect-Orientation in Distributed Real-time Dependable Systems”; In Proceedings of the Seventh IEEE International Workshop on Object-oriented Real-time Dependable Systems (WORDS 2002), IEEE Computer Society; San Diego, CA, January 7-9, 2002. (link)
  • Andreas Gal, Wolfgang Schroeder-Preikschat, Olaf Spinczyk; “Open Components”; In Proceedings of the First OOPSLA Workshop on Language Mechanisms for Programming Software Components, Northeastern University, College of Computer Science, Technical Report NU-CCS-01-06; Tampa Bay, Florida, October 15, 2001. (link)
  • Andreas Gal, Wolfgang Schroeder-Preikschat, Olaf Spinczyk; “Aspect C++: Language Proposal and Prototype Implementation”; In Proceedings of the OOPSLA 2001 Workshop on Advanced Separation of Concerns in Object-Oriented Systems; Tampa Bay, Florida, October 14, 2001. (link)
  • Andreas Gal, Wolfgang Schroeder-Preikschat, Olaf Spinczyk; “On Minimal Overhead Operating Systems and Aspect-Oriented Programming”; In Proceedings of the ECOOP Workshop on Object Orientation and Operating Systems (ECOOP-OOOSWS’01), Universidad de Oviedo, ISBN 84-699-5329-X; Budapest, Hungary, May 19, 2001. (link)
  • Olaf Spinczyk, Andreas Gal, Wolfgang Schroeder-Preikschat; “A Lightweight Component Architecture for Efficient Information Fusion”. In Proceedings of the International Workshop on Information Fusion 2001 (DBFusion 2001); Magdeburg, Germany, April 9-10, 2001. (link)

Peer-Reviewed Posters

  • Andreas Gal, Olaf Spinczyk, Wolfgang Schroeder-Preikschat; “AspectC++”; Presented at the OOPSLA 2003 Workshop on Tools for Aspect-Oriented Software Development; Seattle, USA, November 4, 2002. (link)
  • Andreas Gal, Peter H. Froehlich, Michael Franz; “Efficient Execution Model for Component-Oriented Software”; Presented at the Student Research Forum, Conference on Programming Language Design and Implementation (PLDI 2002); Berlin, Germany, June 17 – 19, 2002. (link)

Selected Further Publications

  • Babak Salamat, Andreas Gal, Todd Jackson, Karthik Manivannan, Gregor Wagner, Michael Franz; “Stopping Buffer Overflow Attacks at Run-Time: Simultaneous Multi-Variant Program Execution on a Multicore Processor”; Technical Report No. 07-13, School of Information and Computer Sciences, University of California, Irvine; December 2007.
  • Babak Salamat, Andreas Gal, Alexander Yermolovich, Karthik Manivannan and Michael Franz; “Reverse Stack Execution”; Technical Report No. 07-07, School of Information and Computer Sciences, University of California, Irvine; August 2007.
  • Andreas Gal, Michael Bebenita, Mason Chang, and Michael Franz; “Making the Compilation Pipeline Explicit: Dynamic Compilation Using Trace Tree Serialization”Technical Report No. 07-12, Donald Bren School of Information and Computer Science, University of California, Irvine; October 2007. (link)
  • Mason Chang, Michael Bebenita, Alexander Yermolovich, Andreas Gal and Michael Franz; “Efficient Just-in-Time Execution of Dynamically Typed Languages Via Code Specialization Using Precise Type Inference”Technical Report No. 07-10, Donald Bren School of Information and Computer Science, University of California, Irvine; September 2007. (link)
  • Michael Rauch, Andreas Gal, and Michael Franz; “Dynamic Adaptive Power Management For – And By – A Java Virtual Machine”Technical Report No. 06-19, Donald Bren School of Information and Computer Science, University of California, Irvine; November 2006. (link)
  • Gregor Wagner, Andreas Gal, and Michael Franz; “SlimVM: Optimistic Partial Program Loading for Connected Embedded Java Virtual Machines”; Technical Report No. 06-18, Donald Bren School of Information and Computer Science, University of California, Irvine; November 2006. (link)
  • Albert Noll, Andreas Gal, and Michael Franz; “CellVM: A Homogeneous Virtual Machine Runtime System for a Heterogeneous Single-Chip Multiprocessor”; Technical Report No. 06-17, Donald Bren School of Information and Computer Science, University of California, Irvine; November 2006. (link)
  • Andreas Gal and Michael Franz; “Incremental Dynamic Code Generation with Trace Trees”; Technical Report No. 06-16, Donald Bren School of Information and Computer Science, University of California, Irvine; November 2006. (link)
  • Andreas Gal, Joachim Feise; “Cisco NAC Appliance Agent Installation Bypass Vulnerability”; SecurityFocus BugTraq ID #19726; Cisco Security Response #71210; August 26, 2006. (link)
  • Andreas Gal, Christian W. Probst, and Michael Franz; “SSA-Based Java Bytecode Verification”; Technical Report No. 04-22, School of Information and Computer Science, University of California, Irvine; Irvine, CA, October 2004.
  • Andreas Gal, Christian W. Probst, Michael Franz; “Static Closure of Java Dynamic Class Loading”; Technical Report No. 03-32, School of Information and Computer Science, University of California, Irvine; Irvine, CA, September, 2003. (link)
  • Andreas Gal, Christian W. Probst, Michael Franz; “Proofing: Efficient SSA-based Java Verification”; Technical Report No. 04-10, School of Information and Computer Science, University of California, Irvine; Irvine, CA, April 2004. Revised version of technical report 03-24. (link)
  • Andreas Gal, Christian W. Probst, and Michael Franz; “Complexity-Based Denial of Service Attacks on Mobile-Code Systems”; Technical Report No. 04-09, School of Information and Computer Science, University of California, Irvine; Irvine, CA, April 2004. Revised version of technical report 03-23. (link)
  • Andreas Gal, Christian W. Probst, and Michael Franz; “Proofing: An Efficient and Safe Alternative to Mobile-Code Verification”; Technical Report No. 03-24, School of Information and Computer Science, University of California, Irvine; Irvine, CA, November 2003.
  • Andreas Gal, Christian W. Probst, and Michael Franz; “A Denial of Service Attack on the Java Bytecode Verifier”; Technical Report No. 03-23, School of Information and Computer Science, University of California, Irvine; Irvine, CA, October 2003. (link)
  • Michael Franz, Peter H. Froehlich, and Andreas Gal; “Supporting Software Composition at the Programming-Language Level”; Technical Report No. 03-22, School of Information and Computer Science, University of California, Irvine; Irvine, CA, October 2003. (link)
  • Vasanth Venkatachalam, Lei Wang, Andreas Gal, Christian W. Probst, and Michael Franz; “ProxyVM: A Network-based Compilation Scheme for Resource-Constrained Devices”; Technical Report No. 03-13, School of Information and Computer Science, University of California, Irvine; Irvine, CA, March 2003. (link)
  • Peter H. Froehlich, Andreas Gal, and Michael Franz; “On Reconciling Objects, Components, and Efficiency in Programming Languages”; Technical Report No. 02-10, Department of Information and Computer Science, University of California, Irvine; Irvine, CA, March 2002. (link)

Tutorials and Demonstrations

  • Daniel Lohmann, Andreas Gal, and Olaf Spinczyk; “Aspect-Oriented Programming with C++ and AspectC++”; Tutorial held at the Aspect-Oriented Software Development Conference (AOSD’2004); Lancaster, UK, March 23, 2004. (link)
  • Olaf Spinczyk, Andreas Gal, and Danilo Beuche; “Bringing Aspects into Deeply Embedded Devices”; Demonstration held at the Aspect-Oriented Software Development Conference (AOSD’2003); Boston, MA, April 17, 2003. (link)
  • Olaf Spinczyk and Andreas Gal; “Aspect-Orientation and Operating Systems”; Tutorial held at the Fall Meeting of the ITG/GI Special Interest Group Operating Systems; Berlin, Germany, November 7, 2002.

Invited Talks

  • Andreas Gal; “Trace-based Just-in-Time Compilation”; University of California, Santa Cruz; Santa Cruz, CA, November 20, 2007.
  • Andreas Gal; “Dynamic Compilation with Trace Trees”; IFIP Working Group 2.4; Lake Arrowhead, CA, 2007.
  • Andreas Gal; “Computer-aided Mutation Database Normalization and Validation”; FOS Board, Shire Pharmaceuticals Group; Athens, Greece, November 3, 2005.
  • Andreas Gal; “Trace-based Just-in-Time Compilation”; Intel Research; Santa Clara, CA, May 26, 2005.
  • Andreas Gal; “Compiler Construction with .NET” (guest lecture); University of California, Riverside; Riverside, CA, October 25, 2004.