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.

Academic Appointments


  • Professor, Particle Physics and Astrophysics
  • Professor, Photon Science Directorate
  • Member, Bio-X

Program Affiliations


  • SystemX

Professional Education


  • PhD, Cornell (1988)

2017-18 Courses


Stanford Advisees


All Publications


  • Detecting Races in Relay Ladder Logic Programs. Software Tools for Technology Transfer Su, Z., Aiken, A., Fähndrich, M. ; 2000 (3): 93-105
  • A Direct Manipulation Environment for Programming Semantic Zoom Visualizations of Tabular Data. Journal of Visual Languages and Computing Woodruff, A., Olston, C., Aiken, A., Chu, M., Ercegovac, V., Lin, M. ; 5 (12): 551-571
  • Terra: A Multi-Stage Language for High-Performance Computing 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) DeVito, Z., Hegarty, J., Aiken, A., Hanrahan, P., Vitek, J. ASSOC COMPUTING MACHINERY. 2013: 105–15
  • Stochastic Superoptimization ACM SIGPLAN NOTICES Schkufza, E., Sharma, R., Aiken, A. 2013; 48 (4): 305-315
  • Data-Driven Equivalence Checking. Sharma, R., Schkufza, E., Churchill, B., Aiken, A. 2013
  • Crowd-scale Interactive Formal Reasoning and Analytics. Fast, E., Lee, C., Aiken, A., Bernstein, M., Koller, D., Smith, E. 2013
  • A Data Driven Approach for Algebraic Loop Invariants Sharma, R., Gupta, S., Hariharan, B., Aiken, A., Liang, P., Nori, A., V. 2013
  • Verification as Learning Geometric Concepts. Sharma, R., Gupta, S., Hariharan, B., Aiken, A., Nori, A. 2013
  • Language Support for Dynamic, Hierarchical Data Partitioning. Treichler, S., Bauer, M., Aiken, A. 2013
  • An Introduction to Data Representation Synthesis COMMUNICATIONS OF THE ACM Hawkins, P., Rinard, M., Aiken, A., Sagiv, M., Fisher, K. 2012; 55 (12): 91-99
  • Understanding the Behavior of Database Operations under Program Control ACM SIGPLAN NOTICES Tamayo, J. M., Aiken, A., Bronson, N., Sagiv, M. 2012; 47 (10): 983-995
  • Automated Error Diagnosis Using Abductive Inference ACM SIGPLAN NOTICES Dillig, I., Dillig, T., Aiken, A. 2012; 47 (6): 181-191
  • Concurrent Data Representation Synthesis ACM SIGPLAN NOTICES Hawkins, P., Aiken, A., Fisher, K., Rinard, M., Sagiv, M. 2012; 47 (6): 417-427
  • Interpolants as Classifiers. Sharma, R., Nori, A., Aiken, A. 2012
  • Automated Error Diagnosis Using Abductive Inference Dillig, I., Dillig, T. 2012
  • Minimum Satisfying Assignments for SMT. Dillig, I., Dillig, T., McMillan, K., Aiken, A. 2012
  • An Introduction to Data Representation Synthesis. Communications of the ACM Hawkins, P., Aiken, A., Fisher, K., Rinard, M., Sagiv, M. 2012; 12 (55): 91-99
  • Reasoning about Lock Placements 21st European Symposium on Programming (ESOP) held as Part of the 15th European Joint Conferences on Theory and Practice of Software (ETAPS) Hawkins, P., Aiken, A., Fisher, K., Rinard, M., Sagiv, M. SPRINGER-VERLAG BERLIN. 2012: 336–356
  • Legion: Expressing Locality and Independence with Logical Regions International Conference for High Performance Computing, Networking, Storage and Analysis (SC) Bauer, M., Treichler, S., Slaughter, E., Aiken, A. IEEE. 2012
  • Cuts from proofs: a complete and practical technique for solving linear inequalities over integers FORMAL METHODS IN SYSTEM DESIGN Dillig, I., Dillig, T., Aiken, A. 2011; 39 (3): 246-260
  • Automatic Fine-Grain Locking using Shape Properties ACM SIGPLAN NOTICES Golan-Gueta, G., Bronson, N., Aiken, A., Ramalingam, G., Sagiv, M., Yahav, E. 2011; 46 (10): 225-241
  • Testing Atomicity of Composed Concurrent Operations ACM SIGPLAN NOTICES Shacham, O., Bronson, N., Aiken, A., Sagiv, M., Vechev, M., Yahav, E. 2011; 46 (10): 51-64
  • Programming the Memory Hierarchy Revisited: Supporting Irregular Parallelism in Sequoia ACM SIGPLAN NOTICES Bauer, M., Clark, J., Schkufza, E., Aiken, A. 2011; 46 (8): 13-23
  • Data Representation Synthesis ACM SIGPLAN NOTICES Hawkins, P., Aiken, A., Fisher, K., Rinard, M., Sagiv, M. 2011; 46 (6): 38-49
  • Precise and Compact Modular Procedure Summaries for Heap Manipulating Programs ACM SIGPLAN NOTICES Dillig, I., Dillig, T., Aiken, A., Sagiv, M. 2011; 46 (6): 567-577
  • Precise Reasoning for Programs Using Containers ACM SIGPLAN NOTICES Dillig, I., Dillig, T., Aiken, A. 2011; 46 (1): 187-200
  • Advice for Program Chairs. ACM Sigplan Notices Aiken, A. 2011; 4 (46): 19-25
  • Simplifying Loop Invariant Generation Using Splitter Predicates. Sharma, R., Dillig, I., Dillig, T. 2011
  • Liszt: A Domain Specific Language for Building Portable Mesh-based PDE Solvers. DeVito, Z., Joubert, N., Palacios, F., Oakley, S., Medina, M., Barrientos, M., Aiken, A. 2011
  • Inferring Data Polymorphism in Systems Code. Hackett, B., Aiken, A. 2011
  • Online Detection of Multi-Component Interactions in Production Systems IEEE/IFIP 41st International Conference on Dependable Systems and Networks (DSN) Oliner, A. J., Aiken, A. IEEE. 2011: 49–60
  • Expanding the Frontiers of Computer Science: Designing a Curriculum to Reflect a Diverse Field 41st ACM Technical Symposium on Computer Science Education Sahami, M., Aiken, A., Zelenski, J. ASSOC COMPUTING MACHINERY. 2010: 47–51
  • A Query Language for Understanding Component Interactions in Production Systems. Oliner, A., Aiken, A. 2010
  • Data Structure Fusion 8th Asian Symposium on Programming Languages and Systems Hawkins, P., Aiken, A., Fisher, K., Rinard, M., Sagiv, M. SPRINGER-VERLAG BERLIN. 2010: 204–221
  • Fluid Updates: Beyond Strong vs. Weak Updates 19th European Symposium on Programming (ESOP 2010) held at the ETAPES 2010 Dillig, I., Dillig, T., Aiken, A. SPRINGER-VERLAG BERLIN. 2010: 246–266
  • Small Formulas for Large Programs: On-Line Constraint Simplification in Scalable Static Analysis 17th International Static Analysis Symposium Dillig, I., Dillig, T., Aiken, A. SPRINGER. 2010: 236–252
  • Community Epidemic Detection Using Time-Correlated Anomalies 13th International Symposium on Recent Advances in Intrusion Detection Systems Oliner, A. J., Kulkarni, A. V., Aiken, A. SPRINGER-VERLAG BERLIN. 2010: 360–381
  • Using Correlated Surprise to Infer Shared Influence IEEE/IFIP International Conference on Dependable Systems and Networks (DSN) Oliner, A. J., Kulkarni, A. V., Aiken, A. IEEE. 2010: 191–200
  • Cuts from Proofs: A Complete and Practical Technique for Solving Linear Inequalities over Integers 21st International Conference on Computer Aided Verification Dillig, I., Dillig, T., Aiken, A. SPRINGER-VERLAG BERLIN. 2009: 233–247
  • A capability calculus for concurrency and determinism ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS Terauchi, T., Aiken, A. 2008; 30 (5)
  • Witnessing side effects ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS Terauchi, T., Aiken, A. 2008; 30 (3)
  • A Tuning Framework for Software-Managed Memory Hierarchies 17th International Conference on Parallel Architectures and Compilation Techniques Ren, M., Park, J. Y., Houston, M., Aiken, A., Daily, W. J. ASSOC COMPUTING MACHINERY. 2008: 280–291
  • A Capability Calculus for Concurrency and Determinism (extended version). Transactions on Programming Languages and Systems Terauchi, T., Aiken, A. 2008; 5 (30): 1-30
  • Binary Translation Using Peephole Superoptimizers. Bansal, S., Aiken, A. 2008
  • Alert Detection in System Logs 8th IEEE International Conference on Data Mining Oliner, A. J., Aiken, A., Stearley, J. IEEE COMPUTER SOC. 2008: 959–964
  • Verifying the safety of user pointer dereferences IEEE Symposium on Security and Privacy Bugrara, S., Aiken, A. IEEE COMPUTER SOC. 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 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 08) Houston, M., Park, J., Ren, M., Knight, T., Fatahalian, K., Aiken, A., Dally, W. J., Hanrahan, P. ASSOC COMPUTING MACHINERY. 2008: 143–152
  • Sound, Complete and Scalable Path-Sensitive Analysis ACM SIGPLAN Conference on Programming Language Design and Implementation Dillig, I., Dillig, T., Aiken, A. ASSOC COMPUTING MACHINERY. 2008: 270–280
  • Static error detection using semantic inconsistency inference Conference on Programming Language Design and Implementation Dillig, I., Dillig, T., Aiken, A. ASSOC COMPUTING MACHINERY. 2007: 435–45
  • Conditional Must Not Aliasing for Static Race Detection 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages Naik, M., Aiken, A. ASSOC COMPUTING MACHINERY. 2007: 327–338
  • Saturn: A Scalable Framework for Error Detection using Boolean Satisfiability. Transactions on Programming Languages and Systems Xie, Y., Aiken, A. 2007; 3 (29): 1-16
  • Measuring Empirical Computational Complexity. Goldsmith, S., Aiken, A., Wilkerson, D. 2007
  • Compilation for Explicitly Managed Memory Hierarchies. Knight, T., Park, J., Ren, M., Houston, M., Erez, M., Fatahalian, K., Aiken, A. 2007
  • Compilation for Explicitly Managed Memory Hierarchies ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming Knight, T. J., Park, J. Y., Ren, M., Houston, M., Erez, M., Fatahalian, K., Aiken, A., Dally, W. J., Hanrahan, P. ASSOC COMPUTING MACHINERY. 2007: 226–236
  • Regularly Annotated Set Constraints Conference on Programming Language Design and Implementation Kodumal, J., Aiken, A. ASSOC COMPUTING MACHINERY. 2007: 331–341
  • SATURN: A scalable framework for error detection using Boolean satisfiability 5th Joint Meeting of the European Software Engineering Conference/ACM SIGSOFT Symposium on Software Engineering Xie, Y., Aiken, A. ASSOC COMPUTING MACHINERY. 2007
  • Automatic generation of peephole superoptimizers ACM SIGPLAN NOTICES Bansal, S., Aiken, A. 2006; 41 (11): 394-403
  • Flow-insensitive type qualifiers ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS Foster, J. S., Johnson, R., Kodumal, J., Aiken, A. 2006; 28 (6): 1035-1087
  • Effective static race detection for Java ACM SIGPLAN NOTICES Naik, M., Aiken, A., Whaley, J. 2006; 41 (6): 308-319
  • Sequoia: Programming the Memory Hierarchy. Fatahalian, K., Knight, T., Houston, M., Erez, M., Horn, D., Leem, L., Aiken, A. 2006
  • Static Detection of Security Vulnerabilities in Scripting Languages. Xie, Y., Aiken, A. 2006
  • Statistical Debugging: Simultaneous Identification of Multiple Bugs Zheng, A., Jordan, M., Liblit, B., Naik, M., Aiken, A. 2006
  • On Typability for Rank-2 Intersection Types with Polymorphic Recursion. Terauchi, T., Aiken, A. 2006
  • How is Aliasing Used in Systems Software? Hackett, B., Aiken, A. 2006
  • Static detection of security vulnerabilities in scripting languages 15th USENIX Security Symposium Xie, Y., Aiken, A. USENIX ASSOC. 2006: 179–192
  • A capability calculus for concurrency and determinism 17th International Conference on Concurrency Theory Terauchi, T., Aiken, A. SPRINGER-VERLAG BERLIN. 2006: 218–232
  • Relational queries over program traces 20th Conference on Object-Oriented Programming, Systems, Languages and Applications Goldsmith, S., O'Callahan, R., Aiken, A. ASSOC COMPUTING MACHINERY. 2005: 385–402
  • Witnessing side-effects 10th ACM SIGPLAN International Conference on Functional Programming (ICFP) Terauchi, T., Aiken, A. ASSOC COMPUTING MACHINERY. 2005: 105–15
  • Scalable statistical bug isolation Conference on Programming Language Design and Implementation Liblit, B., Naik, M., Zheng, A. X., Aiken, A., Jordon, M. I. ASSOC COMPUTING MACHINERY. 2005: 15–26
  • Scalable error detection using boolean satisfiability 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages Xie, Y. C., Aiken, A. ASSOC COMPUTING MACHINERY. 2005: 351–63
  • Context- and Path-Sensitive Memory Leak Detection. Xie, Y., Aiken, A. 2005
  • Soundness and its Role in Bug Detection Systems (position paper). Xie, Y., Naik, M., Hackett, B., Aiken, A. 2005
  • Banshee: A scalable constraint-based analysis toolkit 12th International Static Analysis Symposium (SAS 2005) Kodumal, J., Aiken, A. SPRINGER-VERLAG BERLIN. 2005: 218–234
  • Secure information flow as a safety problem 12th International Static Analysis Symposium (SAS 2005) Terauchi, T., Aiken, A. SPRINGER-VERLAG BERLIN. 2005: 352–367
  • Saturn: A SAT-based tool for bug detection 17th International Conference on Computer Aided Verification Xie, Y. C., Aiken, A. SPRINGER-VERLAG BERLIN. 2005: 139–143
  • The set constraint/CFL reachability connection in practice Conference on Programming Language Design and Implementation Kodumal, J., Aiken, A. ASSOC COMPUTING MACHINERY. 2004: 207–18
  • Public Deployment of Cooperative Bug Isolation. Liblit, B., Naik, M., Zheng, A., Aiken, A., Jordan, M., I. 2004
  • Statistical Debugging of Sampled Programs. Zheng, A., Jordan, M., I., Liblit, B., Aiken, A. 2004
  • Type Systems for Distributed Data Sharing. Liblit, B., Aiken, A., Yelick, K. 2003
  • Bug Isolation via Remote Program Sampling. Liblit, B., Aiken, A., Zheng, A., Jordan, M., I. 2003
  • Sampling User Executions for Bug Isolation. Liblit, B., Aiken, A., Zheng, A., Jordan, M., I. 2003
  • Checking and Inferring Local Non-Aliasing Aiken, A., Foster, J., Kodumal, J., Terauchi, T. 2003
  • Winnowing: Local Algorithms for Document Fingerprinting. Schleimer, S., Wilkerson, D., Aiken, A. 2003
  • Flow-Sensitive Type Qualifiers. Foster, J., Terauchi, T., Aiken, A. 2002
  • First-Order Theory of Subtyping Constraints Su, Z., Aiken, A., Niehren, J., Priesnitz, T., Trienen, R. 2002
  • Entailment with Conditional Equality Constraints, Su, Z., Aiken, A. 2001
  • Language Support for Regions. Gay, D., Aiken, A. 2001
  • A First Step Towards Automated Detection of Buffer Overrun Vulnerabilities. Wagner, D., Foster, J., Brewer, E., Aiken, A. 2000
  • Polymorphic versus Monomorphic Flow-Insensitive Points-to Analysis for C. Foster, J., Fähndrich, M., Aiken, A. 2000
  • Projection Merging: Reducing Redundancies in Inclusion Constraint Graphs. Fähndrich, M., Su, Z., Aiken, A. 2000
  • Type Systems for Distributed Data Structures. Liblit, B., Aiken, A. 2000
  • Introduction to Set Constraint-Based Program Analysis. Science of Computer Programming Aiken, A. 1999; 1999 (35): 79-111
  • A Theory of Type Qualifiers. Foster, J., Fähndrich, M., Aiken, A. 1999
  • Optimal Representations of Polymorphic Types with Subtyping. Higher-Order and Symbolic Computation Aiken, A., Wimmers, E., Palsberg, J. 1999; 3 (12)
  • Memory Management with Explicit Regions. Gay, D., Aiken, A. 1998
  • A Toolkit for Constructing Type- and Constraint-Based Program Analyses (invited paper). Aiken, A., Fähndrich, M., Foster, J., Su, Z. 1998
  • Attack Resistant Trust Metrics for Public Key Certification. Levien, R., Aiken, A. 1998
  • Barrier Inference. Gay, D., Aiken, A. 1998
  • Partial Online Cycle Elimination in Inclusion Constraint Graphs. Fähndrich, M., Foster, J., Su, Z., Aiken, A. 1998
  • Detecting Races in Relay Ladder Logic Programs. Aiken, A., Fähndrich, M., Su, Z. 1998
  • Titanium: A High-Performance Java Dialect. Yelick, K., Semenzato, L., Pike, G., Miyamoto, C., Liblit, B., Krishnamurthy, A., Aiken, A. 1998
  • Program Analysis Using Mixed Term and Set Constraints. Fähndrich, M., Aiken, A. 1997
  • Optimal Representations of Polymorphic Types with Subtyping (Extended Abstract). Aiken, A., Wimmers, E., Palsberg, J. 1997
  • Refined Type Inference for ML. Fähndrich, M., Aiken, A. 1997
  • Making Set-Constraint Program Analyses Scale. Fähndrich, M., Aiken, A. 1996
  • Cool: A Portable Project for Teaching Compiler Construction. CM Sigplan Notices Aiken, A. 1996; 7 (31): 19-26
  • Tioga-2: A Direct Manipulation Database Visualization Environment. Aiken, A., Chen, J., Stonebraker, M., Woodruff, A. 1996
  • Better Static Memory Management: Improvements to Region-Based Analysis of Higher-Order Languages. Aiken, A., Fähndrich, M., Levien, R. 1995
  • Safe-A Semantic Technique for Transforming Programs in the Presence of Errors. ACM Transactions on Programming Languages and Systems Aiken, A., Williams, J., Wimmers, E. 1995; 1 (17): 63-84
  • Decidability of Systems of Set Constraints with Negative Constraints. Information and Computation Aiken, A., Kozen, D., Wimmers, E. 1995; 1 (122): 30-44
  • Navigation and Coordination Primitives for Multidimensional Browsers. Woodruff, A., Su, A., Stonebraker, M., Paxson, C., Chen, J., Aiken, A. edited by Woodruff, A., Su, A., Stonebraker, M. 1995
  • Dynamic Typing vs. Subtype Inference. Aiken, A., Fähndrich, M. 1995
  • Resource-Constrained Software Pipelining, IEEE Transactions on Distributed and Parallel Systems Aiken, A., Nicolau, A., Novack, S. 1995; 12 (6): 1248-1270
  • The Tioga-2 Database Visualization Environment. Aiken, A., Chen, J., Lin, M., Spalding, M., Stonebraker, M., Woodruff, A. 1995
  • Soft Typing with Conditional Types. Aiken, A., Wimmers, E., Lakshman, T., K. 1994
  • Zooming and Tunneling in Tioga: Supporting Navigation in Multidimensional Space. Woodruff, A., Wisnovsky, P., Taylor, C., Stonebraker, M., Paxson, C., Chen, J., Aiken, A. 1994
  • Using the Run-Time Sizes of Data Structures to Guide Parallel Thread Creation. Huelsbergen, L., Larus, J., Aiken, A. 1994
  • Set Constraints: Results, Applications, and Future Directions. Aiken, A. 1994
  • Directional Type Checking of Logic Programs. Aiken, A., Lakshman, T., K. 1994
  • Type Inclusion Constraints and Type Inference. Aiken, A., Wimmers, E. 1993
  • The Complexity of Set Constraints. Aiken, A., Kozen, D., Vardi, M., Wimmers, E. 1993
  • Solving Systems of Set Constraints. Aiken, A., Wimmers, E. 1992
  • Behavior of Database Production Rules: Termination, Confluence, and Observable Determinism. Aiken, A., Widom, J., Hellerstein, J., M. 1992
  • IMPLEMENTING REGULAR TREE EXPRESSIONS LECTURE NOTES IN COMPUTER SCIENCE Aiken, A., Murphy, B. R. 1991; 523: 427-447
  • A Realistic Resource-Constrained Software Pipelining Algorithm Advances in Languages and Compilers for Parallel Processing Aiken, A., Nicolau, A. 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. Aiken, A., Murphy, B. 1991
  • Program Transformation in the Presence of Errors. Aiken, A., Williams, J., Wimmers, E. 1990
  • A Theory of Compaction-Based Parallelization. Theoretical Computer Science Aiken, A. 1990; 2 (73): 121-154
  • Fine-Grain Parallelization and the Wavefront Method Languages and Compilers for Parallel Computing Aiken, A., Nicolau, A. edited by Aiken, A., Nicolau, A., Gelernter et al., D. MIT Press, Cambridge, Massachusetts. 1990: 1–16
  • Perfect Pipelining: A New Loop Parallelization Technique. Aiken, A., Nicolau, A. 1988
  • Fine-Grain Compilation for Pipelined Machines Journal of Supercomputing Nicolau, A., Pingali, K., Aiken, A. 1988; 3 (2): 279-295
  • Optimal Loop Parallelization. Aiken, A., Nicolau, A. 1988
  • A Development Environment for Horizontal Microcode (revised). IEEE Transactions on Software Engineering Aiken, A., Nicolau, A. 1988; 5 (14): 584-594
  • A Development Environment for Horizontal Microcode. Aiken, A., Nicolau, A. 1986