IP Library › Granted Patent US 12,663,987
Granted Patent B2
US 12,663,987 · App. 18/740,827 · Granted Jun 23, 2026

Software development device and software development program

Inventor: Kristopher Andrew Tate (Kyoto, JP)
Assignee: CONNECTFREE CORPORATION
G06F8/75G06F8/30G06F8/41
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,663,987
App. No.
18/740,827
Filed
Jun 12, 2024
Granted
Jun 23, 2026
Kind
B2
Art Unit
2192
USPC
717/100
Abstract

There is provided an environment in which various constraints can be freely set for a program executed by an edge device or the like. A software development device for generating an object code from a source code includes: an evaluation means for extracting constraints set in a source code and evaluating whether or not the source code conforms to the constraints within an application range of the extracted restrictions; and a generation means for generating an object code so as to conform to the constraints.

Claims (44)

1 . A software development device comprising:

one or more processors; and

one or more memories storing computer-readable instructions which, when executed by the one or more processors, cause the one or more processors to:

extract, from a source code, a designated syntax defining constraints,

determine a first scope in the source code to which constraints specified by the extracted designated syntax are applied,

determine a second scope in the source code associated with the first scope, the second scope being configured to inherit the first scope, and

evaluate whether a subset of the source code in the first scope and a subset of the source code in the second scope conform to the constraints specified by the extracted designated syntax;

wherein the constraints specified by the extracted designated syntax comprise at least two of:

(a) a definition of behavior of at least one of a preprocessor, a compiler, or an optimizer,

(b) constraints on hardware resources of a target device used by an object code at a time of execution,

(c) constraints on an execution state of the object code, or

(d) constraints on an execution procedure of the object code; and

wherein evaluating results in a state wherein the object code is able to be generated;

compiling the source code to generate the object code when the evaluating determines the subset of the source code in the first scope and the subset of the source code in the second scope conform to the constraints; and

stopping the generation of the object code when the evaluating determines that the subset of the source code in the first scope and/or the subset of the source code in the second scope do not conform to the constraints.

2 . The software development device according to claim 1 , wherein the one or more processors determine the second scope comprises determining, as the second scope, a scope corresponding to a set of instructions called by a call command in the source code.

3 . A software development method comprising providing one or more processors, and one or more memories storing computer-readable instructions which, when executed by the one or more processors, cause the one or more processors to:

extract, from a source code, a designated syntax defining constraints;

determine a first scope in the source code to which constraints specified by the extracted designated syntax are applied;

determine a second scope in the source code associated with the first scope, the second scope being configured to inherit the first scope; and

evaluate whether a subset of the source code in the first scope and a subset of the source code in the second scope conform to the constraints specified by the extracted designated syntax;

wherein the constraints specified by the extracted designated syntax comprises at least two of:

(a) a definition of behavior of at least one of a preprocessor, a compiler, or an optimizer,

(b) constraints on hardware resources of a target device used by an object code at a time of execution,

(c) constraints on an execution state of the object code,

(d) constraints on an execution procedure of the object code; and

wherein evaluating results in a state wherein the object code is able to be generated;

compiling the source code to generate the object code when the evaluating determines the subset of the source code in the first scope and the subset of the source code in the second scope conform to the constraints; and

stopping the generation of the object code when the evaluating determines that the subset of the source code in the first scope and/or the subset of the source code in the second scope do not conform to the constraints.

4 . The software development method according to claim 3 , wherein the determining the second scope comprises determining, by the one or more processors, as the second scope, a scope corresponding to a set of instructions called by a call command in the source code.

5 . A non-transitory computer-readable storage medium having computer-readable instructions stored thereon which, when executed by one or more processors, cause the one or more processors to:

extract, from a source code, a designated syntax defining constraints;

determine a first scope in the source code to which constraints specified by the extracted designated syntax are applied;

determine a second scope in the source code associated with the first scope, the second scope being configured to inherit the first scope; and

evaluate whether a subset of the source code in the first scope and a subset of the source code in the second scope conform to the constraints specified by the extracted designated syntax;

wherein the constraints specified by the extracted designated syntax comprises at least two of:

(a) a definition of behavior of at least one of a preprocessor, a compiler, or an optimizer,

(b) constraints on hardware resources of a target device used by an object code at a time of execution,

(c) constraints on an execution state of the object code, or

(d) constraints on an execution procedure of the object code; and

wherein evaluating results in a state wherein the object code is able to be generated;

compiling the source code to generate the object code when the evaluating determines the subset of the source code in the first scope and the subset of the source code in the second scope conform to the constraints; and

stopping the generation of the object code when the evaluating determines that the subset of the source code in the first scope and/or the subset of the source code in the second scope do not conform to the constraints.

6 . The non-transitory computer-readable storage medium according to claim 5 , wherein the determining the second scope comprises determining, by the one or more processors, as the second scope, a scope corresponding to a set of instructions called by a call command in the source code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2025
From: TATE, KRISTOPHER ANDREW
To: CONNECTFREE CORPORATION
Reel/Frame 070105/0818 →
Priority Claims (1)
JP 2019-103138 · May 31, 2019 · national
Continuity (2)
Continuation 17615027
Related Publication 20240411554A1 · Dec 12, 2024
References Cited (60)
US 7900188B2 · Costa · 2011 [cited by examiner]
US 9448820B1 · Allen · 2016 [cited by examiner]
US 9588871B1 · Estes, Jr. · 2017 [cited by examiner]
US 10416972B1 · Forghani · 2019 [cited by applicant]
US 10740470B2 · Ionescu · 2020 [cited by examiner]
US 10866792B1 · Tomlin · 2020 [cited by applicant]
US 11216255B1 · Berger · 2022 [cited by examiner]
US 11734000B2 · Bryan · 2023 [cited by examiner]
US 20040003112A1 · Alles · 2004 [cited by applicant]
US 20070169020A1 · Kondoh · 2007 [cited by applicant]
US 20130067155A1 · Bates · 2013 [cited by applicant]
US 20130219378A1 · Glaister · 2013 [cited by applicant]
US 20140143762A1 · Li · 2014 [cited by examiner]
US 20150052506A1 · Driscoll · 2015 [cited by applicant]
US 20150268939A1 · Kelapure · 2015 [cited by applicant]
US 20150339104A1 · Frenkiel · 2015 [cited by applicant]
US 20160004517A1 · Safary · 2016 [cited by applicant]
US 20160124724A1 · Gautam · 2016 [cited by applicant]
US 20160147511A1 · Eble · 2016 [cited by applicant]
US 20160179479A1 · Bates · 2016 [cited by examiner]
US 20170300306A1 · De · 2017 [cited by examiner]
US 20170315903A1 · David · 2017 [cited by applicant]
US 20170329582A1 · Steven · 2017 [cited by examiner]
US 20180267783A1 · Kawaguchi · 2018 [cited by applicant]
US 20180293058A1 · Bierman · 2018 [cited by examiner]
US 20180349614A1 · Ionescu · 2018 [cited by applicant]
US 20190050210A1 · Van Der Jeugt · 2019 [cited by examiner]
US 20190129832A1 · Budnik · 2019 [cited by examiner]
US 20190163446A1 · Brunel · 2019 [cited by applicant]
US 20190171485A1 · Bolkhovitin · 2019 [cited by applicant]
US 20190258460A1 · Schlachter · 2019 [cited by applicant]
US 20190377662A1 · Mitchell · 2019 [cited by applicant]
US 20200026530A1 · Rose · 2020 [cited by examiner]
US 20200073739A1 · Rungta · 2020 [cited by examiner]
US 20200081693A1 · Moussa · 2020 [cited by examiner]
US 20200201608A1 · Wallbaum · 2020 [cited by applicant]
US 20200225921A1 · Pelton · 2020 [cited by examiner]
US 20200293617A1 · Luo · 2020 [cited by applicant]
CA 2746136A1 · 2013 [cited by applicant]
CN 105393216A · 2016 [cited by applicant]
CN 106095408A · 2016 [cited by applicant]
CN 107885503A · 2018 [cited by applicant]
CN 109783107A · 2019 [cited by applicant]
EP 2172839A1 · 2010 [cited by applicant]
JP 2004038956A · 2004 [cited by applicant]
JP 2006285582A · 2006 [cited by applicant]
JP 2007122631A · 2007 [cited by applicant]
JP 2013140513A · 2013 [cited by applicant]
KR 101573586B1 · 2013 [cited by applicant]
KR 20180030349A · 2018 [cited by applicant]
WO 2015023366A1 · 2015 [cited by applicant]
Abdullah Alshanqiti, Extracting Visual Contracts from Java Programs, 2015, pp. 1-11. https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7372000 (Year: 2015). [cited by examiner]
Niranjan Hasabnis, Extracting Instruction Semantics via Symbolic Execution of Code Generators, 2016, pp. 301-311. https://www.seclab.cs.sunysb.edu/seclab/pubs/eissec.pdf (Year: 2016). [cited by examiner]
Jakub Míšek, Mapping of Dynamic Language Constructs into Static Abstract Syntax Trees, 2010, pp. 1-6. https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5590990 (Year: 2010). [cited by examiner]
Arnaud Gotlieb, Euclide: A Constraint-Based Testing Framework for Critical C Programs, 2009, pp. 1-10, https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4815347 (Year: 2009). [cited by applicant]
Daniel Tang et al., “Static Checking of Safety Critical Java Annotations”, JAVA Technologies for Real-Time and Embedded Systems: 148-154, sections 2 to 5 (2010). [cited by applicant]
Christian Wagner, Comparative Analysis of Tools for Automated Software Re-Engineering purposes, 2008, pp. 1-8, https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=4463746 (Year: 2008). [cited by applicant]
Hendrik van Antwerpen, A Constraint Language for Static Semantic Analysis Based on Scope Graphs, 2016, pp. 49-60, https://dl.acm.org/doi/pdf/10.1145/2847538.2847543 (Year: 2016). [cited by applicant]
Gabor Gyimesi, Enforcing Techniques and Transformation of C/C++ Source Code to Heterogenous Hardware, 2016, pp. 1173-1180, https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber-7816976 (Year: 2016). [cited by applicant]
Taiwanese Office Action received for TW Application No. 113121808 on Apr. 9, 2025, 12 pgs. [cited by applicant]