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 条
  • [1] A FRAMEWORK FOR SOURCE CODE SEARCH USING PROGRAM PATTERNS
    DEVANBU, P
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1995, 21 (12) : 1009 - 1010
  • [2] Towards Summarizing Program Statements in Source Code Search
    Marin, Victor J.
    Bansal, Iti
    Rivero, Carlos R.
    PROCEEDINGS OF THE 35TH ANNUAL ACM SYMPOSIUM ON APPLIED COMPUTING (SAC'20), 2020, : 118 - 120
  • [3] A framework for measuring and evaluating program source code quality
    Washizaki, Hironori
    Namiki, Rieko
    Fukuoka, Tomoyuki
    Harada, Yoko
    Watanabe, Hiroyuki
    PRODUCT-FOCUSED SOFTWARE PROCESS IMPROVEMENT, PROCEEDINGS, 2007, 4589 : 284 - +
  • [4] Using Structured Queries for Source Code Search
    Eddy, Brian P.
    Kraft, Nicholas A.
    2014 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME), 2014, : 431 - 435
  • [5] Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
    Bettenburg, Nicolas
    Thomas, Stephen W.
    Hassan, Ahmed E.
    2012 16TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING (CSMR), 2012, : 319 - 328
  • [6] Towards a Framework for Generating Program Dependence Graphs from Source Code
    Marin, Victor J.
    Rivero, Carlos R.
    PROCEEDINGS OF THE 4TH ACM SIGSOFT INTERNATIONAL WORKSHOP ON SOFTWARE ANALYTICS (SWAN'18), 2018, : 30 - 36
  • [7] STATIC ANALYSIS OF PROGRAM SOURCE CODE USING EDSA
    VANEK, LI
    CULP, MN
    CONFERENCE ON SOFTWARE MAINTENANCE - 1989, PROCEEDINGS, 1989, : 192 - 199
  • [8] Using Code Skeleton Patterns for Open Source Reuse
    Nam, Seungwoo
    Kim, Doohwan
    Hong, Jang-Eui
    ADVANCES IN COMPUTER SCIENCE AND UBIQUITOUS COMPUTING, 2018, 474 : 1091 - 1096
  • [9] Retrieval on Source Code: A Neural Code Search
    Sachdev, Saksham
    Li, Hongyu
    Luan, Sifei
    Kim, Seohyun
    Sen, Koushik
    Chandra, Satish
    MAPL'18: PROCEEDINGS OF THE 2ND ACM SIGPLAN INTERNATIONAL WORKSHOP ON MACHINE LEARNING AND PROGRAMMING LANGUAGES, 2018, : 31 - 41
  • [10] Incremental Annotate-Generalize-Search Framework for Interactive Source Code Comprehension
    Nakayama, Ken
    Tano, Shun'ichi
    Hashiyama, Tomonori
    Sakai, Eko
    2017 IEEE 41ST ANNUAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE (COMPSAC), VOL 1, 2017, : 311 - 316