IP Library › Granted Patent US 8,719,805
Granted Patent B2
US 8,719,805 · App. 13/468,007 · Granted May 6, 2014

Method and system for presenting and analyzing software source code through intermediate representation

Inventor: Kan Zhao (Dublin, OH)
Assignee: Kan Zhao
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,719,805
App. No.
13/468,007
Granted
May 6, 2014
Kind
B2
Abstract

The present invention provides a method and system for producing intermediate representation of source code listings with possibly mixed syntaxes to assist software development applications in presenting and analyzing the source code listings through reading the intermediate representation. A source code processor calls Application Programming Interfaces (APIs) to preserve source code information, which includes intermediate representation data sets and is preferably stored in a file-based repository. The source code processor is of a compiler, a preprocessor, a parser, or a comment document processor. The data sets capture lexical, syntax and semantic information of source code construct elements, and comprise of location, processor identification, construct category, and attribute data. A software development environment through a source code search engine is able to present source code construct elements, outlines, and symbol references from software packages over a plurality of distributed servers in a network such as the Internet.

Claims (44)

1. A method implemented in a computer system for collecting source code information using source code intermediate representation (SIR), the method comprising:

providing a data storage;

receiving a source code intermediate representation which comprises a plurality of SIR data sets for a plurality of constructs of a source code listing, wherein a SIR data set of the plurality of SIR data sets captures data fields comprising a location of a construct, a category for the SIR data set, and a data attribute describing the construct;

receiving a plurality of listing identifiers comprising a listing identifier for the source code listing;

receiving one or more processor identifiers comprising a processor identifier for a source code processor that uses a syntax of the source code listing to analyze the source code listing;

traversing the plurality of SIR data sets to find a subset of the plurality of SIR data sets using one or more SIR categories, wherein a category of each SIR data set of the subset of the plurality of SIR data sets is among the one or more SIR categories;

generating a derived source code information in a predetermined data format using the subset of the plurality of SIR data sets, and the listing identifier;

saving the derived source code information into the data storage;

receiving a search request with search criteria comprising a symbol of the source code listing;

outputting a search result comprising the symbol with a reference link using the derived source code information stored in the data storage; and

delivering the search result in response to the search request.

2. The method of claim 1 , wherein the one or more SIR categories comprise an identity of symbol definition and a relationship of symbol reference, and the derived source code information comprises a plurality of symbol definitions and references.

3. The method of claim 1 , wherein the one or more SIR categories comprise a relationship of class inheritance, and the derived source code information comprises a class inheritance graph.

4. The method of claim 1 , wherein the one or more SIR categories comprise a relationship of method call, and the derived source code information comprises a method call graph.

5. The method of claim 1 , further comprising:

receiving a data content comprising a description of a source code package comprising the source code listing.

6. The method of claim 1 , further comprising:

providing a file system which stores the source code intermediate representation.

7. The method of claim 1 , further comprising:

receiving a plurality of network addresses of computer servers that host source code packages; and

making a server request to a network address of said plurality of network addresses for downloading the source code intermediate representation.

8. A computer system for collecting source code information using source code intermediate representation (SIR), the computer system comprising:

a data storage; and

a data collection application which, when executed, causes the computer system to perform the following method:

receiving a source code intermediate representation which comprises a plurality of SIR data sets for a plurality of constructs of a source code listing, wherein a SIR data set of the

plurality of SIR data sets captures data fields comprising a location of a construct, a category for the SIR data set, and a data attribute describing the construct;

receiving a plurality of listing identifiers comprising a listing identifier for the source code listing;

receiving one or more processor identifiers comprising a processor identifier for a source code processor that uses a syntax of the source code listing to analyze the source code listing;

traversing the plurality of SIR data sets to find a subset of the plurality of SIR data sets using one or more SIR categories, wherein a category of each SIR data set of the subset of the plurality of SIR data sets is among the one or more SIR categories;

generating a derived source code information in a predetermined data format using the subset of the plurality of SIR data sets, and the listing identifier;

saving the derived source code information into the data storage;

receiving a search request with search criteria comprising a symbol of the source code listing;

outputting a search result comprising the symbol with a reference link using the derived source code information stored in the data storage; and

delivering the search result in response to the search request.

9. The system of claim 8 , wherein the one or more SIR categories comprise an identity of symbol definition and a relationship of symbol reference, and the derived source code information comprises a plurality of symbol definitions and references.

10. The system of claim 8 , wherein the one or more SIR categories comprise a relationship of class inheritance, and the derived source code information comprises a class inheritance graph.

11. The system of claim 8 , wherein the one or more SIR categories comprise a relationship of method call, and the derived source code information comprises a method call graph.

12. The system of claim 8 , the data collection application further to perform:

receiving a data content comprising a description of a source code package comprising the source code listing.

13. The system of claim 8 , the data collection application further to perform:

providing a file system which stores the source code intermediate representation.

14. The system of claim 8 , the data collection application further to perform:

receiving a plurality of network addresses of computer servers that host source code packages; and

making a server request to a network address of said plurality of network addresses for downloading the source code intermediate representation.

Continuity (2)
Continuation 11971904 · Jan 9, 2008
Related Publication 20120222021A1 · Aug 30, 2012