VLDB 2026 Research / reviewers in the wild / expert
Avik Chaudhuri
dblp:89/1643
· DBLP profile ↗
15ranked-venue papers
8as first author
0since 2021 · last 2019
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 3 first-authorSecurity and privacy · 5 · 4 first-authorComputer networks · 1 · 1 first-authorTheory of computation · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
6 papers |
Programming languages and type systems · 72% Program analysis · 28% | |
| Network and information security
4 papers |
Systems and software security · 33% Authentication and access control · 29% Web and mobile security · 24% | |
| Theoretical computer science
2 papers |
Logic in computer science · 50% Automated reasoning and model checking · 50% |
Topics — the 20 heaviest of 21, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems
type systems |
0.4 | 2 | 2017 | Fast and precise type checking for JavaScript · Proc. ACM Program. Lang. 2017 The ins and outs of gradual type inference · POPL 2012 |
Programming languages and type systems
type inference |
0.4 | 2 | 2017 | Fast and precise type checking for JavaScript · Proc. ACM Program. Lang. 2017 Dynamic inference of static types for ruby · POPL 2011 |
Program analysis
static analysis |
0.4 | 2 | 2017 | Fast and precise type checking for JavaScript · Proc. ACM Program. Lang. 2017 Static Typing for Ruby on Rails · ASE 2009 |
Programming languages and type systems
type checking |
0.3 | 1 | 2017 | Fast and precise type checking for JavaScript · Proc. ACM Program. Lang. 2017 |
Programming languages and type systems › type systems
gradual typing |
0.1 | 1 | 2012 | The ins and outs of gradual type inference · POPL 2012 |
Web and mobile security
web application security |
0.1 | 2 | 2010 | Symbolic security analysis of ruby-on-rails web applications · CCS 2010 Static Typing for Ruby on Rails · ASE 2009 |
Programming languages and type systems › type inference
dynamic type inference |
0.1 | 1 | 2011 | Dynamic inference of static types for ruby · POPL 2011 |
Systems and software security
vulnerability discovery |
0.1 | 1 | 2010 | Symbolic security analysis of ruby-on-rails web applications · CCS 2010 |
Programming languages and type systems › type systems
static typing |
0.1 | 1 | 2009 | Static Typing for Ruby on Rails · ASE 2009 |
Program analysis › type analysis
type error detection |
0.1 | 1 | 2009 | Static Typing for Ruby on Rails · ASE 2009 |
Authentication and access control
access control |
0.1 | 1 | 2008 | EON: modeling and analyzing dynamic access control systems with logic programs · CCS 2008 |
Authentication and access control › access control
dynamic access control |
0.1 | 1 | 2008 | EON: modeling and analyzing dynamic access control systems with logic programs · CCS 2008 |
Cryptographic protocols and secure computation › secure data sharing
secure file sharing |
0.1 | 1 | 2008 | Automated Formal Analysis of a Protocol for Secure File Sharing on Untrusted Storage · SP 2008 |
Systems and software security › secure storage
untrusted storage |
0.1 | 1 | 2008 | Automated Formal Analysis of a Protocol for Secure File Sharing on Untrusted Storage · SP 2008 |
Logic in computer science › logic programming
datalog |
0.1 | 1 | 2008 | EON: modeling and analyzing dynamic access control systems with logic programs · CCS 2008 |
Logic in computer science
logic programming |
0.1 | 1 | 2008 | EON: modeling and analyzing dynamic access control systems with logic programs · CCS 2008 |
Automated reasoning and model checking
protocol verification |
0.1 | 1 | 2008 | Automated Formal Analysis of a Protocol for Secure File Sharing on Untrusted Storage · SP 2008 |
Automated reasoning and model checking › protocol verification
proverif |
0.1 | 1 | 2008 | Automated Formal Analysis of a Protocol for Secure File Sharing on Untrusted Storage · SP 2008 |
Program analysis
symbolic execution |
0.0 | 1 | 2010 | Symbolic security analysis of ruby-on-rails web applications · CCS 2010 |
Storage systems
secure storage |
0.0 | 1 | 2008 | Automated Formal Analysis of a Protocol for Secure File Sharing on Untrusted Storage · SP 2008 |
Methods — techniques the papers use, named apart from their topics
type inference · 0.4parallelization · 0.3incrementalization · 0.3query satisfiability · 0.2proverif · 0.2formal verification · 0.2datalog · 0.2symbolic execution · 0.2object invariants · 0.2static type inference · 0.2program translation · 0.2assertions · 0.1assertion · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2019 | Optimizing and evaluating transient gradual typingabstractGradual typing enables programmers to combine static and dynamic typing in the same language. However, ensuring sound interaction between the static and dynamic parts can incur runtime cost. In this paper, we analyze the performance of the transient design for gradual typing in Reticulated Python, a gradually typed variant of Python. This approach inserts lightweight checks throughout a program rather than installing proxies on higher order values. We show that, when using CPython as a host, performance decreases as programs evolve from dynamic to static types, up to a 6x slowdown compared to equivalent Python programs. Michael M. Vitousek, Jeremy G. Siek, Avik Chaudhuri |
DLS | 3 |
| 2017 | Fast and precise type checking for JavaScriptabstractIn this paper we present the design and implementation of Flow, a fast and precise type checker for JavaScript that is used by thousands of developers on millions of lines of code at Facebook every day. Flow uses sophisticated type inference to understand common JavaScript idioms precisely. This helps it find non-trivial bugs in code and provide code intelligence to editors without requiring significant rewriting or annotations from the developer. We formalize an important fragment of Flow's analysis and prove its soundness. Furthermore, Flow uses aggressive parallelization and incrementalization to deliver near-instantaneous response times. This helps it avoid introducing any latency in the usual edit-refresh cycle of rapid JavaScript development. We describe the algorithms and systems infrastructure that we built to scale Flow's analysis. Avik Chaudhuri, Panagiotis Vekris, Sam Goldman, Marshall Roch, Gabriel Levi |
Proc. ACM Program. Lang. | 1 |
| 2012 | Types and Access Controls for Cross-Domain Security in Flash
Aseem Rastogi, Avik Chaudhuri, Rob Johnson 0001 |
APLAS | 2 |
| 2012 | The ins and outs of gradual type inferenceabstractGradual typing lets programmers evolve their dynamically typed programs by gradually adding explicit type annotations, which confer benefits like improved performance and fewer run-time failures. Aseem Rastogi, Avik Chaudhuri, Basil Hosmer |
POPL | 2 |
| 2011 | The impact of optional type information on jit compilation of dynamically typed languagesabstractOptionally typed languages enable direct performance comparisons between untyped and type annotated source code. We present a comprehensive performance evaluation of two different JIT compilers in the context of ActionScript, a production-quality optionally typed language. One JIT compiler is optimized for quick compilation rather than JIT compiled code performance. The second JIT compiler is a more aggressively optimizing compiler, performing both high-level and low-level optimizations. Mason Chang, Bernd Mathiske, Edwin W. Smith, Avik Chaudhuri, Andreas Gal, Michael Bebenita, Christian Wimmer, Michael Franz |
DLS | 4 |
| 2011 | Dynamic inference of static types for rubyabstractThere have been several efforts to bring static type inference to object-oriented dynamic languages such as Ruby, Python, and Perl. In our experience, however, such type inference systems are extremely difficult to develop, because dynamic languages are typically complex, poorly specified, and include features, such as eval and reflection, that are hard to analyze. Jong-hoon (David) An, Avik Chaudhuri, Jeffrey S. Foster, Michael Hicks 0001 |
POPL | 2 |
| 2010 | Symbolic security analysis of ruby-on-rails web applicationsabstractMany of today's web applications are built on frameworks that include sophisticated defenses against malicious adversaries. However, mistakes in the way developers deploy those defenses could leave applications open to attack. To address this issue, we introduce Rubyx, a symbolic executor that we use to analyze Ruby-on-Rails web applications for security vulnerabilities. Rubyx specifications can easily be adapted to variety of properties, since they are built from general assertions, assumptions, and object invariants. We show how to write Ruby specifications to detect susceptibility to cross-site scripting and cross-site request forgery, insufficient authentication, leaks of secret information, insufficient access control, as well as application-specific security properties. We used Rubyx to check seven web applications from various sources against out specifications. We found many vulnerabilities, and each application was subject to at least one critical attack. Encouragingly, we also found that it was relatively easy to fix most vulnerabilities, and that Rubyx showed the absence of attacks after our fixes. Our results suggest that Rubyx is a promising new way to discover security vulnerabilities in Ruby-on-Rails web applications. Avik Chaudhuri, Jeffrey S. Foster |
CCS | 1 |
| 2009 | PCAL: Language Support for Proof-Carrying Authorization Systems
Avik Chaudhuri, Deepak Garg 0001 |
ESORICS | 1 |
| 2009 | A concurrent ML library in concurrent HaskellabstractIn Concurrent ML, synchronization abstractions can be defined and passed as values, much like functions in ML. This mechanism admits a powerful, modular style of concurrent programming, called higher-order concurrent programming. Unfortunately, it is not clear whether this style of programming is possible in languages such as Concurrent Haskell, that support only first-order message passing. Indeed, the implementation of synchronization abstractions in Concurrent ML relies on fairly low-level, language-specific details. In this paper we show, constructively, that synchronization abstractions can be supported in a language that supports only first-order message passing. Specifically, we implement a library that makes Concurrent ML-style programming possible in Concurrent Haskell. We begin with a core, formal implementation of synchronization abstractions in the π-calculus. Then, we extend this implementation to encode all of Concurrent ML's concurrency primitives (and more!) in Concurrent Haskell. Our implementation is surprisingly efficient, even without possible optimizations. In several small, informal experiments, our library seems to outperform OCaml's standard library of Concurrent ML-style primitives. At the heart of our implementation is a new distributed synchronization protocol that we prove correct. Unlike several previous translations of synchronization abstractions in concurrent languages, we remain faithful to the standard semantics for Concurrent ML's concurrency primitives. For example, we retain the symmetry of choose, which can express selective communication. As a corollary, we establish that implementing selective communication on distributed machines is no harder than implementing first-order message passing on such machines. Avik Chaudhuri |
ICFP | 1 |
| 2009 | Static Typing for Ruby on RailsabstractRuby on Rails (or just "Rails") is a popular web application framework built on top of Ruby, an object-oriented scripting language. While Ruby's powerful features such as dynamic typing help make Rails development extremely lightweight, this comes at a cost. Dynamic typing in particular means that type errors in Rails applications remain latent until run time, making debugging and maintenance harder. In this paper, we describe DRails, a novel tool that brings static typing to Rails applications to detect a range of run time errors. DRails works by translating Rails programs into pure Ruby code in which Rails's numerous implicit conventions are made explicit. We then discover type errors by applying DRuby, a previously developed static type inference system, to the translated program. We ran DRails on a suite of applications and found that it was able to detect several previously unknown errors. Jong-hoon (David) An, Avik Chaudhuri, Jeffrey S. Foster |
ASE | 2 |
| 2008 | EON: modeling and analyzing dynamic access control systems with logic programsabstractWe present EON, a logic-programming language and tool that can be used to model and analyze dynamic access control systems. Our language extends Datalog with some carefully designed constructs that allow the introduction and transformation of new relations. For example, these constructs can model the creation of processes and objects, and the modification of their security labels at runtime. The information-flow properties of such systems can be analyzed by asking queries in this language. We show that query evaluation in EON can be reduced to decidable query satisfiability in a fragment of Datalog, and further, under some restrictions, to efficient query evaluation in Datalog. Avik Chaudhuri, Prasad Naldurg, Sriram K. Rajamani, G. Ramalingam, Lakshmisubrahmanyam Velaga |
CCS | 1 |
| 2008 | Automated Formal Analysis of a Protocol for Secure File Sharing on Untrusted StorageabstractWe study formal security properties of a state-of-the-art protocol for secure file sharing on untrusted storage, in the automatic protocol verifier ProVerif. As far as we know, this is the first automated formal analysis of a secure storage protocol. The protocol, designed as the basis for the file system Plutus, features a number of interesting schemes like lazy revocation and key rotation. These schemes improve the protocol's performance, but complicate its security properties. Our analysis clarifies several ambiguities in the design and reveals some unknown attacks on the protocol. We propose corrections, and prove precise security guarantees for the corrected protocol. Bruno Blanchet, Avik Chaudhuri |
SP | 2 |
| 2006 | Dynamic Access Control in a Concurrent Object Calculus
Avik Chaudhuri |
CONCUR | 1 |
| 2006 | Secrecy by Typing and File-Access ControlabstractSecrecy properties can he guaranteed through a combination of static and dynamic checks. The static checks may include the application of special type systems with notions of secrecy. The dynamic checks can be of many different kinds; in practice, the most important are access-control checks, often ones based on ACLs (access-control lists). In this paper, we explore the interplay of static and dynamic checks in the setting of a file system. For this purpose, we study a pi calculus with file-system constructs. The calculus supports both access-control checks and a form of static scoping that limits the knowledge of terms - including file names and contents - to groups of clients. We design a system with secrecy types for the calculus: using this system, we can prove secrecy properties by static typing of programs in the presence of file-system access-control checks. Avik Chaudhuri, Martín Abadi |
CSFW | 1 |
| 2006 | Formal Analysis of Dynamic, Distributed File-System Access Controls
Avik Chaudhuri, Martín Abadi |
FORTE | 1 |