31
views
0
recommends
+1 Recommend
0 collections
    0
    shares
      • Record: found
      • Abstract: found
      • Article: found
      Is Open Access

      Semantic Code Browsing

      Preprint
      , ,

      Read this article at

      Bookmark
          There is no author summary for this article yet. Authors can add summaries to their articles on ScienceOpen to make them more accessible to a non-specialist audience.

          Abstract

          Programmers currently enjoy access to a very high number of code repositories and libraries of ever increasing size. The ensuing potential for reuse is however hampered by the fact that searching within all this code becomes an increasingly difficult task. Most code search engines are based on syntactic techniques such as signature matching or keyword extraction. However, these techniques are inaccurate (because they basically rely on documentation) and at the same time do not offer very expressive code query languages. We propose a novel approach that focuses on querying for semantic characteristics of code obtained automatically from the code itself. Program units are pre-processed using static analysis techniques, based on abstract interpretation, obtaining safe semantic approximations. A novel, assertion-based code query language is used to express desired semantic characteristics of the code as partial specifications. Relevant code is found by comparing such partial specifications with the inferred semantics for program elements. Our approach is fully automatic and does not rely on user annotations or documentation. It is more powerful and flexible than signature matching because it is parametric on the abstract domain and properties, and does not require type definitions. Also, it reasons with relations between properties, such as implication and abstraction, rather than just equality. It is also more resilient to syntactic code differences. We describe the approach and report on a prototype implementation within the Ciao system. Under consideration for acceptance in TPLP.

          Related collections

          Most cited references13

          • Record: found
          • Abstract: not found
          • Article: not found

          Integrated program debugging, verification, and optimization using abstract interpretation (and the Ciao system preprocessor)

            Bookmark
            • Record: found
            • Abstract: not found
            • Article: not found

            Compile-time derivation of variable dependency using abstract interpretation

              Bookmark
              • Record: found
              • Abstract: not found
              • Article: not found

              An information retrieval approach for automatically constructing software libraries

                Bookmark

                Author and article information

                Journal
                2016-08-08
                Article
                1608.02565
                4db7431b-e517-4421-916a-ce0d51420bfa

                http://arxiv.org/licenses/nonexclusive-distrib/1.0/

                History
                Custom metadata
                Paper presented at the 32nd International Conference on Logic Programming (ICLP 2016), New York City, USA, 16-21 October 2016, 15 pages, LaTeX, 4 PDF figures, 2 tables
                cs.PL

                Programming languages
                Programming languages

                Comments

                Comment on this article