VLDB 2026 Research / reviewers in the wild / expert
Vugranam C. Sreedhar
dblp:s/VugranamCSreedhar
· DBLP profile ↗
25ranked-venue papers
14as first author
0since 2021 · last 2020
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 17 · 11 first-authorSystems, architecture and hardware · 4Applied, interdisciplinary, general and emerging computing · 3 · 1 first-authorSecurity and privacy · 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
11 papers |
Program analysis · 33% Compilers and program optimization · 29% Programming languages and type systems · 15% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Parallel and multicore computing · 46% Processor architecture and microarchitecture · 30% Distributed systems · 23% | |
| Theoretical computer science
2 papers |
Algorithms and data structures · 54% Graph algorithms and graph theory · 46% |
Topics — the 25 heaviest of 29, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
static analysis |
0.1 | 3 | 2003 | Stack allocation and synchronization optimizations for Java using escape analysis · ACM Trans. Program. Lang. Syst. 2003 A New Framework for Elimination-Based Data Flow Analysis Using DJ Graphs · ACM Trans. Program. Lang. Syst. 1998 Incremental Computation of Dominator Trees · ACM Trans. Program. Lang. Syst. 1997 |
Distributed systems
concurrency |
0.1 | 1 | 2007 | Optimized lock assignment and allocation: a method for exploiting concurrency among critical sections · PPoPP 2007 |
Parallel and multicore computing › synchronization
fine-grain synchronization |
0.1 | 1 | 2007 | Synchronization state buffer: supporting efficient fine-grain synchronization on many-core architectures · ISCA 2007 |
Processor architecture and microarchitecture
many-core architecture |
0.1 | 1 | 2007 | Synchronization state buffer: supporting efficient fine-grain synchronization on many-core architectures · ISCA 2007 |
Parallel and multicore computing
synchronization |
0.1 | 1 | 2007 | Synchronization state buffer: supporting efficient fine-grain synchronization on many-core architectures · ISCA 2007 |
Program analysis › static analysis › pointer analysis
escape analysis |
0.1 | 2 | 2003 | Stack allocation and synchronization optimizations for Java using escape analysis · ACM Trans. Program. Lang. Syst. 2003 Escape Analysis for Java · OOPSLA 1999 |
Concurrent programming
lock elimination |
0.1 | 2 | 2003 | Stack allocation and synchronization optimizations for Java using escape analysis · ACM Trans. Program. Lang. Syst. 2003 Escape Analysis for Java · OOPSLA 1999 |
Compilers and program optimization › parallel program optimization
synchronization optimization |
0.0 | 1 | 2003 | Stack allocation and synchronization optimizations for Java using escape analysis · ACM Trans. Program. Lang. Syst. 2003 |
Program analysis
data flow analysis |
0.0 | 3 | 1998 | A New Framework for Elimination-Based Data Flow Analysis Using DJ Graphs · ACM Trans. Program. Lang. Syst. 1998 A New Framework for Exhaustive and Incremental Data Flow Analysis Using DJ Graphs · PLDI 1996 A Linear Time Algorithm for Placing phi-nodes · POPL 1995 |
Programming languages and type systems
language design |
0.0 | 1 | 2002 | Mixin Up components · ICSE 2002 |
Programming languages and type systems › inheritance
mixins |
0.0 | 1 | 2002 | Mixin Up components · ICSE 2002 |
Programming languages and type systems
type systems |
0.0 | 1 | 2002 | Mixin Up components · ICSE 2002 |
Requirements engineering and software design › component-based software
software components |
0.0 | 1 | 2001 | York: programming software components · ESEC / SIGSOFT FSE 2001 |
Compilers and program optimization
interprocedural optimization |
0.0 | 1 | 2000 | A framework for interprocedural optimization in the presence of dynamic class loading · PLDI 2000 |
Runtime systems and virtual machines › runtime memory management
stack allocation |
0.0 | 1 | 1999 | Escape Analysis for Java · OOPSLA 1999 |
Concurrent programming
synchronization |
0.0 | 1 | 1999 | Escape Analysis for Java · OOPSLA 1999 |
Program analysis › static analysis
incremental analysis |
0.0 | 1 | 1998 | A New Framework for Elimination-Based Data Flow Analysis Using DJ Graphs · ACM Trans. Program. Lang. Syst. 1998 |
Compilers and program optimization › compiler analysis
dominator trees |
0.0 | 1 | 1997 | Incremental Computation of Dominator Trees · ACM Trans. Program. Lang. Syst. 1997 |
Algorithms and data structures › dynamic algorithms
incremental algorithms |
0.0 | 1 | 1997 | Incremental Computation of Dominator Trees · ACM Trans. Program. Lang. Syst. 1997 |
Program analysis › data flow analysis
incremental data flow analysis |
0.0 | 1 | 1996 | A New Framework for Exhaustive and Incremental Data Flow Analysis Using DJ Graphs · PLDI 1996 |
Compilers and program optimization › intermediate representation › static single assignment form
phi-node placement |
0.0 | 1 | 1995 | A Linear Time Algorithm for Placing phi-nodes · POPL 1995 |
Compilers and program optimization › intermediate representation
static single assignment form |
0.0 | 1 | 1995 | A Linear Time Algorithm for Placing phi-nodes · POPL 1995 |
Runtime systems and virtual machines › managed runtime
java runtime |
0.0 | 1 | 2003 | Stack allocation and synchronization optimizations for Java using escape analysis · ACM Trans. Program. Lang. Syst. 2003 |
Requirements engineering and software design
software architecture |
0.0 | 1 | 2001 | York: programming software components · ESEC / SIGSOFT FSE 2001 |
Program analysis › static analysis › interprocedural analysis
whole-program analysis |
0.0 | 1 | 2000 | A framework for interprocedural optimization in the presence of dynamic class loading · PLDI 2000 |
Methods — techniques the papers use, named apart from their topics
lock assignment · 0.1lock allocation · 0.1detailed simulation · 0.1connection graph · 0.1interprocedural analysis · 0.0subtype relation · 0.0runtime invalidation · 0.0recompilation · 0.0data flow analysis · 0.0dominance frontier · 0.0DJ graph representation · 0.0tarjan's interval-finding algorithm · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Auto-Generation of Domain-Specific Systems: Cloud-Hosted DevOps for Business UsersabstractThe wide use of spreadsheet-based solutions for business processes illustrates the importance of giving business users simple mechanisms for specifying and managing their processes. However, spreadsheet-based solutions are hard to maintain, reuse, integrate, and scale. This paper describes an approach for supporting “DevOps for business users” that enables business-level users to manage the full lifecycle of a large class of cloud-hosted business processes. The approach builds on DevOps for software engineering, but removes software engineers from the loop. Unlike general-purpose “low code” business process management systems, the approach incorporates aspects of a processing domain (e.g., billing) to create a DevOps experience that business users can master easily. In the approach, business users follow an agile “specify-check-generate-deploy” methodology, enabling them to rapidly and iteratively generate and operationalize cloud-hosted processing systems, with little or no assistance from IT staff. We demonstrate and evaluate the approach using a system built for the billing application area, developed at IBM, which provides technology support and maintenance services for numerous clients, each with different billing needs and logic. The paper describes the system, requirements, empirical evaluation of key components, and lessons learned. Saurabh Sinha 0003, Tara Astigarraga, Richard Hull 0001, Nerla Jean-Louis, Vugranam C. Sreedhar, Lianxue Hu, Federico E. Carpi, Juan Ariel Brusco Cannata, William Loach |
CLOUD | 5 |
| 2018 | Service Management of Blockchain NetworksabstractBusiness interest in blockchain technology is increasing due the potential for change that it offers. Large scale adoption in enterprise IT environments brings about a need for service management and DevOps processes for blockchain deployments. Nodes in the network may fail or be taken down for maintenance requiring visibility across hybrid, traditional, cloud enabled and cloud native deployments. Service management is necessary to ease deployment woes for those looking to install code within their own data centers on-premises or on dedicated cloud servers and further to handle the life cycle of the deployments that includes security patches, critical updates, upgrades, change management and restarting services. In this paper, we provide a mechanism to optimally perform such operations with no disruption to the consensus and transactions for such emerging blockchain applications. Alexei A. Karve, Vugranam C. Sreedhar, Sai Zeng |
IEEE CLOUD | 3 |
| 2014 | Effort Analysis Using Collective Stochastic Model
Vugranam C. Sreedhar |
ICSOC | 1 |
| 2013 | A Framework for Cross Account Analysis
Vugranam C. Sreedhar |
ICSOC | 1 |
| 2011 | Analysis and performance results of computing betweenness centrality on IBM Cyclops64
Guangming Tan, Vugranam C. Sreedhar, Guang R. Gao |
J. Supercomput. | 2 |
| 2010 | A novel analysis space for pointer analysis and its application for bug finding
Marcio Buss, Daniel Brand, Vugranam C. Sreedhar, Stephen A. Edwards |
Sci. Comput. Program. | 3 |
| 2007 | Evidence-Based Analysis and Inferring Preconditions for Bug DetectionabstractAn important part of software maintenance is fixing software errors and bugs. Static analysis based tools can tremendously help and ease software maintenance. In order to gain user acceptance, a static analysis tool for detecting bugs has to minimize the incidence of false alarms. A common cause of false alarms is the uncertainty over which inputs into a program are considered legal. In this paper we introduce evidence-based analysis to address this problem. Evidence-based analysis allows one to infer legal preconditions over inputs, without having users to explicitly specify those preconditions. We have found that the approach drastically improves the usability of such static analysis tools. In this paper we report our experience with the analysis in an industrial deployment. Daniel Brand, Marcio Buss, Vugranam C. Sreedhar |
ICSM | 3 |
| 2007 | Synchronization state buffer: supporting efficient fine-grain synchronization on many-core architecturesabstractEfficient fine-grain synchronization is extremely important to effectively harness the computational power of many-core architectures. However, designing and implementing finegrain synchronization in such architectures presents several challenges, including issues of synchronization induced overhead, storage cost, scalability, and the level of granularity to which synchronization is applicable. This paper proposes the Synchronization State Buffer (SSB), a scalable architectural design for fine-grain synchronization that efficiently performs synchronizations between concurrent threads. The design of SSB is motivated by the following observation: at any instance during the parallel execution only a small fraction of memory locations are actively participating in synchronization. Based on this observation we present a fine-grain synchronization design that records and manages the states of frequently synchronized data using modest hardware support. We have implemented the SSB design in the context of the 160-core IBM Cyclops-64 architecture. Using detailed simulation, we present our experience for a set of benchmarks with different workload characteristics. Weirong Zhu, Vugranam C. Sreedhar, Ziang Hu, Guang R. Gao |
ISCA | 2 |
| 2007 | Optimized lock assignment and allocation: a method for exploiting concurrency among critical sectionsabstractNo abstract available. Vugranam C. Sreedhar, Weirong Zhu, Vivek Sarkar, Guang R. Gao |
PPoPP | 2 |
| 2006 | Data-centric security: role analysis and role typestatesabstractIn J2EE and .NET roles are assigned to methods using external configuration files, called the deployment descriptors. Assigning roles to methods, although conceptually simple, in practice it is quite complicated. For instance, in order for a deployer to assign a role r to a method m, the deployer must understand the set of roles R that are assigned to each method n that can be invoked directly or indirectly from m, and that r has to be consistently assigned with respect R. Understanding such role consistency is a non-trivial task. Also, in J2EE roles are defined with respect to method access and not data access. Therefore, in order to protect sensitive data, one has to encode data access control using method access control. This can lead to interesting and subtle access control problems when accessing sensitive data, including information leakage through data flow from one method to another.In this paper we focus on data-centric security by presenting two concepts: Role Analysis: We present a simple interprocedural static analysis for detecting security problems when objects are accessed by multiple methods that do not have compatible or consistent assignment of roles. We then introduce the notion of an object escaping a role and present a simple interprocedural static analysis for computing the set of objects that may escape a role. Consistency-Based Security and Role Typestates: We extend J2EE method-based role assignment to consistency-based role assignment. In this paper we will focus on assigning roles to typestates rather than methods. Vugranam C. Sreedhar |
SACMAT | 1 |
| 2005 | Interprocedural Analysis for Privileged Code Placement and Tainted Variable Detection
Marco Pistoia, Robert J. Flynn, Larry Koved, Vugranam C. Sreedhar |
ECOOP | 4 |
| 2005 | From statecharts to ESP: programming with events, states and predicates for embedded systemsabstractStatecharts are probably the most popular mechanism for behavior modeling of embedded system components. Modeling a component involves using a mainstream language for features that statecharts cannot express: detailed behavior of conditions and actions, object-orientation and distributed computing features. Debugging is done at the level of the generated native code. Rather than treating statecharts as a separate programming model from the native programming model, we extend a (Java-like) language with support for key concepts of statecharts: (1) explicit states, (2) asynchronous events, and (3) conditional execution. This paper presents ESP*, a language that supports statecharts and a set of other advanced programming concepts to make programming embedded systems easier. The paper also shows how to translate statecharts to ESP*. Vugranam C. Sreedhar, Maria-Cristina V. Marinescu |
EMSOFT | 1 |
| 2005 | Instrumenting annotated programsabstractInstrumentation is commonly used to track application behavior: to collect program profiles; to monitor component health and performance; to aid in component testing; and more. Program annotation enables developers and tools to pass extra information to later stages of software development and execution. For example, the .NET runtime relies on annotations for a significant chunk of the services it provides. Both mechanisms are evolving into important parts of software development %, in the context of modern platforms such as Java and .NET.Instrumentation tools are generally not aware of the semantics of information passed via the annotation mechanism. This is especially true for post-compiler, e.g., run-time, instrumentation. The problem is that instrumentation may affect the correctness of annotations, rendering them invalid or misleading, and producing unforeseen side-effects during program execution. This problem has not been addressed so far.In this paper, we show the subtle interaction that takes place between annotations and instrumentation using several real-life examples. Many annotations are intended to provide information for the runtime; the virtual environment is a prominent annotation consumer, and must be aware of this conflict. It may also be required to provide runtime support to other annotation consumers. We propose an annotation taxonomy and show how instrumentation affects various annotations that were used in research and in industrial applications. We show how the annotations can expose enough information about themselves to prevent the instrumentation from accidentally corrupting the annotations. We demonstrate this approach on our annotations benchmark. Marina Biberstein, Vugranam C. Sreedhar, Bilha Mendelson, Daniel Citron, Alberto Giammaria |
VEE | 2 |
| 2003 | Stack allocation and synchronization optimizations for Java using escape analysisabstractThis article presents an escape analysis framework for Java to determine (1) if an object is not reachable after its method of creation returns, allowing the object to be allocated on the stack, and (2) if an object is reachable only from a single thread during its lifetime, allowing unnecessary synchronization operations on that object to be removed. We introduce a new program abstraction for escape analysis, the connection graph , that is used to establish reachability relationships between objects and object references. We show that the connection graph can be succinctly summarized for each method such that the same summary information may be used in different calling contexts without introducing imprecision into the analysis. We present an interprocedural algorithm that uses the above property to efficiently compute the connection graph and identify the nonescaping objects for methods and threads. The experimental results, from a prototype implementation of our framework in the IBM High Performance Compiler for Java, are very promising. The percentage of objects that may be allocated on the stack exceeds 70% of all dynamically created objects in the user code in three out of the ten benchmarks (with a median of 19%); 11% to 92% of all mutex lock operations are eliminated in those 10 programs (with a median of 51%), and the overall execution time reduction ranges from 2% to 23% (with a median of 7%) on a 333-MHz PowerPC workstation with 512 MB memory. Jong-Deok Choi, Manish Gupta 0002, Mauricio J. Serrano, Vugranam C. Sreedhar, Samuel P. Midkiff |
ACM Trans. Program. Lang. Syst. | 4 |
| 2002 | Mixin Up componentsabstractRecently we proposed a language called ACOEL (A Component-Oriented Extension Language) for abstracting and composing software components. Components in ACOEL are black-box components, and each component consists of (1) an internal implementation containing classes, methods, and fields that is hidden to the external world, and (2) an external contract consisting of a set of typed input and output ports. Components in ACOEL interact with each other only via these ports. In this paper we extend ACOEL in two directions: (1) use mixins to customize the services provided by a component without exposing its internal implementation, (2) add support for virtual types and sub-type relation among components. We will show how mixins and virtual types together allows us to build adaptable applications based on black-box component principles. Vugranam C. Sreedhar |
ICSE | 1 |
| 2001 | York: programming software componentsabstractNo abstract available. Vugranam C. Sreedhar |
ESEC / SIGSOFT FSE | 1 |
| 2000 | A framework for interprocedural optimization in the presence of dynamic class loadingabstractDynamic class loading during program execution in the Java Programming Language is an impediment for generating code that is as efficient as code generated using static whole-program analysis and optimization. Whole-program analysis and optimization is possible for languages, such as C++, that do not allow new classes and/or methods to be loaded during program execution. One solution for performing whole-program analysis and avoiding incorrect execution after a new class is loaded is to invalidate and recompile affected methods. Runtime invalidation and recompilation mechanisms can be expensive in both space and time, and, therefore, generally restrict optimization. Vugranam C. Sreedhar, Michael G. Burke, Jong-Deok Choi |
PLDI | 1 |
| 1999 | Escape Analysis for JavaabstractThis paper presents a simple and efficient data flow algorithm for escape analysis of objects in Java programs to determine (i) if an object can be allocated on the stack; (ii) if an object is accessed only by a single thread during its lifetime, so that synchronization operations on that object can be removed. We introduce a new program abstraction for escape analysis, the connection graph, that is used to establish reachability relationships between objects and object references. We show that the connection graph can be summarized for each method such that the same summary information may be used effectively in different calling contexts. We present an interprocedural algorithm that uses the above property to efficiently compute the connection graph and identify the non-escaping objects for methods and threads. The experimental results, from a prototype implementation of our framework in the IBM High Performance Compiler for Java, are very promising. The percentage of objects that may be allocated on the stack exceeds 70% of all dynamically created objects in three out of the ten benchmarks (with a median of 19%), 11% to 92% of all lock operations are eliminated in those ten programs (with a median of 51%), and the overall execution time reduction ranges from 2% to 23% (with a median of 7%) on a 333 MHz PowerPC workstation with 128 MB memory. Jong-Deok Choi, Manish Gupta 0002, Mauricio J. Serrano, Vugranam C. Sreedhar, Samuel P. Midkiff |
OOPSLA | 4 |
| 1999 | Translating Out of Static Single Assignment Form
Vugranam C. Sreedhar, Roy Dz-Ching Ju, David M. Gillies, Vatsa Santhanam |
SAS | 1 |
| 1998 | A New Framework for Elimination-Based Data Flow Analysis Using DJ GraphsabstractIn this article, we present a new framework for elimination-based exhaustive and incremental data flow analysis using the DJ graph representation of a program.Unlike previous approaches to elimination-based incremental data flow analysis, our approach can handle arbitrary structural and nonstructural changes to program flowgraphs, including irreducibility.We show how our approach is related to dominance frontiers, and we exploit this relationship to establish the complexity of our exhaustive analysis and to aid the design of our incremental analysis. Vugranam C. Sreedhar, Guang R. Gao, Yong-Fong Lee |
ACM Trans. Program. Lang. Syst. | 1 |
| 1997 | Incremental Computation of Dominator TreesabstractIn this article, we present a new algorithm for incrementally maintaining the dominator tree of an arbitrary flowgraph.Previous work most relevant to this article includes only the Carroll-Ryder algorithm and the Ramalingam-Reps algorithm.Both these methods are restricted to reducible flowgraphs.By contrast, our approach can handle irreducible as well as reducible flowgraphs.For the case where an edge is inserted, our incremental algorithm is also faster than previous incremental algorithms in the worst case.For the deletion case, our algorithm has a quadratic time complexity in the worst case. Vugranam C. Sreedhar, Guang R. Gao, Yong-Fong Lee |
ACM Trans. Program. Lang. Syst. | 1 |
| 1996 | A New Framework for Exhaustive and Incremental Data Flow Analysis Using DJ GraphsabstractWe present a new elimination-based framework for exhaustive and incremental data flow analysis using the DJ graph representation of a program. Unlike the previous approaches to elimination-based incremental data flow analysis, our approach can handle arbitrary non-structural and structural changes to program flowgraphs, including those causing irreducibility. We show how our approach is related to (iterated) dominance frontiers, and exploit this relationship to establish the complexity of our exhaustive analysis and to aid the design of our incremental analysis. Vugranam C. Sreedhar, Guang R. Gao, Yong-Fong Lee |
PLDI | 1 |
| 1996 | Identifying Loops Using DJ GraphsabstractLoop identification is a necessary step in loop transformations for high-performance architectures. One classical technique for detecting loops is Tarjan's interval-finding algorithm. The intervals identified by Tarjan's method are single-entry, strongly connected subgraphs that closely reflect a program's loop structure. We present a simple algorithm for identifying both reducible and irreducible loops using DJ graphs. Our method is a generalization of Tarjan's method, as it identifies nested intervals (or loops) even in the presence of irreducibility. Vugranam C. Sreedhar, Guang R. Gao, Yong-Fong Lee |
ACM Trans. Program. Lang. Syst. | 1 |
| 1995 | A Linear Time Algorithm for Placing phi-nodesabstractDataflow analysis framework based on Static Single Assignment (SSA) form and Sparse Evaluation Graphs (SEGs) demand fast computation of program points where data flow information must be merged, the so-called φ-nodes. In this paper, we present a surprisingly simple algorithm for computing φ-nodes for arbitrary flowgraphs (reducible or irreducible) that runs in linear time. We employ a novel program representation—the DJ graph—by augmenting the dominator tree of a flowgraph with edges which may lead to a potential “merge” of dataflow information. In searching for φ-nodes we never visit an edge in the DJ-graph more than once by guiding the search of nodes by their levels in the dominator tree. Vugranam C. Sreedhar, Guang R. Gao |
POPL | 1 |
| 1993 | Capturing Strong Reduction in Director String Calculus
Vugranam C. Sreedhar, Kazem Taghva |
Theor. Comput. Sci. | 1 |