Vineet Sinha - Academia.edu (original) (raw)

Papers by Vineet Sinha

Research paper thumbnail of Javarifier: Inferring Reference Immutability for Java

Reference immutability constraints restrict certain references in a program from modifying object... more Reference immutability constraints restrict certain references in a program from modifying objects. These constraints, such as those provided by the Javari programming language, have been shown to increase the expressiveness of a language and to prevent and detect errors. Unfortunately, annotating existing code, including libraries, with reference immutabil- ity constraints is a tedious and error prone task. We propose an algorithm for inferring the references in a pro- gram that can be declared as read-only (or romaybe). Addi- tionally, to gain additional precision, we introduce heuristics that suggest assignable and mutable fields. To evaluate our algorithm, we have implemented a tool, Javarifier, to aid programmers in converting Java programs to Javari. We also demonstrate the practicality of our algo- rithm by using Javarifier to annotate an existing program.

Research paper thumbnail of Using dependency models to manage complex software architecture

Research paper thumbnail of Using dependency models to manage complex software architecture

Research paper thumbnail of Using dependency models to manage software architecture

This demonstration will present a new approach, based on the Dependency Structure Matrix (DSM), w... more This demonstration will present a new approach, based on the Dependency Structure Matrix (DSM), which uses inter-module dependencies to specify and manage the architecture of software systems. The system is decomposed into a hierarchy of subsystems with the dependencies between the subsystems presented in the form of an adjacency matrix. The matrix representation is concise, intuitive and appears to overcome

Research paper thumbnail of Relo: Helping Users Manage Context during Interactive Exploratory Visualization of Large Codebases

Research paper thumbnail of Understanding code architectures via interactive exploration and layout of layered diagrams

Abstract Visualization tools that target helping developers understand software have typically ha... more Abstract Visualization tools that target helping developers understand software have typically had visual scalability limitations, requiring significant input before providing useful results. In contrast, we present Strata, which has been designed to actively help users by providing layered diagrams. The defaults used are based on the package structure, and user interactions can allow for overriding these defaults and focusing on relevant parts of the codebase.

Research paper thumbnail of Adenine: A Metadata Programming Language

Research paper thumbnail of Haystack: A General-Purpose Information Management Tool for End Users Based on Semistructured Data

Research paper thumbnail of Interactive exploration of compacted visualizations for understanding behavior in complex software

Research paper thumbnail of Incremental exploratory visualization of relationships in large codebases for program comprehension

Research paper thumbnail of Assisted Browsing for Semistructured Data

Research paper thumbnail of The role of context in question answering systems

Research paper thumbnail of Haystack: a platform for creating, organizing and visualizing semistructured information

Research paper thumbnail of Magnet: supporting navigation in semistructured data environments

Research paper thumbnail of What Makes a Good Answer? The Role of Context in Question Answering

Research paper thumbnail of Interactive exploration of compacted visualizations for understanding behavior in complex software

Research paper thumbnail of Basic Concepts for Managing Semi-structured Information in Haystack

Research paper thumbnail of What makes a good answer

Research paper thumbnail of The Semantic User Interface Paradigm for Presenting Semi-structured Information

Research paper thumbnail of Incremental exploratory visualization of relationships in large codebases for program comprehension

Research paper thumbnail of Javarifier: Inferring Reference Immutability for Java

Reference immutability constraints restrict certain references in a program from modifying object... more Reference immutability constraints restrict certain references in a program from modifying objects. These constraints, such as those provided by the Javari programming language, have been shown to increase the expressiveness of a language and to prevent and detect errors. Unfortunately, annotating existing code, including libraries, with reference immutabil- ity constraints is a tedious and error prone task. We propose an algorithm for inferring the references in a pro- gram that can be declared as read-only (or romaybe). Addi- tionally, to gain additional precision, we introduce heuristics that suggest assignable and mutable fields. To evaluate our algorithm, we have implemented a tool, Javarifier, to aid programmers in converting Java programs to Javari. We also demonstrate the practicality of our algo- rithm by using Javarifier to annotate an existing program.

Research paper thumbnail of Using dependency models to manage complex software architecture

Research paper thumbnail of Using dependency models to manage complex software architecture

Research paper thumbnail of Using dependency models to manage software architecture

This demonstration will present a new approach, based on the Dependency Structure Matrix (DSM), w... more This demonstration will present a new approach, based on the Dependency Structure Matrix (DSM), which uses inter-module dependencies to specify and manage the architecture of software systems. The system is decomposed into a hierarchy of subsystems with the dependencies between the subsystems presented in the form of an adjacency matrix. The matrix representation is concise, intuitive and appears to overcome

Research paper thumbnail of Relo: Helping Users Manage Context during Interactive Exploratory Visualization of Large Codebases

Research paper thumbnail of Understanding code architectures via interactive exploration and layout of layered diagrams

Abstract Visualization tools that target helping developers understand software have typically ha... more Abstract Visualization tools that target helping developers understand software have typically had visual scalability limitations, requiring significant input before providing useful results. In contrast, we present Strata, which has been designed to actively help users by providing layered diagrams. The defaults used are based on the package structure, and user interactions can allow for overriding these defaults and focusing on relevant parts of the codebase.

Research paper thumbnail of Adenine: A Metadata Programming Language

Research paper thumbnail of Haystack: A General-Purpose Information Management Tool for End Users Based on Semistructured Data

Research paper thumbnail of Interactive exploration of compacted visualizations for understanding behavior in complex software

Research paper thumbnail of Incremental exploratory visualization of relationships in large codebases for program comprehension

Research paper thumbnail of Assisted Browsing for Semistructured Data

Research paper thumbnail of The role of context in question answering systems

Research paper thumbnail of Haystack: a platform for creating, organizing and visualizing semistructured information

Research paper thumbnail of Magnet: supporting navigation in semistructured data environments

Research paper thumbnail of What Makes a Good Answer? The Role of Context in Question Answering

Research paper thumbnail of Interactive exploration of compacted visualizations for understanding behavior in complex software

Research paper thumbnail of Basic Concepts for Managing Semi-structured Information in Haystack

Research paper thumbnail of What makes a good answer

Research paper thumbnail of The Semantic User Interface Paradigm for Presenting Semi-structured Information

Research paper thumbnail of Incremental exploratory visualization of relationships in large codebases for program comprehension