Contents
Research Interests:
language-based programming environments
program slicing, differencing, and merging
static analysis of programs
interprocedural dataflow analysis
My work mainly involves the design and implementation of language-based programming tools that help programmers with problems like:
understanding how existing programs work, and how they would be affected by proposed modifications;
understanding the textual, structural, and semantic differences between two versions of a program;
retesting a program after changing it;
combining pieces of old programs to produce a new program, with certain semantic guarantees.
This work has involved the use of a program representation called the_program dependence graph (PDG)_, and an operation called slicing .
I am also working on new algorithms for precise, interprocedural dataflow analysis , and for pointer analysis .
Honors and Awards:
Speeding up Slicing (Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering , December 1994, with T. Reps, M. Sagiv, and G. Rosay); Selected in 2011 to receive one of four ACM SIGSOFT Retrospective Impact Paper awards.
University of Wisconsin College of Letters and Sciences Honors Program Distinguished Honors Faculty Award, 2011;
Interprocedural Slicing using Dependence Graphs (Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation , June 1988, with T. Reps and D. Binkley); Selected in 2003 as one of the 50 best papers to appear in the PLDI conference in the last 20 years (1979 - 1999) and published in_20 Years of the ACM SIGPLAN Conference on Programming Language Design and Implementation (1979 - 1999): A Selection, ACM SIGPLAN Notices, Volume 39, Number 4_ (2004).
University of Wisconsin Computer Sciences Department Carolyn Rosner Excellent Educator Award, 1997;
Wisconsin Hilldale Undergraduate/Faculty Research Award, 1993;
University of Wisconsin SACM Student's Choice Professor of the Year Award, 1993;
University of Wisconsin William H. Kiekhofer Excellence in Teaching Award, 1993;
University of Wisconsin College of Letters and Sciences Teaching Excellence Award, 1992;
NSF Presidential Young Investigator Award, 1989;
University of Wisconsin SACM Student's MVP (Most Valued Professor) Award, 1989;
University of Wisconsin Computer Sciences Department Teaching Award, 1987.
Patents:
Interprocedural Slicing using Dependence Graphs (With D. Binkley and T. Reps.) Granted 1992.
PhD Students:
Thomas Ball
Raghavan Komondoor
Wuu Yang (Supervised jointly with T. Reps )
Suan Yong
Masters Students:
Samuel Bates
Rebecca Hasti
Rich Joiner
Marc Shapiro
Publications2014
* Aung, M., Horwitz, S., Joiner, R., and Reps, T.,Specialization slicing. To appear in ACM Trans. on Program. Lang. and Syst. 36 , 2 (2014). [abstract ;PDF .] © ACM, (2014). This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version will be published in ACM Trans. on Prog. Lang. and Systems.
2012
* Aung, M., Horwitz, S., Joiner, R., and Reps, T. Executable slicing via procedure specialization.TR-1711, Computer Sciences Department, University of Wisconsin , (March 2012). [abstract ;paper ]
2010
* Horwitz, S., Liblit, B, and Polishchuck, M., Better Debugging via Output Tracing and Callstack-Sensitive Slicing._IEEE Transactions on Software Engineering_Vol 36 No 1, (January 2010)abstract and purchase link
2009
* Horwitz, S. and Rodger, S., Using Peer-Led Team Learning to Increase Participation and Success of Under-represented Groups in Introductory Computer Science.Fortieth ACM Technical Symposium on Computer Science Education (SIGCSE 2009) (March 2009). [abstract ;paper ]
* Smith, R. and Horwitz, S., Detecting and Measuring Similarity in Code Clones. In Proceedings of the 3rd International Workshop on Software Clones (IWSC'2009) (March 2009). [abstract ;paper ]
2005
* Yong, S. and Horwitz, S., Using Static Analysis to Reduce Dynamic Analysis Overhead.Formal Methods in System Design Journal (FMSD) (November, 2005). [abstract ;paper ,(c) Springer-Verlag ]
2004
* Yong, S. and Horwitz, S., Pointer-Range Analysis. In Proceedings of the 11th International Symposium on Static Analysis , (Verona, Italy, August 25-27, 2004), [abstract ;paper ,(c) Springer-Verlag ]
2003
* Yong, S. and Horwitz, S.Protecting C Programs from Attacks via Invalid Pointer Dereferences. . In Proceedings of the 10th ACM SIGSOFT International Symposium on Foundations of Software Engineering , (Sept 2003, Helsinki Finland), pp. 307-316.
* Allen, M. and Horwitz, S.Slicing Java programs that throw and catch exceptions . In Proceedings of the ACM SIGPLAN 2003 Workshop on Partial Evaluation and Semantics Based Program Manipulation (June, 2003).
* Komondoor, R. and Horwitz S.Effective, Automatic Procedure Extraction . In Proceedings 11th IEEE International Workshop on Program Comprehension , (Portland, Oregon, May 10-11, 2003).
2002
* Komondoor, R. and Horwitz S. Eliminating Duplication in Source Code via Procedure Extraction.UW-Madison Dept. of Computer Sciences Technical Report 1461 , (December, 2002). [abstract ,postscript ,pdf ]
* Yong, S. and Horwitz, S.Reducing the Overhead of Dynamic Analysis . In Proceedings RV'02 (Second Workshop on Runtime Verification) , (Copenhagen, Denmark, July 26, 2002).
* Chakaravarthy, V. and Horwitz, S.On the Non-Approximability of Points-to Analysis ._Acta Informatica_Vol. 38, Issue 8, (June, 2002).
* Horwitz, S., Tool support for improving test coverage. In Proceedings of ESOP 2002: European Symposium on Programming , (Grenoble, France, April 8-12, 2002). [abstract ;paper ,(c) Springer-Verlag ]
* Kumar, S. and Horwitz, S., Better slicing of programs with jumps and switches. In Proceedings of FASE 2002: Fundamental Approaches to Software Engineering , (Grenoble, France, April 8-12, 2002). [abstract ;paper ,(c) Springer-Verlag ]
2001
* Komondoor, R. and Horwitz, S., Using slicing to identify duplication in source code. In Proceedings of the 8th International Symposium on Static Analysis , (Paris, France, July 16-18, 2001), [abstract ;paper ,(c) Springer-Verlag ]
* Komondoor, R. and Horwitz, S., Tool Demonstration: Finding duplicated code using program dependences. In Proceedings of ESOP 2001: European Symposium on Programming , (Genoa, Italy, April 2-6, 2001). [paper ,(c) Springer-Verlag ]
* Loginov, A., Yong, S.H., Horwitz, S., and Reps, T., Debugging via run-time type checking. In Proceedings of FASE 2001: Fundamental Approaches to Software Engineering , (Genoa, Italy, April 2-6, 2001). [abstract ;paper ,(c) Springer-Verlag ]
2000
* Komondoor, R., and Horwitz, S.,Semantics-Preserving Procedure Extraction . In Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages , (Boston, MA, January 2000).
1999
* Yong, S., Horwitz, S., and Reps, T.,Pointer analysis for programs with structures and casting . In Proceedings of the SIGPLAN 99 Conference on Programming Language Design and Implementation , (Atlanta, GA, May 1999).
1998
* Hasti R., and Horwitz, S.,Using static single assignment form to improve flow-insensitive pointer analysis . In Proceedings of the SIGPLAN 98 Conference on Programming Language Design and Implementation , (Montreal, Canada, June 1998).
1997
* Shapiro, M., and Horwitz, S., The effects of the precision of pointer analysis.Static Analysis 4th International Symposium, SAS '97 , Lecture Notes in Computer Science Vol 1302, (September 1997) [abstract ;paper ,(c) Springer-Verlag ]
* Horwitz, S.,Precise flow-insensitive may-alias analysis is NP-hard ._ACM Transactions on Programming Languages and Systems_Vol 19 No 1, (January 1997).
* Shapiro, M., and Horwitz, S.,Fast and accurate flow-insensitive points-to analysis . In Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages , (Paris, France, January 1997).
1996
* Sagiv, M., Reps, T., and Horwitz, S.,Precise interprocedural dataflow analysis with applications to constant propagation .Theoretical Computer Science 167 (1996), 131-170.
1995
* Horwitz, S., Reps, T., and Sagiv, M.,Demand interprocedural dataflow analysis . In Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering , (Washington DC, October 1995).
* Reps, T., Sagiv, M., and Horwitz, S.,Precise interprocedural dataflow analysis via graph reachability . In Conference Record of the Twenty-Second ACM Symposium on Principles of Programming Languages , (San Francisco CA, January 1995).
1994
* Reps, T., Horwitz, S., Sagiv, M., and Rosay, G., Speeding up slicing. In SIGSOFT '94: Proceedings of the Second ACM SIGSOFT Symposium on the Foundations of Software Engineering , (New Orleans, LA, December 7-9, 1994),_ACM SIGSOFT Software Engineering Notes_19, 5 (December 1994), pp. 11-20. [abstract ;PostScript ;PDF ]
1993
* Bates, S., and Horwitz, S.,Incremental program testing using program dependence graphs . In Conference Record of the Twentieth ACM Symposium on Principles of Programming Languages , (Charleston, SC, January 1993).
* Ball T., and Horwitz, S., Slicing programs with arbitrary control flow. In Proceedings of the 1st International Workshop on Automated and Algorithmic Debugging, Springer-Verlag Lecture Notes in Computer Science, Vol. 749 , (May 1993). [paper ,(c) Springer-Verlag ]
1992
* Horwitz, S., and Reps, T.,The use of program dependence graphs in software engineering . In Proceedings of the Fourteenth International Conference on Software Engineering , (Melbourne, Australia, May 1992).
1991
* Horwitz, S., and Reps, T., Efficient comparison of program slices. ACTA Informatica 28 (1991), 713-732 [paper ,abstract .]
1990
* Horwitz, S.,Identifying the semantic and textual differences between two versions of a program . In Proceedings of the SIGPLAN 90 Conference on Programming Language Design and Implementation , (White Plains, NY, June 1990).
* Horwitz, S., Reps, T., and Binkley, D.,Interprocedural slicing using dependence graphs. .ACM Transactions on Programming Languages and Systems 12 , 1 (January 1990), 26-60.