Patent ID: 8499290

Claim:
At a computer system including one or more processors and system memory, a computer-implemented method for converting a portion of a spreadsheet into a compilable function, the method comprising acts of: executing at a computer system a spreadsheet application that instantiates one or more spreadsheets for processing by the computer system; selecting from at least a first cell in a page of a spreadsheet a result value representing the results of executing a plurality of formulas identified within one or more cells of the spreadsheet; deriving from the selected result value one or more corresponding parameters for the result value; using the derived parameters for the result value to parse the plurality of formulas from which the result value is obtained in order to identify other cells of the spreadsheet that contain intermediate values related to the result value, the identified intermediate values corresponding to execution of one or a subset of the plurality of formulas; processing the identified intermediate values in order to identify data in further cells related to the intermediate values, where the identified data represents comments describing the identified intermediate values and/or indications of said one or subset of the plurality of formulas used in generating the identified intermediate values, and then using the identified data to generate local variables for use in a programming language, the local variables corresponding to the intermediate values contained in said identified other cells of the spreadsheet; and using the local variables and said one or subset of the plurality of formulas to generate a semantic tree representing a new callable function that corresponds to a subset of the spreadsheet represented by those cells containing the selected result data, the identified intermediate values and identified data, the new callable function of the semantic tree being compilable into executable code configured to calculate the selected result value when the new function is called and executed.