Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Elnar Hajiyev is active.

Publication


Featured researches published by Elnar Hajiyev.


european conference on object oriented programming | 2006

CodeQuest : scalable source code queries with datalog

Elnar Hajiyev; Mathieu Verbaere; Oege de Moor

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.


source code analysis and manipulation | 2007

Keynote Address: .QL for Source Code Analysis

O. de Moor; Mathieu Verbaere; Elnar Hajiyev

Many tasks in source code analysis can be viewed as evaluating queries over a relational representation of the code. Here we present an object-oriented query language, named .QL, and demonstrate its use for general navigation, bug finding and enforcing coding conventions. We then focus on the particular problem of specifying metrics as queries.


Generative and Transformational Techniques in Software Engineering II | 2007

.QL: Object-Oriented Queries Made Easy

Oege de Moor; Damien Sereni; Mathieu Verbaere; Elnar Hajiyev; Pavel Avgustinov; Torbjörn Ekman; Neil Ongkingco; Julian Tibble

These notes are an introduction to .QL, an object-oriented query language for any type of structured data. We illustrate the use of .QL in assessing software quality, namely to find bugs, to compute metrics and to enforce coding conventions. The class mechanism of .QL is discussed in depth, and we demonstrate how it can be used to build libraries of reusable queries.


symposium on principles of programming languages | 2007

Semantics of static pointcuts in aspectJ

Pavel Avgustinov; Elnar Hajiyev; Neil Ongkingco; Oege de Moor; Damien Sereni; Julian Tibble; Mathieu Verbaere

In aspect-oriented programming, one can intercept events by writing patterns called pointcuts. The pointcut language of the most popular aspect-oriented programming language, AspectJ, allows the expression of highly complex properties of the static program structure.We present the first rigorous semantics of the AspectJ pointcut language, by translating static patterns into safe ( i.e. range-restricted and stratified) Datalog queries. Safe Datalog is a logic language like Prolog, but it does not have data structures; consequently it has a straightforward least fixpoint semantics and all queries terminate.The translation from pointcuts to safe Datalog consists of a set of simple conditional rewrite rules, implemented using the Stratego system. The resulting queries are themselves executable with the CodeQuest system. We present experiments indicating that direct execution of our semantics is not prohibitively expensive.


runtime verification | 2006

Aspects for trace monitoring

Pavel Avgustinov; Eric Bodden; Elnar Hajiyev; Laurie J. Hendren; Ondrej Lhoták; Oege de Moor; Neil Ongkingco; Damien Sereni; Ganesh Sittampalam; Julian Tibble; Mathieu Verbaere

A trace monitor observes the sequence of events in a system, and takes appropriate action when a given pattern occurs in that sequence. Aspect-oriented programming provides a convenient framework for writing such trace monitors. We provide a brief introduction to aspect-oriented programming in AspectJ. AspectJ only provides support for triggering extra code with single events, and we present a new language feature (named tracematches) that allows one to directly express patterns that range over the whole current trace. Implementing this feature efficiently is challenging, and we report on our work towards that goal. Another drawback of AspectJ is the highly syntactic nature of the event patterns, often requiring the programmer to list all methods that have a certain property, rather than specifying that property itself. We argue that Datalog provides an appropriate notation for describing such properties. Furthermore, all of the existing patterns in AspectJ can be reduced to Datalog via simple rewrite rules. This research is carried out with abc, an extensible optimising compiler for AspectJ, which is freely available for download.


conference on object-oriented programming systems, languages, and applications | 2005

CodeQuest: querying source code with datalog

Elnar Hajiyev; Mathieu Verbaere; Oege de Moor; Kris De Volder

We describe CodeQuest, a system for querying source code. It combines two previous proposals, namely the use of logic programming and database system. Experiments (on projects ranging from 3KSLOC to 1300KSLOC) confirm that for this application, a query language based on DataLog strikes the right balance between expressiveness and scalability.


conference on object oriented programming systems languages and applications | 2007

Improve software quality with SemmleCode: an eclipse plugin for semantic code search

Mathieu Verbaere; Elnar Hajiyev; Oege de Moor

Navigate code, find bugs, compute metrics, check style rules, and enforce coding conventions in Eclipse with SemmleCode. SemmleCode is a new free Eclipse plugin that allows you to phrase these tasks as queries over the codebase - it thus takes the search facilities in Eclipse to a whole new level. A large library of queries for common operations is provided, including metrics and Java EE style rules. Query results can be displayed as a tree view, a table view, in the problem view, as charts or graphs, all with links to the source code.


conference on object-oriented programming systems, languages, and applications | 2006

Datalog as a pointcut language in aspect-oriented programming

Elnar Hajiyev; Neil Ongkingco; Pavel Avgustinov; Oege de Moor; Damien Sereni; Julian Tibble; Mathieu Verbaere

AspectJs pointcut language is complex, yet often not expressive enough to directly capture a desired property. Prolog has been suggested as an alternative, but Prolog queries may not terminate, and they tend to be verbose. We solve expressiveness, termination and verbosity by using Datalog plus rewrite rules.


partial evaluation and semantic-based program manipulation | 2007

Object-oriented queries over software systems: (abstract of invited talk)

Oege de Moor; Elnar Hajiyev; Mathieu Verbaere

Code queries are useful for enforcing coding conventions, navigating a large code base, and for identifying locations to refactor. The program understanding community has long advocated the use of a relational database to facilitate such code queries [3, 9]. While the idea has found some uptake in industry [2, 11], relational queries over code have not yet found widespread use.


mathematics of program construction | 2006

Aspects and data refinement

Pavel Avgustinov; Eric Bodden; Elnar Hajiyev; Oege de Moor; Neil Ongkingco; Damien Sereni; Ganesh Sittampalam; Julian Tibble

We give an introduction to aspect-oriented programming from the viewpoint of data refinement. Some data refinements are conveniently expressed via aspects. Unlike traditional programming language features for data refinement, aspects conceptually transform run-time events, not compile-time programs.

Collaboration


Dive into the Elnar Hajiyev's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Kris De Volder

University of British Columbia

View shared research outputs
Researchain Logo
Decentralizing Knowledge