A FRAMEWORK FOR SOURCE CODE SEARCH USING PROGRAM PATTERNS

被引:81
|
作者
PAUL, S
PRAKASH, A
机构
[1] Software Systems Research Laboratory, Dept. of Electrical Engineering & Computer Science, University of Michigan, Ann Arbor, MI
关键词
REVERSE ENGINEERING; SOFTWARE MAINTENANCE; SOFTWARE REENGINEERING; PROGRAM UNDERSTANDING; PATTERN MATCHING; QUERY LANGUAGE;
D O I
10.1109/32.295894
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 pattern-based query processors in their tool-kits. 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.
引用
收藏
页码:463 / 475
页数:13
相关论文
共 50 条
  • [21] Mining Patterns in Source Code Using Tree Mining Algorithms
    Pham, Hoang Son
    Nijssen, Siegfried
    Mens, Kim
    Di Nucci, Dario
    Molderez, Tim
    De Roover, Coen
    Fabry, Johan
    Zaytsev, Vadim
    Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2019, 11828 LNAI : 471 - 480
  • [22] Using MPI communication patterns to guide source code transformations
    Preissl, Robert
    Schulz, Martin
    Kranzlmueller, Dieter
    de Supinski, Bronis R.
    Quinlan, Daniel J.
    COMPUTATIONAL SCIENCE - ICCS 2008, PT 3, 2008, 5103 : 253 - +
  • [23] Mining Patterns in Source Code Using Tree Mining Algorithms
    Pham, Hoang Son
    Nijssen, Siegfried
    Mens, Kim
    Di Nucci, Dario
    Molderez, Tim
    De Roover, Coen
    Fabry, Johan
    Zaytsev, Vadim
    DISCOVERY SCIENCE (DS 2019), 2019, 11828 : 471 - 480
  • [24] Leveraging source code search for reuse
    Happel, Hans-Joerg
    Schuster, Thomas
    Szulman, Peter
    HIGH CONFIDENCE SOFTWARE REUSE IN LARGE SYSTEMS, PROCEEDINGS, 2008, 5030 : 360 - 371
  • [25] ANNE: Improving Source Code Search using Entity Retrieval Approach
    Vinayakarao, Venkatesh
    Sarma, Anita
    Purandare, Rahul
    Jain, Shuktika
    Jain, Saumya
    WSDM'17: PROCEEDINGS OF THE TENTH ACM INTERNATIONAL CONFERENCE ON WEB SEARCH AND DATA MINING, 2017, : 211 - 220
  • [26] Do developers search for source code examples using multiple facts?
    Holmes, Reid
    2009 ICSE WORKSHOP ON SEARCH-DRIVEN DEVELOPMENT-USERS, INFRASTRUCTURE, TOOLS AND EVALUATION, 2009, : 13 - 16
  • [27] ASAP: A Source Code Authorship Program
    Matthew F. Tennyson
    International Journal on Software Tools for Technology Transfer, 2019, 21 : 471 - 484
  • [28] ASAP: A Source Code Authorship Program
    Tennyson, Matthew F.
    INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2019, 21 (04) : 471 - 484
  • [29] Source Code Partitioning in Program Optimization
    Bolat, Murat
    Kelsey, Kirk
    Li, Xiaoming
    Gao, Guang R.
    2011 IEEE 17TH INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED SYSTEMS (ICPADS), 2011, : 56 - 63
  • [30] Browsing and searching source code of applications written using a GUI framework
    Michail, A
    ICSE 2002: PROCEEDINGS OF THE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 2002, : 327 - 337