Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Amitabha Sanyal

dblp:56/4658 · DBLP profile ↗
← Back
14ranked-venue papers
1as 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 · 11Theory of computation · 2 · 1 first-authorArtificial intelligence and machine learning · 1Graphics, computer vision, multimedia, augmented reality and games · 1

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
2 papers
Program synthesis and code generation · 54% Program analysis · 35% Runtime systems and virtual machines · 12%
Artificial intelligence
1 paper
Machine translation · 100%

Topics — the 5 heaviest of 6, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program synthesis and code generation
programming by example
0.312018
Synthesis of Programs from Multimodal Datasets · AAAI 2018
Program analysis
data flow analysis
0.112007
Heap reference analysis using access graphs · ACM Trans. Program. Lang. Syst. 2007
Runtime systems and virtual machines
garbage collection
0.112007
Heap reference analysis using access graphs · ACM Trans. Program. Lang. Syst. 2007
Program analysis
heap analysis
0.112007
Heap reference analysis using access graphs · ACM Trans. Program. Lang. Syst. 2007
Program analysis › data flow analysis
liveness analysis
0.112007
Heap reference analysis using access graphs · ACM Trans. Program. Lang. Syst. 2007

Methods — techniques the papers use, named apart from their topics

least general generalization · 0.7learning-to-rank · 0.3learning to rank · 0.3data flow analysis · 0.1access graphs · 0.1
YearPublicationVenuePosition
2020 Garbage collection using a finite liveness domain
abstract
Functional languages manage heap data through garbage collection. Since static analysis of heap data is difficult, garbage collectors conservatively approximate the liveness of heap objects by reachability i.e. every object that is reachable from the root set is considered live. Consequently, a large amount of memory that is reachable but not used further during execution is left uncollected by the collector.
Aman Bansal, Saksham Goel, Preey Shah, Amitabha Sanyal, Prasanna Kumar
ISMM4
2019 A static slicing method for functional programs and its incremental version
abstract
An effective static slicing technique for functional programs must have two features. Its handling of function calls must be context sensitive without being inefficient, and, because of the widespread use of algebraic datatypes, it must take into account structure transmitted dependences. It has been shown that any analysis that combines these two characteristics is undecidable, and existing slicing methods drop one or the other. We propose a slicing method that only weakens (and not entirely drop) the requirement of context-sensitivity and that too for some and not all programs.
Prasanna Kumar K., Amitabha Sanyal, Amey Karkare, Saswat Padhi
CC2
2018 Synthesis of Programs from Multimodal Datasets
abstract
We describe MultiSynth, a framework for synthesizing domain-specific programs from a multimodal dataset of examples. Given a domain-specific language (DSL), a dataset is multimodal if there is no single program in the DSL that generalizes over all the examples. Further, even if the examples in the dataset were generalized in terms of a set of programs, the domains of these programs may not be disjoint, thereby leading to ambiguity in synthesis. MultiSynth is a framework that incorporates concepts of synthesizing programs with minimum generality, while addressing the need of accurate prediction. We show how these can be achieved through (i) transformation driven partitioning of the dataset, (ii) least general generalization, for a generalized specification of the input and the output, and (iii) learning to rank, for estimating feature weights in order to map an input to the most appropriate mode in case of ambiguity. We show the effectiveness of our framework in two domains: in the first case, we extend an existing approach for synthesizing programs for XML tree transformations to ambiguous multimodal datasets. In the second case, MultiSynth is used to preorder words for machine translation, by learning permutations of productions in the parse trees of the source side sentences. Our evaluations reflect the effectiveness of our approach.
Shantanu Thakoor, Simoni Shah, Ganesh Ramakrishnan, Amitabha Sanyal
AAAI4
2018 Property Checking Array Programs Using Loop Shrinking
Shrawan Kumar 0001, Amitabha Sanyal, R. Venkatesh 0001, Punit Shah
TACAS (1)2
2016 Liveness-based garbage collection for lazy languages
abstract
We consider the problem of reducing the memory required to run lazy first-order functional programs. Our approach is to analyze programs for liveness of heap-allocated data. The result of the analysis is used to preserve only live data—a subset of reachable data—during garbage collection. The result is an increase in the garbage reclaimed and a reduction in the peak memory requirement of programs. Whereas this technique has already been shown to yield benefits for eager first-order languages, the lack of a statically determinable execution order and the presence of closures pose new challenges for lazy languages. These require changes both in the liveness analysis itself and in the design of the garbage collector. To show the effectiveness of our method, we implemented a copying collector that uses the results of the liveness analysis to preserve live objects, both evaluated and closures. Our experiments confirm that for programs running with a liveness-based garbage collector, there is a significant decrease in peak memory requirements. In addition, a sizable reduction in the number of collections ensures that in spite of using a more complex garbage collector, the execution times of programs running with liveness and reachability-based collectors remain comparable.
Prasanna Kumar K., Amitabha Sanyal, Amey Karkare
ISMM2
2015 Value Slice: A New Slicing Concept for Scalable Property Checking
Shrawan Kumar 0001, Amitabha Sanyal, Uday P. Khedker
TACAS2
2014 Liveness-Based Garbage Collection
Rahul Asati, Amitabha Sanyal, Amey Karkare, Alan Mycroft
CC2
2009 Validation of GCC optimizers through trace generation
abstract
Abstract The translation validation approach involves establishing semantics preservation of individual compilations. In this paper, we present a novel framework for translation validation of optimizers. We identify a comprehensive set of primitive program transformations that are commonly used in many optimizations. For each primitive, we define soundness conditions that guarantee that the transformation is semantics preserving. This framework of transformations and soundness conditions is independent of any particular compiler implementation and is formalized in PVS. An optimizer is instrumented to generate the trace of an optimization run in terms of the predefined transformation primitives. The validation succeeds if (1) the trace conforms to the optimization and (2) the soundness conditions of the individual transformations in the trace are satisfied. The first step eliminates the need to trust the instrumentation. The soundness conditions are defined in a temporal logic and therefore the second step involves model checking. Thus the scheme is completely automatable. We have applied this approach to several intraprocedural optimizations of RTL intermediate code in GNU Compiler Collection (GCC) v4.1.0, namely, loop invariant code motion, partial redundancy elimination, lazy code motion, code hoisting, and copy and constant propagation for sample programs written in a subset of the C language. The validation does not require information about program analyses performed by GCC. Therefore even though the GCC code base is quite large and complex, instrumentation could be achieved easily. The framework requires an estimated 21 lines of instrumentation code and 140 lines of PVS specifications for every 1000 lines of the GCC code considered for validation. Copyright © 2009 John Wiley & Sons, Ltd.
Aditya Kanade 0001, Amitabha Sanyal, Uday P. Khedker
Softw. Pract. Exp.2
2007 Heap reference analysis using access graphs
abstract
Despite significant progress in the theory and practice of program analysis, analyzing properties of heap data has not reached the same level of maturity as the analysis of static and stack data. The spatial and temporal structure of stack and static data is well understood while that of heap data seems arbitrary and is unbounded. We devise bounded representations that summarize properties of the heap data. This summarization is based on the structure of the program that manipulates the heap. The resulting summary representations are certain kinds of graphs called access graphs . The boundedness of these representations and the monotonicity of the operations to manipulate them make it possible to compute them through data flow analysis. An important application that benefits from heap reference analysis is garbage collection, where currently liveness is conservatively approximated by reachability from program variables. As a consequence, current garbage collectors leave a lot of garbage uncollected, a fact that has been confirmed by several empirical studies. We propose the first ever end-to-end static analysis to distinguish live objects from reachable objects. We use this information to make dead objects unreachable by modifying the program. This application is interesting because it requires discovering data flow information representing complex semantics. In particular, we formulate the following new analyses for heap data: liveness, availability, and anticipability and propose solution methods for them. Together, they cover various combinations of directions of analysis (i.e., forward and backward) and confluence of information (i.e. union and intersection). Our analysis can also be used for plugging memory leaks in C/C++ languages.
Uday P. Khedker, Amitabha Sanyal, Amey Karkare
ACM Trans. Program. Lang. Syst.2
2006 A PVS Based Framework for Validating Compiler Optimizations
abstract
An optimization can be specified as sequential compositions of predefined transformation primitives. For each primitive, we can define soundness conditions which guarantee that the transformation is semantics preserving. An optimization of a program preserves semantics, if all applications of the primitives in the optimization satisfy their respective soundness conditions on the versions of the input program on which they are applied. This scheme does not directly check semantic equivalence of the input and the optimized programs and is therefore amenable to automation. Automating this scheme however requires a trusted framework for simulating transformation primitives and checking their soundness conditions. In this paper, we present the design of such a framework based on PVS. We have used it for specifying and validating several optimizations viz. common subexpression elimination, optimal code placement, lazy code motion, loop invariant code motion, full and partial dead code elimination, etc
Aditya Kanade 0001, Amitabha Sanyal, Uday P. Khedker
SEFM2
2005 Heterogeneous Fixed Points with Application to Points-To Analysis
Aditya Kanade 0001, Uday P. Khedker, Amitabha Sanyal
APLAS3
1999 An Application of Compiler Technology to the Year 2000 Problem
abstract
This paper describes our experience in developing techniques for repairing date affected programs using standard compiler technology. Starting with date-ness information of certain variables based on their declarations, we propagate this information through all possible control paths, using date inference rules to traverse across individual statements. Our approach is fine grained enough to infer the date-ness of each occurrence of a variable. After detecting date-ness of variables, we renovate programs by applying a transformation using base year strategy. These techniques have been implemented as a tool set for renovating date affected COBOL programs. Copyright © 1999 John Wiley & Sons, Ltd.
Mangala Gowri Nanda, Purandar Bhaduri, Sundeep Oberoi, Amitabha Sanyal
Softw. Pract. Exp.4
1996 Correcting Errors in the Curry System
Milind Gandhe, Amitabha Sanyal
FSTTCS3
1987 Extension of Weakest Precondition Formalism to a Low Level Language
Amitabha Sanyal, Supratim Biswas, Vishv M. Malhotra
FSTTCS1