Abstract:
Searching source code is one of the most common activities of software engineers. Text editors and other support tools normally provide searching based on lexical express...Show MoreMetadata
Abstract:
Searching source code is one of the most common activities of software engineers. Text editors and other support tools normally provide searching based on lexical expressions (regular expressions). Some more advanced editors provide a way to add semantic direction to some of the searches. Recent research has focused on advancing the semantic options available to text-based queries. Most of these results make use of heavy weight relational database management technology. In this paper we explore the extension of lexical pattern matching by means of light weight relational queries, implemented using a tool called grok. A "semantic grep" (sgrep) command was implemented, which translates queries in a mixed algebraic and lexical language into a combination of grok queries and grep commands. This paper presents the design decisions behind sgrep, and example queries that can be posed. The paper concludes with a case study in which sgrep was used to identify architectural anomalies in PostgreSQL, an open source Database Management System.
Date of Conference: 29-01 November 2002
Date Added to IEEE Xplore: 29 January 2003
Print ISBN:0-7695-1799-4
Print ISSN: 1095-1350
Keywords assist with retrieval of results and provide a means to discovering other relevant content. Learn more.
- IEEE Keywords
- Index Terms
- Regular Expressions ,
- Source Code ,
- Light Weight ,
- Pattern Matching ,
- Software Engineering ,
- Relational Database ,
- Design Decisions ,
- Database Management ,
- Text Editor ,
- Navigation ,
- Usability ,
- Types Of Relationships ,
- Distribution System ,
- Browsing ,
- Development Environment ,
- Level Of Abstraction ,
- Subtree ,
- Reverse Engineering ,
- Query Results ,
- Implementation Considerations ,
- Function Calls ,
- Non-functional Requirements ,
- Conceptual Architecture ,
- Transitive Closure ,
- Integrated Development Environment ,
- Language Patterns ,
- Architecture Diagram
Keywords assist with retrieval of results and provide a means to discovering other relevant content. Learn more.
- IEEE Keywords
- Index Terms
- Regular Expressions ,
- Source Code ,
- Light Weight ,
- Pattern Matching ,
- Software Engineering ,
- Relational Database ,
- Design Decisions ,
- Database Management ,
- Text Editor ,
- Navigation ,
- Usability ,
- Types Of Relationships ,
- Distribution System ,
- Browsing ,
- Development Environment ,
- Level Of Abstraction ,
- Subtree ,
- Reverse Engineering ,
- Query Results ,
- Implementation Considerations ,
- Function Calls ,
- Non-functional Requirements ,
- Conceptual Architecture ,
- Transitive Closure ,
- Integrated Development Environment ,
- Language Patterns ,
- Architecture Diagram