Aiken, A., Chen, J., Lin, M., Spalding, M., Stonebraker, M., Woodruff, A. Yes. This paper presents Yet Another Random Program Generator (YARPGen), a random test-case generator for C and C++ that we used to find and report more than 220 bugs in GCC, LLVM, and the Intel® C++ Compiler. Random testing is an effective method for finding compiler bugs that have escaped other kinds of testing. I'm going through it myself right now and I like it. Synthesizing Program Input Grammars. Google Scholar; Vu Le, Mehrdad Afshari, and Zhendong Su. Liszt: A Domain Specific Language for Building Portable Mesh-based PDE Solvers. Zheng, A., Jordan, M., Liblit, B., Naik, M., Aiken, A. Foster, J. S., Johnson, R., Kodumal, J., Aiken, A. It's available for free.. Discover the human abdomen and how it works. Compilers Structure of a Compiler Alex Aiken Intro to Compilers 1. As a result, you will learn how a program written in a high-level language designed for humans is systematically translated into a program written in low-level assembly more suited to machines. Most weeks there will also be homeworks (done on-line) and a quiz. Alex Aiken is the Alcatel-Lucent Professor of Computer Science at Stanford. A Theory of Compaction-Based Parallelization. They were stellar. Soundness and its Role in Bug Detection Systems (position paper). For more information about the . As a rough guide, you should already be an experienced programmer and be comfortable writing substantial C++ or Java programs; writing a compiler is not a good way to learn either programming or these particular languages. I. I took his 2 algorithm courses on Coursera's original platform. The project also makes use of software tools, so you should also be comfortable learning to use new tools on your own. Prof. Aiken 4 Question? Prof. Aiken Choose the next parse state given the grammar, parse table,and current state below. edited by Aiken, A., Nicolau, A., Gelernter et al., D. Static Type Inference in a Dynamically Typed Language. First-Order Theory of Subtyping Constraints. Introduction: Original: Annotated: Introduction: Structure of a Compiler: The Economy of Programming Languages: II. aiken@barnowl.CS.Berkeley.EDU (Alex Aiken) 8 Jul 1998 01:41:11 -0400 From comp.compilers Success with your students starts on Day 1. Добавить в избранное . Static Detection of Security Vulnerabilities in Scripting Languages. Sharma, R., Gupta, S., Hariharan, B., Aiken, A., Nori, A. Alex Aiken Intro to Compilers •First step: recognize words. Binary Translation Using Peephole Superoptimizers. Zheng, A., Jordan, M., I., Liblit, B., Aiken, A. The initial stringis: if true then {true }else{if falsethen {false}} $ if then else { } true false $ ... Introduction to Programming Languages and Compilers Author: Alex Aiken Stanford University. 5. There are a number of good textbooks on compilers; here are three in particular: There will be an on-line discussion forum in which students can ask questions and receive answers. Sharma, R., Gupta, S., Hariharan, B., Aiken, A., Liang, P., Nori, A. V. Crowd-scale Interactive Formal Reasoning and Analytics. These slides are motivated from Prof. Alex Aiken: Compilers (Stanford) Structure of a Typical Compiler Intermediate Code Generation optimization Code Generation Lexical Analysis Syntactic Analysis Semantic Analysis Interpreter Character stream Token stream Syntax trees A Tuning Framework for Software-Managed Memory Hierarchies. 8 16 4. [Coursera] Compilers by Alex Aiken (Stanford University) Publisher Academic Torrents Contributor Academic Torrents. Alex Aiken, Primary Adviser I certify that I have read this dissertation and that, in my opinion, it is fully adequate ... compiler-based implementations restrict the programming model to exclude dynamic features needed for unstruc-tured applications, while dynamic, … Osbert Bastani, Rahul Sharma, Alex Aiken, and Percy Liang. Fluid Updates: Beyond Strong vs. Weak Updates, Small Formulas for Large Programs: On-Line Constraint Simplification in Scalable Static Analysis, Community Epidemic Detection Using Time-Correlated Anomalies. The course will last ten weeks. I'm not even sure if they are still available on Coursera or not. A Development Environment for Horizontal Microcode (revised). Aiken, A., Fähndrich, M., Foster, J., Su, Z. Program Analysis Using Mixed Term and Set Constraints. Tioga-2: A Direct Manipulation Database Visualization Environment. A Toolkit for Constructing Type- and Constraint-Based Program Analyses (invited paper). Alex Aiken Implementing FA •A DFA can be implemented by a 2D table T –One dimension is states 2019. Type Inclusion Constraints and Type Inference. Alex Aiken Intro to Compilers •Optimization has no strong counterpart in English –But a little bit like editing •Automatically modify programs so that they –Run faster –Use less memory . The Tioga-2 Database Visualization Environment. Alex Aiken A similar story with Alex Aiken's excellent Compiler course and Jeffrey Ullman's Automata course too. His research interest is in areas related to programming languages. The course lectures will be presented in short videos. Yes. Building an Optimizing Compiler, Robert Morgan, Digital Press, 1998. Alex received his Bachelors degree in Computer Science and Music from Bowling Green State University in 1983 and his Ph.D. from Cornell University in 1988. Semantic Analysis4. Meet your instructors. Stanford University. It is performed in and by a type of computer software termed a compiler.Real-world compilers generally cannot produce genuinely optimal code. The optimization component of a compiler takes a program as input and produces another, hopefully faster, program as output. Using the Run-Time Sizes of Data Structures to Guide Parallel Thread Creation. Sequoia: Programming the Memory Hierarchy. All rights belong to Stanford and Coursera. There will be also be a midterm and a final exam. Public Deployment of Cooperative Bug Isolation. The course is online, free, and self-paced. Compilation for Explicitly Managed Memory Hierarchies. Coursera: Compilers by Alex Aiken (Stanford University) 12/06/2016 09:32. Slides based on slides designed by Prof. Alex Aiken. Conoce a tus instructores. Context- and Path-Sensitive Memory Leak Detection. However, you may find a textbook useful as a reference or to learn more details of some of the ideas discussed in the course. Stanford University. Compiler … Alex Aiken, Professor, Stanford University Добавить в избранное This course will discuss the major ideas used today in the implementation of programming language compilers. Statistical Debugging of Sampled Programs. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2017 ). Contribute to forfrt/Notes development by creating an account on GitHub. How is Aliasing Used in Systems Software? Alex Aiken - Berkeley Program analysis, type theory, optimization, constraint theories, functional programming, instruction scheduling. Precise and Compact Modular Procedure Summaries for Heap Manipulating Programs. The book that be the course is loosely based on is the Dragon Book (Compilers: Principles, Tools, and Techniques, 2nd Ed.) Directional Type Checking of Logic Programs. 3 Answer! –Smallest unit above letters This is a sentence. Type Systems for Distributed Data Sharing. Optimization 5. Alex Aiken Intro to Compilers ist his ase nte nce . To help you master the material, there will be in-lecture questions to answer, quizzes, and two exams: a midterm and a final. Coursera: Compilers by Alex Aiken (Stanford University) Size: 1.15 GB Type: eLearning. Optimal Representations of Polymorphic Types with Subtyping (Extended Abstract). The slides from the lectures will be available in both annotated and unannotated form. Compiler Construction was one of my favorite electives in college. A Capability Calculus for Concurrency and Determinism (extended version). I'm not even sure if they are still available on Coursera or not. Optimal Representations of Polymorphic Types with Subtyping. An Introduction to Data Representation Synthesis. The compiler use avr-gcc-4.9.2 as dependency. Please read the README.txt file in the root directory. Sharma, R., Schkufza, E., Churchill, B., Aiken, A. Verification of Producer-Consumer Synchronization in GPU Programs. Bastani, O., Sharma, R., Aiken, A., Liang, P. Dynamic Tracing: Memoization of Task Graphs for Dynamic Task-Based Runtimes, Lee, W., Slaughter, E., Bauer, M., Treichler, S., Warszawski, T., Garland, M., Aiken, A., IEEE Press, Correctness of Dynamic Dependence Analysis for Implicitly Parallel Tasking Systems, Lee, W., Stelle, G., McCormick, P., Aiken, A., IEEE, A Distributed Multi-GPU System for Fast Graph Processing. Here you can download the original and annotated slides for each video. 2017. Code Generation . This course will discuss the major ideas used today in the implementation of programming language compilers. Making Set-Constraint Program Analyses Scale. Lexical Analysis2. Here is my notes for studying. It has to work One or more (very) limited resources Registers RAM Bandwidth Time Devil’s Advocate So what’s different? Alex Aiken Fri, 13 Apr 2012 11:26:30 -0700 From comp.compilers Most weeks there will also be homeworks (done on-line) and a quiz. Safe-A Semantic Technique for Transforming Programs in the Presence of Errors. On Typability for Rank-2 Intersection Types with Polymorphic Recursion. The first week of lectures are available, and that is all that is assigned for the first week. Jia, Z., Kwon, Y., Shipman, G., McCormick, P., Erez, M., Aiken, A. Alex Aiken Implementing FA Regular expressions NFA DFA Lexical Specification Table-driven Implementation of DFA . Accountable Talk®: Conversation that Works, Compilers: Principles, Techniques, and Tools (Second Edition), Modern Compiler Implementation in Java (Second Edition). Partial Online Cycle Elimination in Inclusion Constraint Graphs. Bug Isolation via Remote Program Sampling. Compiler Construction was one of my favorite electives in college. the "purple dragon" book) can be a useful reference. [1] ... but to just learn it well enough to implement the compiler. 40-414 Compiler Design Top-Down Parsing Lecture 5. Perfect Pipelining: A New Loop Parallelization Technique. This course will discuss the major ideas used today in the implementation of programming language compilers. Better Static Memory Management: Improvements to Region-Based Analysis of Higher-Order Languages. Fatahalian, K., Knight, T., Houston, M., Erez, M., Horn, D., Leem, L., Aiken, A. Shankar, George Necula, Alex Aiken, Eric Brewer, Ras Bodik, Ion Stoica, Doug Tygar, and David Wagner. Stanford University. Writing compilers requires some knowledge of theory of computation, which is another one of my favorite subjects. Su, Z., Aiken, A., Niehren, J., Priesnitz, T., Trienen, R. Entailment with Conditional Equality Constraints. Attack Resistant Trust Metrics for Public Key Certification. Michael Bauer, Sean Treichler, Alex Aiken In Principles and Practices of Parallel Programming Abstract: We present Singe, a Domain Specific Language (DSL) compiler for combustion chemistry that leverages warp specialization to produce high performance code for GPUs. In Proceedings of the 2nd Conference on Systems and Machine Learning (SysML'19). [Coursera, Alex Aiken] Compilers [2016, ENG] Страницы: 1 Обучающее ... An optional course project is to write a complete compiler for COOL, the Classroom Object Oriented Language. From invariant checking to invariant inference using randomized search, Interactively Verifying Absence of Explicit Information Flows in Android Apps. Liblit, B., Naik, M., Zheng, A. X., Aiken, A., Jordon, M. I. Scalable error detection using boolean satisfiability. Navigation and Coordination Primitives for Multidimensional Browsers. Compiler Construction is a combination of theory and implementation. The first week of lectures are available, and that is all that is assigned for the first week. On the GHC side, I really enjoyed Simon Peyton-Jones' book which guides you through writing a compiler for a simplified Haskell. 2. Intro to Parsing Not every strings of tokens are valid Parser must distinguish between Introduction to Set Constraint-Based Program Analysis. Woodruff, A., Olston, C., Aiken, A., Chu, M., Ercegovac, V., Lin, M. Detecting Races in Relay Ladder Logic Programs. Aiken, A., Kozen, D., Vardi, M., Wimmers, E. Behavior of Database Production Rules: Termination, Confluence, and Observable Determinism. An Introduction to Data Representation Synthesis. Professor of Computer Science. The Cool Programming Language: Original: Annotated: Liblit, B., Naik, M., Zheng, A., Aiken, A., Jordan, M., I. 07 02 first sets annotated . Alex Aiken Compilers Implementing Finite Automata . answer comes from another student, the course staff will monitor the discussions for accuracy and to address questions where the student community particularly wants to hear from the staff. Xie, Y., Naik, M., Hackett, B., Aiken, A. Banshee: A scalable constraint-based analysis toolkit, Secure information flow as a safety problem, Saturn: A SAT-based tool for bug detection, The set constraint/CFL reachability connection in practice. Alex AIKEN of Stanford University, CA (SU) | Read 175 publications | Contact Alex AIKEN This is a pseudo Fortran77 compiler for Atmel AVR microcontroller, written in Fortran using gfortran compiler. Online Detection of Multi-Component Interactions in Production Systems, Symbolic Heap Abstraction with Demand-Driven Axiomatization of Memory Invariants, Reasoning About the Unknown in Static Analysis, Expanding the Frontiers of Computer Science: Designing a Curriculum to Reflect a Diverse Field. Scalable program analysis using Boolean satisfiability, Static detection of security vulnerabilities in scripting languages. Designed for teachers and learners in every setting - in school and out, in... All courses from 'Engineering & Technology', First Year Teaching (Secondary Grades) - Success from the Start. No, no textbook is required for the class. Contribute to shirleyrz/Compiler development by creating an account on GitHub. Alex Aiken Verifying Bit-Manipulations of Floating-Point, Stratified Synthesis: Automatically Learning the x86-64 Instruction Set. Right away I found the course to be compelling. On the GHC side, I really enjoyed Simon Peyton-Jones' book which guides you through writing a compiler for a simplified Haskell. Beyond Data and Model Parallelism for Deep Neural Networks. A Query Language for Understanding Component Interactions in Production Systems. Ren, M., Park, J. Y., Houston, M., Aiken, A., Daily, W. J. Golan-Gueta, G., Bronson, N., Aiken, A., Ramalingam, G., Sagiv, M., Yahav, E. Testing Atomicity of Composed Concurrent Operations. Shacham, O., Bronson, N., Aiken, A., Sagiv, M., Vechev, M., Yahav, E. Programming the Memory Hierarchy Revisited: Supporting Irregular Parallelism in Sequoia. Woodruff, A., Su, A., Stonebraker, M., Paxson, C., Chen, J., Aiken, A. edited by Woodruff, A., Su, A., Stonebraker, M. Resource-Constrained Software Pipelining. This is a new edition of the classic compiler text and is a … Alex Aiken Intro to Compilers X = Y * 0 is the same as X = 0 . This compiler is a relatively simple C style language, created as an exercise. Measuring Empirical Computational Complexity. Thanks to Prof. Alex Aiken. Zhihao Jia, Matei Zaharia, and Alex Aiken. This question is very hard to answer as the level of difficulty will vary depending on your programming background. Alex Aiken Error Handling •Past –Slow recompilation cycle (even once a day) Created Date: 3/24/2015 3:51:25 PM School of Earth, Energy and Environmental Sciences, Freeman Spogli Institute for International Studies, Institute for Computational and Mathematical Engineering (ICME), Institute for Stem Cell Biology and Regenerative Medicine, Stanford Institute for Economic Policy Research (SIEPR), Stanford Woods Institute for the Environment, Office of VP for University Human Resources, Office of Vice President for Business Affairs and Chief Financial Officer. ISBN 0-534-93972-4 Advanced Compiler Design and Implementation, Steven Muchnick, Morgan Kaufmann, 1997. CS 5641 Compiler Design Rich Maclin rmaclin@d.umn.edu 319 Heller Hall Acknowledgements Notes derived from: Susan Horwitz (UW-Madison) Ras Bodik (UW-Madison) Alex Aiken (Berkeley) George Necula (Berkeley) 2 Readings Chapter 1 Chapter 2 (optional) – may want to review this chapter periodically Levels of Programming Languages Machine language Assembly language High-level … An icon used to represent a menu that can be toggled by interacting with this icon. Alex Aiken, Primary Adviser I certify that I have read this dissertation and that, in my opinion, it is fully adequate in scope and quality as a dissertation for the degree of Doctor of Philosophy. Each week there will be a number of videos to watch, most of which will include an in-video quiz question to answer. A similar story with Alex Aiken's excellent Compiler course and Jeffrey Ullman's Automata course too. Parsing 3. Alex Aiken. This self-paced course will discuss the major ideas used today in the implementation of programming language compilers, including lexical analysis, parsing, syntax-directed translation, abstract syntax trees, types and type checking, intermediate languages, dataflow analysis, program optimization, code generation, and runtime systems. Decidability of Systems of Set Constraints with Negative Constraints. Compiler Construction: Principles and Practice, Kenneth C. Louden, PWS Publishing Company, 1997. Wagner, D., Foster, J., Brewer, E., Aiken, A. Polymorphic versus Monomorphic Flow-Insensitive Points-to Analysis for C. Projection Merging: Reducing Redundancies in Inclusion Constraint Graphs. Alex Aiken Intro to Compilers X = Y * 0 is the same as X = 0 . Written assignments are good and the programming assignments are also good. ISBN 1-558-60320-4. You will learn how a program written in a high-level language designed for humans is systematically translated into a program written in low-level assembly more suited to machines! Oliner, A. J., Kulkarni, A. V., Aiken, A. 2014. If you follow along the lectures and do all the assignments then you will have built a full compiler for COOL language. On typability for rank-2 intersection types with polymorphic recursion. Each week there will be a number of videos to watch, most of which will include an in-video quiz question to answer. I'm not even sure if they are still available on Coursera or not. Is it a valid statement in C language? Alex received his Bachelors degree in Computer Science and Music from Bowling Green State University in 1983 and his Ph.D. from Cornell University in 1988. Right away I found the course to be compelling. 40-414 Compiler Design Introduction to Parsing Lecture 4 Exercise. Program Transformation in the Presence of Errors. Active Learning of Points-To Specifications. Yelick, K., Semenzato, L., Pike, G., Miyamoto, C., Liblit, B., Krishnamurthy, A., Aiken, A. Fähndrich, M., Foster, J., Su, Z., Aiken, A. Titanium: A High-Performance Java Dialect. 4. 2 Announcements • WA 2 – Is Released today. Fine-Grain Compilation for Pipelined Machines. Ziv, O., Aiken, A., Golan-Gueta, G., Ramalingam, G., Sagiv, M. Specification Inference Using Context-Free Language Reachability, M-3: High-Performance Memory Management from Off-the-Shelf Components, Singe: Leveraging Warp Specialization for High Performance on GPUs, First-class Runtime Generation of High-performance Types using Exotypes. Hawkins, P., Aiken, A., Fisher, K., Rinard, M., Sagiv, M. Legion: Expressing Locality and Independence with Logical Regions. AC Transit prepared Eor opening OE rapid I:ransil: in the Easl: Bay AC Transit is ready to roll in a new pattern of bus. Students who successfully complete the class will receive a statement of accomplishment signed by the instructor. 16 02 graph coloring annotated . Constant Touch . Knowing how a compiler works will also make you a better programmer and increase your ability to learn new programming languages quickly. Compilers CS143 3:00-4:20 TT Lectures on Zoom scheduled through Canvas 1 Instructor: Fredrik Kjolstad Slides based on slides designed by Prof. Alex Aiken 3. There will be also be a midterm and a final exam. ISBN 1- 55558- 179- X project check out the Readme on Github. Learn the Fundamentals of Programming with Java. Along the way we will also touch on how programming languages are designed, programming language semantics, and why there are so many different kinds of programming languages. Verifying the safety of user pointer dereferences, A Portable Runtime Interface For Multi-Level Memory Hierarchies. 7 2 15 A B B B C C C 1| 2 How many strings does the following grammar generate? Treichler, S., Bauer, M., Sharma, R., Slaughter, E., Aiken, A. View details for DOI 10.1145/3192366.3192383, View details for Web of Science ID 000452469600046, View details for Web of Science ID 000494258800034, View details for DOI 10.1109/Correctness.2018.00007, View details for Web of Science ID 000461030500003, View details for DOI 10.14778/3157794.3157799, View details for Web of Science ID 000429425700005, View details for DOI 10.1145/3062341.3062349, View details for Web of Science ID 000414334200007, View details for DOI 10.1145/3093336.3037754, View details for Web of Science ID 000401540000023, View details for DOI 10.1109/HiPC.2017.00043, View details for Web of Science ID 000426994700034, View details for DOI 10.1145/2983990.2984016, View details for Web of Science ID 000393581000020, View details for DOI 10.1145/2908080.2908107, View details for Web of Science ID 000381501000006, View details for DOI 10.1145/2908080.2908121, View details for Web of Science ID 000381501000017, View details for DOI 10.1007/s10703-016-0248-5, View details for Web of Science ID 000382702200004, View details for Web of Science ID 000368828200029, View details for DOI 10.1145/2814270.2814274, View details for Web of Science ID 000367256500017, View details for DOI 10.1145/2814270.2814278, View details for Web of Science ID 000367256500009, View details for DOI 10.1145/2737924.2737962, View details for Web of Science ID 000361284200009, View details for DOI 10.1145/2737924.2737970, View details for Web of Science ID 000361284200023, View details for DOI 10.1145/2676726.2676977, View details for Web of Science ID 000354800500045, View details for DOI 10.1145/2602988.2602995, View details for Web of Science ID 000358310800001, View details for DOI 10.1145/2555243.2555258, View details for Web of Science ID 000349142100011, View details for DOI 10.1145/2594291.2594307, View details for Web of Science ID 000344455800011, View details for DOI 10.1145/2594291.2594302, View details for Web of Science ID 000344455800009, View details for DOI 10.1145/2535838.2535853, View details for Web of Science ID 000331120500012, View details for DOI 10.1145/2509136.2509509, View details for Web of Science ID 000327697300022, View details for DOI 10.1145/2509136.2509545, View details for Web of Science ID 000327697300028, View details for Web of Science ID 000321865400011, View details for Web of Science ID 000321213100025, View details for Web of Science ID 000342808500021, View details for Web of Science ID 000342810200031, View details for DOI 10.1145/2380656.2380677, View details for Web of Science ID 000312744900026, View details for DOI 10.1145/2398857.2384688, View details for Web of Science ID 000311296200057, View details for DOI 10.1145/2345156.2254087, View details for Web of Science ID 000307582100017, View details for DOI 10.1145/2345156.2254114, View details for Web of Science ID 000307582100037, View details for Web of Science ID 000316911000064, View details for Web of Science ID 000310871200017, View details for DOI 10.1007/s10703-011-0127-z, View details for Web of Science ID 000297596900002, View details for DOI 10.1145/2076021.2048086, View details for Web of Science ID 000298294500015, View details for DOI 10.1145/2076021.2048073, View details for Web of Science ID 000298294500005, View details for Web of Science ID 000296264900003, View details for DOI 10.1145/1993316.1993504, View details for Web of Science ID 000294609500004, View details for DOI 10.1145/1993316.1993565, View details for Web of Science ID 000294609500049, View details for DOI 10.1145/1925844.1926407, View details for Web of Science ID 000286472700016, View details for Web of Science ID 000295616400005, View details for DOI 10.1145/1932682.1869493, View details for Web of Science ID 000286595800025, View details for DOI 10.1145/1787234.1787259, View details for Web of Science ID 000280545500030, View details for Web of Science ID 000281141300010, View details for Web of Science ID 000290881800015, View details for Web of Science ID 000279369000013, View details for Web of Science ID 000286149800015, View details for Web of Science ID 000286486100019, View details for Web of Science ID 000287078300020, View details for Web of Science ID 000270444900016, View details for DOI 10.1145/1387673.1387676, View details for Web of Science ID 000259445600003, View details for Web of Science ID 000257820400025, View details for DOI 10.1145/1353445.1353449, View details for Web of Science ID 000256425100004, View details for Web of Science ID 000266617300025, View details for DOI 10.1109/ICDM.2008.132, View details for Web of Science ID 000264173600114, View details for Web of Science ID 000267053400028, View details for Web of Science ID 000256560300022, View details for Web of Science ID 000266619600015, View details for Web of Science ID 000253409000043, View details for Web of Science ID 000253409000033, View details for Web of Science ID 000267364200035, View details for Web of Science ID 000253407700035, View details for Web of Science ID 000266485500041, View details for Web of Science ID 000266870900035, View details for Web of Science ID 000266011900008, View details for DOI 10.1145/1232420.1232423, View details for Web of Science ID 000247072100003, View details for Web of Science ID 000266485500031, View details for Web of Science ID 000202972600037, View details for Web of Science ID 000242991500003, View details for Web of Science ID 000202972100027, View details for Web of Science ID 000240256100015, View details for Web of Science ID 000240899100012, View details for Web of Science ID 000240106600011, View details for Web of Science ID 000245599800013, View details for Web of Science ID 000233404900025, View details for Web of Science ID 000232089200011, View details for Web of Science ID 000230634200003, View details for Web of Science ID 000228342100030, View details for Web of Science ID 000232292300016, View details for Web of Science ID 000232292300024, View details for Web of Science ID 000230755800013, View details for Web of Science ID 000223120900019, View details for Web of Science ID A1995RJ62400002, View details for Web of Science ID A1991GJ20300022, Professor, Particle Physics and Astrophysics, Programming Languages Achievement Award, ACM SIGPLAN, Phi Beta Kappa Teaching Award, Phi Beta Kappa.