Magic sets and other strange ways to implement logic programs (extended abstract)
PODS '86 Proceedings of the fifth ACM SIGACT-SIGMOD symposium on Principles of database systems
The C Information Abstraction System
IEEE Transactions on Software Engineering
A Datalog interface for SQL (abstract)
CSC '90 Proceedings of the 1990 ACM annual conference on Cooperation
Visualizing and querying software structures
ICSE '92 Proceedings of the 14th international conference on Software engineering
XSB as an efficient deductive database engine
SIGMOD '94 Proceedings of the 1994 ACM SIGMOD international conference on Management of data
Practical program analysis using general purpose logic programming systems—a case study
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
A calculational approach to mathematical induction
Theoretical Computer Science
Design of Flexible Static Program Analyzers with PQL
IEEE Transactions on Software Engineering
Data on the Web: from relations to semistructured data and XML
Data on the Web: from relations to semistructured data and XML
Foundations of Databases: The Logical Level
Foundations of Databases: The Logical Level
Logic and Data Bases
Arranging language features for more robust pattern-based crosscuts
Proceedings of the 2nd international conference on Aspect-oriented software development
Navigating and querying code without getting lost
Proceedings of the 2nd international conference on Aspect-oriented software development
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Elements of a Relational Theory of Datatypes
Proceedings of the IFIP TC2/WG 2.1 State-of-the-Art Report on Formal Program Development
Implementing relational views of programs
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Architecture of the XL C++ browser
CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 1
JQuery: finding your way through tangled code
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
Context-sensitive program analysis as database queries
Proceedings of the twenty-fourth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Comprehensive Software Understanding with SEXTANT
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Finding application errors and security flaws using PQL: a program query language
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ASTLOG: a language for examining abstract syntax trees
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
Polyglot: an extensible compiler framework for Java
CC'03 Proceedings of the 12th international conference on Compiler construction
Using datalog with binary decision diagrams for program analysis
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
A framework for implementing pluggable type systems
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Scripting refactorings with JunGL
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Datalog as a pointcut language in aspect-oriented programming
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Semantics of static pointcuts in aspectJ
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Object-oriented queries over software systems: (abstract of invited talk)
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Behavioral similarity matching using concrete source code templates in logic queries
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A comparison of logic-based infrastructures for concern detection and extraction
Proceedings of the 3rd workshop on Linking aspect technology and evolution
A software metric for coherence of class roles in Java programs
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Automatic extraction of framework-specific models from framework-based application code
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
View-based maintenance of graphical user interfaces
Proceedings of the 7th international conference on Aspect-oriented software development
Answering conceptual queries with Ferret
Proceedings of the 30th international conference on Software engineering
Defining and continuous checking of structural program dependencies
Proceedings of the 30th international conference on Software engineering
Adding magic to an optimising datalog compiler
Proceedings of the 2008 ACM SIGMOD international conference on Management of data
.QL: Object-Oriented Queries Made Easy
Generative and Transformational Techniques in Software Engineering II
A Logic Programming Approach to Scientific Workflow Provenance Querying
Provenance and Annotation of Data and Processes
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
Fast extraction of high-quality framework-specific models from application code
Automated Software Engineering
Client-based cohesion metrics for Java programs
Science of Computer Programming
Sourcerer: mining and searching internet-scale software repositories
Data Mining and Knowledge Discovery
An integrated crosscutting concern migration strategy and its semi-automated application to JHotDraw
Automated Software Engineering
DeFacto: Language-Parametric Fact Extraction from Source Code
Software Language Engineering
Discovering and representing systematic code changes
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Exception analysis and points-to analysis: better together
Proceedings of the eighteenth international symposium on Software testing and analysis
Implementing Reflective Access Control in SQL
Proceedings of the 23rd Annual IFIP WG 11.3 Working Conference on Data and Applications Security XXIII
Strictly declarative specification of sophisticated points-to analyses
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Executing code in the past: efficient in-memory object graph versioning
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
JavaCOP: Declarative pluggable types for java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Enforcing structural regularities in software using IntensiVE
Science of Computer Programming
A declarative framework for analysis and optimization
CC'07 Proceedings of the 16th international conference on Compiler construction
Graph-based verification of static program constraints
Proceedings of the 2010 ACM Symposium on Applied Computing
Comprehension and dependency analysis of aspect-oriented programs through declarative reasoning
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
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
Graph queries through datalog optimizations
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Precise complexity analysis for efficient datalog queries
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
A prolog-based framework for search, integration and empirical analysis on software evolution data
Proceedings of the 3rd International Workshop on Search-Driven Development: Users, Infrastructure, Tools, and Evaluation
More efficient datalog queries: subsumptive tabling beats magic sets
Proceedings of the 2011 ACM SIGMOD International Conference on Management of data
Datalog and emerging applications: an interactive tutorial
Proceedings of the 2011 ACM SIGMOD International Conference on Management of data
Efficient storage and fast querying of source code
Information Systems Frontiers
A logical toolbox for ontological reasoning
ACM SIGMOD Record
The SOUL tool suite for querying programs in symbiosis with Eclipse
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
FATES'06/RV'06 Proceedings of the First combined international conference on Formal Approaches to Software Testing and Runtime Verification
Automatic incrementalization of prolog based static analyses
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Datalog-Based program analysis with BES and RWL
Datalog'10 Proceedings of the First international conference on Datalog Reloaded
Using datalog for fast and easy program analysis
Datalog'10 Proceedings of the First international conference on Datalog Reloaded
Datalog+/-: a family of languages for ontology querying
Datalog'10 Proceedings of the First international conference on Datalog Reloaded
Querying source code with natural language
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Efficient and effective handling of exceptions in java points-to analysis
CC'13 Proceedings of the 22nd international conference on Compiler Construction
Reify your collection queries for modularity and speed!
Proceedings of the 12th annual international conference on Aspect-oriented software development
Hybrid context-sensitivity for points-to analysis
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 12th international conference on Generative programming: concepts & experiences
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.00 |
Source code querying tools allow programmers to explore relations between different parts of the code base. This paper describes such a tool, named codeQuest. It combines two previous proposals, namely the use of logic programming and database systems. As the query language we use safe Datalog, which was originally introduced in the theory of databases. That provides just the right level of expressiveness; in particular recursion is indispensable for source code queries. Safe Datalog is like Prolog, but all queries are guaranteed to terminate, and there is no need for extra-logical annotations. Our implementation of Datalog maps queries to a relational database system. We are thus able to capitalise on the query optimiser provided by such a system. For recursive queries we implement our own optimisations in the translation from Datalog to SQL. Experiments confirm that this strategy yields an efficient, scalable code querying system.