Douglas Lea
Contact information
Education
- B.A. (1976), M.A. (1978), Ph.D. (1982) University of New Hampshire.
Books
- Doug Lea. Concurrent Programming in Java: Design principles
and patterns, Addison-Wesley. First edition, October 1996
(also, German, Chinese, and Japanese
translations, and an on-line supplement). Second edition, November 1999.
- Dennis deChampeaux, Doug Lea, and Penelope Faure.
Object Oriented System Development. Addison Wesley, 1993.
(Now also available as on-line document.)
- Brian Goetz, with Tim Peierls, Joshua Bloch,
Joseph Bowbeer, David Holmes, Doug Lea, Java Concurrency
in Practice, Addison Wesley, 2006.
Published Papers, Articles, and Reports
- Guy L. Steele, Doug Lea, and Christine Flood "Fast splittable
pseudorandom number generators" OOPSLA, 2014.
- William Scherer, Doug Lea, and Michael Scott, "Scalable
synchronous queues", Communications of the ACM, May 2009.
- Doug Lea, David F. Bacon, and David Grove, "Languages and
performance engineering: method, instrumentation, and pedagogy",
Proceedings, SIGPLAN programming language curriculum workshop, ACM
SIGPLAN Notices, November 2008.
- Guojing Cong, Sreedhar Kodali, Sriram Krishnamoorty, Doug Lea,
Vijay Saraswat and Tong Wen, "Solving irregular graph problems
using adaptive work-stealing", ICPP, 2008.
- Dave Dice, Maurice Herlihy, Doug Lea, Yossi Lev, Victor
Luchangco, Wayne Mesard, Mark Moir, Kevin Moore and Dan Nussbaum,
"Applications of the Adaptive Transactional Memory Test Platform",
TRANSACT -- ACM SIGPLAN Workshop on Transactional Computing 2008.
- Doug Lea, "The shrinking middle of middleware", IEEE
Internet Computing, 2006.
- William Scherer, Doug Lea, and Michael Scott, "Scalable
synchronous queues", Principles and Practice of Parallel
Programming Conference, March 2006.
- William Scherer, Doug Lea, and Michael Scott "A Scalable
Elimination-based Exchange Channel", SCOOL workshop,
October 2005.
- Doug Lea, ``The java.util.concurrent Synchronizer framework'',
PODC CSJP workshop, June 2004. Expanded version publshed
in Science of Computer Programming, Volume 58, Issue 3,
December 2005.
- Doug Lea, ``A Java Fork/Join Framework'', Proceedings,
ACM JavaGrande Conference, June 2000.
- (Contributor to) Dejan Milojicic, ``Middleware's role,
today and tomorrow''. IEEE Concurrency, May 1999.
- Wilfred Jamison and Doug Lea. ``TRUCE: Agent coordination through
concurrent interpretation of role-based protocols''.
Proceedings, Coordination 99 April 1999.
- Wilfred Jamison and Doug Lea. ``Scripting distributed agents''
ACM Applied Computing Review, Vol 7 No 1, Spring 1999.
- Doug Lea ``Patterns and the democratization of concurrent
programming'', IEEE Concurrency, October 1998.
- Wilfred Jamison and Doug Lea ``Concurrent Role-Based
Interpretation of Protocol Scripts: A Paradigm for Agent
Coordination'',
IEEE Seventh International Workshop on
Enabling Technologies: Infrastructure for Collaborative Enterprises
(WET ICE 98), June 1998.
- Jos Marlowe, Doug Lea, and Malcom Atkinson ``Distributed Systems''
Encyclopedia of Computer Science, fourth edition, 2000.
- Nataraj Nagaratnam and Doug Lea, ``Secure Delegation for
Distributed Object Environments'', Proceedings, Usenix Conference
on Object Oriented Technology and Systems, April, 1998. (Expanded
version published in IEE proceedings on Distributed Systems
Engineering, 1999.)
- Doug Lea ``Steps toward understanding performance in Java''
(panel position paper),
Proceedings, Heterogenous Computing Workshop, March 1998.
- Doug Lea, ``Design for open systems in Java'' (invited paper)
Coordination Languages and Models
(Proceedings of Coordination '97), Berlin, Springer LNCS 1282, 1997.
- Craig Graci, Doug Lea, and Rameen Mohammadi, ``Java in the classroom:
Experiences using Java at SUNY Oswego'', Dr. Dobb's Journal,
Fall 1997.
- Rameen Mohammadi, Doug Lea, and Craig Graci, , ``Object Orientation
in CS1/2 with Java'' CSICCJ '97 conference, December 1997.
- (Contributor to) Rachid Guerraoui (editor) ``Strategic directions
in Object-Oriented Programming'', ACM Computing Surveys,
December, 1996.
- Doug Lea, ``A Memory Allocator'' (in German) unix/Mail, Hanser
Verlag, 1996.
- Ashutosh Tiwary, Rajendra Raj, Doug Lea and Chris Bosch, ``Workshop Report:
Building Large Distributed Software Systems Using Objects'',
OOPSLA '95 Addendum to the Proceeedings (SIGPLAN Notices)
1996.
- Nataraj Nagaratnam, Arvind Srinivasan, and Doug Lea
``Remote Objects in Java'', IASTED International Conference
on Networks, 1996.
- Doug Lea and Jos Marlowe. ``Interface-Based Protocol Specification
for Open Systems in PSL'',
European
Conference on Object-Oriented Programming (ECOOP), 1995.
- Doug Lea ``Reuse in Java: Initial Perspectives'',
Annual Workshop in Software Reuse, August, 1995.
- Kevin Shank, Gary Craig, and Doug Lea. ``A Path to Scalability
and Efficient Performance''
Proceedings, Systems for Scalable Computers
May, 1995. (To be published by Kluwer.)
- (contributor to) D. Garlan (editor) ``First International
Workshop on Architectures for Software Systems: Workshop
Summary'' Software Engineering Notes, July 1995.
- Doug Lea and Jos Marlowe. ``PSL: Protocols and Pragmatics for
Open Systems''. Sun Microsystems Labs Report 94-0369, 1994.
- Doug Lea. ``Design Patterns for Avionics Control Systems'',
DSSA ADAGE Technical Report ADAGE-OSW-94-01, 1994.
- ``C++ Mapping for IDL''. Object Management Group Document 94-9-8,
September, 1994 (coauthor of group report).
- Doug Lea and Kevin Shank ``ODL: Preliminary language Report''.
NY CASE Center Technical Report, 1994.
- Umesh Bellur, Gray Craig, Kevin Shank, and Doug Lea.
``Clustering: Composition Methods for Active Object Systems'',
Proceedings, HICSS-27 Conference, 1994.
- Doug Lea and Jos Marlowe. ``Protocols in PSL''.
Minnowbrook Workshop on Software Engineering, July, 1994.
- Paul Tymann, Doug Lea, and Rajendra Raj. ``Developing An
Undergraduate Software Engineering Program in a Liberal Arts College'',
Proceedings, ACM CSE Conference, 1994.
- Doug Lea. ``Christopher Alexander: An Introduction for
Object-Oriented Designers'', ACM Software
Engineering Notes, January 1994. (Reprinted in Linda Rising (ed)
The Patterns Handbook, SIGS/Cambridge, 1998.)
- Doug Lea. ``The GNU C++ Library''.
The C++ Report, June 1993. (Reprinted in Stanley Lippman (ed)
C++ Gems, SIGS Books, 1996.)
- Doug Lea. ``Cataloging Object-Oriented Software Reuse'',
Annual Workshop in Software Reuse, November, 1993.
- Steve Bilow and Doug Lea, ``Workshop Report: Object-Oriented
Process and Metrics'' OOPSLA 93 Addendum, 1993.
- Doug Lea. ``Clustering Active Objects'', ECOOP
Workshop on Granularity of Objects in Distributed Systems, July 1993.
- Doug Lea. ``Some Scoping Issues in Object-Oriented Specification
and Programming'', ECOOP
Workshop on Object-Oriented Formal Methods, July 1993.
- Umesh Bellur, Gary Craig, Kevin Shank, and Doug Lea ``DIAMONDS:
Principles and Philosophy'', NY CASE Center Technical Report,
September, 1993.
- Doug Lea. ``Clustering Active Objects'', ECOOP
Workshop on Granularity of Objects in Distributed Systems, July 1993.
- Doug Lea. ``Object-Oriented Programming and APL'',
APL as a Tool of Thought, January, 1993.
- Gary Craig, Umesh Bellur, Kevin Shank, and Doug Lea,
``Clusters: A Pragmatic approach towards supporting a
fine grained active object model in heterogenous distributed systems''.
Proceedings, International Conference on Systems Engineering, 1993.
- Dennis deChampeaux, Doug Lea, and Penelope Faure. ``The
Process of object oriented design''. Proceedings OOPSLA '92.
- Dennis deChampeaux, Doug Lea, and Penelope Faure. ``Object-oriented
design by transformations''. Proceedings IEEE/AIAA Digitial
Avionics Systems Conference, 1992. (Received best paper award.)
- Doug Lea. ``Run-time type identification and class design''.
Proceedings Usenix C++ Conference, 1992.
- Doug Lea ``Project report: Tools for annotating C++ classes''.
NY CASE Center Technical Report, September, 1992
- Umesh Bellur, Al Villarica, Kevin Shank, Imram Bashir, and Doug Lea
``Flattening C++ classes''. NY CASE Center Technical Report,
July, 1992.
- Doug Lea. ``Cataloging Object-Oriented Software Reuse'',
Annual Workshop in Software Reuse, November, 1992.
- Doug Lea and Dennis deChampeaux, ``Object-oriented software
reuse technical opportunities''. Annual
Workshop in Software Reuse, October 1992.
- John Hogg, Doug Lea, Alan Wills, Dennis deChampeaux, and Richard Holt.
``The Geneva convention on the treatment of object aliasing''.
OOPS Messenger, April 1992.
- Doug Lea ``Steps toward an internal representation system for
the semantic analysis of C++ programs''. OOPSLA 1991 Workshop
on Object Oriented Programming Development Environments., October
1991.
- Doug Lea ``Extending the C++ type system to support annotations''.
ECOOP formal methods workshop, July 1991.
- Dennis deChampeaux, Pierre America, Roger Duke, Doug Lea,
and Gary Leavens. ``Object-oriented formal methods''.
Proceedings OOPSLA'91 1991.
- Martin Griss, Doug Lea, and Greg Aharonian.
``Will object-oriented methods solve the reuse problem?''
Irvine Software Symposium UC Irvine CA, 1991.
- Doug Lea. ``Some storage management techniques for container
classes''. The C++ Report, Jan/Feb, 1990.
- Doug Lea. ``Improving C++ support for reusable components''.
Third Annual Workshop: Methods and Tools for Reuse, June,
1990.
- Abhi Chavan, Paul Tymann, and Doug Lea. ``Seamless integration of
associative memory hardware in C++''. Proceedings C++ at
Work 1990.
- Marshall Cline and Doug Lea. ``Using annotated C++''.
Proceedings C++ at Work '90 1990.
- Marshall Cline and Doug Lea. ``The Behavior of C++ classes''.
Proceedings Symposium on Object Oriented Programming
Emphasizing Practical Applications, 1990.
- Doug Lea. ``Customization in C++''.
Proceedings USENIX C++ conference, 1990.
- Marshall Cline and Doug Lea ``An Object-oriented graphical
design method that distinguishes types from classes''.
OOPSLA 1990 Workshop on Graphical Object Oriented Software
Engineering, October 1990.
- Doug Lea. ``libg++, the GNU C++ library''.
Proceedings Usenix C++ Conference, 1988.
- Doug Lea GNU C++ Library User's Manual. Free Software
Foundation 1988.
- Doug Lea. ``Digital and Hilbert k-d trees''.
Information Processing Letters, 1988.
- Doug Lea. ``Using the Forth language in real-time computer
applications''. Behavior Research Methods and Instrumentation, 1982.
Courses Taught
- SUNY Oswego
-
Introduction to Programming, Data Structures, Data Structures and
File Processing, Foundations of Computer Science, Assembly
Language Programming, Algorithm Design and Analysis, Artificial
Intelligence, Artificial Intelligence Programming Languages,
Cognitive Science, Compiler Construction, C, Lisp, Fortran,
Operating Systems, Software Engineering, Programming Languages,
Concurrent Programming, Parallel Computing, Software Design,
Laboratory Computing, Probability Theory, Computer Networking,
Networked systems.
- Syracuse University
-
Object Oriented Design, Software Engineering Studio,
Translator Design, Seminar on Object-Oriented Software Engineering,
Seminar on Object-Oriented Compilation.
Unpublished Presentations, Tutorials and Short Courses
- ``Engineering Concurrent Components'' Philly ETE,
Philadelphia, April 2013.
- ``Abstraction failures in concurrent programming'' SPAA,
Pittsburgh, June 2012.
- `` Parallelism from the middle out'', PLDI, Beijing, 2012,
Cornell 2014..
- ``The design and engineering of concurrency libraries'',
UPMARC Multicore Computing Summer School, Sweden. June 2011,
Oregon Multicore Parallel Programming Summer School, Portland, 2014,
SFM Summer School, Bertinoro Italy, 2015.
- ``Supporting the many flavors of parallel programming'',
(keynote) Scala Days, Palo Alto CA, June 2011.
- ``The impending ordinariness of teaching concurrency'',
(keynote) SPLASH Educators Symposium, October 2010.
- ``Engineering Fine-Grained Parallelism in Java'', (keynote)
Oracle JVM Summit (Santa Clara) July 2010;
IBM PL Day (Hawthorne) July 2010.
- ``Code Roots'' (Dahl-Nygaard award presentation) ECOOP (Maribor),
June 2010.
- ``Engineering Fine-Grained Parallelism in Java'', IBM 2008.
- ``Engineering java.util.concurrent'' (with Brian Goetz),
LCSD November 2007.
- ``The design, implementation, and use of java.util.concurrent'',
Topics in Concurrency Summer School, Bertinoro Italy,
July 2006.
- ``Programming multicore clusters'', NSF HCSS workshop, 2006.
- ``High performance multithreaded producer-consumer designs --
from theory to practice, (with Bill Scherer) Rochester Java Users
Group, (2006).
- ``Concurrency: From PODC to J2SE and Back'', PODC (2004).
- ``Java for heavy lifting''. University of Rochester (2002),
RPI (2003), New York City JavaSig (2003), IBM TJWatson 2004,
Georgia Tech 2004.
- ``Java: 1.5 and beyond'', RIT (2003).
- ``Concurrency Utilities'' JavaOne 2003, JAOO 2003.
- ``Web Services'' (Panel participant) ICSE Orlando,
May 2002, OOPSLA (2003).
- ``Concurrency Utilities: Present and Future'' (with Joshua Bloch)
JavaOne, March 2002.
- ``Threads, Concurrency and Synchronization'' (with Bill Pugh
and David Holmes) JavaOne, March 2002.
- ``Building scalable systems in Java''
University of Utah, December 2001.
- ``The next 700 distributed object systems"" (Panel participant),
ECOOP 2001, Budapest Hangary.
- ``Concurrent Object-Oriented Programming"" (One week course)
Thirteenth International School for Computer Science Researchers
Lipary Italy, July 2001.
- ``Toward Quality of Service and Real-Time in Java'' IBM
TJ Watson Research Center 2001.
- ``Mobility and Security'' (Panel participant), ECOOP
2000, Cannes France.
- ``Aspect-oriented programming'' (Panel participant),
ECOOP 2000, Cannes France.
- ``Correct and efficient synchronization of Java threads''
(with Bill Pugh) JavaOne 2000.
- ``Revising the Java Memory Model'' (with Bill Pugh)
JavaOne 2000.
- ``Overview of the util.concurrent package'', Purdue University,
2000, New York JavaSig 2000.
- ``Experiences teaching with Java'', DMLF conference, Vejle
Denmark 1999
- ``Mobile agents'' (Panel participant), ECOOP 1999,
Lisbon Portugal.
- ``Exploiting multiprocessors in Java'' Sun Microsystems
(Boston) 1999, (Menlo Park CA) 1999; SUNY Binghamton,
1999; APL Conference (Scranton PA), 1999; JAOO (Aarhus
Denmark) 1999; Rochester NY Java User Group
2000; NYC CPP SIG 2000; Purdue University 2000.
- ``Embedding language across the curriculum'' (with
S. Straight, V. Fichera, and D. Davies)
American Association for Higher Education
(Washington DC) 1999
- ``Building Reusable Components in Java''. Workshop
on Institutionalizing Software Reuse (Austin) 1999,
ObjectWorld (Sydney AU) 1998.
- ``Concurrent Programming in Java'' (Half or Full day tutorial,
continually revised; sometimes co-presented with David Holmes,
sometimes with different
titles and emphases),
ObjectWorld Conference (Sydney) 1998;
University of Wisconsin at Milwaukie, 1998;
ACM (Boston) 1998;
Siemens (Munich Germany) 1997;
ICDCS Conference (Baltimore) 1997;
CHOOSE (Bern Switzerland) 1997;
ECOOP, (Brussels) 1998; (Budapest) 2002.
COOTS, (Portland) 1997, (Santa Fe) 1998, (San Antonio) 2001
OOPSLA, (Atlanta) 1997, (Vancouver) 1998, (Denver) 1999, (Minneapolis) 2000. (Tampa) 2001, (Anaheim) 2003.
- ``Concurrent Programming in Java'' (One hour presentations;
some variants given with different titles and emphases)
Aarhus, Denmark, 1999.
Macquarie University (Australia), 1998;
Sydney OO SIG, 1998;
New York City Java Users Group and DPSG, 1998;
AT&T (New Jersey), 1998;
Scandanavian Java Technology Conference (Copenhagen), 1997;
Bell Labs (Naperville Ill), 1997; Rochester NY Java
Users Group, 1997. IUPUI (Indianapolis), 1998.
Mid-Atlantic Java Users Group Washington DC, 1997;
Thomson Technology (Rockville MD) 1997;
Intel Portland OR, 1997;
Object Technology International/IBM (Quebec) 1997;
University of Nice (France), 1997;
Oregon Graduate Institute, 1997;
University of Geneva (Switzerland), 1997;
University of Bern (Switzerland), 1997;
Swiss Federal Polytechnical University (Lausanne) 1997;
New York City C SIG,
1996; SUNY Binghamton, 1996.
- ``Role-based Protection and Delegation for Mobile Object
Environments'' (with Nataraj Nagaratnam), ECOOP Mobility Workshop,
Brussels, 1998.
- ``The Natural intelligence of distributed objects'', Imaging
the Mind conference, Oswego, March 1998.
- ``Using
Active Filters to Improve Foreign Language Instruction'',
(with Virginia Fichera
and Joseph Greico) WebNet '97, November 1997.
- ``Reuse in Java: Current practices and prospects'' (keynote)
NSA Symposium on Software Reuse, 1997.
- ``Will Java Revolutionize Distributed Computing?'' (Panel
session moderator) ICDCS (International Conference
on Distributed Computing Systems) 1997.
- ``The Impact of Java on Software Reusability'' (Panel session
participant), Symposium on Software Reusability, 1997
- ``Perspectives on the Language Across the Curriculum project'' (member
of group presentation) SUNY Oswego Quest, 1997
- ``Java Runtime Specification'', Brown University, 1998.
- ``Java in the Computer Science Curriculum'' RIT, 1996.
- ``Programming in Java'', Cornell University, 1995;
Uniforum, 1997 and 1996, SUNY Oswego, 1996.
- ``Design patterns in avionics control systems'',
Workshop on Academic Electronics, Syracuse, 1996.
- ``Systematic Software Reuse'' (Panel member)
ACM-SIGSOFT Symposium on Software Reusability (SSR'95),
1995; OOPSLA 1995.
- ``Java and Reflection'', ECOOP Workshop on
Reflection, 1995
- ``Sessions: A design pattern'', ECOOP Workshop on
Patterns, 1995
- ``Architectural Patterns''
ICSE Workshop on Software Architecture,
1995.
- ``Mentored Object-Oriented Design''. (short course)
IBM Endicott April-June 1995.
- ``PSL: Protocols and Pragmatics for
Open Systems''. Washington University, St. Louis, 1994.
- ``Recent Developments in C++'' (with Jim Waldo) Summer
USENIX Conference, June, 1994.
- ``Objects: A Snapshot''. New York City ACM, 1994.
- ``Designing Distributed Objects''.
IBM CENet Satellite presentation, 1993.
- ``Methods and Tools for Distributed Object-Oriented Software
Engineering'', IBM Endicott, 1994, Minnowbrook
Workshop on Software Engineering,
1993, Carleton University, 1993, Sun MicroSystems
East, 1993; Rome Labs, 1993.
- ``Object-Oriented Design Workshop'' (Co-organizer, design mentor and
presenter for one week workshop), IBM Thornwood NY,1993.
- ``The Object-Oriented Software Development Process'',
SUNY Conversations in the Disciplines --
Object-Oriented Programming in the Real World,
Oswego, 1993.
- ``Methods and tools for object oriented software engineering''
(with Gary Craig) CASE Center Summer Meeting, 1992.
- ``Distributed Systems in C++''. (tutorial), {C++ World},
Meadowlands NJ, 1992.
- ``Object-oriented programming languages''. APL Futures Conference,
Minnowbrook NY, 1992.
- ``Object oriented Software Engineering''. (one week short course)
CASE Center, Syracuse NY, July 1992, Oswego NY, 1991,
Syracuse NY, June 1990; Eastman Kodak, Rochester NY,
1987.
- ``Object-Oriented technology''. (Panel session participant).
AIST Professional Development Seminar in Object Oriented
Development, Syracuse, 1992.
- ``Object-oriented software engineering''.
ARINC Research, Washington DC, 1992;
Object Technology Inc., Ottawa, 1991;
Bell Northern Research, Ottawa, 1991;
Rome Laboratories, Griffiss AFB, 1991;
IBM Toronto Language Labs, Toronto, 1991;
General Electric Corporate Research and Development Center,
Schenectedy NY, 1990.
- ``Typesafe Programming in C++''. (with Desmond D'Souza, MCC)
(tutorial) C++ At Work Santa Clara CA, 1991.
- ``Implementing class libraries''. (Panel session participant)
C++ At Work Conference, Santa Clara, 1991.
- ``The CASE Electronic Resource Center''.
/cny Unix users group, 1991.
- Doug Lea. ``Some design issues for C++ libraries''. {OOPSLA 1991
Workshop on Design Architecture.},1991.
- ``Object standardization''. (Panel session participant)
IBM Object Oriented Symposium, LaHulpe, Belgium, 1991.
- ``C++: A perspective''.
IBM Object Oriented Symposium, LaHulpe, Belgium, 1991.
- ``Performance issues in C++''.
IBM CENet Satellite presentation, 1991.
- ``Supporting object-oriented formal methods''.
ORA Inc., Ithaca NY, 1991;
Hewlett Packard California Language Labs, Cupertino CA, 1991.
- ``Object Oriented Design''.
ACM Professional Development Workshop, Syracuse NY, 1991.
- ``Design and implementation of libg++''
Usenix C++ Conference Advanced Workshop, 1991.
- ``Formal methods and C++ standardization''.
ANSI X3J16 C++ Standardization Meeting, Nashua NH, 1991.
- ``Software Reusability in C++''.
SUNY Albany, 1991;
Hewlett Packard Software Engineering Systems Division, 1991;
Software Productivity Consortium, Washington DC, 1991.
- ``Formal methods and C++''.
IBM Object Oriented Symposium, Thornwood NY, 1991
- ``Designing reusable libraries in C++''.
IBM CENet Satellite presentation, 1990.
- ``The GNU project''.
/cny Unix users group, 1990.
- ``Using the GNU C++ library''. (tutorial)
C++ At Work conference, 1990.
- ``Designing C++ libraries''. (Panel session participant)
C++ At Work, 1990.
- ``Coarse-grained parallel programming on a local area network''
CASE Center Summer Meeting, 1990.
- ``Software Reuse: the state of the art''
(panel participant) CASE Center, 1990.
- ``Object oriented design''. Colgate Univ. Hamilton NY, 1989.
- ``Annotated C++''. (with M. Cline) Bell Labs,
1989.
- ``Customization''. Bell Labs, 1989.
- ``Matrices in C++''. Los Alamos National Labs, Los Alamos NM,
1989.
- ``Embedded languages in C++''. Tektronix, Beaverton OR, 1989.
- ``Object oriented programming in C++''.
Mitre Corp., Rome NY, 1990; Paralogix, Syracuse
NY, 1989; New Methods Research, Inc. Syracuse
NY, 1989.
- ``A Traveling salesman heuristic based on Delaunay triangulations''.
SUNY Oswego Quest, 1986.
- ``EXPLOR, a package for exploratory data analysis''.
UNH Conference on Using computers to help teach statistics, 1977.
Grants and Support
- PI, Collaborative Research grant, IBM (2006-2009).
- PI, Collaborative Research grant, Google (2006).
- PI, Collaborative Research grant, Intel (2006).
- PI, Collaborative Research Projects, Sun Microsystems (1992-2009).
- Co-PI (with Jan Vitek, Antony Hosking, and Jens Palsberg of
Purdue, and WIlliam Pugh of University of Maryland), DARPA
PCES program (2001-2004).
- PI, IBM/Loral Federal Systems DSSA Subcontract Grant, Oswego, 1994-5.
- PI, Isis Distributed Systems Collaborative Development
Grant, Oswego, 1993-94.
- Co-PI, (with Gary Craig, Syracuse University) Rome Labs
``Object-Oriented Methods and Tools''. Oswego/SU (1992-95).
- PI, NSF-ILI ``A Software Engineering Concentration'', Oswego (1992).
- Equipment grant, Sun Microsystems, Oswego (1989).
- Co-PI, NSF-CSIP, ``Integration of graphics and software tools
into an experimental psychology curriculum for undergraduates''
Oswego (1986).
- Participant in NY CASE Center collaborative projects with Hewlett
Packard, Data General, IBM, Cygnus Support, NYNEX, Digital
Equipment Corporation, US Robotics, Z/Max Computer Solutions,
National Institutes for Science and Technology, Los Alamos
National Laboratories 1986-96.
Professional Activities
- Conference Program Chair
- VEE March 2011
- ISMM June 2010
- Coordination June 2008 (co-chair)
- WOSP January 2004. (co-chair)
- OOPSLA, October 2000.
- Usenix C++ Conference, Boston, April 1994.
- Object-Oriented Programming in the Real World
(Coorganizer) Conversations in the Disciplines Program, Oswego, 1993.
- Open Systems Networking 91 conference
(CASE Center, NYSERNet, /cny, ACM) 1991.
- C++ At Work Technical program, 1991.
- Workshop chair or leader
- LaME workshop, PLDI June 2012.
- SCOOL workshop, October 2005 (co-chair)
- Middleware Doctoral Symposium (2005)
- OOPSLA Doctoral Symposium (2001, 2006)
- Using Patterns (UP), March 1997
- Java Workshop (Brown Univ) May 1996
- Annual Workshop on Software Reuse (1992, 1993, 1995)
- Usenix C++ Conference (1992)
- OOPSLA (1992, 1993, 1995, 1996, 1997, 2000, 2010)
- OOPSLA Design Fest (1995)
- CASCON (1995)
- ECOOP (1991, 1996, 1999)
- Conference Steering committee
- VEE (2011-2015)
- ISMM (2010-2014)
- TRANSACT (2006-2012)
- RTSJ/JTRes (2005-2014)
- SPLASH-E (2012-present)
- Technical conference program or organizing committee member:
ACM Workshop on Undergraduate Programming Language Curricula (2008),
AIMSA (2004),
AOSD (2005),
AOSD Workshops (2002),
ASIAN (2003),
ASPLOS (2014 ERC) (2018 ERC)
CASE Center seminars, forums and workshops (1988-1996),
CoCoNet (2015)
CSBE (2015),
Coordination (2006, 2007, 2009, 2011, 2012),
DEXA Workshop on Coordination Technology and Information Systems (1998),
DOA (2001, 2002, 2003, 2004, 2005),
ECOOP (2000, 2001, 2002, 2003, 2004, 2008, 2009, 2010, 2011, 2013, 2014, 2017),
ECOOP Workshops (1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004),
ECOOP Doctoral Symposium (2014),
FMOODS (2006),
ESOP (2008),
GPCE (2012),
HOPL (2007),
HotPar (2012),
HPCC (2017),
ICDCS (2002, 2005, 2010),
ICPE (2014),
ICPP (2004),
ICSE Workshops (1995, 2008),
ICSOC (2003),
ICSR (1996, 1998),
IPDPS (2018),
ISCOPE/JavaGrande (1999, 2001, 2002),
International Workshop on Java for Parallel and Distributed Computing (1999, 2000, 2001, 2002, 2003, 2006),
ISMM (2011, 2014)
IWACO (2003, 2011),
JTRES (2003, 2005, 2006, 2007, 2013, 2014, 2015),
MA (2002),
ManLang (2017),
Middleware (2000, 2001, 2002, 2004, 2006, 2007, 2008, 2016),
Minnowbrook Workshop on Software Engineering (1993, 1994, 1996),
MSEPT (2012),
OCT (2001),
OOPSLA/Splash (1996, 1999, 2001, 2002, 2004, 2006, 2011, 2013, ERC-2015, EPC-2016, 2017),
OOPSLA Tutorials (1992, 1993, 1995, 2003, 2004),
OOPSLA Workshops (2005, 2006, 2009),
Onward (2007),
P2S2 (2008, 2009, 2010, 2011, 2012, 2013, 2014),
PACT (2012),
PLDI (2009, ERC-2015, EPC-2016),
PLDI Workshops (2001, 2009),
PLoP/EuroPLoP (1995, 1996, 1997, 1998, 2000, 2001, 2002),
PODC CSJP workshop (2004),
PPoPP (2004, 2009, ERC-2015, 2017, 2018 ERC),
PPPJ (2011, 2013, 2015),
Resolve (2011),
RTAS (2003),
RTSS (2004, 2005),
SAC (2000, 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014),
SAINT (2000),
SASO (2008),
SC (2005, 2013),
Scala Workshop/Symposium (2011, 2013, 2014, 2015, 2016),
SCOOL(2005),
SPIE (2001, 2002),
SPLASH-E (2013, 2015),
SPLASH Doctoral Symposium (2014),
TOOLS (2000, 2010, 2011),
UCC (2012),
Usenix C++ Conference (1990, 1991),
Usenix COOTS (1995, 1996, 1997, 1998, 1999, 2001),
Usenix Conference on Domain Specific Languages (1999),
VEE (2005, 2009, 2012, 2014),
VMIL (2011, 2013)
WISR (1990, 1992, 1993, 1995, 1999),
WOSP (1998, 2000, 2005),
World Wide Web Conference (2003),
X10 Workshop (2011)
- Editing and Reviewing
- Member, editorial board IEEE Internet Computing
(journal) 1999-2010; Theme issue guest editor 2003, 2006; Middleware
track co-editor 2003-2004); Assistant editor in chief (2005-2009)
- Member, editorial board Journal of Object Technology 2002-present.
- Member, Board of editors Object Oriented Systems (journal) 1994-8.
- co-Editor (with Gianluigi Zavattaro) Special issue of
Science of Computer Programming (2010).
- co-Editor (with Tim Harris) Special issue of Science
of Computer Programming (2006)
- Guest editor, special section of Concurrency and
computation: practice and experience (2001-2).
- co-Editor (with James Noble) Special issue of Software
Practice and Experience (2000)
- Conference submissions: Usenix, OOPSLA, ECOOP, PLoP, EuroPLoP,
ASPLOS, PLDI, Sigmetrics, POPL, Supercomputing.
- Book manuscripts: Academic Press, Addison-Wesley, Prentice Hall,
Saunders, Benjamin Cummings, Wiley, IEEE Press.
- External faculty tenure or promotion review (various universities)
1996, 1997, 1998 (2), 2000, 2001, 2003, 2006, 2007, 2008, 2009.
- PhD Thesis Committee or external Examiner, University of
Waterloo (1992; 2019); Syracuse University (9 committees,
1992-2004), University of Canterbury (1997), University of Texas
(1999), University of Alberta (2001), Caltech (2002), Purdue
(2005), Georgia Tech (2005), Virginia Tech (2009, 2012), UVa
(2011), Northeastern (2013), EPFL Lausanne (2014), Ecole Normale
Superieure (2017), Univ New Brunswick (2017), Uppsala Univ
(2019).
- Grant Proposal reviewer or panelist: National Science
Foundation (1998, 2000, 2002, 2003, 2005, 2006, 2007, 2008, 2010),
National research council (1999),
Austrian Science Fund (2000), Austrian Science Foundation
(2000), Canadian Research Council (2001, 2003, 2004, 2006),
Netherlands Organisation for Scientific Research (2001),
Swiss Science Foundation (2007),
Israel Science Foundation (2007),
- External Honors thesis reviewer,
Hobart and William Smith Colleges (1998)
- Journal manuscripts: Acta Informatica, Information
Processing Letters, ACM LOPLAS, IEEE Transactions, IEEE
Concurrency, ACM Transactions, Computer Journal. Communications
of the ACM, Digital Technical Journal, IEEE Micro, Theory and
Practice of Object Systems, Software Practice and Experience.
IEEE Control Systems, Informatik Forum Journal, Distributed Computing.
- Chair, Editor in Chief Search Committee, IEEE Internet Computing
2009-2010.
- Standards Committees:
- Member, Governing Board, OpenJDK project (2007-present).
- Member Java Community Process Executive Committee, 2000-2010.
- Member Java Community Process Expert groups for JSRs
10, 41, 51, 78, 99, 121, 133, 171, 175, 201, 236, 260, 269,
270, 277, 284, 294, 305, 306, 308.
(1999-present).
- Specification Lead, Java Community Process JSR-166 (2001-2004).
- Member, IDL/C++ Mapping committee, Object Management Group (OMG),
1994-95.
- Consulting member, libraries committee, ANSI X3J16 C++
standards group 1990-1991. Concurrency working group
member (2005-2006).
- Co-director, Software Engineering Lab, New York Center for Advanced
Technology in Computer Applications and Software Engineering
(NY CASE Center), Syracuse
University (1989-1997). Also with title Adjunct
Professor of Electrical Engineering and Computer Science, Syracuse University.
- Professional Consulting and Technical Advisory boards:
Morgan Stanley (1994),
Consultant, Isis Distributed Systems (1994-95),
IBM (1993)
Superlative Software Solutions, Inc (1996-9),
Performant (2000-2003),
Azul Systems (2003-),
Sun Software Development Advisory Committee (2003-2004),
TypeSafe (2011-)
ACM:
- Member, CS2013 curriculum guidelines revisions working groups
- Member, SIGPLAN Education Board, 2009-
- Invited particpant and contributor to report, "SIGPLAN
programming language curriculum workshop: Discussion Summaries
and recommendations", ACM SIGPLAN Notices, 2008.
- Invited Participant, ACM Symposium on Strategic Directions in Computing,
June, 1996.
- Invited Participant, NSF/DARPA workshop on Software development
and productivity, April 2001.
- Member, ACM National Lectureship program (1991-92).
- Competition Committee, ACM Student Research Competition (2007, 2011),
- Judge, ACM programming contest (1987-89, 1991-97, 1999, 2001, 2003-2008, 2010-2013).
Sigma Xi:
- Oswego Chapter President (2012-2014).
- Oswego Chapter Vice President (2010-2011).
SUNY Oswego College Service:
- Departmental: Served on Computer Science Advisement, Budget, Curriculum, Promotion,
Retention, and Tenure, and Faculty Recruitment Committees.
- College: Served on Computing Services Council, Faculty Assembly, Faculty
Research Council, Instructional Computing Center Advisory Board,
Instructional Computing Center Equipment Committee, Instructional
Computing Center Personnel Committee, Linguistics Committee, Personnel
Policies Council, Quest, Science Subdivision Committee, Cognitive Science
planning committee, HCI Planning committee, Middlestates self-assessment group on Environments for Learning.
- CS-CTS Liaison, 1987-present
- Acting Department Chair. Spring 1987, Spring 2007 - Spring 2011.
- Department Chair Fall 2012 -
Other Software and On-line Documents
- On-line supplement to book Concurrent Programming in Java
- Freely distributed Java packages and libraries (1995-present)
- Object-oriented software development tools (1989-present).
- The GNU C++ library (1986-90).
- Graphstat (statistics teaching package) (with D. Bozak) (1980-81).
- Real-time laboratory control software. (1978-81).
- EXPLOR (statistical software) (1977-79).
Other
- ACM Fellow (2013)
- Dahl-Nygaard Prize, AITO (2010)
- Java Community Process JCP Participant of the Year award (2009)
- New York Chancellor's recognition honoree (2004)
- Java Community Process JCP Member of the Year award (2004)
- Who's who in enterprise Java (2004)
- JavaOne ``Golden Duke'' award, 1998.
- SUNY Oswego President's award for scholarly and creative activity,
1998.
Doug Lea