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:

  • semantic change impact analysis for Java programs within an integrated development environment (Eclipse) including techniques for finding fault-inducing changes in Java codes; algorithms for establishing safe early commits of edits, even in the presence of failing tests; and methods for using change impact feedback for decision making in a collaborative test-driven development process;
     
  • blended static+dynamic analyses, including performance diagnosis and program understanding of framework-intensive web application software, and enhanced software security analysis of Java systems.
     

2015
Wei, S., and B. G. Ryder, "Adaptive Context-sensitive Analysis for JavaScript", European Conference on Object-oriented Programming (ECOOP), Prague, Czech Republic, 2015.
2014
Wei, S., and B. G. Ryder, "State-sensitive Points-to Analysis for the Dynamic Behavior of JavaScript Objects", European Conference on Object-oriented Programming (ECOOP), vol. 8586, pp. 1-26, 2014.
2013
2012
2011
Fisher, M., J. Wloka, F. Tip, and B. G. Ryder, "An Evaluation of Change-based Coverage Criteria", ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools, Szeged, Hungary, September 2011.
2010
Fisher, M., L. Marrs, and B. Ryder, "Hi-C: Diagnosing and Fixing Object Churn in Framework-based Applications", 18th ACM SIGSOFT Symposium on the Foundations of Software Engineering, 11/2010.
2009
2008
Dufour, B., B. G. Ryder, and G. Sevitsky, "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.
2007
Zhang, W., and B. G. Ryder, "Automatic Construction of Accurate Application Call Graph With Library Call Abstraction For Java", Journal of Software Maintenance and Evolution: Research and Practice, June, 2007.
Fu, C., and B. G. Ryder, "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.
Dufour, B., B. G. Ryder, and G. Sevitsky, "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.
Ren, X., and B. G. Ryder, "Heuristic Ranking of Java Program Edits for Fault Localization", Proceedings of the International Symposium on Software Testing and Analysis (ISSTA), July, 2007.
Zhang, W., and B. G. Ryder, "“Discovering Accurate Interclass Test Dependences", Proceedings of the ACM SIGPLAN Workshop on Program Analysis for Software Tools and Engineering (PASTE), 2007.
Chesley, O., X. Ren, B. G. Ryder, and F. Tip, "Crisp - A Fault Localization Tool for Java Programs", Proceedings of the 29th International Confeence on Software Engineering, May, 2007.
Fisher II, M., S. Elbaum, and G. Rothermel, "Dynamic characterization of web application interfaces", Fundamental Approaches to Software Engineering, Braga, Portugal, 03/2007.
2006
Stoerzer, M., B. G. Ryder, X. Ren, and F. Tip, "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.
Ren, X., O. Chesley, and B. G. Ryder, "CRISP, A Debugging Tool for Java Programs", IEEE Transactions on Software Engineering, vol. 32, no. 9, pp. 1-16, Septermber, 2006.
Fisher II, M., G. Rothermel, D. Brown, M. Cao, C. Cook, and M. Burnett, "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.
Fisher II, M., G. Rothermel, T. Creelan, and M. Burnett, "Scaling a dataflow testing methodology to the multiparadigm world of commercial spreadsheets", IEEE International Symposium on Software Reliability Engineering, Raleigh, NC, USA, 11/2006.
Carver, J., M. Fisher II, and G. Rothermel, "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.
2005
Ryder, B. G., M. L. Soffa, and M. Burnett, "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.
Milanova, A., A. Rountev, and B. G. Ryder, "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.
Ren, X., F. Shah, F. Tip, B. G. Ryder, and O. Chesley, "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.
Fu, C., and B. G. Ryder, "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.
Milanova, A., and B. G. Ryder, "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.
Chesley, O., X. Ren, and B. G. Ryder, "Crisp: A Debugging Tool for Java Programs", Proceedings of the 21st International Conference on Software Maintenance (ICSM), Budapest, Hungary, September, 2005.
Elbaum, S., G. Rothermel, S. Karre, and M. Fisher II, "Leveraging user session data to support web application testing", IEEE Transactions on Software Engineering, vol. 31, no. 3, pp. 187-202, 03/2005.
2004
Fu, C., A. Milanova, B. G. Ryder, and D. Wonnacott, "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.
Rountev, A., A. Milanova, and B. G. Ryder, "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.
Milanova, A., A. Rountev, and B. G. Ryder, "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.
2003
Ryder, B. G., "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.
Rountev, A., A. Milanova, and B. G. Ryder, "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.
Fu, C., K. Naragan, T. Nguyen, R. Martin, B. G. Ryder, and D. Wonnacott, "Compiler-directed Program Fault Coverage for Highly Available Java Internet Serv", Proceedings of the International Conference on Dependable Systems and Networks, June, 2003.
2002
Arnold, M., M. Hind, and B. G. Ryder, "Online Feedback-directed Optimization of Java", Proceedings of the Conference on Object Oriented Programming Languages, Systems and Applications, pp. 119-127, November, 2002.
Milanova, A., A. Rountev, and B. G. Ryder, "Constructing Precise Object Relation Diagrams", Proceedings of the IEEE International Conference on Software Maintenance, Montreal, Canada, pp. 586-595, October, 2002.
Milanova, A., A. Rountev, and B. G. Ryder, "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.
Milanova, A., A. Rountev, and B. G. Ryder, "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.
Fisher II, M., M. Cao, G. Rothermel, C. Cook, and M. Burnett, "Automated test case generation for spreadsheets", International Conference on Software Engineering, Orlando, FL USA, 05/2002.
Fisher II, M., D. Jin, G. Rothermel, and M. Burnett, "Test reuse in the spreadsheet paradigm", International Symposium on Software Reliability Engineering, Annapolis, MD, USA, 11/2002.
2001
Rountev, A., A. Milanova, and B. G. Ryder, "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.
Arnold, M., and B. G. Ryder, "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.
Chatterjee, R., B. G. Ryder, and W. A. Landi, "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.
Arnold, M., M. Hsiao, U. Kremer, and B. G. Ryder, "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.
Ryder, B. G., W. A. Landi, P. Stocks, S. Zhang, and R. Altucher, "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.
Ryder, B. G., and F. Tip, "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.
Rountev, A., and B. G. Ryder, "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.
2000
Arnold, M., M. Hind, and B. G. Ryder, "An Empirical Study of Selective Optimization", Proceedings of the Thirteenth Annual Workshop on Languages and Compilers For Parallel Computing, Yorktown Heights, August, 2000.
Ryder, B. G., D. Smith, U. Kremer, M. Gordon, and N. Shah, "A Static Study of Java Exceptions Using JESP", Proceedings of Ninth Annual International Conference on Compiler Construction, Berlin, Germany, pp. 67-81, March, 2000.
1999
Rountev, A., B. G. Ryder, and W. A. Landi, "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.
Yur, J. -shiarn, B. G. Ryder, and W. A. Landi, "An Incremental Flow- and Contextsensitive Pointer Aliasing Analysis", Proceedings of the 21st International Conference on Software Engineering, pp. 442-451, May, 1999.
Chatterjee, R., B. G. Ryder, and W. A. Landi, "Relevant Context Inference", Proceedings of the 26th ACM SIGPLAN/SIGACT Symposium on Principles of Programming Languages, pp. 133-146, January, 1999.
Arnold, M., M. Hsiao, U. Kremer, and B. G. Ryder, "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.
1998
Zhang, S., B. G. Ryder, and W. A. Landi, "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.
Stocks, P. A., B. G. Ryder, W. A. Landi, and S. Zhang, "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.
1997
Yur, J. -shiarn, B. G. Ryder, W. A. Landi, and P. Stocks, "Incremental Analysis of Side Effects for C Software Systems", Proceedings of the 19th International Conference of on Software Engineering, pp. 422-432, May, 1997.
1996
Ryder, B. G., "A Position Paper on Compile-time Program Analysis", ACM Computing Surveys, vol. 28A, no. 4, December, 1996.
Zhang, S., B. G. Ryder, and W. Landi, "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.
Pande, H. D., and B. G. Ryder, "Data-flow-based Virtual Function Resolution", Proceedings of the Third International Symposium on Static Analysis (SAS’96), Aachen, Germany, pp. 238-254, September, 1996.
1995
Lee, Y. -fong, B. G. Ryder, and M. Fiuczynski, "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.
Masticola, S., T. J. Marlowe, and B. G. Ryder, "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.
1994
Lee, Y. -fong, and B. G. Ryder, "Effectively Exploiting Parallelism in Data Flow Analysis", The Journal of Supercomputing, vol. 8, pp. 233-262, 1994.
Pande, H., W. Landi, and B. G. Ryder, "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.
Sgro, V., and B. G. Ryder, "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.
Lee, Y. -fong, B. G. Ryder, and M. Fiuczynski, "Region Analysis: A Parallel Elimination Method for Data Flow Analysis", IEEE International Conference on Computer Languages, Toulouse, France, May, 1994.
Pande, H., and B. G. Ryder, "Static Type Determination in C++", Proceedings of the Sixth USENIX C++ Technical Conference, Cambridge, MA, pp. 85-97, April , 1994.
1993
Landi, W., B. G. Ryder, and S. Zhang, "Interprocedural Modification Side Effect AnalysisWith Pointer Aliasing", Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 56-67, June, 1993.
Masticola, S., and B. G. Ryder, "Non-concurrency Analysis", Proceedings of the ACM Conference on Principles and Practices of Parallel Programming, pp. 129-138, May, 1993.
1992
Landi, W., and B. G. Ryder, "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.
Lee, Y. -fong, and B. G. Ryder, "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.
Lee, Y. -fong, and B. G. Ryder, "A Comprehensive Approach to Parallel Data Flow Analysis", Proceedings of the International Conference on Supercomputing, pp. 236-247, July, 1992.
Schatz, E., and B. G. Ryder, "Directed Tracing of Race Conditions", Proceedings of the International Conference on Parallel Processing, pp. II-247:II-250, August, 1992.
1991
Lee, Y. -fong, T. J. Marlowe, and B. G. Ryder, "Experiences with a Parallel Algorithm for Data Flow Analysis", The Journal of Supercomputing, vol. 5, no. 2, pp. 163-188, October, 1991.
Landi, W., and B. G. Ryder, "Pointer-induced Aliasing: A Problem Taxonomy", Proceedings of the Eighteenth Symposium on Principles of Programming Languages, pp. 93-103, January, 1991.
Pande, H., B. G. Ryder, and W. Landi, "Interprocedural Def-Use Associations for C Programs", Proceedings of the ACM SIGSOFT Conference on Testing, Analysis and Validation, pp. 139-153, October, 1991.
Masticola, S., and B. G. Ryder, "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.
Marlowe, T. J., and B. G. Ryder, "Hybrid Incremental Alias Algorithms", Proceedings of Twenty-Fourth Hawaii International Conference on System Sciences, pp. 428-437, January, 1991.
1990
Burke, M., and B. G. Ryder, "A Critical Analysis of Incremental Iterative Data Flow Analysis Algorithms", IEEE Transactions on Software Engineering, pp. 723-728, July, 1990.
Ryder, B. G., W. Landi, and H. Pande, "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.
Marlowe, T. J., and B. G. Ryder, "An Efficient Hybrid Algorithm for Incremental Data Flow Analysis", Proceedings of the Seventeenth Symposium on Principles of Programming Languages, pp. 184-196, January, 1990.
Lee, Y. -fong, T. J. Marlowe, and B. G. Ryder, "Performing Data Flow Analysis in Parallel", Proceedings of ACM Supercomputing90, pp. 942-951, November, 1990.
Masticola, S., and B. G. Ryder, "Static Infinite Wait Anomaly Detection in Polynomial Time", Proceedings of International Conference on Parallel Processing, August, 1990.
1989
Ryder, B. G., "ISMM: The Incremental Software Maintenance Manager", Proceedings of IEEE Computer Society Conference on Software Maintenance, Miami FL, pp. 142- 165, October, 1989.
1988
Ryder, B. G., and S. J. Pendergrast, "Experiments in Optimizing FP", IEEE Transactions on Software Engineering, vol. 14, no. 4, pp. 444-454, April, 1988.
Ryder, B. G., and M. C. Paull, "Incremental Data Flow Analysis Algorithms", ACM Transactions on Programming Languages and Systems, vol. 10, no. 1, pp. 1-50, January, 1988.
Carroll, M., and B. G. Ryder, "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.
1987
Ryder, B. G., "An Application of Static Program Analysis to Software Maintenance", Proceedings of Twentieth Hawaii International Conference on System Sciences, pp. 82-91, January, 1987.
1986
Ryder, B. G., and M. C. Paull, "Elimination Algorithms for Data Flow Analysis", ACM Computing Surveys, vol. 18, no. 3, pp. 277-316, September, 1986.
Ryder, B. G., and M. D. Carroll, "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.
Ryder, B. G., and S. J. Pendergrast, "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.
1983
Ryder, B. G., "Incremental Data Flow Analysis”,", Conference Record of the Tenth Annual ACM Symposium on the Principles of Programming Languages, Austin, Texas, January, 1983.
1979
Ryder, B. G., "Constructing the Call Graph of a Program", IEEE Transactions on Software Engineering, vol. SE-3, no. 3, pp. 216-225, May, 1979.
1973
Ryder, B. G., "The PFORT Verifier", Software Practice and Experience, vol. 4, pp. 359-377, October-December, 1973.