IP Library › Granted Patent US 12,675,289
Granted Patent B2
US 12,675,289 · App. 19/234,327 · Granted Jul 7, 2026

System for identifying same or similar instances of source code

Inventor: Dimitrios Styliadis (San Jose, CA)
Assignee: Endor Labs Inc
G06F8/71G06F8/75
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,675,289
App. No.
19/234,327
Filed
Jun 11, 2025
Granted
Jul 7, 2026
Kind
B2
Examiner
UNG, LANNY N
Art Unit
2197
USPC
717/122
Abstract

The technology disclosed relates to a system for identifying same or similar instances of source code. In particular, the technology disclosed relates to a data repository designed for storing information regarding one or more associations between an instance of source code and a semantic hash code value. Wherein, semantic hash code value being determined in accordance with a semantic hash code algorithm. Wherein, semantic hash code algorithm being designed for computing a quantification of a set of measured characteristics of instance of source code. Wherein, quantification of set of source code characteristics of instance of source code being represented by semantic hash code value. Wherein, semantic hash code value corresponding to instance of source code. Wherein, an association between an identity of instance of source code and semantic hash code value is stored into data repository.

Claims (28)

1 . A system for identifying abnormal dependencies from a

software application of third-party software components that are erroneously left out of the software application, by identifying same or similar instances of source code in the software application to identify the third-party software components that are not bound into the software application, the system including:

a data repository designed for storing information regarding associations between an instance of the source code for the software application and a semantic hash code value;

wherein said semantic hash code value is determined in accordance with a semantic hash code algorithm that identifies a quantification of a set of measured characteristics of said instance of the source code;

wherein characteristics of said instance of the source code are represented by said semantic hash code value; and

wherein an association between an identity of said instance of source code and said semantic hash code value is stored into said data repository;

a non-volatile data storage that stores the software application and other data including information regarding the source code in the software application;

a source code search engine employed to perform a search for instances of the source code, residing outside of the software application, that are matching or that are similar to that of an instance of a target source code, via employment of the semantic hash algorithm; and

a processor controlled by code stored in the non-volatile data storage which when executed by the processor in conjunction with execution of the source code search engine causes performance of the following operations:

performing by the source code search engine a search through the non-volatile data storage to identify directives from within said source code using the semantic hash algorithm to identify dependencies from the software application;

identifying among the third-party software components those that are not identified and bound into the software application as found software components with abnormal dependencies that are erroneously left out of the software application;

updating the software application to correct the software application to include the found software components by storing the found software components as part of the software application and further storing data to identify the found software components as being part of the software application.

2 . The system of claim 1 , wherein said semantic hash code algorithm processes an abstract syntax tree (AST) corresponding to said instance of source code.

3 . The system of claim 2 wherein said semantic hash code value is computed from a plurality of measured characteristics of said abstract syntax tree (AST).

4 . The system of claim 1 wherein said data repository is designed to store a plurality of associations, and wherein each of said plurality of associations represents an association between an identity of a unique instance of source code, and a semantic hash code value corresponding to said unique instance of source code.

5 . The system of claim 4 wherein said unique instance of source code is included within a source code file, and wherein an association between said unique instance of source code and a semantic hash code value corresponding to said unique instance of source code, further includes a name and a location of said source code file.

6 . A computer-implemented method for identifying third-party software components that are erroneously left out of a software application, the third-party software components including computer programming language source code, the method including the actions of:

executing a semantic hash algorithm upon a first instance of source code, being a target instance of source code;

computing a first semantic hash code value in association with said first instance of source code, in accordance with a first semantic hash algorithm;

computing a second semantic hash code value in association with a second instance of source code, in accordance with said semantic hash algorithm;

comparing said first semantic hash code value and said second semantic hash code value and determining if said first semantic hash code value is equivalent to said second semantic hash code value;

storing an association of said second instance of source code with said first instance of source code, within a data repository, in response to each instance of source code having an equivalent semantic hash code value

identifying that the first instance of source code has an equivalent semantic hash code value stored in the data repository and is among third-party software components not identified and bound into the software application as a found software component that was erroneously left out of the software application;

updating the software application to correct the software application to include the found software component by storing the found software component as part of the software application.

7 . The method of claim 6 , wherein said semantic hash algorithm processes an abstract syntax tree (AST) corresponding to an instance of source code.

8 . The method of claim 7 , wherein a semantic hash value for an instance of source code, is determined based upon a plurality of measured characteristics of said abstract syntax tree (AST) corresponding to said instance of source code.

9 . The method of claim 8 wherein said plurality of measured characteristics of said abstract syntax tree (AST) include a number of nodes within said abstract syntax tree (AST) falling into each one of a plurality of node type categories.

10 . The method of claim 7 wherein an instance of source code is included within a source code file, and wherein an association between a semantic hash code value corresponding to said instance of source code, includes at least one of a name of said source code file, and a location of said source code file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2025
From: STYLIADIS, DIMITRIOS
To: ENDOR LABS INC
Reel/Frame 071809/0857 →
Continuity (3)
Division 19041564 · Jan 30, 2025
Provisional Application 63627281 · Jan 31, 2024
Related Publication 20250306917A1 · Oct 2, 2025
References Cited (54)
US 8433687B1 · Pydi · 2013 [cited by examiner]
US 8627327B2 · Dunshea et al. · 2014 [cited by applicant]
US 10108975B1 · Benner et al. · 2018 [cited by applicant]
US 10169208B1 · Moyes · 2019 [cited by examiner]
US 10565377B1 · Zheng et al. · 2020 [cited by applicant]
US 10917415B2 · Chen · 2021 [cited by applicant]
US 11474796B1 · Mather · 2022 [cited by applicant]
US 11586436B1 · Jennings · 2023 [cited by applicant]
US 11704099B1 · Morse · 2023 [cited by examiner]
US 11930013B1 · Zhang et al. · 2024 [cited by applicant]
US 20020097253A1 · Charisius et al. · 2002 [cited by applicant]
US 20040168152A1 · Kramer · 2004 [cited by applicant]
US 20050055565A1 · Fournet et al. · 2005 [cited by applicant]
US 20070294667A1 · Caceres et al. · 2007 [cited by applicant]
US 20130083030A1 · Fukuda et al. · 2013 [cited by applicant]
US 20140013315A1 · Genevski et al. · 2014 [cited by applicant]
US 20140173574A1 · Schmidt et al. · 2014 [cited by applicant]
US 20150169320A1 · Ahmed et al. · 2015 [cited by applicant]
US 20160253625A1 · Casey · 2016 [cited by applicant]
US 20170206123A1 · Kirkpatrick · 2017 [cited by applicant]
US 20170286099A1 · Wilkinson · 2017 [cited by applicant]
US 20180018459A1 · Zhang et al. · 2018 [cited by applicant]
US 20190042233A1 · Majumdar et al. · 2019 [cited by applicant]
US 20190278572A1 · Yoshida · 2019 [cited by examiner]
US 20200053175A1 · Bodman et al. · 2020 [cited by applicant]
US 20200073781A1 · Falko · 2020 [cited by applicant]
US 20200218535A1 · Alomari · 2020 [cited by examiner]
US 20210149667A1 · Watson et al. · 2021 [cited by applicant]
US 20210173621A1 · Fender et al. · 2021 [cited by applicant]
US 20210182037A1 · Hu · 2021 [cited by examiner]
US 20210281597A1 · Guiroux et al. · 2021 [cited by applicant]
US 20220091842A1 · Murray · 2022 [cited by examiner]
US 20220222351A1 · Levin et al. · 2022 [cited by applicant]
US 20220383995A1 · O'Rourke et al. · 2022 [cited by applicant]
US 20230195901A1 · Allen · 2023 [cited by applicant]
US 20230305827A1 · Dai et al. · 2023 [cited by applicant]
US 20230418578A1 · Chen · 2023 [cited by examiner]
US 20240370570A1 · Betthauser et al. · 2024 [cited by applicant]
US 20240411881A1 · Aday et al. · 2024 [cited by applicant]
CN 104321782A · 2015 [cited by applicant]
CN 111190641A · 2020 [cited by applicant]
CN 112083945A · 2020 [cited by applicant]
CN 116089958A · 2023 [cited by applicant]
CN 116307697A · 2023 [cited by applicant]
CN 116842522A · 2023 [cited by applicant]
CN 117389519A · 2024 [cited by applicant]
CN 117556432A · 2024 [cited by applicant]
CN 118467790A · 2024 [cited by applicant]
JP 2011053966A · 2011 [cited by applicant]
BaoJiang Cui et al., “Code Comparison System Based On Abstract Syntax Tree”, 2010 (Year: 2010). [cited by examiner]
Barthelemy Dagenais et al., SemDiff: Analysis and Recommendation Support for API Evolution, 2009 [retrieved Aug. 8, 2025], 2009 IEEE 31st International Conference on Software Engineering, pp. 599-602, downloaded from :h… [cited by applicant]
Istvan-Attila Csaszar and Radu Razvan Slavescu (Interactive call graph generation for software projects); pp. 8; Published on IEEE in Nov. 26, 2020. [cited by applicant]
Mehdi Keshani (Scalable Call Graph Constructor for Maven); pp. 3; Published in Mar. 28, 2021. [cited by applicant]
Mehdi Keshani, Georgios Gousios and Sebastian Proksch (Frankenstein: fast and lightweight call graph generation for softwarebuilds); pp. 47; Published in Nov. 16, 2023. [cited by applicant]