MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

A Framework for Source Code Search using Program Patterns (1994) [87 citations — 2 self]

by Santanu Paul ,  Atul Prakash
IEEE Transactions on Software Engineering
Add To MetaCart

Abstract:

For maintainers involved in understanding and reengineering large software, locating source code fragments that match certain patterns is a critical task. Existing solutions to the problem are few, and they either involve manual, painstaking scans of the source code using tools based on regular expressions, or the use of large, integrated software engineering environments that include simple patternbased query processors in their toolkits. We present a framework in which pattern languages are used to specify interesting code features. The pattern languages are derived by extending the source programming language with pattern-matching symbols. We describe SCRUPLE, a finite state machine-based source code search tool, that efficiently implements this framework. We also present experimental performance results obtained from a SCRUPLE prototype, and the user interface of a source code browser built on top of SCRUPLE. Keywords: Reverse engineering, software maintenance, software reengineer...

Citations

2870 Introduction to automata theory, languages and computation – Hopcroft, Ullman - 1979
1052 The C Programming Language – Kerighan, Ritchie - 1978
530 A complexity measure – McCabe - 1976
457 Fast pattern matching in strings – Knuth, Morris, et al. - 1977
393 A fast string searching algorithm – Boyer, Moore - 1977
201 Efficient randomized pattern-matching algorithms – Karp, Rabin - 1981
162 Toward a theory of the comprehension of computer programs – Brooks - 1983
156 Elements of Software Science – Halstead - 1977
131 The C information abstraction system – Chen, Nishimoto, et al. - 1990
131 The UNIX Programming Environment – KERNIGHAN, PIKE - 1984
94 TXL: A rapid prototyping system for programming language dialects – Cordy, Halpern-Hamu, et al. - 1991
61 Implementing relational views of programs – Linton - 1984
55 Software Interconnection Models – Perry - 1987
49 Knowledge guided parsing in video databases – Swanberg, Jain
40 Detecting plagiarism in student PASCAL programs – Jankowitz - 1988
37 Program concept recognition and transformation – Kozaczynski, Ning, et al. - 1992
29 A tool that detects plagiarism in Pascal programs – Grier - 1981
17 Automating Software Analysis and Testing Using a Program Transformation System – Kotik, Markosian - 1989
16 Measurements of program similarity in identical task environments – Berghel, Sallach - 1984
13 Object-Oriented Design Archaeology with CIA++. Computing Systems: The – Grass - 1992
10 Spatial and visual representations of software structures: A model for reverse engineering – Müller, Corrie, et al. - 1992
9 Source code retrieval using program patterns – Paul, Prakash - 1992
6 SCRUPLE: a reengineer's tool for source code search – Paul - 1992
5 A Transformational Approach to Generating ApplicationSpecific Environments – Garlan, Cai, et al. - 1992
4 Compare: A collusion detector for pascal – Madhavji - 1985
3 Software Change Analysis via Attributed Dependency Graphs – Al-Zoubi, Prakash - 1991
2 Microscope: A Program Analysis System – Ambras, O'Day - 1987
1 Theory and Design of Source Code Query Systems – Paul - 1994
1 Algorithms in C, chapter 20 – Sedgewick - 1990
1 About the Authors Santanu Paul received his B.Tech degree in Computer Science from the Indian Institute of Technology – Westfold - 1993