• DocumentCode
    492572
  • Title

    Mining library specifications using inductive logic programming

  • Author

    Sankaranarayanan, Sriram ; Ivancic, Franjo ; Gupta, Aarti

  • Author_Institution
    NEC Labs. America, Princeton, NJ
  • fYear
    2008
  • fDate
    10-18 May 2008
  • Firstpage
    131
  • Lastpage
    140
  • Abstract
    Software libraries organize useful functionalities in order to promote modularity and code reuse. A typical library is used by client programs through an application programming interface (API) that hides its internals from the client. Typically, the rules governing the correct usage of the API are documented informally. In many cases, libraries may have complex API usage rules and unclear documentation. As a result, the behaviour of the library under some corner cases may not be well understood by the programmer. Formal specifications provide a precise understanding of the API behaviour. We propose a methodology for learning interface specifications using Inductive Logic Programming (ILP). Our technique runs several unit tests on the library in order to generate relations describing the operation of the library. The data collected from these tests are used by an inductive learner to obtain rich Datalog/Prolog specifications. Such specifications capture essential properties of interest to the user. They may be used for applications such as reverse engineering the library internals or constructing checks on the application code to enforce proper API usage along with other properties of interest.
  • Keywords
    application program interfaces; data mining; formal specification; inductive logic programming; software libraries; Datalog-Prolog specification; application programming interface; formal specification; inductive logic programming; software library specification; Libraries; Logic programming; datalog; inductive logic programming; machine learning.; software specification; verification;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 2008. ICSE '08. ACM/IEEE 30th International Conference on
  • Conference_Location
    Leipzig
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-4244-4486-1
  • Electronic_ISBN
    0270-5257
  • Type

    conf

  • DOI
    10.1145/1368088.1368107
  • Filename
    4814124