My main goal in research is to establish and promote novel code-editing techniques and tools to help software developers in their daily work. Such tools aim to support programmers in their efforts to develop and maintain high-quality software. My work employs (static) program analysis techniques for the automation of semantics-preserving source-code-motion transformations, refactorings. When applied well (and frequently), these refactoring transformations improve the design of existing programs by enhancing reuse and by making the code more readable and maintainable. The transformations are based on Weiser's decomposition technique of program slicing and on my novel recomposition approach of program sliding. The theory underlying sliding's correctness finds its roots in formal methods, leveraging Dijkstra's predicate-transformer semantics and the refinement calculus.
A. Abadi, R. Ettinger, and Y.A. Feldman. Fine Slicing: Theory and Applications for Computation Extraction. In 15th International Conference on Fundamental Approaches to Software Engineering (FASE 2012), Held as Part of the European Joint Conferences on Theory and Practice of Software (ETAPS 2012), J. de Lara and A. Zisman editor, pages 471-485, Springer-Verlag, 2012.
A. Abadi, R. Ettinger, and Y.A. Feldman. Improving slice accuracy by compression of data and control flow paths. In 7th Joint Meeting of the European Software Engineering Conference and the ACM Symposium on the Foundations of Software Engineering (ESEC/FSE), pages 223-232, ACM, 2009.