IP Library Granted Patent US 8,191,045
Granted Patent B2
US 8,191,045 · App. 12/050,624 · Granted May 29, 2012

Mining library specifications using inductive learning

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,191,045
App. No.
12/050,624
Granted
May 29, 2012
Kind
B2
Abstract

A system and method for mining program specifications includes generating unit tests to exercise functions of a library through an application program interface (API), based upon an (API) signature. A response to the unit tests is determined to generate a transaction in accordance with a target behavior. The transaction is converted into a relational form, and specifications of the library are learned using an inductive logic programming tool from the relational form of the transaction.

Claims (25)

1. A method for mining program specifications, comprising:

based upon an application program interface (API) signature, generating unit tests to exercise functions of a library through the API, wherein the generating unit tests are based upon instrumentation to define interests and a target behavior;

determining a response to the unit tests to generate a transaction in accordance with the target behavior;

converting the transaction into a relational form using a processor; and

learning specifications of the library using an inductive logic programming tool from the relational form of the transaction, wherein learning specifications includes expressing an occurrence of the target behavior in terms of a usage pattern of the unit tests.

2. The method as recited in claim 1 , wherein generating unit tests includes generating random unit tests.

3. The method as recited in claim 1 , wherein learning specifications of the library includes describing operation of the library without access to source code of the library.

4. The method as recited in claim 1 , further comprising reverse engineering library internals using learned specifications.

5. The method as recited in claim 1 , wherein learning specifications includes learning declarative specifications from relational data obtained by running the transaction.

6. A system for mining program specifications, comprising:

a unit test generator configured to generate unit tests to exercise functions of a library through an application program interface (API), wherein the generating unit tests are based upon instrumentation to define interests and a target behavior;

a compiler configured to compile and link library responses to the unit tests and user instrumentation which provides target behavior to generate transactions; and

an inductive logic programming tool configured to convert the transactions into a relational form and learn specifications of the library using from the relational form of the transaction, wherein learning specifications includes expressing an occurrence of the target behavior in terms of a usage pattern of the unit tests.

7. The system as recited in claim 6 , wherein the test generator generates random unit tests.

8. The system as recited in claim 6 , wherein specifications are learned from the library in terms of a usage pattern of the unit tests.

9. The system as recited in claim 6 , wherein the specifications of the library include operating system functionalities, data structure implementations, utilities and database processing.

10. A non-transitory computer readable medium comprising a computer readable program for mining program specifications, wherein the computer readable program when executed on a computer causes the computer perform the steps of:

based upon an application program interface (API) signature, generating unit tests to exercise functions of a library through the API, wherein the generating unit tests are based upon instrumentation to define interests and a target behavior;

determining a response to the unit tests to generate a transaction in accordance with a the target behavior;

converting the transaction into a relational form; and

learning specifications of the library using an inductive logic programming tool from the relational form of the transaction, wherein learning specifications includes expressing an occurrence of the target behavior in terms of a usage pattern of the unit tests.

11. The non-transitory computer readable medium as recited in claim 10 , wherein generating unit tests includes generating random unit tests.

12. The non-transitory computer readable medium as recited in claim 10 , wherein learning specifications of the library includes describing operation of the library without access to source code of the library.

13. The non-transitory computer readable medium as recited in claim 10 , further comprising reverse engineering library internals using learned specifications.

14. The non-transitory computer readable medium as recited in claim 10 , wherein learning specifications includes learning declarative specifications from relational data obtained by running the transaction.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE 8223797 ADD 8233797 PREVIOUSLY RECORDED ON REEL 030156 FRAME 0037. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 30, 2017
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 042587/0845 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2013
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 030156/0037 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2008
From: SANKARANARAYANAN, SRIRAM; IVANCIC, FRANJO; GUPTA, AARTI
To: NEC LABORATORIES AMERICA, INC.
Reel/Frame 020796/0029 →