Programming today regularly involves searching for source code online, whether through a general search engine such as Google or a specialized code search engine such as SearchCode, Ohloh, or GitHub. Searching typically is an iterative process, with developers adjusting the keywords they use based on the results of the previous query. However, searching in this manner is not ideal, because just using keywords places limits on what developers can express as well as the overall interaction that is required. Based on the observation that the results from one query create a context in which a next is formulated, we present CodeExchange, a new code search engine that we developed to explicitly leverage this context to support fluid, expressive modifications of queries.



Query recommendations: automatic recommendations for refining the query ​at each step of an iterative search

Critiques: supports refining the query relative to undesirable properties of the results​

Language constructs: supports refining the query with desirable parts of the results​

Query parts: supports fluidly turning on/off parts of a query​

Key publications

  • L. Martie, T. D. LaToza, and A. van der Hoek, “CodeExchange: Supporting Reformulation of Code Queries in Context”, Proceedings of the 30th International Conference on Automated Software Engineering, November 2015, pages 24-35.
  • L. Martie and A. van der Hoek, “Context in Code Search”, Proceedings of the 1st International Workshop on Context in Software Development Workshop (CSD), 2014 (4 pages).
  • L. Martie and A. van der Hoek, Toward Social-Technical Code Search, Toward Social-Technical Code Search Sixth International Workshop on Cooperative and Human Aspects of Software Engineering, May 2013, pages 101–104.


Current developers