IP Library Granted Patent US 11,868,231
Granted Patent B2
US 11,868,231 · App. 17/513,451 · Granted Jan 9, 2024

System and method for evaluating code by a hybrid of local and cloud-based computers

Inventors: Kevin James Jones (Harrogate, GB); Simon Kristiansen Ejsing (Redmond, WA)
Assignee: Certinia Inc.
G06F11/3604G06F8/33G06F8/427G06F8/433G06F8/437G06F8/75G06F11/3616G06F11/3664G06F11/3692G06N20/00H04L67/10H04L67/34
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 11,868,231
App. No.
17/513,451
Granted
Jan 9, 2024
Kind
B2
Abstract

A technique is described for evaluating code at a local computing device before deploying the code to a cloud computing platform to be compiled. In an example embodiment, class files including the code in a programming language associated with the cloud computing environment are loaded by a local computer system, for example, associated with a software developer. The local computer system then parses the code to identify elements in the code and checks the identified elements. Errors in the code are identified based on the checking and are displayed to a user (e.g., the developer), for example, via a graphical user interface of a code editor application.

Claims (81)

1. A system comprising:

a data store configured to store instructions to evaluate source code to be compiled at a cloud computing platform; and

a processor configured to execute the instructions configured to cause the processor to:

receive a listing of a plurality of class files in a software project via a computer network from the cloud computing platform;

load the plurality of class files included in the listing;

parse a source code included in the plurality of class files to identify a plurality of elements in the source code, the source code in a first language implemented at the cloud computing platform;

convert the source code in the first language associated with the cloud computing platform to or from a second code in a second language at the processor;

locally compile the second code in the second language at a developer computer system to generate a local version of an application:

locally execute a first portion of the local version of the application at the developer computer system, wherein a first portion of results is generated;

execute a second portion of the local version of the application on the cloud computing platform, the cloud computing platform mimicking a local execution by converting the source code in the first language associated with the cloud computing platform to the second code in the second language, and compiling and executing the second code in the second language at the cloud computing platform;

identify an error in the source code, the source code being implemented in one or both of the first and the second languages; and

cause display of an indication of the error in the source code in a graphical user interface associated with a code editor application.

2. The system of claim 1 , wherein the processor is further configured to:

generate a syntax tree based on the identified plurality of elements in the source code to form a generated syntax tree; and

perform type checking in association with the plurality of elements in the source code by analyzing the generated syntax tree.

3. The system of claim 2 , wherein the processor is further configured to:

identify the error in the source code based on the type checking.

4. The system of claim 1 , wherein the processor is further configured to:

identify the error in the source code as a type error, the type error being a function of an identified discrepancy among two or more classes.

5. The system of claim 1 , wherein the processor is further configured to:

access a subset of executable instructions to implement a source code analysis tool.

6. A system comprising:

a data store configured to store instructions to locally evaluate source code to be compiled at a cloud computing platform; and

a processor configured to execute the instructions configured to cause the processor to:

load one or more files including a code in a first language that is associated with the cloud computing platform;

parse the code in the first language to identify a plurality of elements in the code in the first language;

check the plurality of elements in the code in the first language;

convert the code in the first language associated with the cloud computing platform to a second code in a second language at a local computer system to form converted code;

locally compile the second code in the second language at a developer computer system to generate a local version of an application;

locally execute a first portion of the local version of the application at the developer computer system, wherein a first portion of results is generated;

execute a second portion of the local version of the application on the cloud computing platform, the cloud computing platform mimicking the local execution by converting the source code in the first language associated with the cloud computing platform to the second code in the second language, and compiling and executing the second code in the second language at the cloud computing platform;

identify an error in the converted code based on the checking;

receive an input to correct the error; and

transmit the converted code to the cloud computing platform with the error corrected.

7. The system of claim 6 , wherein the processor is further configured to:

cause display of an indication of the error in the converted code.

8. The system of claim 6 , wherein the processor is further configured to:

display an indication of the error in the converted code in real time in association with identification of the error.

9. The system of claim 6 , wherein the processor configured to load the one or more files is further configured to:

load incrementally the one or more files; and

check data of the one or more files in real time as the one or more files are incrementally loaded.

10. The system of claim 6 , wherein the processor configured to display an indication of the error in the converted code is further configured to:

display via a graphical user interface (GUI) the error using a code editor application.

11. The system of claim 10 , wherein the processor configured to display the indication of the error in the converted code is further configured to:

transmit a message to an extension of the code editor application, the message including the indication of the error in the code.

12. The system of claim 10 , wherein the GUI of the code editor application includes one or more of:

a text editor element configured to display text of the converted code and receive the input to enter or edit the text of the converted code;

a file explorer element configured to display an interactive listing of the one or more files including the converted code; and

an error reporting element configured to display an interactive listing of identified errors in the converted code.

13. The system of claim 12 , wherein the processor configured to display the indication of the error in the converted code is further configured to perform one or more of:

highlight graphically, in the text editor element, a portion of the converted code that includes at least one of the identified errors in the converted code;

highlight graphically, in the file explorer element, an identifier of a particular file of the one or more files that includes the portion of the converted code that includes the at least one of the identified errors in the converted code; and

display, in the error reporting element, an entry in the interactive listing that describes the at least one of the the identified errors.

14. The system of claim 6 , wherein the processor configured to parse the code to identify the plurality of elements in the code is further configured to:

generate an output indicative of the plurality of elements as a parse tree; and

generate a syntax tree (AST) based on the parse tree indicative of the plurality of elements.

15. The system of claim 6 , wherein the processor configured to check the plurality of elements in the code in the first language is further configured to:

perform type checking.

16. The system of claim 6 , wherein the processor configured to parse the code to identify the plurality of elements in the code in the first language is further configured to:

identify any one of statements, variables, identifiers, literals, and operators.

17. The system of claim 6 , wherein the processor is further configured to:

generate a dependency map associated with the one or more files based on the checking; and

cause display of an indication of a dependency associated with a particular file of the one or more files.

18. The system of claim 6 , wherein the processor is further configured to:

transpile the code in the first language associated with the cloud computing platform to generate other code in the second language; and

compile the other code to generate an executable file.

19. A system for locally evaluating code in an application development project to be deployed in a cloud computing platform to compile the code, the system comprising:

a data store configured to store instructions to implement a loader module and a validator module; and

a processor configured to execute the instructions to:

activate the loader module to:

load one or more class files included in the application development project, the one or more class files including the code in a first language that is associated with the cloud computing platform;

parse the code included in the loaded one or more class files to identify a plurality of elements in the code;

check the identified plurality of elements in the code;

convert the code in the first language to or from a second code in a second language at the processor:

locally compile the second code in the second language at a developer computer system to generate a local version of an application;

locally execute a first portion of the local version of the application at the developer computer system, wherein a first portion of results is generated; and

execute a second portion of the local version of the application on the cloud computing platform, the cloud computing platform mimicking the local execution by converting the code in the first language associated with the cloud computing platform to the second code in the second language, and compiling and executing the second code in the second language at the cloud computing platform; and

activate the validator module to:

identify an error in the code based on the checking by the loader module; and

cause to display an indication of the identified error.

20. The system of claim 19 , wherein the loader module and the validator module are implemented as part of a language server to extend a functionality of a code editor application, wherein the language server is structured based on an actor model, and the loader module and the validator module are configured as actor entities that communicate with each other based on the actor model.

Assignments (7)
CHANGE OF ADDRESS Recorded Sep 12, 2024
From: CERTINIA INC.
To: CERTINIA INC.
Reel/Frame 068948/0361 →
SECURITY INTEREST Recorded Aug 7, 2023
From: CERTINIA INC.
To: BLUE OWL CREDIT INCOME CORP., AS COLLATERAL AGENT
Reel/Frame 064510/0495 →
RELEASE OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Aug 4, 2023
From: KEYBANK NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: CERTINIA, INC.
Reel/Frame 064502/0117 →
CHANGE OF NAME Recorded Jul 3, 2023
From: FINANCIALFORCE.COM, INC.
To: CERTINIA INC.
Reel/Frame 064194/0104 →
CHANGE OF ADDRESS Recorded May 12, 2023
From: FINANCIALFORCE.COM, INC.
To: FINANCIALFORCE.COM, INC.
Reel/Frame 063633/0854 →
SECURITY INTEREST Recorded Feb 21, 2022
From: FINANCIALFORCE.COM, INC.
To: KEYBANK NATIONAL ASSOCIATION
Reel/Frame 059204/0323 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2021
From: JONES, KEVIN JAMES; EJSING, SIMON KRISTIANSEN
To: FINANCIALFORCE.COM, INC.
Reel/Frame 057971/0273 →
Continuity (2)
Continuation 16242913 · Jan 8, 2019
Related Publication 20220222170A1 · Jul 14, 2022