The relational model with relation-valued attributes
Information Systems
Identity, equality and query optimization
Lecture notes in computer science on Advances in object-oriented database systems
An object-oriented query algebra
Data Engineering
The C Information Abstraction System
IEEE Transactions on Software Engineering
Adding relational query facilities to software development environments
Proceedings of the Second European Symposium on Programming
The programmer's apprentice
Program understanding: challenge for the 1990's
IBM Systems Journal
A program understanding support environment
IBM Systems Journal
An algebraic model of subtype and inheritance
Advances in database programming languages
Queries and query processing in object-oriented database systems
ACM Transactions on Information Systems (TOIS)
The POSTGRES next generation database management system
Communications of the ACM
Visualizing and querying software structures
ICSE '92 Proceedings of the 14th international conference on Software engineering
GENOA: a customizable language- and front-end independent code analyzer
ICSE '92 Proceedings of the 14th international conference on Software engineering
Extending relational database technology for new applications
IBM Systems Journal
Design and implementation of query languages for program databases
Design and implementation of query languages for program databases
Program view generation and change analysis using attributed dependency graphs
Journal of Software Maintenance: Research and Practice
The concept assignment problem in program understanding
ICSE '93 Proceedings of the 15th international conference on Software Engineering
PDM: an object-oriented data model
OODS '86 Proceedings on the 1986 international workshop on Object-oriented database systems
A relational model of data for large shared data banks
Communications of the ACM
Principles of Database Systems
Principles of Database Systems
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
A Framework for Source Code Search Using Program Patterns
IEEE Transactions on Software Engineering
A Framework for Partial Data Flow Analysis
ICSM '94 Proceedings of the International Conference on Software Maintenance
Implementing relational views of programs
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Design of Flexible Static Program Analyzers with PQL
IEEE Transactions on Software Engineering
An Extensible System for Source Code Analysis
IEEE Transactions on Software Engineering
GENOA—a customizable, front-end-retargetable source code analysis framework
ACM Transactions on Software Engineering and Methodology (TOSEM)
A System for Generating Reverse Engineering Tools: A Case Study of Software Modularisation
Automated Software Engineering
Extracting Business Rules from Information Systems
BT Technology Journal
Experimental evaluation of hypertext access structures
Journal of Software Maintenance: Research and Practice
From relational program dependencies to hypertextual access structures
Nordic Journal of Computing
Querying Data-Intensive Programs for Data Design
CAiSE '01 Proceedings of the 13th International Conference on Advanced Information Systems Engineering
Component-Oriented Programming as an AI-Planning Problem
IEA/AIE '02 Proceedings of the 15th international conference on Industrial and engineering applications of artificial intelligence and expert systems: developments in applied artificial intelligence
A model independent source code repository
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Representing and Accessing Extracted Information
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Modal Logic as a Design Notation
IWSSD '98 Proceedings of the 9th international workshop on Software specification and design
Specifying framework constraints with FCL
CASCON '04 Proceedings of the 2004 conference of the Centre for Advanced Studies on Collaborative research
Hypertext support for the information needs of software maintainers
Journal of Software Maintenance and Evolution: Research and Practice
CodeQuest: querying source code with datalog
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using SCL to Specify and Check Design Intent in Source Code
IEEE Transactions on Software Engineering
Answering conceptual queries with Ferret
Proceedings of the 30th international conference on Software engineering
.QL: Object-Oriented Queries Made Easy
Generative and Transformational Techniques in Software Engineering II
Supporting developers with natural language queries
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Using information fragments to answer the questions developers ask
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Cloud algebra for cloud database management system
Proceedings of the Second International Conference on Computational Science, Engineering and Information Technology
Evaluating a query framework for software evolution data
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Hi-index | 0.01 |
Querying source code is an essential aspect of a variety of software engineering tasks such as program understanding, reverse engineering, program structure analysis, and program flow analysis. In this paper, we present and demonstrate the use of an algebraic source code query technique that blends expressive power with query compactness. The query framework of Source Code Algebra, or SCA, permits users to express complex source code queries and views as algebraic expressions. Queries are expressed on an extensible, object-oriented database that stores program source code. The SCA algebraic approach offers multiple benefits such as an applicative query language, high expressive power, seamless handling of structural and flow information, clean formalism, and potential for query optimization. We present a case study where SCA expressions are used to query a program in terms of program organization, resource flow, control flow, metrics, and syntactic structure. Our experience with an SCA-based prototype query processor indicates that an algebraic approach to source code queries combines the benefits of expressive power and compact query formulation.