Vineet Sinha - Academia.edu (original) (raw)
Papers by Vineet Sinha
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.
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
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.
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.
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
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.