US 11,698,778 B2
Preventing barbage object accumulation on minimal runtimes while supporting an implicit deallocation programming experience
Michael Vincent Samuel, Princeton, NJ (US); and Jasvir Nagra, Redwood City, CA (US)
Assigned to Temper Systems, Inc., Denver, CO (US)
Filed by Temper Systems, Inc., Denver, CO (US)
Filed on Mar. 25, 2021, as Appl. No. 17/212,477.
Application 17/212,477 is a continuation of application No. 17/131,583, filed on Dec. 22, 2020, granted, now 10,963,228.
Prior Publication US 2022/0197612 A1, Jun. 23, 2022
Int. Cl. G06F 8/41 (2018.01); G06F 16/901 (2019.01)
CPC G06F 8/437 (2013.01) [G06F 16/9024 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A method for preventing garbage object accumulation on a minimal runtime while supporting an implicit deallocation programming experience, the method comprising:
verifying, by a compiler or a data type checking tool, that one or more data type definitions in a source programming language source code for a library do not allow for reference cycles at runtime, wherein the source programming language source code is programmed in a source programming language that does not require explicit programming of when object deallocation happens in order to for objects to be timely deallocated at runtime;
based on the compiler or the data type checking tool verifying that the one or more data type definitions in the source programming language source code for the library do not allow for reference cycles at runtime, generating, by the compiler or the data type checking tool, a translation of the source programming language source code for the library, wherein the translation of the source programming language source code for the library comprises a target programming language source code for the library programmed in a target programming language;
wherein an executable form of the library, when compiled from the target programming language source code for the library into the executable form of the library, does not require an implicit deallocation service at runtime in order for the objects to be timely deallocated at runtime; and
wherein the compiler or the data type checking tool comprises instructions for performing the method, and the instructions are executed by one or more computing devices to perform the method.