Alex Aiken
Alcatel-Lucent Professor in Communications and Networking
Computer Science
Bio
Aiken's research focuses on developing techniques for the construction of reliable software systems. His interests include both static and dynamic methods of analyzing programs, and span both detecting errors and verifying the absence of errors in software. Most of his research combines a theoretical component (for example, proving the soundness of an analysis technique) and a practical component, which often involves the implementation and measurement of advanced program analysis algorithms. Finally, his research also extends to the design of new programming languages and programming techniques in which it is easier to write software that can be checked for a wide variety of errors.
Professional Education
-
PhD, Cornell (1988)
2015-16 Courses
- Advanced Topics in Formal Methods
CS 357 (Aut) -
Independent Studies (19)
- Advanced Reading and Research
CS 499 (Aut, Win, Spr, Sum) - Advanced Reading and Research
CS 499P (Aut, Win, Spr, Sum) - Computer Laboratory
CS 393 (Aut, Win, Spr, Sum) - Curricular Practical Training
CS 390A (Aut, Win, Spr, Sum) - Curricular Practical Training
CS 390B (Aut, Win, Spr, Sum) - Curricular Practical Training
CS 390C (Aut, Win, Spr, Sum) - Independent Database Project
CS 395 (Aut, Win, Spr, Sum) - Independent Project
CS 399 (Aut, Win, Spr, Sum) - Independent Project
CS 399P (Aut, Win, Spr, Sum) - Independent Work
CS 199 (Aut, Win, Spr, Sum) - Independent Work
CS 199P (Aut, Win, Spr, Sum) - Master's Research
CME 291 (Win, Spr, Sum) - Part-Time CPT
CS 390S (Aut) - Part-Time CPT
CS 390T (Win) - Part-Time Curricular Practical Training
CS 390Q (Spr) - Part-time Curricular Practical Training
CS 390P (Win, Spr) - Programming Service Project
CS 192 (Aut, Win, Spr, Sum) - Senior Project
CS 191 (Aut, Win, Spr, Sum) - Writing Intensive Senior Project (WIM)
CS 191W (Aut, Win, Spr)
- Advanced Reading and Research
-
Prior Year Courses
2014-15 Courses
- Parallel Computing
CS 149 (Win)
2013-14 Courses
- Advanced Topics in Formal Methods
CS 357 (Aut) - Compilers
CS 143 (Spr) - Parallel Computing
CS 149 (Win)
2012-13 Courses
- Compilers
CS 143 (Spr) - Parallel Computing
CS 149 (Win)
- Parallel Computing
All Publications
- A Direct Manipulation Environment for Programming Semantic Zoom Visualizations of Tabular Data. Journal of Visual Languages and Computing ; 5 (12): 551-571
- Detecting Races in Relay Ladder Logic Programs. Software Tools for Technology Transfer ; 2000 (3): 93-105
-
Terra: A Multi-Stage Language for High-Performance Computing
ACM SIGPLAN NOTICES
2013; 48 (6): 105-115
View details for Web of Science ID 000321865400011
-
Stochastic Superoptimization
ACM SIGPLAN NOTICES
2013; 48 (4): 305-315
View details for Web of Science ID 000321213100025
- Data-Driven Equivalence Checking. 2013
- Crowd-scale Interactive Formal Reasoning and Analytics. 2013
- A Data Driven Approach for Algebraic Loop Invariants 2013
- Verification as Learning Geometric Concepts. 2013
- Language Support for Dynamic, Hierarchical Data Partitioning. 2013
-
An Introduction to Data Representation Synthesis
COMMUNICATIONS OF THE ACM
2012; 55 (12): 91-99
View details for DOI 10.1145/2380656.2380677
View details for Web of Science ID 000312744900026
-
Understanding the Behavior of Database Operations under Program Control
ACM SIGPLAN NOTICES
2012; 47 (10): 983-995
View details for DOI 10.1145/2398857.2384688
View details for Web of Science ID 000311296200057
-
Automated Error Diagnosis Using Abductive Inference
ACM SIGPLAN NOTICES
2012; 47 (6): 181-191
View details for DOI 10.1145/2345156.2254087
View details for Web of Science ID 000307582100017
-
Concurrent Data Representation Synthesis
ACM SIGPLAN NOTICES
2012; 47 (6): 417-427
View details for DOI 10.1145/2345156.2254114
View details for Web of Science ID 000307582100037
-
Legion: Expressing Locality and Independence with Logical Regions
2012 INTERNATIONAL CONFERENCE FOR HIGH PERFORMANCE COMPUTING, NETWORKING, STORAGE AND ANALYSIS (SC)
2012
View details for Web of Science ID 000316911000064
- Minimum Satisfying Assignments for SMT. 2012
- Interpolants as Classifiers. 2012
- An Introduction to Data Representation Synthesis. Communications of the ACM 2012; 12 (55): 91-99
- Automated Error Diagnosis Using Abductive Inference 2012
-
Reasoning about Lock Placements
PROGRAMMING LANGUAGES AND SYSTEMS
2012; 7211: 336-356
View details for Web of Science ID 000310871200017
-
Cuts from proofs: a complete and practical technique for solving linear inequalities over integers
FORMAL METHODS IN SYSTEM DESIGN
2011; 39 (3): 246-260
View details for DOI 10.1007/s10703-011-0127-z
View details for Web of Science ID 000297596900002
-
Programming the Memory Hierarchy Revisited: Supporting Irregular Parallelism in Sequoia
ACM SIGPLAN NOTICES
2011; 46 (8): 13-23
View details for Web of Science ID 000296264900003
-
Precise Reasoning for Programs Using Containers
POPL 11: PROCEEDINGS OF THE 38TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES
2011: 187-200
View details for Web of Science ID 000289656100016
- Simplifying Loop Invariant Generation Using Splitter Predicates. 2011
- Liszt: A Domain Specific Language for Building Portable Mesh-based PDE Solvers. 2011
- Inferring Data Polymorphism in Systems Code. 2011
- Advice for Program Chairs. ACM Sigplan Notices 2011; 4 (46): 19-25
-
Online Detection of Multi-Component Interactions in Production Systems
2011 IEEE/IFIP 41ST INTERNATIONAL CONFERENCE ON DEPENDABLE SYSTEMS AND NETWORKS (DSN)
2011: 49-60
View details for Web of Science ID 000295616400005
-
Precise and Compact Modular Procedure Summaries for Heap Manipulating Programs
PLDI 11: PROCEEDINGS OF THE 2011 ACM CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION
2011: 567-577
View details for Web of Science ID 000297656700049
-
Testing Atomicity of Composed Concurrent Operations
OOPSLA 11: PROCEEDINGS OF THE 2011 ACM INTERNATIONAL CONFERENCE ON OBJECT ORIENTED PROGRAMMING SYSTEMS LANGUAGES AND APPLICATIONS
2011: 51-64
View details for Web of Science ID 000304282000005
-
Automatic Fine-Grain Locking using Shape Properties
OOPSLA 11: PROCEEDINGS OF THE 2011 ACM INTERNATIONAL CONFERENCE ON OBJECT ORIENTED PROGRAMMING SYSTEMS LANGUAGES AND APPLICATIONS
2011: 225-241
View details for Web of Science ID 000304282000015
-
Data Representation Synthesis
PLDI 11: PROCEEDINGS OF THE 2011 ACM CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION
2011: 38-49
View details for Web of Science ID 000297656700004
-
Expanding the Frontiers of Computer Science: Designing a Curriculum to Reflect a Diverse Field
SIGCSE 10: PROCEEDINGS OF THE 41ST ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION
2010: 47-51
View details for Web of Science ID 000281141300010
- A Query Language for Understanding Component Interactions in Production Systems. 2010
-
Data Structure Fusion
PROGRAMMING LANGUAGES AND SYSTEMS
2010; 6461: 204-221
View details for Web of Science ID 000290881800015
-
Fluid Updates: Beyond Strong vs. Weak Updates
PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS
2010; 6012: 246-266
View details for Web of Science ID 000279369000013
-
Small Formulas for Large Programs: On-Line Constraint Simplification in Scalable Static Analysis
STATIC ANALYSIS
2010; 6337: 236-252
View details for Web of Science ID 000286149800015
-
Community Epidemic Detection Using Time-Correlated Anomalies
RECENT ADVANCES IN INTRUSION DETECTION
2010; 6307: 360-381
View details for Web of Science ID 000286486100019
-
Using Correlated Surprise to Infer Shared Influence
2010 IEEE-IFIP INTERNATIONAL CONFERENCE ON DEPENDABLE SYSTEMS AND NETWORKS DSN
2010: 191-200
View details for Web of Science ID 000287078300020
-
Cuts from Proofs: A Complete and Practical Technique for Solving Linear Inequalities over Integers
COMPUTER AIDED VERIFICATION, PROCEEDINGS
2009; 5643: 233-247
View details for Web of Science ID 000270444900016
-
A capability calculus for concurrency and determinism
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
2008; 30 (5)
View details for DOI 10.1145/1387673.1387676
View details for Web of Science ID 000259445600003
-
Witnessing side effects
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
2008; 30 (3)
View details for DOI 10.1145/1353445.1353449
View details for Web of Science ID 000256425100004
-
Sound, Complete and Scalable Path-Sensitive Analysis
PLDI'08: PROCEEDINGS OF THE 2008 SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN & IMPLEMENTATION
2008: 270-280
View details for Web of Science ID 000266617300025
- Binary Translation Using Peephole Superoptimizers. 2008
- A Capability Calculus for Concurrency and Determinism (extended version). Transactions on Programming Languages and Systems 2008; 5 (30): 1-30
-
Alert Detection in System Logs
ICDM 2008: EIGHTH IEEE INTERNATIONAL CONFERENCE ON DATA MINING, PROCEEDINGS
2008: 959-964
View details for DOI 10.1109/ICDM.2008.132
View details for Web of Science ID 000264173600114
-
A Tuning Framework for Software-Managed Memory Hierarchies
PACT'08: PROCEEDINGS OF THE SEVENTEENTH INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES
2008: 280-291
View details for Web of Science ID 000267053400028
-
Verifying the safety of user pointer dereferences
PROCEEDINGS OF THE 2008 IEEE SYMPOSIUM ON SECURITY AND PRIVACY
2008: 325-338
View details for DOI 10.1109/SP.2008.15
View details for Web of Science ID 000256560300022
-
A Portable Runtime Interface For Multi-Level Memory Hierarchies
PPOPP'08: PROCEEDINGS OF THE 2008 ACM SIGPLAN SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING
2008: 143-152
View details for Web of Science ID 000266619600015
-
Regularly annotated set constraints
ACM SIGPLAN NOTICES
2007; 42 (6): 331-341
View details for Web of Science ID 000253409000033
-
Conditional Must Not Aliasing for Static Race Detection
CONFERENCE RECORD OF POPL 2007: THE 34TH ACM SIGPLAN SIGACT SYMPOSIUM ON PRINCIPLES OF PROGAMMING LANGUAGES
2007: 327-338
View details for Web of Science ID 000267364200035
- Measuring Empirical Computational Complexity. 2007
- Compilation for Explicitly Managed Memory Hierarchies. 2007
- Saturn: A Scalable Framework for Error Detection using Boolean Satisfiability. Transactions on Programming Languages and Systems 2007; 3 (29): 1-16
-
Compilation for Explicitly Managed Memory Hierarchies
PROCEEDINGS OF THE 2007 ACM SIGPLAN SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING PPOPP'07
2007: 226-236
View details for Web of Science ID 000266870900035
-
SATURN: A scalable framework for error detection using Boolean satisfiability
ASSOC COMPUTING MACHINERY. 2007
View details for DOI 10.1145/1232420.1232423
View details for Web of Science ID 000247072100003
-
Static Error Detection using Semantic Inconsistency Inference
PLDI'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION
2007: 435-445
View details for Web of Science ID 000266485500041
-
Automatic generation of peephole superoptimizers
ACM SIGPLAN NOTICES
2006; 41 (11): 394-403
View details for Web of Science ID 000202972600037
-
Flow-insensitive type qualifiers
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
2006; 28 (6): 1035-1087
View details for Web of Science ID 000242991500003
-
Effective static race detection for Java
ACM SIGPLAN NOTICES
2006; 41 (6): 308-319
View details for Web of Science ID 000202972100027
-
A capability calculus for concurrency and determinism
CONCUR 2006 - CONCURRENCY THEORY, PROCEEDINGS
2006; 4137: 218-232
View details for Web of Science ID 000240256100015
- Static Detection of Security Vulnerabilities in Scripting Languages. 2006
- Sequoia: Programming the Memory Hierarchy. 2006
- Statistical Debugging: Simultaneous Identification of Multiple Bugs 2006
- On Typability for Rank-2 Intersection Types with Polymorphic Recursion. 2006
- How is Aliasing Used in Systems Software? 2006
-
Static detection of security vulnerabilities in scripting languages
USENIX ASSOCIATION PROCEEDINGS OF THE 15TH USENIX SECURITY SYMPOSIUM
2006: 179-192
View details for Web of Science ID 000245599800013
-
Relational queries over program traces
ASSOC COMPUTING MACHINERY. 2005: 385-402
View details for Web of Science ID 000233404900025
-
Witnessing side-effects
ASSOC COMPUTING MACHINERY. 2005: 105-115
View details for Web of Science ID 000232089200011
-
Scalable statistical bug isolation
ASSOC COMPUTING MACHINERY. 2005: 15-26
View details for Web of Science ID 000230634200003
-
Scalable error detection using boolean satisfiability
ASSOC COMPUTING MACHINERY. 2005: 351-363
View details for Web of Science ID 000228342100030
- Context- and Path-Sensitive Memory Leak Detection. 2005
- Soundness and its Role in Bug Detection Systems (position paper). 2005
-
Banshee: A scalable constraint-based analysis toolkit
STATIC ANALYSIS, PROCEEDINGS
2005; 3672: 218-234
View details for Web of Science ID 000232292300016
-
Secure information flow as a safety problem
STATIC ANALYSIS, PROCEEDINGS
2005; 3672: 352-367
View details for Web of Science ID 000232292300024
-
Saturn: A SAT-based tool for bug detection
COMPUTER AIDED VERIFICATION, PROCEEDINGS
2005; 3576: 139-143
View details for Web of Science ID 000230755800013
-
The set constraint/CFL reachability connection in practice
ASSOC COMPUTING MACHINERY. 2004: 207-218
View details for Web of Science ID 000223120900019
- Public Deployment of Cooperative Bug Isolation. 2004
- Statistical Debugging of Sampled Programs. 2004
- Type Systems for Distributed Data Sharing. 2003
- Bug Isolation via Remote Program Sampling. 2003
- Sampling User Executions for Bug Isolation. 2003
- Checking and Inferring Local Non-Aliasing 2003
- Winnowing: Local Algorithms for Document Fingerprinting. 2003
- Flow-Sensitive Type Qualifiers. 2002
- First-Order Theory of Subtyping Constraints 2002
- Entailment with Conditional Equality Constraints, 2001
- Language Support for Regions. 2001
- A First Step Towards Automated Detection of Buffer Overrun Vulnerabilities. 2000
- Polymorphic versus Monomorphic Flow-Insensitive Points-to Analysis for C. 2000
- Projection Merging: Reducing Redundancies in Inclusion Constraint Graphs. 2000
- Type Systems for Distributed Data Structures. 2000
- Optimal Representations of Polymorphic Types with Subtyping. Higher-Order and Symbolic Computation 1999; 3 (12)
- Introduction to Set Constraint-Based Program Analysis. Science of Computer Programming 1999; 1999 (35): 79-111
- A Theory of Type Qualifiers. 1999
- A Toolkit for Constructing Type- and Constraint-Based Program Analyses (invited paper). 1998
- Barrier Inference. 1998
- Partial Online Cycle Elimination in Inclusion Constraint Graphs. 1998
- Detecting Races in Relay Ladder Logic Programs. 1998
- Titanium: A High-Performance Java Dialect. 1998
- Memory Management with Explicit Regions. 1998
- Attack Resistant Trust Metrics for Public Key Certification. 1998
- Program Analysis Using Mixed Term and Set Constraints. 1997
- Optimal Representations of Polymorphic Types with Subtyping (Extended Abstract). 1997
- Refined Type Inference for ML. 1997
- Making Set-Constraint Program Analyses Scale. 1996
- Cool: A Portable Project for Teaching Compiler Construction. CM Sigplan Notices 1996; 7 (31): 19-26
- Tioga-2: A Direct Manipulation Database Visualization Environment. 1996
- Decidability of Systems of Set Constraints with Negative Constraints. Information and Computation 1995; 1 (122): 30-44
- Navigation and Coordination Primitives for Multidimensional Browsers. edited by Woodruff, A., Su, A., Stonebraker, M. 1995
- Dynamic Typing vs. Subtype Inference. 1995
- Resource-Constrained Software Pipelining, IEEE Transactions on Distributed and Parallel Systems 1995; 12 (6): 1248-1270
- The Tioga-2 Database Visualization Environment. 1995
- Better Static Memory Management: Improvements to Region-Based Analysis of Higher-Order Languages. 1995
- Safe-A Semantic Technique for Transforming Programs in the Presence of Errors. ACM Transactions on Programming Languages and Systems 1995; 1 (17): 63-84
- Soft Typing with Conditional Types. 1994
- Zooming and Tunneling in Tioga: Supporting Navigation in Multidimensional Space. 1994
- Using the Run-Time Sizes of Data Structures to Guide Parallel Thread Creation. 1994
- Set Constraints: Results, Applications, and Future Directions. 1994
- Directional Type Checking of Logic Programs. 1994
- Type Inclusion Constraints and Type Inference. 1993
- The Complexity of Set Constraints. 1993
- Solving Systems of Set Constraints. 1992
- Behavior of Database Production Rules: Termination, Confluence, and Observable Determinism. 1992
-
IMPLEMENTING REGULAR TREE EXPRESSIONS
LECTURE NOTES IN COMPUTER SCIENCE
1991; 523: 427-447
View details for Web of Science ID A1991GJ20300022
- A Realistic Resource-Constrained Software Pipelining Algorithm Advances in Languages and Compilers for Parallel Processing edited by Aiken, A., Nicolau, A., Gelernter et al., D. MIT Press, Cambridge, Massachusetts. 1991: 274-290
- Static Type Inference in a Dynamically Typed Language. 1991
- A Theory of Compaction-Based Parallelization. Theoretical Computer Science 1990; 2 (73): 121-154
- Fine-Grain Parallelization and the Wavefront Method Languages and Compilers for Parallel Computing edited by Aiken, A., Nicolau, A., Gelernter et al., D. MIT Press, Cambridge, Massachusetts. 1990: 1-16
- Program Transformation in the Presence of Errors. 1990
- Fine-Grain Compilation for Pipelined Machines Journal of Supercomputing 1988; 3 (2): 279-295
- Optimal Loop Parallelization. 1988
- Perfect Pipelining: A New Loop Parallelization Technique. 1988
- A Development Environment for Horizontal Microcode (revised). IEEE Transactions on Software Engineering 1988; 5 (14): 584-594
- A Development Environment for Horizontal Microcode. 1986