EDBT 2026 Demo / reviewers in the wild / expert
Ravichandhran Madhavan
dblp:91/10109
· DBLP profile ↗
6ranked-venue papers
6as first author
0since 2021 · last 2017
0000-0003-0227-266XORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 6 · 6 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
3 papers |
Program verification · 52% Program analysis · 31% Programming languages and type systems · 17% | |
| Theoretical computer science
1 paper |
Automata and formal languages · 100% |
Topics — the 15 heaviest of 16, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program verification
contract verification |
0.3 | 1 | 2017 | Contract-based resource verification for higher-order functions with memoization · POPL 2017 |
Program verification › quantitative verification
resource bound verification |
0.3 | 1 | 2017 | Contract-based resource verification for higher-order functions with memoization · POPL 2017 |
Program verification › quantitative verification
resource verification |
0.3 | 1 | 2017 | Contract-based resource verification for higher-order functions with memoization · POPL 2017 |
Programming languages and type systems
functional programming |
0.3 | 2 | 2017 | Symbolic Resource Bound Inference for Functional Programs · CAV 2014 Contract-based resource verification for higher-order functions with memoization · POPL 2017 |
Automata and formal languages › formal grammars
context-free grammar |
0.2 | 1 | 2015 | Automating grammar comparison · OOPSLA 2015 |
Automata and formal languages › grammar formalisms
formal grammar comparison |
0.2 | 1 | 2015 | Automating grammar comparison · OOPSLA 2015 |
Automata and formal languages › equivalence problem
grammar equivalence |
0.2 | 1 | 2015 | Automating grammar comparison · OOPSLA 2015 |
Program analysis
resource analysis |
0.2 | 1 | 2014 | Symbolic Resource Bound Inference for Functional Programs · CAV 2014 |
Program analysis › resource analysis
resource bound inference |
0.2 | 1 | 2014 | Symbolic Resource Bound Inference for Functional Programs · CAV 2014 |
Program analysis
data flow analysis |
0.1 | 1 | 2011 | Null dereference verification via over-approximated weakest pre-conditions analysis · OOPSLA 2011 |
Program analysis
static analysis |
0.1 | 1 | 2011 | Null dereference verification via over-approximated weakest pre-conditions analysis · OOPSLA 2011 |
Program verification › predicate transformers
weakest precondition |
0.1 | 1 | 2011 | Null dereference verification via over-approximated weakest pre-conditions analysis · OOPSLA 2011 |
Programming languages and type systems
lazy evaluation |
0.1 | 1 | 2017 | Contract-based resource verification for higher-order functions with memoization · POPL 2017 |
Computing education › programming education
programming language learning |
0.1 | 1 | 2015 | Automating grammar comparison · OOPSLA 2015 |
Program analysis › static analysis
pointer analysis |
0.0 | 1 | 2011 | Null dereference verification via over-approximated weakest pre-conditions analysis · OOPSLA 2011 |
Methods — techniques the papers use, named apart from their topics
word and parse tree enumeration · 0.4counterexample generation · 0.4assume-guarantee reasoning · 0.3SMT solving · 0.3path sensitivity · 0.1over-approximated weakest preconditions · 0.1abstract interpretation · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2017 | Contract-based resource verification for higher-order functions with memoizationabstractWe present a new approach for specifying and verifying resource utilization of higher-order functional programs that use lazy evaluation and memoization. In our approach, users can specify the desired resource bound as templates with numerical holes e.g. as steps ≤ ? * size(l) + ? in the contracts of functions. They can also express invariants necessary for establishing the bounds that may depend on the state of memoization. Our approach operates in two phases: first generating an instrumented first-order program that accurately models the higher-order control flow and the effects of memoization on resources using sets, algebraic datatypes and mutual recursion, and then verifying the contracts of the first-order program by producing verification conditions of the form ∃ ∀ using an extended assume/guarantee reasoning. We use our approach to verify precise bounds on resources such as evaluation steps and number of heap-allocated objects on 17 challenging data structures and algorithms. Our benchmarks, comprising of 5K lines of functional Scala code, include lazy mergesort, Okasaki's real-time queue and deque data structures that rely on aliasing of references to first-class functions; lazy data structures based on numerical representations such as the conqueue data structure of Scala's data-parallel library, cyclic streams, as well as dynamic programming algorithms such as knapsack and Viterbi. Our evaluations show that when averaged over all benchmarks the actual runtime resource consumption is 80% of the value inferred by our tool when estimating the number of evaluation steps, and is 88% for the number of heap-allocated objects. Ravichandhran Madhavan, Sumith Kulal, Viktor Kuncak |
POPL | 1 |
| 2015 | Automating grammar comparisonabstractWe consider from a practical perspective the problem of checking equivalence of context-free grammars. We present techniques for proving equivalence, as well as techniques for finding counter-examples that establish non-equivalence. Among the key building blocks of our approach is a novel algorithm for efficiently enumerating and sampling words and parse trees from arbitrary context-free grammars; the algorithm supports polynomial time random access to words belonging to the grammar. Furthermore, we propose an algorithm for proving equivalence of context-free grammars that is complete for LL grammars, yet can be invoked on any context-free grammar, including ambiguous grammars. Our techniques successfully find discrepancies between different syntax specifications of several real-world languages, and are capable of detecting fine-grained incremental modifications performed on grammars. Our evaluation shows that our tool improves significantly on the existing available state of the art tools. In addition, we used these algorithms to develop an online tutoring system for grammars that we then used in an undergraduate course on computer language processing. On questions involving grammar constructions, our system was able to automatically evaluate the correctness of 95% of the solutions submitted by students: it disproved 74% of cases and proved 21% of them. Ravichandhran Madhavan, Mikaël Mayer, Sumit Gulwani, Viktor Kuncak |
OOPSLA | 1 |
| 2014 | Symbolic Resource Bound Inference for Functional Programs
Ravichandhran Madhavan, Viktor Kuncak |
CAV | 1 |
| 2012 | Modular Heap Analysis for Higher-Order Programs
Ravichandhran Madhavan, G. Ramalingam, Kapil Vaswani |
SAS | 1 |
| 2011 | Null dereference verification via over-approximated weakest pre-conditions analysisabstractNull dereferences are a bane of programming in languages such as Java. In this paper we propose a sound, demand-driven, inter-procedurally context-sensitive dataflow analysis technique to verify a given dereference as safe or potentially unsafe. Our analysis uses an abstract lattice of formulas to find a pre-condition at the entry of the program such that a null-dereference can occur only if the initial state of the program satisfies this pre-condition. We use a simplified domain of formulas, abstracting out integer arithmetic, as well as unbounded access paths due to recursive data structures. For the sake of precision we model aliasing relationships explicitly in our abstract lattice, enable strong updates, and use a limited notion of path sensitivity. For the sake of scalability we prune formulas continually as they get propagated, reducing to true conjuncts that are less likely to be useful in validating or invalidating the formula. We have implemented our approach, and present an evaluation of it on a set of ten real Java programs. Our results show that the set of design features we have incorporated enable the analysis to (a) explore long, inter-procedural paths to verify each dereference, with (b) reasonable accuracy, and (c) very quick response time per dereference, making it suitable for use in desktop development environments. Ravichandhran Madhavan, Raghavan Komondoor |
OOPSLA | 1 |
| 2011 | Purity Analysis: An Abstract Interpretation Formulation
Ravichandhran Madhavan, G. Ramalingam, Kapil Vaswani |
SAS | 1 |