Shriram Krishnamurthi
Computer scientist
Shriram Krishnamurthi's AcademicInfluence.com Rankings
Download Badge
Computer Science
Shriram Krishnamurthi's Degrees
- PhD Computer Science University of California, Berkeley
- Masters Computer Science University of California, Berkeley
- Bachelors Computer Science University of California, Berkeley
Similar Degrees You Can Earn
Why Is Shriram Krishnamurthi Influential?
(Suggest an Edit or Addition)According to Wikipedia, Shriram Krishnamurthi is a computer scientist, currently a professor of computer science at Brown University and a member of the core development group for the Racket programming languages, responsible for creation of software packages including the Debugger, the FrTime package, and the networking library. Since 2006, Krishnamurthi has been a leading contributor to the Bootstrap curriculum, a project to integrate computer science education into grades 6–12.
Shriram Krishnamurthi's Published Works
Published Works
- Classes and mixins (1998) (505)
- Verification and change-impact analysis of access-control policies (2005) (456)
- on the Principles of Programming Languages (1997) (352)
- DrScheme: a programming environment for Scheme (2002) (333)
- Participatory networking: an API for application control of SDNs (2013) (308)
- Flapjax: a programming language for Ajax applications (2009) (252)
- The Essence of JavaScript (2010) (244)
- Embedding Dynamic Dataflow in a Call-by-Value Language (2006) (201)
- How to design programs: an introduction to programming and computing (2001) (191)
- A Programmer's Reduction Semantics for Classes and Mixins (1999) (185)
- Using static analysis for Ajax intrusion detection (2009) (168)
- The Margrave Tool for Firewall Analysis (2010) (154)
- Tierless Programming and Reasoning for Software-Defined Networks (2014) (151)
- Specifying and Reasoning About Dynamic Access-Control Policies (2006) (144)
- How to Design Programs (2001) (139)
- Verifying aspect advice modularly (2004) (138)
- Synthesizing Object-Oriented and Functional Design to Promote Re-Use (1998) (115)
- ADsafety: Type-Based Verification of JavaScript Sandboxing (2011) (108)
- Transferring Skills at Solving Word Problems from Computing to Algebra Through Bootstrap (2015) (106)
- DrScheme: A Pedagogic Programming Environment for Scheme (1997) (105)
- Automated Fault Localization Using Potential Invariants (2003) (104)
- The TeachScheme! Project: Computing and Programming for Every Student (2004) (104)
- Catching bugs in the web of program invariants (1996) (103)
- Automatically restructuring programs for the Web (2001) (102)
- Modular verification of collaboration-based software designs (2001) (96)
- Automated Fault Localization Using Potential Invariants 1 (2003) (96)
- A type system for statically detecting spreadsheet errors (2003) (95)
- Validating the unit correctness of spreadsheet programs (2004) (93)
- Measuring the effectiveness of error messages designed for novice programmers (2011) (92)
- Typing Local Control and State Using Flow Analysis (2011) (92)
- Pointcuts and advice in higher-order languages (2003) (91)
- Verifying cross-cutting features as open systems (2002) (89)
- A functional I/O system or, fun for freshman kids (2009) (82)
- Hierarchical policies for software defined networks (2012) (78)
- Oops, I did it again: mitigating repeated access control errors on facebook (2011) (74)
- Mind your language: on novices' interactions with error messages (2011) (74)
- The DrScheme project: an overview (1998) (73)
- Programming the Web with High-Level Programming Languages (2001) (73)
- Towards reasonability properties for access-control policy languages (2006) (69)
- Semantics and scoping of aspects in higher-order languages (2006) (68)
- Aluminum: Principled scenario exploration through minimality (2013) (68)
- Programming languages as operating systems (or revenge of the son of the lisp machine) (1999) (66)
- Modeling Web Interactions (2003) (66)
- Implementation and use of the PLT scheme Web server (2007) (65)
- The Racket Manifesto (2015) (65)
- Foundations of incremental aspect model-checking (2007) (59)
- The structure and interpretation of the computer science curriculum (2004) (59)
- Modular Verification of Open Features Using Three-Valued Model Checking (2005) (57)
- A programmable programming language (2018) (57)
- Programming languages - application and interpretation (2003) (56)
- ViewpointWhy computer science doesn't matter (2009) (55)
- Verifying interactive Web programs (2004) (53)
- TeJaS: retrofitting type systems for JavaScript (2013) (52)
- Relationally-parametric polymorphic contracts (2007) (51)
- Continuations from generalized stack inspection (2005) (51)
- A tested semantics for getters, setters, and eval in JavaScript (2012) (49)
- A balance of power: expressive, analyzable controller programming (2013) (49)
- Teaching programming languages in a post-linnaean age (2008) (48)
- Interfaces for modular feature verification (2002) (47)
- Python: the full monty (2013) (46)
- Parameterized interfaces for open system verification of product lines (2004) (42)
- Participatory Networking (2012) (42)
- Obligations and Their Interaction with Programs (2007) (41)
- Preference aggregation in group recommender systems for committee decision-making (2009) (39)
- The real software crisis (2015) (37)
- The CONTINUE Server (or, How I Administered PADL 2002 and 2003) (2003) (37)
- Verifying Web Browser Extensions' Compliance with Private-Browsing Mode (2013) (36)
- Lowering: a static optimization technique for transparent functional reactivity (2007) (36)
- Abstract shade trees (2006) (34)
- Resugaring: lifting evaluation sequences through syntactic sugar (2014) (33)
- Please Continue to Hold: An Empirical Study on User Tolerance of Security Delays (2010) (33)
- Crossing State Lines: Adapting Object-Oriented Frameworks to Functional Reactive Languages (2006) (33)
- Programming Paradigms and Beyond (2019) (32)
- Assessing Bootstrap: Algebra Students on Scaffolded and Unscaffolded Word Problems (2018) (30)
- Transformation-by-Example for XML (2000) (30)
- The design and implementation of a dataflow language for scriptable debugging (2007) (30)
- Expressing Structural Properties as Language Constructs (1999) (29)
- Modernizing Plan-Composition Studies (2016) (28)
- The feature signatures of evolving programs (2003) (27)
- Alchemy: transmuting base alloy specifications into implementations (2008) (26)
- SXSLT: Manipulation Language for XML (2003) (26)
- From Macros to Reusable Generative Programming (1999) (26)
- The power of "why" and "why not": enriching scenario exploration with provenance (2017) (26)
- Linguistic reuse (2001) (26)
- Accessible AST-Based Programming for Visually-Impaired Programmers (2019) (25)
- Executable Examples for Programming Problem Comprehension (2019) (24)
- How to Design Programs: An Introduction to Computing and Programming (2006) (24)
- Toward a formal theory of extensible software (1998) (23)
- Exodus: toward automatic migration of enterprise network configurations to SDNs (2015) (23)
- WeScheme: the browser is your programming environment (2011) (20)
- Simon: scriptable interactive monitoring for SDNs (2015) (20)
- Little Languages and Their Programming Environments (2001) (19)
- EDUCATIONAL PEARL: Automata via macros (2006) (19)
- Artifact evaluation for software conferences (2013) (18)
- Can we crowdsource language design? (2017) (18)
- Modeling and Reasoning about DOM Events (2012) (18)
- Decomposing Verification Around End-User Features (2005) (17)
- What Help Do Students Seek in TA Office Hours? (2019) (17)
- Modeling web interactions and errors (2006) (17)
- Combining Form and Function: Static Types for JQuery Programs (2013) (17)
- A model of triangulating environments for policy authoring (2010) (16)
- Automatically restructuring software for the web (2004) (16)
- Assessing and Teaching Scope, Mutation, and Aliasing in Upper-Level Undergraduates (2017) (16)
- Semantics and Types for Objects with First-Class Member Names (2012) (16)
- User Studies of Principled Model Finder Output (2017) (15)
- Fostering Little Languages (2004) (15)
- Who Tests the Testers? (2018) (14)
- CaptainTeach: multi-stage, in-flow peer review for programming assignments (2014) (14)
- A dataflow language for scriptable debugging (2004) (14)
- In-flow peer-review of tests in test-first programming (2014) (14)
- Artifact Evaluation for Publications (Dagstuhl Perspectives Workshop 15452) (2015) (13)
- Towards an Operational Semantics for Alloy (2009) (13)
- Whalesong: running racket in the browser (2013) (13)
- Memory for Functions (2001) (13)
- Hygienic resugaring of compositional desugaring (2015) (13)
- Static Differential Program Analysis for Software-Defined Networks (2015) (13)
- Evaluating the Tracing of Recursion in the Substitution Notional Machine (2018) (13)
- Toward a More Complete Alloy (2012) (12)
- Type-Based Verification of JavaScript Sandboxing (2011) (12)
- A Tested Semantics for the Python Programming Language (2013) (12)
- Embracing policy engineering (2010) (11)
- Harnessing the Wisdom of the Classes: Classsourcing and Machine Learning for Assessment Instrument Generation (2019) (11)
- The behavior of gradual types: a user study (2018) (11)
- Verifying Component-Based Collaboration Designs (2001) (11)
- On a (Per)Mission: Building Privacy Into the App Marketplace (2016) (11)
- Putting in all the stops: execution control for JavaScript (2018) (11)
- Notional Machines and Programming Language Semantics in Education (Dagstuhl Seminar 19281) (2019) (10)
- Decomposing Verification by Features ? (2005) (10)
- Cryptographic Protocol Explication and End-Point Projection (2008) (10)
- Error messages are classifiers: a process to design and evaluate error messages (2017) (10)
- On the Finite Model Property in Order-Sorted Logic (2010) (10)
- CompoSAT: Specification-Guided Coverage for Model Finding (2018) (9)
- Implementing Extensible Theorem Provers (1999) (9)
- Creativity, Customization, and Ownership: Game Design in Bootstrap: Algebra (2018) (9)
- Progressive types (2012) (9)
- The Influence of Software Module Systems on Modular Verification (2002) (9)
- Teaching Programming Languages by Experimental and Adversarial Thinking (2017) (8)
- A Semantics for Pointcuts and Advice in Higher-Order Languages (2002) (8)
- Typed-based verification of Web sandboxes (2014) (8)
- Flapjax (2009) (8)
- Static Debugging: Browsing the Web of Program Invariants (1996) (7)
- Building Little Languages With Macros (2004) (7)
- Advanced control flows for flexible graphical user interfaces: or, growing GUIs on trees or, bookmarking GUIs (2002) (7)
- In-Flow Peer Review (2014) (7)
- Verifying cross-cutting features as open systems (2002) (7)
- Compiling cryptographic protocols for deployment on the web (2007) (7)
- SIGPLAN programming language curriculum workshop: Discussion Summaries and recommendations (2008) (6)
- Features and object capabilities: reconciling two visions of modularity (2012) (6)
- Evolving a K-12 Curriculum for Integrating Computer Science into Mathematics (2021) (6)
- Reenix: Implementing a Unix-Like Operating System in Rust (2015) (6)
- Data-centricity (2020) (6)
- Inferring scope through syntactic sugar (2017) (5)
- Synthesizing Mutable Configurations: Setting up Systems for Success (2019) (5)
- Fluid Object Types (2011) (5)
- Switches are Monitors Too!: Stateful Property Monitoring as a Switch Design Criterion (2016) (5)
- Discussion summary: characteristics of web services and their impact on testing, analysis and verification (2005) (5)
- A Model Checking Framework for Layered Command and Control Software (2001) (5)
- Inferring type rules for syntactic sugar (2018) (5)
- The Sweep: Essential Examples for In-Flow Peer Review (2016) (5)
- Web Verification: Perspective and Challenges (2006) (5)
- Blocks versus text: Ongoing lessons from bootstrap (2015) (5)
- Prototyping Formal Methods Tools: A Protocol Analysis Case Study (2021) (4)
- Interaction-Safe State for the Web (2006) (4)
- Using Relational Problems to Teach Property-Based Testing (2020) (4)
- Advanced control flows for flexible graphical user interfaces or, growing GUIs on trees or, bookmarking GUIs (2002) (4)
- Artifact evaluation for software conferences (2013) (4)
- Will Students Write Tests Early Without Coercion?✱ (2020) (4)
- An introduction to Scheme (1994) (3)
- Developing Behavioral Concepts of Higher-Order Functions (2021) (3)
- Data Science as a Route to AI for Middle- and High-School Students (2020) (3)
- Automata via Macros (2005) (3)
- Usable security as a static-analysis problem: modeling and reasoning about user permissions in social-sharing systems (2013) (3)
- The Next 700 Semantics: A Research Challenge (2019) (3)
- Detecting latent cross-platform API violations (2015) (3)
- Human-Centric Development of Software Tools (Dagstuhl Seminar 15222) (2015) (3)
- The Human in Formal Methods (2019) (3)
- ASM Relational Transducer Security Policies (2006) (3)
- A Model of Garbage Collection for OO Languages Rob Hunter and (3)
- Desugaring in Practice: Opportunities and Challenges (2015) (3)
- Early Post-Secondary Student Performance of Adversarial Thinking (2021) (3)
- Modular Verification of Feature-Oriented Software Models (2002) (2)
- CLIME: An environment for constrained evolution demonstration description (2003) (2)
- Do values grow on trees?: expression integrity in functional programming (2011) (2)
- The impact of a single lecture on program plans in first-year CS (2017) (2)
- Proceedings of the Third International Symposium on Practical Aspects of Declarative Languages (2001) (2)
- The Technology that Computer Science Education Overlooked (1999) (2)
- Trusted Multiplexing of Cryptographic Protocols (2009) (2)
- Proceedings of the 16th international conference on Compiler construction (2007) (2)
- From Macros to DSLs: The Evolution of Racket (2019) (2)
- Using Design Alternatives to Learn About Data Organizations (2020) (2)
- Plan Composition Using Higher-Order Functions (2022) (2)
- Escape from the matrix: lessons from a case-study in access-control requirements (2009) (2)
- Teaching garbage collection without implementing compiler or interpreters (2013) (2)
- Slimming languages by reducing sugar: a case for semantics-altering transformations (2015) (2)
- Formal Dialogue Model for Language Grounding Error Recovery (2019) (2)
- Gradual Soundness: Lessons from Static Python (2022) (2)
- A Constraint-based Approach to Open Feature Verification (2)
- What is an education paper? (2021) (1)
- Programming Language Techniques for Incremental and Reactive Computing (Dagstuhl Seminar 16402) (2016) (1)
- Solver-Aided Multi-Party Configuration (2020) (1)
- How to Design Programs, 2e (2004) (1)
- Tierless Programming and Reasoning for Networks (2015) (1)
- Adapting Student IDEs for Blind Programmers (2020) (1)
- Compiling Stateful Network Properties for Runtime Verification (2016) (1)
- Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (2014) (1)
- CLIME : An Environment for Constrained Evolution Demonstration Proposal (2003) (1)
- Compiler Construction, 16th International Conference, CC 2007, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2007, Braga, Portugal, March 26-30, 2007, Proceedings (2007) (1)
- Applying cognitive principles to model-finding output: the positive value of negative information (2022) (1)
- How to design programs: a new look at introductory computing (2002) (1)
- CaptainTeach: a platform for in-flow peer review of programming assignments (2014) (1)
- Poster: Waiting Makes the Heart Grow Fonder and the Password Grow Stronger Experiments in Nudging Users to Create Stronger Passwords (2013) (1)
- Automated, Targeted Testing of Property-Based Testing Predicates (2021) (1)
- Semantics and Analyses for JavaScript and the Web (2012) (1)
- Reading Between the Lines:Student Help-Seeking for (Un)Specified Behaviors (2021) (1)
- The Loss of Knowledge (2001) (1)
- Should software conferences respect software? (2013) (1)
- What does it mean for a computing curriculum to succeed? (2019) (1)
- Towards a Notional Machine for Runtime Stacks and Scope: When Stacks Don’t Stack Up (2022) (1)
- Vision: Computing and Authentication Practicesin Global Oil and Gas Fields (2021) (1)
- Structural versus pipeline composition of higher-order functions (experience report) (2022) (1)
- Computing and Authentication Practices in Global Oil and Gas Fields (2021) (1)
- Confining the ghost in the machine: using types to secure JavaScript sandboxing (2010) (1)
- Event Loops as First-Class Values: A Case Study in Pedagogic Language Design (2019) (1)
- Gradual Soundness: Lessons from Static Python The Art, Science, and Engineering of Programming (2022) (1)
- More on Processing Lists (2001) (0)
- Mutually Referential Data Definitions (2001) (0)
- Designing Accumulator-Style Functions (2001) (0)
- Building a Constraint-Based Software Environment (2002) (0)
- Intermezzo 7: The Final Syntax and Semantics (2001) (0)
- Educational Programming Languages and Systems (Dagstuhl Seminar 22302) (2022) (0)
- Scripting Languages and Frameworks: Analysis and Verification (Dagstuhl Seminar 14271) (2014) (0)
- Intermezzo 6: The Nature of Inexact Numbers (2001) (0)
- Flow-Dire ted Lightweight Closure ConversionJEFFREY (1999) (0)
- Composing Functions, Revisited Again (2001) (0)
- Integrated Data Science for Secondary Schools: Design and Assessment of a Curriculum (2022) (0)
- Intermezzo 3: Local Definitions and Lexical Scope (2001) (0)
- Editorial (2021) (0)
- Changing Compound Values (2001) (0)
- Designing Functions with Memory (2001) (0)
- Intermezzo 4: Defining Functions on the Fly (2001) (0)
- Development through Iterative Refinement (2001) (0)
- Designing Abstractions with First-Class Functions (2001) (0)
- Combining Interactive and Whole-Program Editing with Repartee (2022) (0)
- Examples of Memory Usage (2001) (0)
- Changong Structures, Vectors, and Objects (2001) (0)
- Macros and their Impact on Language Design (0)
- The Varieties of Data (2001) (0)
- Intermezzo 2: List Abbreviations (2001) (0)
- Assignments to Variables (2001) (0)
- Session details: Multi-paradigm programming (2007) (0)
- Little Languages and their Programming Environments Rice University Technical Report TR 99-350 (1999) (0)
- Proceedings of the 2002 Uc Davis Student Workshop on Computing Proceedings of the 2002 Uc Davis Student Workshop on Computing Program Committee: Faculty Advisor: Administrative Assistants: Mary Brown 2002 Uc Davis Student Workshop on Computing -visualization of Mulitdimensional, Multivariate Volume (2002) (0)
- Front Matter, Table of Contents, Preface, List of Authors (2016) (0)
- LIPIcs, Volume 71, SNAPL'17, Complete Volume (2017) (0)
- 2007 Reviewers (2007) (0)
- Types for Tables: A Language Design Benchmark (2021) (0)
- Little Tricky Logic: Misconceptions in the Understanding of LTL (2022) (0)
- Edinburgh Research Explorer A complement to blame (2015) (0)
- 3rd Summit on Advances in Programming Languages, SNAPL 2019, May 16-17, 2019, Providence, RI, USA (2019) (0)
- Designing Abstractions from Examples (2001) (0)
- Dependently Typing R Vectors, Arrays, and Matrices (2023) (0)
- Designing Functions that Change Structures (2001) (0)
- Foundations for Scripting Languages (Dagstuhl Seminar 12011) (2012) (0)
- Statically Finding Errors in Spreadsheets (0)
- Proceedings of the 8th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, PASTE'08, Atlanta, Georgia, November 9-10, 2008 (2008) (0)
- Numbers, Expressions, Simple Programs (2001) (0)
- Changing the State of Variables (2001) (0)
- Minding the (semantic) gap: engineering programming language theory (2010) (0)
- Programming Languages for Compressing Graphics (2002) (0)
- Compound Data, Part 1: Structures (2001) (0)
- Processing Two Complex Pieces of Data (2001) (0)
- More Self-referential Data Definitions (2001) (0)
- Functions are Values (2001) (0)
- Similarities in Definitions (2001) (0)
- Intermezzo 1: Syntax and Semantics (2001) (0)
- LIPIcs, Volume 56, ECOOP'16, Complete Volume (2016) (0)
- More on Processing Arbitrarily Large Data (2001) (0)
- Composition with Consistent Updates for Abstract State Machines (2007) (0)
- PLDI 2018 Artifact for Inferring Type Rules for Syntactic Sugar (2018) (0)
- Modeling Languages (2019) (0)
- The story of Arjun Guha, or: the arc of a research project (2015) (0)
- Processing Arbitrarily Large Data (2001) (0)
- Processing Simple Forms of Data (2001) (0)
- Programs are Function Plus Variable Definitions (2001) (0)
- Interaction-Safe State for the Web Jay McCarthy Shriram Krishnamurthi (2006) (0)
- Laziness and Pairs (0)
- Minimal backups of cryptographic protocol runs (2008) (0)
- Front Matter, Table of Contents, Preface (2017) (0)
- Is Feature-Oriented Verification Useful for Hardware ? (2005) (0)
- Title, Table of Contents, Preface, List of Authors (2015) (0)
- A New Form of Recursion (2001) (0)
- Conditional Expressions and Functions (2001) (0)
- Session details: Types (2014) (0)
- LIPIcs, Volume 32, SNAPL'15, Complete Volume (2015) (0)
- Practical aspects of declarative languages : 4th International Symposium, PADL 2002, Portland, OR, USA, January 19-20, 2002 : proceedings (2002) (0)
- Students, Teachers, and Computers (2001) (0)
- Intermezzo 5: The Cost of Computing and Vectors (2001) (0)
- Variations on a Theme (2001) (0)
- Features and Object Capabilities (2012) (0)
- Automatically Restructuring Programs for the We (2001) (0)
- Welcome from the AEC chairs (2014) (0)
- More Uses of Accumulation (2001) (0)
- From Spreadsheets to Programs: Data Science and CS1 in Pyret (Abstract Only) (2018) (0)
- From principles to programming languages (and back) (2013) (0)
- Algorithms that Backtrack (2001) (0)
- Making Hay from Wheats: A Classsourcing Method to Identify Misconceptions (2022) (0)
- Session details: Types (2014) (0)
- Problematic and Persistent Post-Secondary Program Performance Preconceptions (2022) (0)
This paper list is powered by the following services:
Other Resources About Shriram Krishnamurthi
What Schools Are Affiliated With Shriram Krishnamurthi?
Shriram Krishnamurthi is affiliated with the following schools:
What Are Shriram Krishnamurthi's Academic Contributions?
Shriram Krishnamurthi is most known for their academic work in the field of computer science. They are also known for their academic work in the fields of
Shriram Krishnamurthi has made the following academic contributions: