Chandrasekhar Boyapati - Academia.edu (original) (raw)

Uploads

Papers by Chandrasekhar Boyapati

Research paper thumbnail of Towards An Extensible Virtual Machine

Research paper thumbnail of SafeJava: A Unified Type System for Safe Programming

Research paper thumbnail of Ownership types for safe object-oriented programming

Research paper thumbnail of Safe Runtime Downcasts With Ownership Types

This paper describes an efficient technique for supporting safe runtime downcasts with ownership ... more This paper describes an efficient technique for supporting safe runtime downcasts with ownership types. This technique uses the type passing approach, but avoids the associated significant space overhead by stor-ing runtime ownership information only for objects that are potentially ...

Research paper thumbnail of A Type System for Preventing Data Races and Deadlocks in Java Programs

Our system also allows programmers to use recursive tree-based data structures to describe the pa... more Our system also allows programmers to use recursive tree-based data structures to describe the partial order. For ex-ample, programmers can specify that nodes in a tree must be locked in the tree-order. Our system allows mutations to the data structure that change the partial ...

Research paper thumbnail of A parameterized type system for race-free Java programs

Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications - OOPSLA '01, 2001

This paper presents a new static type system for multi-threaded programs; any well-typed program ... more This paper presents a new static type system for multi-threaded programs; any well-typed program in our system is free of data races. Our type system is significantly more ex-pressive than previous such type systems. In particular, our system lets programmers write generic code to ...

Research paper thumbnail of Safe Lazy Software Upgrades in Object-Oriented Databases

Object-oriented databases allow objects that are ma- nipulated by programs to be stored reliably ... more Object-oriented databases allow objects that are ma- nipulated by programs to be stored reliably so that they can be used again later and shared with other programs. Since objects in the OODB may live a long time, there may be a need to upgrade them: to change their code and storage representation. This paper describes a tech- nique for upgrading

Research paper thumbnail of ACM Symposium on Principles of Programming Languages (POPL), January 2003

object encapsulation and enable local reasoning about program correctness in object-oriented lang... more object encapsulation and enable local reasoning about program correctness in object-oriented languages. However, a type system that enforces strict object encapsulation is too constraining: it does not allow ecient implementation of important constructs like iterators. This paper argues that the right way to solve the problem is to allow objects of classes de ned in the same module to have privileged access to each other's representations; we show how to do this for inner classes. This approach allows programmers to express constructs like iterators and yet supports local reasoning about the correctness of the classes, because a class and its inner classes together can be reasoned about as a module. The paper also sketches how we use our variant of ownership types to enable ecient software upgrades in persistent object stores.

Research paper thumbnail of Lazy modular upgrades in persistent object stores

Persistent object stores require a way to automatically upgrade persistent objects, to change the... more Persistent object stores require a way to automatically upgrade persistent objects, to change their code and storage representation. Automatic upgrades are a challenge for such systems. Upgrades must be performed in a way that is efficient both in space and time, and that does not stop application access to the store. In addition, however, the approach must be modular: it must allow programmers to reason locally about the correctness of their upgrades similar to the way they would reason about regular code. This paper provides solutions to both problems.The paper first defines upgrade modularity conditions that any upgrade system must satisfy to support local reasoning about upgrades. The paper then describes a new approach for executing upgrades efficiently while satisfying the upgrade modularity conditions. The approach exploits object encapsulation properties in a novel way. The paper also describes a prototype implementation and shows that our upgrade system imposes only a small...

Research paper thumbnail of A parameterized type system for race-free Java programs

ACM SIGPLAN Notices, 2001

This paper presents a new static type system for multi-threaded programs; any well-typed program ... more This paper presents a new static type system for multi-threaded programs; any well-typed program in our system is free of data races. Our type system is significantly more ex-pressive than previous such type systems. In particular, our system lets programmers write generic code to ...

Research paper thumbnail of Ownership types for safe programming

ACM SIGPLAN Notices, 2002

Research paper thumbnail of Efficient software model checking of data structure properties

ACM SIGPLAN Notices, 2006

Research paper thumbnail of Efficient software model checking of soundness of type systems

ACM SIGPLAN Notices, 2008

Research paper thumbnail of Ownership types for safe region-based memory management in real-time Java

Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation - PLDI '03, 2003

Research paper thumbnail of ACM SIGSOFT Impact Paper Award 2012

Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering - FSE '12, 2012

Research paper thumbnail of Korat

Proceedings of the international symposium on Software testing and analysis - ISSTA '02, 2002

This paper presents Korat, a novel framework for automated testing of Java programs. Given a form... more This paper presents Korat, a novel framework for automated testing of Java programs. Given a formal specification for a method, Korat uses the method precondition to automatically generate all (nonisomorphic) test cases up to a given small size. Korat then executes the method on each test case, and uses the method postcondition as a test oracle to check the correctness

Research paper thumbnail of Korat

Proceedings of the international symposium on Software testing and analysis - ISSTA '02, 2002

Research paper thumbnail of Lazy modular upgrades in persistent object stores

ACM SIGPLAN Notices, 2003

Research paper thumbnail of Ownership types for object encapsulation

Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '03, 2003

Research paper thumbnail of A Type System for Safe Region-Based Memory Management in Real-Time Java

The Real-Time Specification for Java (RTSJ) allows a pro- gram to create real-time threads with h... more The Real-Time Specification for Java (RTSJ) allows a pro- gram to create real-time threads with hard real-time con- straints. Real-time threads use immortal memory and region-based memory management to avoid unbounded pauses caused by interference from the garbage collector. The RTSJ uses runtime checks to ensure that deleting a re- gion does not create dangling references and that real-time threads

Research paper thumbnail of Towards An Extensible Virtual Machine

Research paper thumbnail of SafeJava: A Unified Type System for Safe Programming

Research paper thumbnail of Ownership types for safe object-oriented programming

Research paper thumbnail of Safe Runtime Downcasts With Ownership Types

This paper describes an efficient technique for supporting safe runtime downcasts with ownership ... more This paper describes an efficient technique for supporting safe runtime downcasts with ownership types. This technique uses the type passing approach, but avoids the associated significant space overhead by stor-ing runtime ownership information only for objects that are potentially ...

Research paper thumbnail of A Type System for Preventing Data Races and Deadlocks in Java Programs

Our system also allows programmers to use recursive tree-based data structures to describe the pa... more Our system also allows programmers to use recursive tree-based data structures to describe the partial order. For ex-ample, programmers can specify that nodes in a tree must be locked in the tree-order. Our system allows mutations to the data structure that change the partial ...

Research paper thumbnail of A parameterized type system for race-free Java programs

Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications - OOPSLA '01, 2001

This paper presents a new static type system for multi-threaded programs; any well-typed program ... more This paper presents a new static type system for multi-threaded programs; any well-typed program in our system is free of data races. Our type system is significantly more ex-pressive than previous such type systems. In particular, our system lets programmers write generic code to ...

Research paper thumbnail of Safe Lazy Software Upgrades in Object-Oriented Databases

Object-oriented databases allow objects that are ma- nipulated by programs to be stored reliably ... more Object-oriented databases allow objects that are ma- nipulated by programs to be stored reliably so that they can be used again later and shared with other programs. Since objects in the OODB may live a long time, there may be a need to upgrade them: to change their code and storage representation. This paper describes a tech- nique for upgrading

Research paper thumbnail of ACM Symposium on Principles of Programming Languages (POPL), January 2003

object encapsulation and enable local reasoning about program correctness in object-oriented lang... more object encapsulation and enable local reasoning about program correctness in object-oriented languages. However, a type system that enforces strict object encapsulation is too constraining: it does not allow ecient implementation of important constructs like iterators. This paper argues that the right way to solve the problem is to allow objects of classes de ned in the same module to have privileged access to each other's representations; we show how to do this for inner classes. This approach allows programmers to express constructs like iterators and yet supports local reasoning about the correctness of the classes, because a class and its inner classes together can be reasoned about as a module. The paper also sketches how we use our variant of ownership types to enable ecient software upgrades in persistent object stores.

Research paper thumbnail of Lazy modular upgrades in persistent object stores

Persistent object stores require a way to automatically upgrade persistent objects, to change the... more Persistent object stores require a way to automatically upgrade persistent objects, to change their code and storage representation. Automatic upgrades are a challenge for such systems. Upgrades must be performed in a way that is efficient both in space and time, and that does not stop application access to the store. In addition, however, the approach must be modular: it must allow programmers to reason locally about the correctness of their upgrades similar to the way they would reason about regular code. This paper provides solutions to both problems.The paper first defines upgrade modularity conditions that any upgrade system must satisfy to support local reasoning about upgrades. The paper then describes a new approach for executing upgrades efficiently while satisfying the upgrade modularity conditions. The approach exploits object encapsulation properties in a novel way. The paper also describes a prototype implementation and shows that our upgrade system imposes only a small...

Research paper thumbnail of A parameterized type system for race-free Java programs

ACM SIGPLAN Notices, 2001

This paper presents a new static type system for multi-threaded programs; any well-typed program ... more This paper presents a new static type system for multi-threaded programs; any well-typed program in our system is free of data races. Our type system is significantly more ex-pressive than previous such type systems. In particular, our system lets programmers write generic code to ...

Research paper thumbnail of Ownership types for safe programming

ACM SIGPLAN Notices, 2002

Research paper thumbnail of Efficient software model checking of data structure properties

ACM SIGPLAN Notices, 2006

Research paper thumbnail of Efficient software model checking of soundness of type systems

ACM SIGPLAN Notices, 2008

Research paper thumbnail of Ownership types for safe region-based memory management in real-time Java

Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation - PLDI '03, 2003

Research paper thumbnail of ACM SIGSOFT Impact Paper Award 2012

Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering - FSE '12, 2012

Research paper thumbnail of Korat

Proceedings of the international symposium on Software testing and analysis - ISSTA '02, 2002

This paper presents Korat, a novel framework for automated testing of Java programs. Given a form... more This paper presents Korat, a novel framework for automated testing of Java programs. Given a formal specification for a method, Korat uses the method precondition to automatically generate all (nonisomorphic) test cases up to a given small size. Korat then executes the method on each test case, and uses the method postcondition as a test oracle to check the correctness

Research paper thumbnail of Korat

Proceedings of the international symposium on Software testing and analysis - ISSTA '02, 2002

Research paper thumbnail of Lazy modular upgrades in persistent object stores

ACM SIGPLAN Notices, 2003

Research paper thumbnail of Ownership types for object encapsulation

Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '03, 2003

Research paper thumbnail of A Type System for Safe Region-Based Memory Management in Real-Time Java

The Real-Time Specification for Java (RTSJ) allows a pro- gram to create real-time threads with h... more The Real-Time Specification for Java (RTSJ) allows a pro- gram to create real-time threads with hard real-time con- straints. Real-time threads use immortal memory and region-based memory management to avoid unbounded pauses caused by interference from the garbage collector. The RTSJ uses runtime checks to ensure that deleting a re- gion does not create dangling references and that real-time threads