PROLANGS@VT
| URL: http://prolangs.cs.vt.edu/ Contact: Barbara Ryder PROLANGS@VT researches analysis-based approaches to solving real software engineering problems. We have developed static, dynamic, and hybrid analyses to help engineers maintain code, find security problems, locate bugs, and improve performance in their applications. We have implemented these analyses in tools for modern object-oriented programming languages such as Java and collaborated with industrial partners to evaluate our methodologies on real, production systems. Specific current projects include:
|
"Language Design and Analyzability: A Retrospective",
Software Practice and Experience, 2012, in press.
"Timing- and Termination-Sensitive Secure Information Flow: Exploring a New Approach",
The IEEE Symposium on Security and Privacy , 05/2011.
"An Evaluation of Change-based Coverage Criteria",
ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools, Szeged, Hungary, September 2011.
"Tool Support for Change-centric Test Development",
IEEE Software, vol. July/August 2010, pp. 1--8, 2010.
"Exploring the Impact of Context Sensitivity on Blended Analysis",
International Conference on Software Maintenance, 2010.
"Hi-C: Diagnosing and Fixing Object Churn in Framework-based Applications",
18th ACM SIGSOFT Symposium on the Foundations of Software Engineering, 11/2010.
"Modular String-sensitive Permission Analysis with Demand-driven Precision",
The 31st International Conference on Software Engineering (ICSE), 05/2009.
"Safe-Commit Analysis to Facilitate Team Software Development",
The 31st International Conference on Software Engineering (ICSE), 05/2009.
"Using Peer-led Team Learning to Increase Participation and Success of Under-represented Groups in Introductoral Computer Science",
SIGCSE Technical Symposium on Computer Science Education: ACM Press, 03/2009.
"JUnitMX – A change-aware Unit Testing Tool (Demo Paper)",
31st International Conference on Software Engineering (ICSE), 05/2009.
"A Scalable Technique for Characterizing the Usage of Temporaries in Framework-intensive Java Applications",
Proceedings of the ACM SIGSOFT Foundations of Software Engineering Conference, November, 2008.
"Automatic Construction of Accurate Application Call Graph With Library Call Abstraction For Java",
Journal of Software Maintenance and Evolution: Research and Practice, June, 2007.
"Exception-chain Analysis: Revealing Exception Handling Architecture in Java Server Applications",
Proceedings of the 29th International Conference on Software Engineering (ICSE), pp. 230-239, May, 2007.
"Blended Analysis for Performance Understanding of Framework-based Applications",
Proceedings of the International Symposium on Software Testing and Analysis (ISSTA), pp. 118-128, July, 2007.
"Heuristic Ranking of Java Program Edits for Fault Localization",
Proceedings of the International Symposium on Software Testing and Analysis (ISSTA), July, 2007.
"“Discovering Accurate Interclass Test Dependences",
Proceedings of the ACM SIGPLAN Workshop on Program Analysis for Software Tools and Engineering (PASTE), 2007.
"Crisp - A Fault Localization Tool for Java Programs",
Proceedings of the 29th International Confeence on Software Engineering, May, 2007.
"Dynamic characterization of web application interfaces",
Fundamental Approaches to Software Engineering, Braga, Portugal, 03/2007.
"Integrating automated test generation into the WYSIWYT spreadsheet testing methdology",
ACM Transactions on Software Engineering and Methodology, vol. 15, no. 2, pp. 150-194, 04/2006.
"Finding Failure-Inducing Changes in Java Programs using Change Classification",
Proceedings of the 14th SIGSOFT Conference on the Foundations of Software Engineering, pp. 57-68, November, 2006.
"CRISP, A Debugging Tool for Java Programs",
IEEE Transactions on Software Engineering, vol. 32, no. 9, pp. 1-16, Septermber, 2006.
"Web application characterization through directed requests",
International Workshop on Dynamic Analysis, Shanghai, China, 05/2006.
"Scaling a dataflow testing methodology to the multiparadigm world of commercial spreadsheets",
IEEE International Symposium on Software Reliability Engineering, Raleigh, NC, USA, 11/2006.
"An empirical evaluation of a testing and debugging methodology for Excel",
ACM-IEEE International Symposium on Empirical Software Engineering, Rio de Janeiro, Brazil, 09/2006.
"Leveraging user session data to support web application testing",
IEEE Transactions on Software Engineering, vol. 31, no. 3, pp. 187-202, 03/2005.
"The Impact of Software Engineering Research on Modern Programming Languages",
ACM Transactions on Software Engineering Methodologies, vol. 14, no. 4, pp. 431-477, October, 2005.
"Parameterized Object Sensitivity for Pointsto Analysis for Java",
extended version of ISSTA 2002 paper solicited for journal publication in ACM Transactions on Software Engineering Methodology, vol. 14, no. 1, pp. 1-41, January, 2005.
"Chianti: A Tool for Practical Change Impact Analysis of Java Programs",
Proceedings of the ACM SIGPLAN Conference on Object Oriented Programming, Systems and Applications (OOPSLA), pp. 432-448, October, 2005.
"Navigating Error Recovery Code in Java Applications",
Eclipse Technology ExchangeWorkshop, held at ACM SIGPLAN Conference on Object Oriented Programming Languages, Systems and Applications (OOPSLA), October, 2005.
"A Framework for Context Sensitivity Using Annotated Inclusion Constraints for Flow Analysis of Object-oriented Programs",
Proceedings of the 21st International Conference on Software Maintenance (ICSM), Budapest, Hungary, September, 2005.
"Crisp: A Debugging Tool for Java Programs",
Proceedings of the 21st International Conference on Software Maintenance (ICSM), Budapest, Hungary, September, 2005.
"The EUSES Spreadsheet Corpus: A shared resource for supporting experimentation with spreadsheet dependability mechanisms",
Workshop on End-User Software Engineering, St. Louis, MO, USA, 05/2005.
"Robustness Testing of Java Server Applications”,",
extended version of ISSTA 2004 paper solicited for journal publication in IEEE Transactions on Software Engineering, vol. 31, no. 4, pp. 292-312, April, 2004.
"Fragment Class Analysis for Testing Polymorphism in Java Software",
extended version of ICSE 2003 paper solicited for special issue journal publication in IEEE Transactions on Software Engineering, vol. 30, no. 6, pp. 372-387, June, 2004.
"Precise Call Graphs for C Programs with Function Pointers",
Automated Software Engineering special issue on Source Code Analysis and Manipulation, vol. 11, no. 1, pp. 7-26, January, 2004.
"Dimensions of Precision in Reference Analysis of Object-oriented Programming Languages",
invited paper in the Proceedings of the Twelveth International Conference on Compiler Construction, pp. 126-137, April , 2003.
"Fragment Class Analysis for Testing Polymorphism in Java Software",
Proceedings of the 25th International Conference on Software Engineering, Portland OR, pp. 210-220, May, 2003.
"Compiler-directed Program Fault Coverage for Highly Available Java Internet Serv",
Proceedings of the International Conference on Dependable Systems and Networks, June, 2003.
"End-user software visualizations for fault localization",
ACM Symposium on Software Visualization, San Diego, CA, USA, 06/2003.
"Automated test case generation for spreadsheets",
International Conference on Software Engineering, Orlando, FL USA, 05/2002.
"Online Feedback-directed Optimization of Java",
Proceedings of the Conference on Object Oriented Programming Languages, Systems and Applications, pp. 119-127, November, 2002.
"Constructing Precise Object Relation Diagrams",
Proceedings of the IEEE International Conference on Software Maintenance, Montreal, Canada, pp. 586-595, October, 2002.
"Precise Call Graph Construction in the Presence of Function Pointers",
Second IEEE International Workshop on Source Code Analysis and Manipulation (SCAM), Montreal, Canada, October, 2002.
"Parameterized Object Sensitivity for Points-to and Side-Effect Analyses for Java",
Proceedings of the International Symposium on Software Testing and Analysis (ISSTA), pp. 1-11, July, 2002.
"Test reuse in the spreadsheet paradigm",
International Symposium on Software Reliability Engineering, Annapolis, MD, USA, 11/2002.
"Points-to Analysis for Java Using Annotated Inclusion Constraints",
Proceedings of the ACM SIGPLAN Conference on Object Oriented Programming Languages, Systems and Applications, pp. 43-55, October, 2001.
"Reducing the Cost of Instrumented Code via Sampling",
Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 168-179, June, 2001.
"Complexity of Points-to Analysis of Java in the Presence of Exceptions",
IEEE Transactions on Software Engineering, vol. 27, no. 6, pp. 481-512, June , 2001.
"Exploring the Interaction between Java’s Runtime Exceptions and Instruction Scheduling",
solicted for a special issue on LCPC’99, International Journal on Parallel Programming, vol. 29, no. 2, pp. 111-137, April , 2001.
"A Schema for Interprocedural Modification Side Effects Analysis with Pointer Aliasing",
ACM Transactions on Programming Languages and Systems, vol. 23, no. 1, pp. 105-186, March , 2001.
"Change Impact Analysis for Object-oriented Programs",
Proceedings of the ACM SIGPLAN Workshop on Program Analysis for Software Tools and Engineering (PASTE), pp. 46-53, 2001.
"Points-to Analysis and Side-effect Analysis for Programs Built with Precompiled Library Modules",
Proceedings of the International Conference on Compiler Construction, pp. 20-36, April, 2001.
"An Empirical Study of Selective Optimization",
Proceedings of the Thirteenth Annual Workshop on Languages and Compilers For Parallel Computing, Yorktown Heights, August, 2000.
"A Static Study of Java Exceptions Using JESP",
Proceedings of Ninth Annual International Conference on Compiler Construction, Berlin, Germany, pp. 67-81, March, 2000.
"Data-flow Analysis for Program Fragments",
Proceedings of SIGSOFT’99: The Seventh Symposium on the Foundations of Software Engineering (FSE’99), pp. 235-253, Septermber, 1999.
"An Incremental Flow- and Contextsensitive Pointer Aliasing Analysis",
Proceedings of the 21st International Conference on Software Engineering, pp. 442-451, May, 1999.
"Relevant Context Inference",
Proceedings of the 26th ACM SIGPLAN/SIGACT Symposium on Principles of Programming Languages, pp. 133-146, January, 1999.
"Instruction Scheduling in the Presence of Java’s Runtime Exceptions",
Proceedings of the Twelvth Annual Workshop on Languages and Compilers For Parallel Computing, San Diego, August, 1999.
"Experiments with Combined Analysis for Pointer Aliasing”,",
Proceedings of ACM SIGPLAN Workshop on Program Analysis and Software Tools for Engineering, pp. 11-18, June, 1998.
"Complexity of Concrete Type-inference in the Presence of Exceptions",
Proceedings of ESOP’98, pp. 57- 74, March, 1998.
"A Comparison of Flowand Context- Sensitivity with respect to the Modification Side Effects Problem",
Proceedings of the International Symposium on Software Testing and Analysis, pp. 21-31, March, 1998.
"Incremental Analysis of Side Effects for C Software Systems",
Proceedings of the 19th International Conference of on Software Engineering, pp. 422-432, May, 1997.
"A Position Paper on Compile-time Program Analysis",
ACM Computing Surveys, vol. 28A, no. 4, December, 1996.
"Program Decomposition for Pointer Aliasing: A Step Toward Practical Analyses",
Proceedings of SIGSOFT’96: The Fourth Symposium on the Foundations of Software Engineering (FSE4), pp. 81-92, October, 1996.
"Data-flow-based Virtual Function Resolution",
Proceedings of the Third International Symposium on Static Analysis (SAS’96), Aachen, Germany, pp. 238-254, September, 1996.
"Region Analysis: A Parallel Elimination Method for Data Flow Analysis",
IEEE Transactions on Software Engineering, vol. SE-21, no. 11, pp. 913-926, November, 1995.
"Lattice Frameworks for Multi- Source and Bidirectional Data Flow Analysis Problems",
ACM Transactions on Programming Languages and Systems, vol. 17, no. 5, pp. 777-803, September, 1995.
"Effectively Exploiting Parallelism in Data Flow Analysis",
The Journal of Supercomputing, vol. 8, pp. 233-262, 1994.
"Interprocedural Def-Use Associations for C Systems with Single Level Pointers",
IEEE Transactions on Software Engineering, vol. 20, no. 5, pp. 385-403, May , 1994.
"Differences in Algorithmic Parallelism in Control Flow and Call Multigraphs",
Proceedings of the Seventh AnnualWorkshop on Languages and Compilers For Parallel Computing, pp. 15.1-15.15, August, 1994.
"Region Analysis: A Parallel Elimination Method for Data Flow Analysis",
IEEE International Conference on Computer Languages, Toulouse, France, May, 1994.
"Static Type Determination in C++",
Proceedings of the Sixth USENIX C++ Technical Conference, Cambridge, MA, pp. 85-97, April , 1994.
"Interprocedural Modification Side Effect AnalysisWith Pointer Aliasing",
Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 56-67, June, 1993.
"Non-concurrency Analysis",
Proceedings of the ACM Conference on Principles and Practices of Parallel Programming, pp. 129-138, May, 1993.
"A Safe Approximate Algorithm for Interprocedural Pointer Aliasing",
Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 235-248, June, 1992.
"Parallel Hybrid Data Flow Algorithms: A Case Study",
Lecture Notes in Computer Science as Proceedings of FifthWorkshop on Languages and Compilers for Parallel Computing, New Haven CN, pp. 296-310, August, 1992.
"A Comprehensive Approach to Parallel Data Flow Analysis",
Proceedings of the International Conference on Supercomputing, pp. 236-247, July, 1992.
"Directed Tracing of Race Conditions",
Proceedings of the International Conference on Parallel Processing, pp. II-247:II-250, August, 1992.
"Experiences with a Parallel Algorithm for Data Flow Analysis",
The Journal of Supercomputing, vol. 5, no. 2, pp. 163-188, October, 1991.
"Pointer-induced Aliasing: A Problem Taxonomy",
Proceedings of the Eighteenth Symposium on Principles of Programming Languages, pp. 93-103, January, 1991.
"Interprocedural Def-Use Associations for C Programs",
Proceedings of the ACM SIGSOFT Conference on Testing, Analysis and Validation, pp. 139-153, October, 1991.
"A Model of Ada Programs for Static Deadlock Detection in Polynomial Time",
Proceedings of 1991 ACM/ONR Workshop on Parallel and Distributed Debugging, pp. 91-102, May, 1991.
"Hybrid Incremental Alias Algorithms",
Proceedings of Twenty-Fourth Hawaii International Conference on System Sciences, pp. 428-437, January, 1991.
"Properties of Data Flow Frameworks: A Unified Model",
Acta Informatica, vol. 28, pp. 121-163, 1990.
"Proving Relative Lower Bounds for Incremental Algorithms",
Acta Informatica, vol. 27, July, 1990.
"A Critical Analysis of Incremental Iterative Data Flow Analysis Algorithms",
IEEE Transactions on Software Engineering, pp. 723-728, July, 1990.
"Profiling the Performance of an Incremental Data Flow Analysis Algorithm",
IEEE Transactions on Software Engineering (special issue of on Experimental Computer Science), pp. 129-140, February, 1990.
"An Efficient Hybrid Algorithm for Incremental Data Flow Analysis",
Proceedings of the Seventeenth Symposium on Principles of Programming Languages, pp. 184-196, January, 1990.
"Performing Data Flow Analysis in Parallel",
Proceedings of ACM Supercomputing90, pp. 942-951, November, 1990.
"Static Infinite Wait Anomaly Detection in Polynomial Time",
Proceedings of International Conference on Parallel Processing, August, 1990.
"ISMM: The Incremental Software Maintenance Manager",
Proceedings of IEEE Computer Society Conference on Software Maintenance, Miami FL, pp. 142- 165, October, 1989.
"Conditions for Incremental Iteration: Examples and Counterexamples",
Science of Computer Programming, vol. 11, pp. 1-15, October, 1988.
"Experiments in Optimizing FP",
IEEE Transactions on Software Engineering, vol. 14, no. 4, pp. 444-454, April, 1988.
"Incremental Data Flow Analysis Algorithms",
ACM Transactions on Programming Languages and Systems, vol. 10, no. 1, pp. 1-50, January, 1988.
"Incremental Data Flow Analysis Via Dominator and Attribute Updates",
Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, San Diego, CA., pp. 274-284, January , 1988.
"An Application of Static Program Analysis to Software Maintenance",
Proceedings of Twentieth Hawaii International Conference on System Sciences, pp. 82-91, January, 1987.
"Elimination Algorithms for Data Flow Analysis",
ACM Computing Surveys, vol. 18, no. 3, pp. 277-316, September, 1986.
"An Incremental Algorithm for Software Analysis",
Proceedings of ACM SIGPLAN/SIGSOFT Symposium on Practical Software Development Environments, Palo Alto, California, P. Henderson ed., pp. 171-179, December, 1986.
"FPOPT: A Globally Optimizing Compiler for FP",
Proceedings of IEEE Computer Society International Conference on Computer Languages, Miami Beach, Florida, pp. 34-40, October, 1986.
"Incremental Data Flow Analysis”,",
Conference Record of the Tenth Annual ACM Symposium on the Principles of Programming Languages, Austin, Texas, January, 1983.
"Constructing the Call Graph of a Program",
IEEE Transactions on Software Engineering, vol. SE-3, no. 3, pp. 216-225, May, 1979.
"The PFORT Verifier",
Software Practice and Experience, vol. 4, pp. 359-377, October-December, 1973.
