Programming interface, programming method, programming device, and program execution method

By using a tabular programming interface and methods, the execution time of sub-businesses in precision instrument control is clearly displayed, solving the problem of difficulty in intuitive display in existing technologies and improving the efficiency of program design and operation.

CN117093191BActive Publication Date: 2026-06-19BEIJING HUAFENG TEST & CONTROL TECH CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
BEIJING HUAFENG TEST & CONTROL TECH CO LTD
Filing Date
2022-05-12
Publication Date
2026-06-19

Smart Images

  • Figure CN117093191B_ABST
    Figure CN117093191B_ABST
Patent Text Reader

Abstract

This application discloses a programming interface, a programming method, a programming device, and a method for running a program. The programming method includes a programming interface composed of tables, comprising a flow control area and a business control area. The flow control area includes instruction entries and step number entries, and the business control area includes business entries. The method includes: sequentially writing each flow control instruction constituting the main flow into the cells of the instruction entry; generating step number values ​​corresponding to each flow control instruction according to the order of the instructions in the instruction entry, and displaying them in the cells of the step number entry; determining the starting step number value of a business program segment constituting a sub-business; determining the duration of the business program segment's execution, and determining the ending step number value based on the starting step number value and the duration; and highlighting the cells under the business entry corresponding to the business program segment. This method is more intuitive during programming and helps improve program design efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of software technology, and in particular to programming interfaces, programming methods, programming devices, and methods for running programs. Background Technology

[0002] In the current field of software programming, text-based programming is the most popular form due to the characteristics of programming languages ​​and programming habits. Meanwhile, graphical programming also exists in certain specific areas. Each of these two forms has its advantages and disadvantages. Text-based programming is more universal, but it is more difficult to design and the code is less readable. Graphical programming, on the other hand, generally has limitations in its application areas, but it is easier to design and the code is more readable.

[0003] In certain specialized applications, such as the control of precision instruments, especially when multiple measurement and control functions are implemented through these instruments, and particularly when concurrent operations are involved, precise control of the start and stop times of these various measurement and control functions is required. If the execution flow or relative running time of each measurement and control function can be clearly and intuitively displayed, the central control program can be designed more quickly and accurately for the control of the precision instrument.

[0004] When designing concurrent operations for multiple measurement and control services using text-based programming and programming diagrams, additional descriptive text is needed to describe the execution sequence and flow of each concurrent service (referred to as a sub-service for ease of description). Furthermore, the code generated from programming diagrams tends to have poor readability. When dealing with complex business logic between concurrent operations or sub-services, program design becomes difficult and development efficiency is low. Summary of the Invention

[0005] This invention provides a programming interface, programming method, programming device, and program operation method to solve the technical problem in the prior art that it is difficult to intuitively display the relative timing of the execution of each sub-service when controlling precision instruments.

[0006] In a first aspect, the present invention provides a programming interface, which is composed of tables, including a flow control area and a business control area. The flow control area includes instruction table items, step number table items and label table items, and the business control area includes business table items.

[0007] Each cell in the instruction list is used to sequentially write the flow control instructions that constitute the main flow;

[0008] Each cell in the step number table is used to sequentially write the step number value corresponding to each flow control instruction. The step number value is generated in an incrementing manner according to the order of each flow control instruction in the instruction table.

[0009] Each cell under the business table item is used to highlight the cell from the starting step number value to the ending step number value of the business program segment that constitutes a sub-business. The starting step number value is the step number value that the business program segment should correspond to when it starts running, and the ending step number value is the other step number value that the business program segment should correspond to when it ends running.

[0010] The cell in the label table is used to set the first label corresponding to a flow control instruction, wherein the first label is used as the loop start label in the corresponding loop instruction or the jump pointer label in the corresponding jump instruction.

[0011] Secondly, the present invention provides a programming method, including a programming interface composed of tables, comprising a flow control area and a business control area. The flow control area includes instruction entries and step number entries, and the business control area includes business entries. The programming method includes:

[0012] Write each flow control instruction that constitutes the main flow into the cell of the instruction list item in the flow control area in sequence;

[0013] Based on the order of the flow control instructions in the instruction table, step number values ​​corresponding to each flow control instruction are generated in an incremental manner and displayed in each cell of the step number table corresponding to each flow control instruction.

[0014] Determine the starting step number of the business program segment that constitutes a sub-business. The starting step number is the step number that the business program segment should correspond to when it starts running.

[0015] Determine the duration of the business program segment's execution, and determine the end step number based on the start step number and the duration. The end step number is another step number that the business program segment should correspond to when it ends its execution.

[0016] Highlight each cell under the business table item corresponding to the business program segment, from the cell with the corresponding start step number to the cell with the corresponding end step number.

[0017] In some embodiments, determining the end step number based on the start step number and the duration includes:

[0018] Determine the duration of executing a step number value;

[0019] The number of continuous steps is determined based on the duration and the length of a step number value.

[0020] The end step number is determined based on the starting step number and the number of consecutive steps.

[0021] In some embodiments, the highlighting includes: merging cells from the cell corresponding to the start step number value to the cell corresponding to the end step number value.

[0022] In some embodiments, each flow control instruction in the instruction list includes a loop instruction, which includes a loop count and a loop start label, wherein the loop start label includes a first label.

[0023] The process control area also includes label entries, in which a first label is set in a cell of the label entry, and the first label corresponds to a process control instruction in the instruction entry;

[0024] The loop instruction is used to indicate the number of loops from the flow control instruction corresponding to the first label to the number of loops executed by the loop instruction.

[0025] In some embodiments, each flow control instruction in the instruction list entry includes a jump instruction, the jump instruction includes a jump pointer label, and the jump pointer label includes a first label;

[0026] The process control area also includes label entries, in which a first label is set in a cell of the label entry, and the first label corresponds to a process control instruction in the instruction entry;

[0027] Jump instructions are used to indicate a jump to the flow control instruction corresponding to the first label.

[0028] In some embodiments, a flow control instruction corresponds to one or more step number values.

[0029] Thirdly, the present invention provides a method for running a program.

[0030] Obtain the flow control instructions that constitute the main flow, and the main flow is generated according to the programming method described in the second aspect;

[0031] Each flow control instruction of the main process is executed sequentially, and step number values ​​are generated sequentially for each executed flow control instruction in an incrementing manner;

[0032] When the step number of a process control instruction corresponds to the starting step number of a sub-service's business procedure segment, the sub-service's business procedure segment is started.

[0033] Fourthly, the present invention provides a programming apparatus, comprising:

[0034] The programming interface consists of tables, including a flow control area and a business control area. The flow control area includes instruction table items and step number table items, and the business control area includes business table items.

[0035] The instruction table entry processing module is used to sequentially write each flow control instruction that constitutes the main flow into each cell of the instruction table entry in the flow control area.

[0036] The step number table processing module is used to generate step number values ​​corresponding to each flow control instruction in an incremental manner according to the order of each flow control instruction in the instruction table, and display them in each cell of the step number table corresponding to each flow control instruction.

[0037] The sub-business processing module is used to determine the starting step number of a business program segment that constitutes a sub-business. The starting step number is the step number that the business program segment should correspond to when it starts running. The module is also used to determine the duration of the business program segment's operation and to determine the ending step number based on the starting step number and the duration. The ending step number is another step number that the business program segment should correspond to when it ends running.

[0038] The business item processing module is used to highlight each cell under the business item corresponding to the business program segment, from the cell with the corresponding start step number value to the cell with the corresponding end step number value.

[0039] Fifthly, the present invention provides a computing device, comprising: a processor, and

[0040] A memory that stores program instructions, which, when executed by a processor, cause the processor to perform the programming method described in the second aspect, or the program instructions, when executed by a processor, cause the processor to perform the program execution method described in the third aspect.

[0041] In a sixth aspect, the present invention provides a storage medium having stored program instructions thereon, wherein when executed by the processor, the program instructions cause the processor to perform the programming method described in the second aspect, or when executed by the processor, the program instructions cause the processor to perform the program execution method described in the third aspect.

[0042] These and other aspects of this application will become more apparent in the description of the following embodiments(s). Attached Figure Description

[0043] The following description, with reference to the accompanying drawings, further illustrates the various features of this application and the relationships between them. The drawings are exemplary; some features are not shown to scale, and some drawings may omit conventional features in the field of this application that are not essential to it, or additional features that are not essential to this application may be shown. The combination of features shown in the drawings is not intended to limit this application. Furthermore, throughout this specification, the same reference numerals refer to the same things. Specific descriptions of the drawings are as follows:

[0044] Figure 1 This is a flowchart illustrating the programming method according to an embodiment of this application;

[0045] Figure 2 This is a flowchart illustrating the operation method of the program in an embodiment of this application;

[0046] Figure 3A This is a schematic diagram of the programming framework corresponding to the programming method in the embodiments of this application;

[0047] Figure 3B For applications such as Figure 3A A schematic diagram of the main flow implemented by the programming framework;

[0048] Figure 4 This is a schematic diagram of the composition of a test system for testing a device under test according to an embodiment of this application;

[0049] Figure 5 This is a schematic diagram of the operation process of a test system for testing a device under test according to an embodiment of this application;

[0050] Figure 6 A diagram illustrating the information of the flow control instructions applied in the programming method of this application embodiment;

[0051] Figure 7 This is a schematic diagram illustrating the composition of a programming apparatus according to an embodiment of this application;

[0052] Figure 8 This is a schematic diagram of the composition of a computing device according to an embodiment of this application;

[0053] Figure 9A A schematic diagram of the programming overview for existing loop operations;

[0054] Figure 9B A schematic diagram of a programming overview for existing concurrent operations. Detailed Implementation

[0055] The technical solutions provided in this application will be further described below with reference to the accompanying drawings and embodiments. It should be understood that the embodiments of this application are mainly for illustrating possible implementations of the technical solutions of this application and should not be construed as the sole limitation on the technical solutions of this application.

[0056] It should be understood that the programming solutions provided in the embodiments of this application include programming interfaces, programming methods, programming devices and program execution methods, computing devices, computer storage media, etc. Since these technical solutions solve problems based on the same or similar principles, some repetitive details may not be repeated in the following descriptions of specific embodiments. However, it should be considered that these specific embodiments have mutual references and can be combined with each other.

[0057] Unless otherwise defined, all technical and scientific terms used in this application have the same meaning as commonly understood by one of ordinary skill in the art to which this application pertains. In case of any inconsistency, the meaning as set forth in this specification or derived from the content described herein shall prevail. Furthermore, the terminology used in this application is for the purpose of describing embodiments of this application only and is not intended to limit this application.

[0058] Currently, in the testing process of instrument control, text programming is generally used to design measurement and control programs, such as controlling the start and stop of various measurement and control services. In this case, a programming outline diagram can be used to describe the execution order between various measurement and control sub-services, the loop execution of measurement and control sub-services, the jump execution of measurement and control sub-services, and idle waiting operations, thereby providing a general preview of the overall execution flow of the measurement and control service. For example... Figure 9A In the example shown, the for statement is used in text programming to specify that the business code inside the for loop is executed 3 times, which is suitable for designing sub-businesses that are repeatedly executed inside the loop.

[0059] Typically, for scenarios with multiple concurrent measurement and control services, the central control program (also referred to as the main program in this application) coordinates and schedules the execution of various measurement and control services. For example... Figure 9B As shown, in designing the central control program, N threads Thread_1 to Thread_N, which start synchronously (e.g., using a shared global semaphore), are used to design multiple concurrent measurement and control services. Semaphores are used to synchronize the start and stop of these concurrent measurement and control services, such as starting execution simultaneously and stopping execution simultaneously. Thread_1 executes the code for service 1, Thread_2 executes the code for service 2, and Thread_N executes the code for service N. Figure 9B As shown, for thread Thread_N, in order to synchronize its start and stop with other threads, a Sleep(X1) statement is used to implement an idle wait of duration X1. Furthermore, after thread Thread_N starts, it executes business code segment 1 and business code segment 2 sequentially. After executing business code segment 1 and before executing business code segment 2, a Sleep(X2) statement is also executed to implement an idle wait of duration X2. When this central control program runs, these concurrent measurement and control services 1 to N are executed independently by the device running the central control program in N threads, or independently by N test instruments or N test channels. At this time, the control device in the test system executes the central control program, and the N test instruments or N test channels in the test system are the controlled devices, each executing concurrent measurement and control services 1 to N.

[0060] from Figure 9A and Figure 9BAs can be seen, text programming can independently describe the operation content of each measurement and control service and the interrelationship mechanism between them, but it cannot reflect the precise execution start time and operation start time.

[0061] To address the aforementioned programming requirement of intuitively displaying the relative execution times of each sub-service, this application proposes a programming framework. This framework allows users to write programs more quickly, while clearly displaying the start and stop times of each service program segment on the programming interface. This framework can be applied to business domains requiring precise time planning, such as in the field of Automatic Test Equipment (ATE), where precise planning of the start and stop times between various tests on the device under test (DUT) is necessary.

[0062] This application first provides a programming interface for programming, such as Figure 3A , Figure 3B As shown, the programming interface consists of tables, including a flow control area and a business control area. The flow control area includes instruction entries and step number entries, while the business control area includes business entries. The flow control area may also include label entries. The following is a description of each entry:

[0063] Each cell of the instruction table entry is used to sequentially write the flow control instructions that constitute the main flow. In some embodiments, the cells of the instruction table entries in the flow control area are arranged sequentially in rows or columns and aligned with the cells of the step number table entries and / or the cells of the label table entries.

[0064] Each cell in the step number table is used to sequentially write the step number value corresponding to each flow control instruction, wherein the step number value is generated in an incremental manner according to the order of the flow control instructions in the instruction table. In some embodiments, the cells of the step number table in the flow control area are arranged sequentially in rows or columns and aligned with the cells of the instruction table and / or the cells of the label table.

[0065] Each cell under the business table entry is used to highlight the cell from the starting step number value to the ending step number value of a business procedure segment constituting a sub-business. The starting step number value is the step number value that the business procedure segment should correspond to at the start of its execution, and the ending step number value is the step number value that the business procedure segment should correspond to at the end of its execution. In some embodiments, when there are multiple sub-businesses, the business control area includes multiple business table entries. The cells under each business table entry are arranged sequentially in rows or columns and aligned with the cells of the step number table entry.

[0066] The cells of the label entries are used to set a first label corresponding to a flow control instruction, wherein the first label is used to correspond to the loop start label in a loop instruction or the jump pointer label in a jump instruction. In some embodiments, the cells of the label entries in the flow control area are arranged sequentially in rows or columns and aligned with the cells of the instruction entries and / or the cells of the step number entries.

[0067] The programming interface includes a flow control area and a business control area. The flow control area is used to record and display step number values, flow control instructions, and the first label. The business control area is used to record and display the area from the start step number value to the end step number value of the business program segment of multiple independent sub-businesses. Furthermore, the business program segment is aligned with at least one step number value.

[0068] This application further provides a programming method that can be used for programming based on the aforementioned programming interface. The programming interface will not be described in detail here. Figure 1 As shown, the programming method includes the following steps:

[0069] S11: Write the various flow control instructions that constitute the main flow into the cells of the instruction list entries in the flow control area in sequence.

[0070] In some embodiments, the sequential writing of each cell in this step can be done manually by the user. In some embodiments, the sequential writing of each cell in this step can be done by importing from another file containing each flow control instruction into each cell of the instruction table entry, wherein the file can be in text format or other format.

[0071] In some embodiments, when importing flow control instructions from a file into cells of an instruction list entry, each flow control instruction in the file occupies one line, and the flow control instructions can be distinguished by line for import into the cells of the instruction list entry. In some embodiments, flow control instructions can also be distinguished by specified punctuation marks.

[0072] The above flow control instructions are used to describe the execution flow of the main program, and can include behaviors such as condition judgment, loop, jump, wait, start and stop. Figure 6 This shows sequential instructions executed in sequence, such as the Nop instruction; loop instructions that execute multiple times, such as the Loop instruction; program start instructions, such as the Start instruction; program end instructions, such as the End instruction; and jump instructions, such as the Jmp instruction. The specific characters listed above are one representation of the instructions; other characters can also be used, such as using Finish to represent the program end instruction and Jump to represent a jump instruction.

[0073] S12: Based on the order of the flow control instructions in the instruction table, generate step number values ​​corresponding to each flow control instruction in an incremental manner, and display them in the cells of the step number table corresponding to each flow control instruction.

[0074] In some embodiments, this step can be incremented by 1, with each incrementing sequentially. The step number of the first flow control instruction can be 1.

[0075] In this context, each flow control instruction corresponds to one or more step number values, and the number of step number values ​​is related to the execution time of the flow control instruction. For example... Figure 3B In the example shown, instruction 1 corresponds to one step number value, and instruction 4 corresponds to three step number values.

[0076] The step number value can be used to indicate the progress of the program and the precise timeline. The running time of each flow control instruction or the business program segment of each sub-business can be aligned by cell.

[0077] S13: Determine the starting step number value of the business program segment constituting a sub-business, wherein the starting step number value is the step number value that the business program segment should correspond to when it starts running.

[0078] In some embodiments, when there are multiple sub-services, the starting step number value of the business procedure segment of each sub-service is determined separately. For example... Figure 3B The example shown includes four sub-businesses: Business 1, Business 2, Business 3, and Business 4.

[0079] In some embodiments, when a sub-service contains multiple service program segments, the starting step number value for each service program segment is determined separately. For example... Figure 3B In the example shown, business procedure 2 includes two business program segments.

[0080] S14: Determine the duration of the operation of the business program segment, and determine the end step number value based on the start step number value and the duration, wherein the end step number value is another step number value that the business program segment should correspond to when it ends.

[0081] In some embodiments, determining the duration of operation of a business program segment includes parsing the number of business instructions contained in the received business program segment and the time occupied by each business instruction, calculating the estimated duration of operation of the business program segment based on the number of instructions and the time occupied, and determining the duration of operation of the business program segment based on the estimated duration; in other embodiments, determining the duration of operation of a business program segment also includes directly obtaining the duration of the received business program segment.

[0082] In some embodiments, determining the end step number based on the start step number and the duration includes the following steps: determining the duration of executing one step number; determining the number of continuous steps based on the duration and the duration of one step number; and determining the end step number based on the start step number and the number of continuous steps.

[0083] In some embodiments, determining the number of continuous steps based on the duration and the duration of a step number value includes: determining n as the number of continuous steps when the duration is n times the duration of a step number value; and determining n+1 as the number of continuous steps when the duration is between n times the duration of a step number value and n+1 times the duration of a step number value, where n is a non-negative integer.

[0084] In some embodiments, the duration of the flow control instruction corresponding to a certain number of consecutive step numbers can be determined statistically, and then the duration of a corresponding step number can be calculated by averaging.

[0085] In some embodiments, when there are multiple sub-services, the end step number value of the business procedure segment of each sub-service is determined separately.

[0086] In some embodiments, when there are multiple service program segments in a sub-service, the end step number value of each service program segment is determined separately.

[0087] S15: Highlight each cell under the business table item corresponding to the business program segment, from the cell with the corresponding start step number value to the cell with the corresponding end step number value.

[0088] In some embodiments, when there are multiple sub-services, the cells corresponding to the start step number value to the end step number value of the business program segment of each sub-service are highlighted.

[0089] In some embodiments, when there are multiple business program segments in a sub-business, the cells corresponding to the start step number value to the end step number value of each business program segment are highlighted.

[0090] In some embodiments, the highlighting includes merging cells from the cell corresponding to the start step number value to the cell corresponding to the end step number value. In some embodiments, the highlighting may be displaying cells from the cell corresponding to the start step number value to the cell corresponding to the end step number value with a background fill pattern or color, such as displaying multiple consecutive cells with a single color. In some embodiments, different sub-services may be highlighted in different ways, such as with different colors.

[0091] In some embodiments, each business procedure segment also includes descriptive information, which is obtained through human-computer interaction and displayed in the cells of the merged business form. For example, the descriptive information may be the name or brief description of the sub-business corresponding to that business procedure segment, etc.

[0092] The above describes how the business control area is used to set and display information from the start step number to the end step number for each sub-business. The business control area extends to various sub-businesses, such as... Figure 3B In the example shown, each sub-service occupies a column in the service control area. Each sub-service operates independently, and the description language of the service program segment in each sub-service can be customized.

[0093] In some embodiments, each flow control instruction in the instruction table entry of step S11 above may include a loop instruction, which includes a loop count and a loop start label, wherein the loop start label includes a first label; correspondingly, the first label is set in a cell of the label table entry in the flow control area, and the first label corresponds to a flow control instruction of the instruction table entry; the loop instruction is used to indicate a loop from the flow control instruction corresponding to the first label to the loop instruction executing the loop count.

[0094] In some embodiments, each flow control instruction in the instruction list item in step S11 above may include a jump instruction, the jump instruction including a jump pointer label, the jump pointer label including a first label; correspondingly, the first label is set in a cell of the label list item in the flow control area, the first label corresponding to a flow control instruction in the instruction list item; the jump instruction is used to indicate jumping to the flow control instruction corresponding to the first label.

[0095] Thus, when using the aforementioned programming method and programming interface, programmers can clearly and intuitively observe the running time, start and stop times, and sequential relationships of each process control instruction or business program segment, enabling them to design programs more accurately.

[0096] In the programming method of this application, each sub-business and the process control instructions can be relatively independent. The increment of the step number value in the process control area represents the consumption of execution time. The change of the step number value is consistent with the increase of the process control instructions. For example, in the process control area of ​​the programming interface, each cell in the column where the step number item is located is horizontally aligned with each cell in the column where the process control instructions are located, that is, aligned by the step number value.

[0097] This application also provides a method for running a program, such as... Figure 2 As shown, the program's operation method includes the following steps:

[0098] S21: First, obtain the flow control instructions that constitute the main flow, which is generated according to the aforementioned programming method.

[0099] S22: Next, each flow control instruction of the main process is executed sequentially, and step number values ​​are generated sequentially for each executed flow control instruction in an incremental manner; wherein, when the step number value of an executed flow control instruction corresponds to the starting step number value of a business program segment of a sub-service, the business program segment of the sub-service is started.

[0100] In some embodiments, in step S22, step number values ​​are generated sequentially for each executed flow control instruction in an incremental manner. This can be achieved by incrementing the step number value at a time interval of a preset instruction cycle, wherein the value of the preset instruction cycle is configurable.

[0101] In some embodiments, after the business program segment of the sub-service is started, it runs independently until the end of the program segment, and can return a signal that the business program segment of the sub-service has finished running.

[0102] In some embodiments, the program execution method may execute the flow control instructions of the main flow step by step according to a pre-set instruction cycle. For example, when the flow control instruction is a sequential instruction, the program executor executes the flow control instructions in the program memory step by step (e.g., in the order recorded in the test program), generates the step number value corresponding to the sequential instruction, and causes the flow control instruction to start. As another example, when the flow control instruction is a loop instruction, in the outer loop, the program executes the loop according to the number of loop iterations specified in the loop instruction (e.g., the value indicated by Count). In the inner loop, the program jumps to the flow control instruction corresponding to the first tag recorded in the loop start tag of the loop instruction and executes the loop instruction.

[0103] Thus, in the program execution method of this application, the flow control instructions control the startup of the business program segments of all sub-businesses. When the flow control instructions reach a certain step number value, they will trigger the startup and execution of the program segments of each sub-business aligned with that step number value.

[0104] To better understand this application, it will be further described below with reference to specific embodiments.

[0105] like Figure 3AIn the illustrated embodiment, the programming interface displays a flow control area on the left and a business control area on the right. When initializing or creating a new main flow, the flow control area or business control area is initialized as cells arranged sequentially by row. In the left-hand flow control area, from right to left, instruction entries, label entries, and step number entries are displayed sequentially. The instruction entries exemplify flow control instructions such as "Start," "Instruction 2," and "Instruction 6." Each of these flow control instructions corresponds to a step number of 1. The step number entries exemplify continuously increasing step number values. Instructions 2 to 6 do not involve loop or jump instructions, therefore their corresponding label entries are blank. In the right-hand business control area, from left to right, cells containing multiple blank business entries corresponding to sub-businesses 1 to N are displayed sequentially, with different sub-businesses arranged in different columns.

[0106] like Figure 3B The program interface for "Business 2 program segment 1 is executed 3 times in a loop" and "Business 4 program segment 1 is executed 3 times in a loop" implemented using the programming method of this application is shown, as well as the program interface for "Business 1 program segment 1 and Business 3 program segment 1 start simultaneously; the first program segment of Business 2 (i.e., program segment 1) starts after a certain time delay, and the second program segment of Business 2 (i.e., program segment 2) starts after a certain time delay after the first program segment ends".

[0107] In this way, by aligning step numbers within the programming interface and using cells as the unit of measurement for the duration of the run (i.e., time), the precise duration of the run, the start time of the run, the end time of the run, and the execution process of a single sub-business or multiple sub-businesses that start independently and concurrently can be displayed.

[0108] Thus, this programming method simplifies the user's operation when designing programs through the programming interface, standardizes the program design process, and can align step number values ​​with the business program segments of sub-businesses when editing the control instructions of the main process and the program segments of sub-businesses. It can intuitively display the execution time sequence between the business program segments corresponding to each sub-business. When applied to the testing field, it can achieve the purpose of accurate control of the testing of precision instruments or multiple devices under test.

[0109] Reference Figure 9A , Figure 9B and Figure 3A , Figure 3B As can be seen from the comparison, text-based programming can independently describe the operation content of each business and the interrelationship mechanism between them, but it cannot reflect precise time points, running status, and start / stop status. The programming interface and programming method of this application can clearly reflect the time consumed by the execution of each program segment and the execution time of concurrent startup between program segments.

[0110] Therefore, compared with the aforementioned text programming method, the programming method of this application can more intuitively reflect the precise duration, start and stop times and sequential relationships of the main process and each sub-business through the alignment of step number values ​​on the programming interface, which is also conducive to improving the design and running efficiency of the program.

[0111] Figure 3B The example demonstrates the use of the loop instruction "Loop 3Loop_Label" in programming. The first label in this loop instruction is "Loop_Label," indicating the starting position of the loop. In this programming example, this starting position is set to the starting position of instruction 4. Therefore, "Loop_Label" is entered at the corresponding label position, which corresponds to step number 4. The ending position of this loop is the current loop instruction position, corresponding to step number m+1. The loop count is 3. Within the loop of the instruction "Loop 3Loop_Label," the program segments for sub-business 2 and sub-business 4 will be executed accordingly.

[0112] like Figure 4 As shown, this application also provides an embodiment of the application of this application in the field of ATE testing. Specifically, it provides a test system for testing a device under test, including a programming device 100, a control device 300, and at least one controlled device 400, which will be described in detail below:

[0113] The programming device 100 provides the aforementioned programming interface and can execute the aforementioned programming method to generate a corresponding program, which in this example is used to test the device under test. The program generated based on this programming method includes a main flow section (corresponding to the flow control instructions constituting the main flow) and sub-service sections (corresponding to the service program segments of each sub-service). The main flow section is provided to the control device 300 for execution, and the sub-service sections are provided to the respective controlled devices 400 for execution. The main flow section and the sub-service sections can be relatively independent and written separately. The control device 300 and the controlled devices 400 cooperate to complete the aforementioned program execution method.

[0114] The control device 300, connected to the programming device 100, is used to receive, store, and execute the program of the main flow section. During the execution of this main flow section, it sequentially generates step numbers for each flow control instruction in the main flow, in an incrementing manner. Furthermore, the step numbers generated during program execution are synchronized in real time to each controlled device 400. Specifically, the control device 300 may begin executing the program of this main flow section after receiving a start command from the host computer (e.g., through a test interface).

[0115] The controlled device 400 is connected to the programming device 100 and the control device 300 respectively. It is used to receive and store program segments of corresponding sub-services from the programming device 100. The received information includes the step number value that the program segment of the sub-service should start (such as the aforementioned starting step number value). It also receives the step number value generated and synchronized by the control device 300 in real time to achieve synchronization with the step number of the control device 300. When it receives the corresponding step number to be started (such as the aforementioned starting step number value), it starts the service program segment corresponding to its sub-service. The service program segment is used to perform the test on the device under test coupled to the controlled device 400.

[0116] In some embodiments, the control device 300 may include at least a process control processor to implement the functions of the control device 300, and the controlled device 400 may include at least a service control processor to implement the functions of the controlled device 400. The service control processor starts the service program segment corresponding to the step number value by receiving the synchronized step number value from the process control processor, so as to perform the test on the device under test.

[0117] By setting up the business control processor, programming device, and process control processor independently, the program design, program execution, and testing of the device under test are decoupled from each other. This helps to reduce the number of interactions between the business control processor, programming device, and process control processor, thereby improving execution efficiency and reliability.

[0118] The programming instructions in the flow control area of ​​the programming interface correspond to code in the background that implements the required functions (the code can be in programming languages ​​such as Java and C++). Thus, the main flow's program code can be generated based on the programming instructions entered by the user in the flow control area of ​​the programming interface. The program segments for each sub-business can be written in common programming languages, and each sub-business's program segment can be encapsulated into a package with input / output interfaces, facilitating the calling of programs corresponding to different main flows written for different purposes. Therefore, the programs for each sub-business can be written separately, making the implementation of sub-businesses more flexible.

[0119] Among them, a compiler can be set to translate the programming instructions in the programming interface flow control area into code, or directly into assembly-level instructions, and further into machine code for the processor to execute.

[0120] In practical implementation, the program generated by the programming method of this application needs to be run using a program processor. The program processor mainly includes a flow control processor and a business control processor. The flow control processor is used to execute flow control instructions, and the business control processor is used to execute various business program segments. Based on the implementation of the flow control processor, the business control processor can be customized according to specific business requirements.

[0121] In some embodiments, the programming device 100 described above may be provided by Figure 5 The host computer shown can be used to implement the control device 300 and the controlled device 400. Figure 5 The illustrated lower-level machine implementation. In addition to sending programs to the lower-level machine, the upper-level machine can also send control commands for program execution, such as commands to start, interrupt, and terminate the program. It can also receive and display the execution results from the lower-level machine in real time for real-time debugging or monitoring of the lower-level machine's operation.

[0122] like Figure 5 In the illustrated embodiment, the form programming software in the host computer provides the programming interface, and the compiler is used to compile the code corresponding to the main process input during programming to generate the corresponding program, wherein the main process part and the sub-business part can be compiled separately.

[0123] like Figure 5 In the illustrated embodiment, the flow control processor in the lower-level machine receives the program of the main flow section (referring to the compiled program, which will not be elaborated further), sequentially stores each instruction in the program into its program memory, loads it into the program executor for execution, and synchronizes the step numbers generated during execution to each service control processor in real time. Each service control processor in the lower-level machine receives the program of its corresponding sub-service section. Each service control processor sequentially stores each instruction in the received sub-service section's program into its program memory, and when the synchronized step number is the step number that should be started, loads each instruction in its program memory into its program executor for execution.

[0124] The following is about Figure 5 The working principle of the illustrated embodiment will be further described in detail. First, the host computer's form programming software provides a programming interface to implement the programming method described in this application. The compiler compiles the code generated during the programming process to generate a program. Subsequently, the host computer sends the corresponding program to the slave computer and starts the slave computer to execute the program. Figure 5The lower-level machine shown in the embodiment includes a process control processor 310 and N service control processors 411 to 41N. The lower-level machine executes a program, storing flow control instructions in the main flow, such as instructions 1 to R, in the program memory of the process control processor 310. The process control processor 310 loads the flow control instructions from the program memory into the program executor one by one and executes them, generating step number values ​​in real time during this execution. The process control processor 310 synchronizes the generated step number values ​​to the N service control processors 411 to 41N in real time.

[0125] Each of the N service control processors 411 to 41N (e.g., service control processors 411, 412, ..., 41N) is equipped with a program memory. The program memory stores the instructions of the received sub-service program segments. The program memory of a service control processor can have multiple sub-service program segments (see reference). Figure 3B Examples of two program segments for Service 2 (e.g., Service program segments 1 to J). After receiving the synchronized step number value, the Service Control Processor determines that if the starting step number of a sub-service program segment is the currently received step number value, it loads the sub-service program segment from the program memory into the program executor for execution.

[0126] In some embodiments, the process control processor 310 can be implemented using an FPGA to run custom process control instructions, while the service control processor 411 can be implemented using an FPGA or other types of CPUs to run various service program segments. For example, when deployed as an ATE device, the lower-level machine includes an FPGA-implemented process control processor 310 and a service control processor 411 implemented using other CPU resources. Based on the implementation of the process control processor 310, the service control processor 411, etc., can be customized according to specific services, which will not be elaborated further.

[0127] Thus, after executing each business process control instruction, the process control processor 310 synchronizes the step number value corresponding to the process control instruction generated in real time to other business control processors 411, etc. When the business control processors 411, etc. receive the step number, they determine whether each business program segment stored in their own program memory needs to be started at the relative time corresponding to the trigger step number. If so, they start the corresponding business program segment to execute.

[0128] The flow control processor mainly consists of a program memory and a program executor. The program memory stores the program issued by the host computer, and the program executor executes the program in the program memory, such as various flow control instructions. The program executor itself has the ability to execute the flow control instructions in the program memory step by step according to a fixed instruction cycle, and the instruction cycle can be configured to ensure that the program can strictly run each business program segment according to the predetermined timing and flow control.

[0129] The following reference Figure 5 The general process of programming and executing this application is summarized below, including the following steps:

[0130] 1) The host computer receives the program written by the user through the programming interface; for details, please refer to the signed introduction to the editing interface and the programming method, which will not be repeated here.

[0131] 2) The host computer sends the compiled program to the program processor of the slave computer. Figure 5 In the example shown, the program processor includes a flow control processor and various service control processors; the flow control processor and various service control processors of the lower-level machine respectively receive and store the program of the corresponding main flow and the program corresponding to the sub-service.

[0132] 3) The host computer sends a start signal to the process control processor of the slave computer.

[0133] 4) The lower-level machine's program processor runs the stored program according to the established operating mechanism, including the process control processor running the stored main program and generating step number values, and each business control processor starting the stored program corresponding to the sub-business based on the step number value.

[0134] 5) After the program is completed, the lower-level machine returns the overall execution result to the upper-level machine.

[0135] like Figure 7 As shown, this application also provides a programming device, comprising:

[0136] The programming interface consists of tables, including a flow control area and a business control area. The flow control area includes instruction table items and step number table items, and the business control area includes business table items.

[0137] The instruction table processing module 31 is used to sequentially write each flow control instruction constituting the main flow into each cell of the instruction table in the flow control area.

[0138] The step number table processing module 32 is used to generate step number values ​​corresponding to each flow control instruction in an incremental manner according to the order of each flow control instruction in the instruction table, and display them in each cell of the step number table corresponding to each flow control instruction.

[0139] The sub-service processing module 33 is used to determine the starting step number value of a service program segment constituting a sub-service, wherein the starting step number value is a step number value that should correspond to when the service program segment starts running; and to determine the duration of the operation of the service program segment, and to determine the ending step number value based on the starting step number value and the duration, wherein the ending step number value is another step number value that should correspond to when the service program segment ends running.

[0140] The business item processing module 34 is used to highlight each cell under the business item corresponding to the business program segment, from the cell with the corresponding start step number value to the cell with the corresponding end step number value.

[0141] In some embodiments, the flow control area further includes a label entry, and the programming device further includes a label entry processing module for setting a first label corresponding to a flow control instruction in the cell of the label entry, wherein the first label is used to correspond to a loop start label in a loop instruction or a jump pointer label in a jump instruction.

[0142] like Figure 8 As shown, this application also provides a computing device 500, including: a processor 510 and a storage 520, on which program instructions are stored, wherein when the program instructions are executed by the processor, the processor performs any of the above-mentioned programming methods, or when the program instructions are executed by the processor, the processor performs any of the above-mentioned program execution methods.

[0143] When the computing device 500 is used to implement programming methods, in some embodiments, the computing device 500 can be... Figure 4 In some embodiments, the programming device 100, the computing device 500 can be... Figure 5 The host computer in the middle.

[0144] When the computing device 500 is used to implement a program execution method, in some embodiments, the computing device 500 can be... Figure 4 In some embodiments, the computing device 500 can be a control device 300 and a controlled device 400. Figure 5 The lower-level machine in the process can be, for example, a process control processor and a business control processor with built-in program memory and program executor.

[0145] In some embodiments, the computing device 500 may further include a communication interface 530. It should be understood that... Figure 8 The communication interface 530 in the computing device 500 shown can be used to communicate with other devices.

[0146] The processor 510 can be connected to the memory 520. The memory 520 can be used to store the program code and data. Therefore, the memory 520 can be a storage unit inside the processor 510, an external storage unit independent of the processor 510, or a component that includes both the storage unit inside the processor 510 and the external storage unit independent of the processor 510.

[0147] Optionally, the computing device 500 may also include a bus. The memory 520 and communication interface 530 can be connected to the processor 510 via the bus. The bus can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc.

[0148] It should be understood that in the embodiments of this application, the processor 510 may be a central processing unit (CPU). The processor may also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor. Alternatively, the processor 510 may employ one or more integrated circuits to execute related programs to implement the technical solutions provided in the embodiments of this application.

[0149] The memory 520 may include read-only memory and random access memory, and provides instructions and data to the processor 510. A portion of the processor 510 may also include non-volatile random access memory. For example, the processor 510 may also store device type information.

[0150] When the computing device 500 is running, the processor 510 executes the computer execution instructions in the memory 520 to perform the operation steps of the above method.

[0151] It should be understood that the computing device 500 according to the embodiments of this application can correspond to the corresponding subject in executing the methods according to the various embodiments of this application, and the above and other operations and / or functions of each module in the computing device 500 are respectively for implementing the corresponding processes of the methods of this embodiment. For the sake of brevity, they will not be described in detail here.

[0152] In the embodiments provided in this application, it should be understood that the disclosed methods, apparatuses, etc., can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or modules may be electrical, mechanical, or other forms.

[0153] The modules that serve as separate components may or may not be physically separate. Some or all of the modules can be selected to achieve the purpose of this embodiment, depending on actual needs.

[0154] In addition, the functional modules in the various embodiments of this application can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module.

[0155] If the aforementioned functions are implemented as software functional modules and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0156] This application also provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, is used to perform any of the above-described programming methods or the above-described program execution methods.

[0157] The computer storage medium in this application embodiment can be any combination of one or more computer-readable media. A computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. For example, a computer-readable storage medium can be, but is not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of computer-readable storage media (a non-exhaustive list) include: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this document, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.

[0158] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, capable of sending, propagating, or transmitting programs for use by or in connection with an instruction execution system, apparatus, or device.

[0159] The program code contained on a computer-readable medium may be transmitted using any suitable medium, including, but not limited to, wireless, wire, optical fiber, RF, etc., or any suitable combination thereof.

[0160] Computer program code for performing the operations of this application can be written in one or more programming languages ​​or a combination thereof, including object-oriented programming languages ​​such as Java, Smalltalk, and C++, and conventional procedural programming languages ​​such as "C" or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0161] Furthermore, the terms "first, second, third, etc." or similar terms such as module A, module B, and module C used in the specification and claims are only used to distinguish similar objects and do not represent a specific ordering of objects. It is understood that, where permissible, a specific order or sequence may be interchanged so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.

[0162] In the above description, the labels of the steps, such as S11, S12, etc., do not necessarily mean that the steps will be executed in this way. The order of the steps can be interchanged or executed simultaneously if permitted.

[0163] The term "comprising" as used in the specification and claims should not be construed as limiting itself to what follows; it does not exclude other elements or steps. Therefore, it should be interpreted as specifying the presence of the mentioned feature, integral, step, or component, but does not exclude the presence or addition of one or more other features, integrals, steps, or components, or groups thereof. Thus, the statement "device comprising means A and B" should not be limited to a device consisting solely of components A and B.

[0164] The term "an embodiment" or "an embodiment" as used in this specification means that a particular feature, structure, or characteristic described in conjunction with that embodiment is included in at least one embodiment of this application. Therefore, the terms "in an embodiment" or "in an embodiment" appearing throughout this specification do not necessarily refer to the same embodiment, but may refer to the same embodiment.

[0165] Note that the above are merely preferred embodiments and the technical principles employed in this application. Those skilled in the art will understand that this application is not limited to the specific embodiments described herein, and various obvious changes, readjustments, and substitutions can be made without departing from the scope of protection of this application. Therefore, although this application has been described in detail through the above embodiments, this application is not limited to the above embodiments, and may include many other equivalent embodiments without departing from the concept of this application, all of which fall within the scope of protection of this application.

Claims

1. A programming interface, characterized by, The programming interface consists of tables, including a flow control area and a business control area. The flow control area includes instruction entries, step number entries, and label entries, while the business control area includes business entries. Each cell of the instruction table entry is used to sequentially write the flow control instructions that constitute the main flow; Each cell in the step number table is used to sequentially write the step number value corresponding to each flow control instruction. The step number value is generated in an incremental manner according to the order of each flow control instruction in the instruction table. Each cell under the business table item is used to highlight the cell from the starting step number to the ending step number of a business program segment constituting a sub-business. The starting step number is the step number that the business program segment should correspond to at the start of its execution, and the ending step number is the step number that the business program segment should correspond to at the end of its execution. The process of determining the ending step number includes: determining the duration of executing a step number; determining the number of continuous steps based on the duration and the duration of a step number; and determining the ending step number based on the starting step number and the number of continuous steps. The cell in the label entry is used to set a first label corresponding to a flow control instruction, wherein the first label is used to correspond to the loop start label in a loop instruction or the jump pointer label in a jump instruction, specifically including: When each flow control instruction includes a loop instruction, the loop instruction includes a loop count and a loop start label, the loop start label including a first label; the first label is set in a cell of the label table entry, the first label corresponding to a flow control instruction of the instruction table entry; the loop instruction is used to indicate a loop from the flow control instruction corresponding to the first label to the loop instruction executing the loop count; or When each flow control instruction includes a jump instruction, the jump instruction includes a jump pointer label, and the jump pointer label includes a first label; the first label is set in a cell of the label table entry, and the first label corresponds to a flow control instruction of the instruction table entry; the jump instruction is used to indicate a jump to the flow control instruction corresponding to the first label.

2. A programming method, characterized in that, The programming interface comprises tables, including a flow control area and a business control area. The flow control area includes instruction entries and step number entries, and the business control area includes business entries. The programming method includes: Write each flow control instruction that constitutes the main flow into the cell of the instruction list item in the flow control area in sequence; Based on the order of the flow control instructions in the instruction table, step number values ​​corresponding to each flow control instruction are generated in an incremental manner and displayed in each cell of the step number table corresponding to each flow control instruction. Determine the starting step number value of the business program segment that constitutes a sub-business, wherein the starting step number value is the step number value that the business program segment should correspond to when it starts running; The duration of the operation of the business program segment is determined, and the end step number is determined based on the start step number and the duration. The end step number is another step number that the business program segment should correspond to when it ends. Highlight each cell under the business table item corresponding to the business program segment, from the cell with the corresponding start step number value to the cell with the corresponding end step number value. The step of determining the end step number based on the starting step number and the duration includes: determining the duration of executing one step number; determining the number of continuous steps based on the duration and the duration of one step number; and determining the end step number based on the starting step number and the number of continuous steps. Wherein, when a loop instruction is included in each flow control instruction of the instruction table entry, the loop instruction includes a loop count and a loop start label, and the loop start label includes a first label; the flow control area also includes a label table entry, in which the first label is set in a cell of the label table entry, and the first label corresponds to a flow control instruction of the instruction table entry; the loop instruction is used to indicate a loop from the flow control instruction corresponding to the first label to the loop instruction executing the loop count; Wherein, when a jump instruction is included in each flow control instruction of the instruction table entry, the jump instruction includes a jump pointer label, and the jump pointer label includes a first label; the flow control area also includes a label table entry, in which the first label is set in a cell of the label table entry, and the first label corresponds to a flow control instruction of the instruction table entry; the jump instruction is used to indicate a jump to the flow control instruction corresponding to the first label.

3. The programming method of claim 2, wherein, The highlighted display includes merging cells from the cell corresponding to the starting step number value to the cell corresponding to the ending step number value.

4. The programming method according to claim 2, characterized in that: One of the aforementioned process control instructions corresponds to one or more step number values.

5. A method for running a program, characterized in that, Obtain the flow control instructions that constitute the main flow, which is generated by the programming method according to any one of claims 2-4; Each flow control instruction of the main process is executed sequentially, and step number values ​​are generated sequentially for each executed flow control instruction in an incrementing manner; When the step number value of the executed flow control instruction corresponds to the starting step number value of the business program segment of a sub-service, the business program segment of the sub-service is started.

6. A programming device characterized by comprising: include: The programming interface consists of tables, including a flow control area and a business control area. The flow control area includes instruction table items and step number table items, and the business control area includes business table items. The instruction table entry processing module is used to sequentially write each flow control instruction that constitutes the main flow into each cell of the instruction table entry in the flow control area. The step number table processing module is used to generate step number values ​​corresponding to each flow control instruction in an incremental manner according to the order of each flow control instruction in the instruction table, and display them in each cell of the step number table corresponding to each flow control instruction. A sub-service processing module is used to determine the starting step number of a service program segment constituting a sub-service, wherein the starting step number is a step number that the service program segment should correspond to at the start of its operation; and to determine the duration of the operation of the service program segment, and to determine the ending step number based on the starting step number and the duration, wherein the ending step number is another step number that the service program segment should correspond to at the end of its operation; wherein determining the ending step number based on the starting step number and the duration includes: determining the duration of executing a step number; determining the number of continuous steps based on the duration and the duration of a step number; and determining the ending step number based on the starting step number and the number of continuous steps. The business item processing module is used to highlight each cell under the business item corresponding to the business program segment, from the cell with the corresponding start step number value to the cell with the corresponding end step number value. Wherein, when a loop instruction is included in each flow control instruction of the instruction table entry, the loop instruction includes a loop count and a loop start label, and the loop start label includes a first label; the flow control area also includes a label table entry, in which the first label is set in a cell of the label table entry, and the first label corresponds to a flow control instruction of the instruction table entry; the loop instruction is used to indicate a loop from the flow control instruction corresponding to the first label to the loop instruction executing the loop count; Wherein, when a jump instruction is included in each flow control instruction of the instruction table entry, the jump instruction includes a jump pointer label, and the jump pointer label includes a first label; the flow control area also includes a label table entry, in which the first label is set in a cell of the label table entry, and the first label corresponds to a flow control instruction of the instruction table entry; the jump instruction is used to indicate a jump to the flow control instruction corresponding to the first label.

7. A computing device, comprising: include: processor, and A memory storing program instructions that, when executed by the processor, cause the processor to perform the programming method according to any one of claims 2-4, or the program instructions that, when executed by the processor, cause the processor to perform the program execution method according to claim 5.