IP Library › Granted Patent US 12,639,053
Granted Patent B2
US 12,639,053 · App. 18/405,699 · Granted May 26, 2026

Compile-time link type object management

Inventors: Sridhar Vembu (Tenkasi, IN); Akshhayaa S (Guduvanchery, IN); Padma J (Chennai, IN); Shalini Lakshmi A J (Chennai, IN); Siba Mishra (Puri, IN); Vanaja Ramaswamy (Chennai, IN); Balamurugan R (Chennai, IN); Balamurugan K E (Chennai, IN); Arvind Sudarshan K (Chennai, IN); Joseph Sathya Kumar (Chennai, IN); Suresh K V (Chengalpet District, IN); Baradhan V (Theni, IN); Sudheer A Grandhi (Pleasanton, CA)
G06F8/427G06F8/41G06F8/436G06F9/542
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 12,639,053
App. No.
18/405,699
Granted
May 26, 2026
Kind
B2
Abstract

A compile-time link type manager is defined to facilitate development of source code with disciplined link type object management at runtime. In one aspect, the link type manager ensures that all link type object management constructs have associated event handlers. Additionally, an event handler can be evaluated at compile time to ensure that it meets certain conditions for the particular link type, referred to as link-type criteria.

Claims (33)

1 . A method of compiling source code, the method comprising:

encountering, in the source code, an object-management construct directed to a data type for defining an object, the object-management construct defining object-management instructions for affecting the object;

searching for an event-handler construct in the source code, the event-handler construct assigned to the object-management construct and the data type, the event-handler construct defining event-handler instructions to execute at runtime;

evaluating the event-handler construct to determine whether the event-handler construct defines event-handler instructions satisfying predetermined criteria; and

compiling, responsive to the event-handler instructions satisfying the predetermined criteria, a first intermediate-language representation corresponding to the object-management construct operating on the data type.

2 . The method of claim 1 , further comprising flagging an error responsive to an absence of the event handler.

3 . The method of claim 1 , wherein the object-management construct comprises at least one of a delete construct, a create construct, and an update construct.

4 . The method of claim 1 , wherein the source code comprises:

a second data type for defining a second object, the second data type referencing the data type, such that the second object is linked to the object.

5 . The method of claim 1 , further comprising flagging an error responsive to the event-handler instructions not satisfying the predetermined criteria.

6 . The method of claim 1 , further comprising:

compiling a second intermediate-language representation corresponding to the event-handler construct operating on the object-management construct and the data type.

7 . The method of claim 1 , wherein the predetermined criteria comprises determining the event-handler instructions include:

evaluating a constraint at runtime; and

preventing operation of the object-management construct at runtime responsive to the constraint being satisfied.

8 . The method of claim 1 , wherein the predetermined criteria comprises determining the event-handler instructions include identifying the existence of an independent data type object.

9 . The method of claim 8 , wherein the existence of the independent data type object is identified in accordance with an element of the independent data type object attributed as unique.

10 . The method of claim 1 , wherein the predetermined criteria comprises determining the event-handler instructions include identifying the existence of a dependent-link data type object.

11 . A system comprising:

a processor; and

a memory storing instructions that, when executed by the processor, cause the processor to:

encounter an object-management construct directed to a first data type for defining an object;

search for an event-handler construct assigned to the object-management construct and the data type;

evaluate the event-handler construct to determine whether it defines event-handler instructions satisfying predetermined criteria; and

compile, responsive to the event-handler instructions satisfying the predetermined criteria, an intermediate-language representation corresponding to the object-management construct operating on the data type.

12 . The system of claim 11 , wherein the object-management construct comprises a delete, create, or update construct.

13 . The system of claim 11 , wherein the instructions cause the processor to flag an error responsive to an absence of the event-handler construct.

14 . The system of claim 11 , wherein a source code comprises a second data type referencing the first data type, such that a second object of the second data type is linked to the object.

15 . The system of claim 11 , wherein the instructions further cause the processor to flag an error responsive to the event-handler instructions not satisfying predetermined criteria.

16 . The system of claim 11 , wherein the predetermined criteria comprise determining the event-handler instructions include evaluating a constraint at runtime and preventing operation of the object-management construct responsive to the constraint being satisfied.

17 . The system of claim 11 , wherein the predetermined criteria comprise determining the event-handler instructions include identifying the existence of an independent data type object.

18 . The system of claim 11 , wherein the predetermined criteria comprise determining the event-handler instructions include identifying the existence of a dependent-link data type object.

19 . The system of claim 11 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to compile a second intermediate-language representation corresponding to the event-handler construct operating on the object-management construct and the data type.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2024
From: VEMBU, SRIDHAR; S, AKSHHAYAA; J, PADMA; J, SHALINI LAKSHMI A; MISHRA, SIBA; RAMASWAMY, VANAJA; R, BALAMURUGAN; E, BALAMURUGAN K; K, ARVIND SUDARSHAN; KUMAR, JOSEPH SATHYA; V, SURESH K; V, BARADHAN; GRANDHI, SUDHEER A
To: ZOHO CORPORATION PRIVATE LIMITED
Reel/Frame 067200/0760 →
Priority Claims (2)
IN 202341002897 · Jan 13, 2023 · national
IN 202341059666 · Sep 5, 2023 · national
Continuity (3)
Provisional Application 63579472 · Aug 29, 2023
Provisional Application 63487362 · Feb 28, 2023
Related Publication 20240241702A1 · Jul 18, 2024
References Cited (36)
US 5748966A · Sato · 1998 [cited by applicant]
US 7694274B2 · Meijer et al. · 2010 [cited by applicant]
US 7917534B2 · Demiroski et al. · 2011 [cited by applicant]
US 10929106B1 · Sridhar · 2021 [cited by applicant]
US 20040172618A1 · Marvin · 2004 [cited by examiner]
US 20040268330A1 · Grover · 2004 [cited by examiner]
US 20060129584A1 · Hoang · 2006 [cited by examiner]
US 20120131598A1 · Newport et al. · 2012 [cited by applicant]
US 20140052433A1 · Prasad · 2014 [cited by examiner]
US 20140282443A1 · Hoban et al. · 2014 [cited by applicant]
US 20140380276A1 · Matthiesen et al. · 2014 [cited by applicant]
WO WO0038073A1 · 2000 [cited by examiner]
WO 2000060455 · 2000 [cited by applicant]
Event (computing), Wikipedia, 2021, 6 pages, [retrieved on Sep. 19, 2025], Retrieved from the Internet: <URL:https://web.archive.org/web/20210409061203/https://en.wikipedia.org/wiki/Event_%28computing%29>. [cited by examiner]
Jacobs, Bart “Four Clever Uses of Swift Extensions,” cocoacasts.com/four-clever-uses-of-swift-extensions, May 3, 2017 (8 pages). [cited by applicant]
Johnson, Andrew “Why does Swift not allow stored properties in extensions”, stackoverflow.com/questions/32873400/why-does-swift-not-allow-stored-properties-in-extensions, Sep. 30, 2015 (2 pages). [cited by applicant]
Kasyap, Krishna “How to convert a super class variable into a sub class type in Java,” tutorialspoint.com/how-to-convert-a-super-class-variable-into-a-sub-class-type-in-java, Feb. 8, 2021 (3 pages). [cited by applicant]
Khan, Aasif “Extensions in Swift Explained,” appypie.com/swift-extensions-how-to, Dec. 13, 2021 (8 pages). [cited by applicant]
Liang, “Chapter 11: Inheritance and Polymorphism, from Introduction to Java Programming,” 10th Edition, 2015 (49 pages). [cited by applicant]
Miglani, Gaurav “Referencing Subclass objects with Subclass vs Superclass reference,” geeksforgeeks.org/referencing-subclass-objects-subclass-vs-superclass-reference, Mar. 29, 2017 (9 pages). [cited by applicant]
Sengupta, Tirtharaj “Composition in Golang,” geeksforgeeks.org/composition-in-golang, May 1, 2020 (5 pages). [cited by applicant]
Wikipedia, “Compiler,” retrieved from “https://en.wikipedia.org/w/index.phptitle=Compiler oldid=1091156409”, last edited on Jun. 2, 2022, at 15:06 (16 pages). [cited by applicant]
Wikipedia, “Role-Oriented Programming,” retrieved from “https://en.wikipedia.org/w/index.phptitle=Role-oriented_programming oldid=1065936286”, last edited on Jan. 16, 2022, at 01:48 (3 pages). [cited by applicant]
Wilder, Noah, “How to make extension for multiple classes Swift,” stackoverflow.com/questions/38464134/how-to-make-extension-for-multiple-classes-swift, Mar. 28, 2018 (4 pages). [cited by applicant]
Wikipedia, “Type system,” retrieved from “https://en.wikipedia.org/wiki/Type_system”, last edited on Mar. 18, 2024, at 16:52 (UTC) (16 pages). [cited by applicant]
“C++ Inheritance”, https://www.tutorialspoint.com/cplusplus/cpp_inheritance.htm, accessed Mar. 26, 2024 (5 pages). [cited by applicant]
“Inheritance in C++”, https://www.geeksforgeeks.org/inheritance-in-c/, May 25, 2017 last updated Jan. 8, 2024 (37 pages). [cited by applicant]
“Inheritance in Java”, https://www.javatpoint.com/inheritance-in-java, accessed Mar. 26, 2024 (10 pages). [cited by applicant]
“Apache Groovy Object Orientation”, groovy-lang.org /objectorientation.html, accessed Mar. 26, 2024 (67 pages). [cited by applicant]
“Python Inheritance”, https://www.w3schools.com/python/python_inheritance.asp, accessed Mar. 26, 2024 (5 pages). [cited by applicant]
“Swift Inheritance”, https://www.programiz.com/swift-programming/inheritance, accessed Mar. 26, 2024 (7 pages). [cited by applicant]
“Java Annotations”,https://www.javatpoint.com/java-annotation, accessed Mar. 26, 2024 (23 pages). [cited by applicant]
Wikipedia, “Event-driven programming,” retrieved from https://en.wikipedia.org/w/index.php?title=Event-driven_programming&oldid=1201601754, last edited on Feb. 1, 2024, at 00:42 (4 pages). [cited by applicant]
Pozo Ramos, Leodanis, “Python Class Constructors: Control Your Object Instantiation”, https://realpython.com/python-class-constructor/, Real Python, Mar. 14, 2022 (25 pages). [cited by applicant]
“Runtime Environments in Compiler Design”, https://www.geeksforgeeks.org/runtime-environments-in-compiler-design/?ref=lbp, Jan. 13, 2017 (9 pages). [cited by applicant]
Subhash Singh, “Examination report under sections 12 & 13 of the Patents Act, 1970 and the Patents Rules, 2003.” Intellectual Property India, Oct. 6, 2025, 8 pages. [cited by applicant]