Sriram K. Rajamani

ORCID: 0000-0002-1400-7065
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Formal Methods in Verification
  • Software Testing and Debugging Techniques
  • Software Reliability and Analysis Research
  • Software Engineering Research
  • Logic, programming, and type systems
  • Security and Verification in Computing
  • Advanced Malware Detection Techniques
  • Distributed systems and fault tolerance
  • Parallel Computing and Optimization Techniques
  • Bayesian Modeling and Causal Inference
  • Model-Driven Software Engineering Techniques
  • Embedded Systems Design Techniques
  • Machine Learning and Algorithms
  • Cloud Data Security Solutions
  • Advanced Software Engineering Methodologies
  • Radiation Effects in Electronics
  • Real-Time Systems Scheduling
  • Software System Performance and Reliability
  • Machine Learning and Data Classification
  • Web Application Security Vulnerabilities
  • Access Control and Trust
  • Software Engineering Techniques and Practices
  • Distributed and Parallel Computing Systems
  • Service-Oriented Architecture and Web Services
  • Scientific Computing and Data Management

Microsoft Research (India)
2013-2024

Vellore Institute of Technology University
2022-2023

Manonmaniam Sundaranar University
2023

Microsoft Research (United Kingdom)
2004-2021

Microsoft (United States)
2007-2021

Association for Computing Machinery
2012-2015

Penn Center for AIDS Research
2012-2015

Microsoft (India)
2013

Ikerlan
2013

University of Utah
2012

The goal of the SLAM project is to check whether or not a program obeys "API usage rules" that specify what it means be good client an API. toolkit statically analyzes C determine violates given rules. has two unique aspects: does require programmer annotate source (invariants are inferred); minimizes noise (false error messages) through process known as "counterexample-driven refinement". exploits and extends results from analysis, model checking automated deduction. We have successfully...

10.1145/503272.503274 article EN 2002-01-01

Model checking has been widely successful in validating and debugging designs the hardware protocol domains. However, state-space explosion limits applicability of model tools, so checkers typically operate on abstractions systems. Recently, there significant interest applying to software. For infinite-state systems like software, abstraction is even more critical. Techniques for abstracting software are a prerequisite making reality. We present first algorithm automatically construct...

10.1145/2442776.2442783 article EN ACM SIGPLAN Notices 2012-03-18

10.5555/380921.380932 article EN International workshop on Model Checking Software 2001-05-02

Model checking has been widely successful in validating and debugging designs the hardware protocol domains. However, state-space explosion limits applicability of model tools, so checkers typically operate on abstractions systems.

10.1145/378795.378846 article EN Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation 2001-05-01

Bugs in kernel-level device drivers cause 85% of the system crashes Windows XP operating [44]. One sources these errors is complexity driver API itself: programmers must master a complex set rules about how to use order create that are good clients kernel. We have built static analysis engine finds usage C programs. The Static Driver Verifier tool (SDV) uses this find kernel driver. SDV includes models OS and environment driver, over sixty rules. intended be used by developers "out box."...

10.1145/1217935.1217943 article EN 2006-04-18

Probabilistic programs are usual functional or imperative with two added constructs: (1) the ability to draw values at random from distributions, and (2) condition of variables in a program via observations. Models diverse application areas such as computer vision, coding theory, cryptographic protocols, biology reliability analysis can be written probabilistic programs.

10.1145/2593882.2593900 article EN 2014-05-20

Large pre-trained language models such as GPT-3 [10], Codex [11], and Google's model [7] are now capable of generating code from natural specifications programmer intent. We view these developments with a mixture optimism caution. On the optimistic side, large have potential to improve productivity by providing an automated AI pair for every in world. cautionary since do not understand program semantics, they offer no guarantees about quality suggested code. In this paper, we present...

10.1145/3510003.3510203 article EN Proceedings of the 44th International Conference on Software Engineering 2022-05-21

There is significant room for improving users' experiences with model checking tools. An error trace produced by a checker can be lengthy and indicative of symptom an error. As result, users spend considerable time examining in order to understand the cause Moreover, even state-of-the-art checkers provide experience akin that provided parsers before syntactic recovery was invented: they report single per run. The user has fix run again find more traces.We present algorithm exploits existence...

10.1145/604131.604140 article EN 2003-01-15

We consider the problem if a given program satisfies specified safety property. Interesting programs have infinite state spaces, with inputs ranging over domains, and for these property checking is undecidable. Two broad approaches to are testing verification. Testing tries find executions which demonstrate violations of Verification construct formal proof shows that all satisfy works best when errors easy find, but it often difficult achieve sufficient coverage correct programs. On other...

10.1145/1181775.1181790 article EN 2006-11-05

Program analysis tools typically compute two types of information: (1) may information that is true all program executions and used to prove the absence bugs in program, (2) must some existence program. In this paper, we propose a new algorithm, dubbed SMASH, which computes both compositionally . At each procedure boundary, represented stored as summaries, respectively. Those summaries are computed demand driven manner possibly using opposite type. We have implemented SMASH predicate...

10.1145/1706299.1706307 article EN 2010-01-17

SLAM is a program-analysis engine used to check if clients of an API follow the API's stateful usage rules.

10.1145/1965724.1965743 article EN Communications of the ACM 2011-06-28

The last several years have seen a proliferation of static and runtime analysis tools for finding security violations that are caused by explicit information flow in programs. Much this interest has been the increase number vulnerabilities such as cross-site scripting SQL injection. In fact, these commonly found Web applications now outnumber buffer overruns common type-unsafe languages C C++. Tools checking require specification to operate. most cases task providing is delegated user....

10.1145/1542476.1542485 article EN 2009-06-15

We describe the design and implementation of P, a domain-specific language to write asynchronous event driven code. P allows programmer specify system as collection interacting state machines, which communicate with each other using events. unifies modeling programming into one activity for programmer. Not only can program be compiled executable code, but it also tested model checking techniques. environment, used "close" during testing, nondeterministic ghost machines. Ghost machines are...

10.1145/2491956.2462184 article EN 2013-06-11

Security-critical applications constantly face threats from exploits in lower computing layers such as the operating system, virtual machine monitors, or even attacks malicious administrators. To help protect application secrets attacks, there is increasing interest hardware implementations of primitives for trusted computing, Intel's Software Guard Extensions (SGX) instructions. These enable protection memory regions containing code and data, provide a root trust measurement, remote...

10.1145/2810103.2813608 article EN 2015-10-06

We propose computer-assisted techniques for helping with pedagogy in Algebra. In particular, given a proof problem p (of the form “Left-hand-side-term = Right-hand-side-term”), we show how to automatically generate problems that are similar p. believe such tool can be used by teachers making examinations where they need test students on what taught class, and generating practice tailored their specific needs. Our first insight is generalize syntactically query Q implicitly represents set of...

10.1609/aaai.v26i1.8341 article EN Proceedings of the AAAI Conference on Artificial Intelligence 2021-09-20

Abstraction and composition are the fundamental issues in making model checking viable for software. This paper proposes new techniques automating abstraction decomposition using source level type information provided by programmer. Our system includes two novel components to achieve this end: (1) a behavioral type-and-effect π-calculus, which extracts sound models as types, (2) an assume-guarantee proof rule carrying out compositional on types. Open simulation between CCS processes is used...

10.1145/503272.503278 article EN 2002-01-01
Coming Soon ...