WO2006038303A1 - Software creating method - Google Patents

Software creating method Download PDF

Info

Publication number
WO2006038303A1
WO2006038303A1 PCT/JP2004/014868 JP2004014868W WO2006038303A1 WO 2006038303 A1 WO2006038303 A1 WO 2006038303A1 JP 2004014868 W JP2004014868 W JP 2004014868W WO 2006038303 A1 WO2006038303 A1 WO 2006038303A1
Authority
WO
WIPO (PCT)
Prior art keywords
word
processing
program
output
execution
Prior art date
Application number
PCT/JP2004/014868
Other languages
French (fr)
Japanese (ja)
Inventor
Osamu Arai
Original Assignee
Catena Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Catena Corporation filed Critical Catena Corporation
Priority to PCT/JP2004/014868 priority Critical patent/WO2006038303A1/en
Publication of WO2006038303A1 publication Critical patent/WO2006038303A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Definitions

  • the present invention relates to a software generation method based on a mathematical concept, and more particularly to a software generation method using an adjacency matrix and a topological 'sort in Lyee methodology.
  • declarative programming in which programming is performed by declarations that are requirement definitions themselves, includes artificial intelligence, expert systems, logical reasoning, inference, user information gathering, and user intelligence gathering.
  • Declarative programming Requirement defined in the control procedure Declares the relationship between defined data and programming is performed based on the declaration, so the advantage is different from procedural programming that requires the procedure such as the control procedure to be explicitly specified. This means that requirements can be implemented accurately.
  • declarative programming also has a problem that the efficiency of execution is not good due to the structure of execution control.
  • Another disadvantage is that it is difficult to use a language for declarative programming.
  • Languages for declarative programming include logical languages that use logical expressions (for example, PROLOG) and functional languages that describe target states as mathematical functions (for example, LISP).
  • Declarative languages have a procedural logical mechanism for executing declarations, because values are not generated just by declaring them. The logical mechanisms of these procedures have a number of conditions in order to be able to execute all declarations, require knowledge of mathematics and logic, and are difficult to master. For this reason, it is not popular as a programming language. This is why procedural programming using a procedural language that has a structure similar to that of human natural language is becoming more prevalent. (4) Object-oriented programming
  • Object-oriented programming is a programming technique in which data and procedures (called methods) that operate on it are combined as a unit called an object, and a program is written as a combination of objects. Since the program is composed of highly independent modules called objects, the scope of the impact of changes and modifications is limited, and there is an advantage that reuse can be reduced in units of objects.
  • Patent Document 1 Pamphlet of International Publication No. 97Z16784
  • Patent Document 2 Pamphlet of International Publication No. 98Z19232
  • Patent Document 3 Pamphlet of International Publication No. 99Z49387
  • Patent Document 4 Pamphlet of International Publication No.OOZ79385
  • Patent Document 5 Pamphlet of International Publication No. 02Z42904
  • Patent Document 6 International Publication No. 2004Z68342 Pamphlet
  • Patent Document 7 JP 2002-202883 A
  • Non-Patent Document 1 Dallin 'Winskel, “Official Semantics of Programming Languages”, MIT Press, 1993
  • Non-Patent Document 2 Hanne 'Rees' Neilson, Fleming's Nielson, “Semantics of Application Semantics”, John “Wylie'and” Sands, 1992 Of the Information Society in the 21st Century (IS2000), Japan, Aizu, November 5-8, 2000, pp441-446
  • Non-Patent Document 4 Fumio Negori, “High-Density Processing Method for Source Code Generation”, 5th World Multipolar Conference Report on Systemitas, Cybernetics and Informatics, (SCI2001), USA, July 22-25, 2001
  • Lyee (governmentaL methodologY for so satwarE providencE ⁇ 3 ⁇ 4 ⁇ tailed. Read as “Lee. The inventor is Fumio Nerai.”) was proposed. Lyee is a new way to automatically develop software with requirements as well.
  • Lyee although it is declarative, it does not require a special logic mechanism for executing the declaration, and execution of the declaration is a procedure of assigning a value as simple as procedural programming. Therefore, the language to be used may be a procedural language that is widely used. In other words, Lyee has the declarative advantage of being able to implement the requirements correctly and the procedural advantage of being able to use a procedural language that is easy to describe. [0007] For an overview of the Lyee development method, reference is made to Japanese Patent Application No. 2004-272400 and Patent Document 6 by the applicant of the present application, which are incorporated in the disclosure. An outline is given below.
  • Lyee the object of the abstraction that you declare is a variable. Declared variables are called words in Lyee. In general, if a specification is declarative, the unit of abstraction in which it is declared excludes the order of description, and it is expressed as an equation that has the right-hand side power and the bidirectionality from the left-hand side to the right-hand side. That is. In Lyee, words have no power bi-directionality that eliminates the ordering of descriptions, which simplifies the framework.
  • a definition expression is a relational expression that indicates a relationship with another word.
  • the program structure is composed of fixed-format modules (hereinafter referred to as "declaration execution modules”) that execute word-by-word declarations, and these modules are aggregated in units called palettes. Yes.
  • the execution order of declaration execution modules in the palette can be any array.
  • Execution control module power in the pallet Controls execution so that execution of the declaration execution module is repeated until execution of all the declaration execution modules in the pallet is completed (ie, values can be generated).
  • the palette consists of the W02 palette for executing the input word declaration, the W03 palette for executing the calculation condition in the output word declaration, and the definition expression execution and output in the output word declaration. There is a W04 palette to execute.
  • These three types of pallets form a set, forming a collective unit called the basic structure.
  • the Lyee structure program is divided into basic structure units, the basic structure is divided into three types of palettes, and the palettes are divided into declaration execution modules.
  • the basic structure is created in units of output logic (ie, groups of words that are simultaneously output to the same medium). This division structure of the Lyee program is illustrated as a processing path diagram (PRD:
  • the entire program by Lyee is composed of a fixed-structure declaration execution module that executes word-by-word declarations, and the method of configuring the entire program with these declaration execution modules is also standardized. Therefore, it is possible to automatically generate a program by substituting the declaration of requirements in units of words into this fixed structure declaration execution module.
  • LyeeALL automatically assigns the requirement declarations to a given blank in the code of the boilerplate declaration execution module (called a “template”.
  • Template is a template). It is a tool that is constructed according to a predetermined method and builds one program.
  • Lyee methodology In software development using the Lyee methodology, engineers are divided into two groups, each performing two specialized tasks. One team is familiar with technologies related to the external environment in which the Lyee structure program runs, such as the OS, middleware, and database, and sets parameters for each external environment in the template of the Lyee structure program. The other team defines the user requirements and declares the requirements according to the Lyee methodology to implement the requirements in the Lyee structured program template. Since this kind of division of labor can be developed, the development of Lyee methodology can also solve the problem of shortage of human resources with such skills, which does not require all programmers to have technologies related to a wide range of external environments.
  • Lyee requirements are divided into units called basic structures to capture specifications. Understand the clear information about the execution order such as screen transitions, database key relationships, etc., using word duplication as a unit, and grasp the execution conditions of words belonging to the group.
  • this split structure is coded as it is, so the program size is large and the execution speed is also slow.
  • the topological sort automatically optimizes the placement order of declaration execution modules (declaration execution is completed in one round) Ordering) method has already been proposed (PCTZJP03Z09591). You can topologically sort the modules in the palette to eliminate wasted repetition in the palette.
  • the topological sort is performed with the Lyee division structure as it is, the effect is limited. This is because there is repetition between pallets and basic structures, and the optimal ordering by topological 'sorting within the pallet minimizes the number of repetitions, but generation of all values is not completed in one cycle. .
  • the split structure itself is one factor that increases the program size.
  • the present invention relates to a method of performing topological sort on the entire program by eliminating the division unit of the conventional Lyee structure program. This aims to improve software execution speed and program size with the Lyee methodology. Means for solving the problem
  • the present invention provides a user requirement to be implemented as one program for each logical body with an access condition, for each word on the logical body, a word name, a definition formula, From the word unit declaration declared by the execution condition, input / output attribute, and word value attribute of the definition expression, all L2 processing (input word attribute check processing) and L processing (output) required for satisfying the requirements are performed.
  • the first step that defines the execution unit of one of the declarations of word value generation processing, 12 processing (logical body input processing), and 04 processing (logical body output processing), and all the L2 defined above Define (semi) order relations of processing (input word attribute check processing), L processing (output word value generation processing), 12 processing (logical input processing), 04 processing (logical output processing) Specified by the step and the (semi) order relationship defined by the step
  • the L2 process, the L process, the 12 process, and the 04 process are subjected to a third step of performing topological sort, and according to the sequence of execution units of the declarations rearranged by the third step. And a fourth step of arranging a given code sequence based on the Lyee methodology corresponding to the declaration execution unit.
  • the word unit declaration defined in the first step is subjected to L2 processing (input word attribute check processing), L processing (output word value generation processing). ), 12 processing (Logical body input processing), 04 processing (Logical body output processing), the program to be executed in the shortest order is created, and software generation using Lyee methodology becomes more efficient.
  • L2 processing input word attribute check processing
  • L processing output word value generation processing
  • 12 processing logical body input processing
  • 04 processing Logical body output processing
  • topological 'sorting is a method in which a depth-first search (described later) is performed on the directed graph obtained above, and nodes are acquired when the force search path is reached.
  • This is a function that arranges node sequences (numerical sequences).
  • it may be software that has programmed such functions, or may be software that has been coded into ROM (Read Only Memory).
  • the directed graph obtained above is represented by an adjacency matrix, and a depth-first search is performed on this to generate a zero-throw matrix.
  • depth-first search means
  • search includes breadth-first search, iterative deeping, heuristic search, Various algorithms including Hill Climbing, Best- First Search, Euler stroke, Dijkstra method and so on.
  • it may be software that programs such functions, or may be software that has been coded in ROM (ReadOnlyMemory).
  • Software used here has a broad meaning. In other words, it is a concept that includes both development requests from users and target programs that meet the needs.
  • a program (software), a program generation device, a program processing device, and a tool (including both as a device and software) for producing "software to be developed" as different embodiments of the present invention
  • the present invention further includes software produced by the above-described "method for producing software to be developed" and a recording medium on which the software is installed or an apparatus on which the software is installed.
  • the present invention implements the user requirements implemented as one program for each logical body with access conditions, for each word on the logical body, a word name, a definition formula, Declaration power in units of words declared by execution conditions of definition formulas, input / output attributes, and word value attributes Everything necessary to satisfy the requirements
  • the execution units of declarations of L2 processing (input word attribute check processing), L processing (output word value generation processing), 12 processing (logical input processing), and 04 processing (logical output processing) are single words. It is constructed as a given code sequence based on the relevant Lyee methodology according to the sequence sequence sorted by the topological sort performed on the (semi) order relationship that also defines the requirement power declared in the You can also.
  • the present invention relates to software as a model of software code used for producing software by the above-mentioned "method for producing software to be developed", and a recording medium on which the software is mounted.
  • it can be realized as a device (hardware) on which the software is installed.
  • the present invention is an extraction method of information (document (paper, data)) extracted from the requirements by the above-mentioned "method for producing software to be developed", and extraction by a powerful extraction method.
  • Information (document (paper, data)), as a method of using the extracted information, or as an information recording medium on which such information is mounted, or as a method of extracting information Z It may be realized as information extracted from the software development requirements, including coded software and related information that can be realized as a recording medium Z device (hardware) on which the software is installed.
  • the processing of the declaration execution module for generating output data in the system program that also has the word-by-word declaration execution module power is completed with the minimum number of executions by eliminating unnecessary repetition.
  • the program size can be reduced. More specifically, the following points are possible.
  • a word-based declaration execution unit for example, a path action element, which becomes unnecessary by the optimal ordering is deleted.
  • the order information that must be implemented to maintain the meaning of the requirement.
  • the execution condition of the road action element can retain the meaning of the requirement by reflecting it in the definition of the partial order relation of the declaration execution unit of other word units.
  • Topological sorting is performed on the word-wise declaration execution unit module group (not including the path action element) obtained in this way, and the word-unit declaration execution unit group is rearranged in the optimal order. This avoids unnecessary repetition and allows the program to be executed with the minimum number of executions.
  • the present invention improves the above-mentioned problems of the prior art by eliminating the division unit of the conventional Lyee structure program and performing topological sort on the entire program. According to the present invention, improvement in the execution speed of software developed by the Lyee methodology and improvement in program size are realized.
  • specific embodiments of the present invention will be described with reference to the drawings.
  • Patent Document 6 For the technique of topological 'sorting for Lyee structure program, reference is made to Patent Document 6 by the same applicant, which is a part of the disclosure.
  • Chapter 1 explains the outline and outline of the division structure of the Lyee software that is the object of integration of the present invention.
  • Chapter 2 describes a specific method for integrating the basic structure.
  • Section 3 describes examples of programs that integrate basic structures using the present invention and their effects.
  • the division structure of Lyee software is a structure in which declaration execution modules, which are the smallest unit modules, are grouped according to certain rules.
  • the structure is shown in Fig. 1 (a) and (b).
  • the modules that make up the program are first grouped into units shown as “synchronization range” in Fig. 1 (a).
  • the synchronization range is a set of requirements defined by the computer to be executed by an event (for example, a command such as pressing a button or selecting a menu) that is a process execution instruction to the program by the user. It is the scope of processing.
  • a synchronization range is a group of modules that are executed using the same event as an execution condition. In Lyee, this synchronization range processing is called “synchronization”. Completing the synchronization range processing means completing the generation and output of all output words specified in the requirements for the event.
  • modules within the synchronization range are grouped into basic structural units as shown at 101 in FIG. 1 (a).
  • the input / output processing of a computer is performed on a set of data rather than on a data unit.
  • a set of words that are simultaneously input or output to the same definition is called a logical entity in Lyee.
  • a logical unit is a unit that holds word values such as screens, files, forms, and messages.
  • the basic structure is a grouping of modules involved in the same output logic.
  • the role of the program is to generate and output the value of the output word specified by the event by the user, but the output to be performed within the synchronization range by one event is not necessarily one.
  • two or more output logics within one synchronization range such as saving (outputting) the generation results to a file, in addition to displaying (outputting) the word value generation results on the screen Field is output, and the synchronization range is grouped into multiple basic structures.
  • the modules in the basic structure are grouped into three groups by type.
  • Basic A group of modules in a structure is called a palette in Lyee.
  • the three pallets are called W02 pallet, W03 pallet, and W04 pallet, respectively.
  • the W02 palette is a collection of modules related to input word input.
  • the W03 palette is a set of modules related to the determination of the calculation condition of the output word definition formula.
  • the W04 palette is a set of modules related to the generation of values by the execution of output word definition formulas and the output of values.
  • the basic structure to be executed next in the depth-first search is determined. If the topological sort is executed for the declaration execution modules within the same synchronization range, the execution order is determined.
  • the target of optimal ordering by topological sort is the processing executed by the declaration execution module that is a component of Lyee software.
  • declaration execution modules There are two types of declaration execution modules, one is a logical element and is a module for establishing the value of a word. The other is an action element, a module that performs processing other than value establishment, such as input / output processing.
  • Patent document 6 treats logical elements that establish values as elements of a directed graph and an adjacency matrix, expresses them by a mathematical model, and implements a topological sort.
  • Action elements can also be handled as elements of the directed graph and adjacency matrix that are the same as logical elements, and can be the target of topological sort.
  • the only major difference between a logical element and an action element is that the logic element acts on only one word (acting as a value generation), but the action element acts on two or more words at the same time.
  • a path action element (which specifies the basic structure to be executed next) operates on a set of words called the basic structure, and an output action element (outputs an output word) is a word called an output logic. Act on sets.
  • L2 is a declaration execution module that checks whether the attribute of the input word meets the requirements. Under any condition, the condition under which L2 processing can be executed is that the input word's value / medium power is also taken into the memory area (already entered). Therefore, it can be considered that the L2 processing that is the target of topological sorting is the input 12 of the L2 value at the start point.
  • Event commands are also treated as one of the input words.
  • the output word generation processing is realized by two modules, L3 (execution of calculation condition expressions) and L4 (execution of definition expressions). Furthermore, when the output word a has a plurality of definition expressions (the word in such a case is called an equivalent word), L3 and L4 are provided as many as the number of combinations of the definition expression and the calculation condition.
  • the output word a has a plurality of defining expressions (the word in such a case is called an equivalent word) and is declared as follows.
  • Equivalent words have multiple definitions, but only one value is assigned to the output word. There must be. Therefore, the calculation conditions for the definition of equivalent words must be exclusive and complete.
  • the condition for generating the word a is sufficient if all the definition words of the word a and all the start words used in the calculation condition are determined. Yes.
  • the topological sort target only needs to execute the definition expressions for the words b, c, d, and e first.
  • the topological sort targets are all of the L3 and L4 processing pairs for each output word, and the starting point is the input word L2 used as the starting point in their definition and calculation conditions. It is a set of processing and output word L4 and L3 processing.
  • Reference numeral 12 denotes a module for performing (input) processing for fetching values from the medium into the memory. Therefore, the condition under which 12 processes can be executed under any condition is unconditional (that is, it does not depend on other processes).
  • the 12 processes subject to topological sort do not have a starting point. (However, in the case of input from a file, the value of the key word, which is the key for accessing the file, must be established)
  • the condition under which the process 04 can be executed under any condition is that the value of the output word to be output has been established (that is, one L4 has been executed).
  • the 04 process that is the target of the topological sort can be regarded as the output word that is the output target.
  • S4 initializes the area to record the word value and the area to record the processing result (for example, output completed successfully, output not completed normally) (record the initial value) It is a module that performs processing.
  • overwriting prohibition and initialization of word value areas were means for the repeat structure mechanism. Therefore, the topological sort is performed on the entire program, and the Lyee structure is optimally ordered. Therefore, it is not necessary to initialize the word value area.
  • the initialization of the processing result recording area is not a process for the mechanism of the repetitive structure! /, So it is also necessary for the integrated Lyee structure.
  • the path action element is a module that performs processing for designating a palette to be executed next.
  • the path action element plays a role of linking the pallet which is a division unit of the program and the basic structure which is a set of the pallet.
  • Fig. 2 shows a system in which a user obtains a value for data item g by inputting data into data item c and data item d and pressing a or b of the execute button on a screen of a certain system.
  • 701 is an input data field of data item c
  • 702 is an input data field of data item d
  • 703 is an output data field of data item g
  • 704 is execute button a
  • 705 is execute button b.
  • the program of the screen in FIG. 2 is represented in FIG. 3 as divided units of the basic structure.
  • BS1, BS2, and BS3 in Fig. 3 are basic structures.
  • Basic structure BS1 is the basic structure of the output logic to the screen shown in Fig.2.
  • BS1 includes an input word a and an input word b that are execution buttons, an input word b and an input word c that are input data items, an output word g that is an output data item, and a path action element X.
  • the basic structure BS2 is a basic structure (medium is a file) for calculating the value of the output data item g by the expression c + d when the execute button a is pressed. Log the result of the expression c + d. It contains the word e.
  • Basic structure BS3 is output data item g when execute button b is pressed Is the basic structure (medium is a file) for calculating the value of x by the formula c X d. It contains the word f that records the calculation result of the expression c X d.
  • the basic structure for calculating the value of the output word g is BS2 or BS 3 Specifies which force should be executed It is the pathway action element X that does.
  • BS3 the next basic structure to execute. Also, since execution moves to the next basic structure when input data is ready, the fact that word c and word d have a value is also an execution condition for path action element X.
  • the value of the output word g is the word e or the word.
  • the conventional Lyee structure has a division structure, and iterative processing is performed for each division unit.
  • Two types of control modules were required: a palette chain function (one program) that calls and executes the palette function itself.
  • FIG. 4 is a diagram showing the relationship of the words in FIG. 3 with a directed graph.
  • Words a, b, and d which are input words belonging to the basic structure BS1, are the end points of the word network represented by the directed graph.
  • the word X which is a path action element belonging to the basic structure BS1
  • the word e belonging to the basic structure B S2 and the word f belonging to the basic structure BS3 require the word c, the word d, and the word X in order for the value to be satisfied.
  • Each arrow is linked to three words. Since the output word g belonging to the basic structure BS1 requires the word e or the intermediate word f in order for the value to be established, it is linked to the two words by arrows starting from these two words.
  • the system of Example 1 shown by the directed graph in FIG. 4 is represented using an adjacency matrix.
  • the adjacency matrix F1 that represents the basic structure BS1 (901) that handles the input word in Fig. 4 is shown in Equation 1 below.
  • Adjacency matrix of basic structure BS1 (input word)
  • the elements of BS1 are word a, word b, word word d, and word ⁇
  • the matrix of F1 is composed of these elements. Since the input word word a, word b, and word word d do not have a start word, each row of end words a, b, c, d (start word a, b, c, d, x “Intersection points” are all “0” indicating that they are not used as the start point words.
  • word X which is a route creation element, has word a, word b, Since it has the word d, the row of the end word X f is “1” indicating that the intersection with these start words is the start point.
  • Equation 2 the adjacency matrix F2 representing the combination of the basic structures BS2 and BS3 (hereinafter referred to as the basic structures BS2 & BS3) is shown in Equation 2 below.
  • the matrix of F2 is composed of these two elements. Since the word e and the word f are independent from each other (that is, both words use the other word as the starting word), the misalignment intersection is also “0”.
  • the adjacency matrix F3 of the set that handles the output words of the basic structure BS1 is shown in the following Equation 3.
  • Adjacency matrix of basic structure BS1 (output word)
  • the matrix of F3 is composed of only gl words.
  • the word g does not use itself as the starting point, so the intersection is “0”.
  • BS1 appears before the word of BS2 & 3 when the word of the basic structure BS2 & 3 is the end word.
  • (Input) word can be the starting word BS1 (Output) word cannot be the starting word Basic structure When the BS1 (output) word is the end word, either BS2 & 3 or BS1 (input) Since the word also appears before the BS1 (output) word, it can be the starting word.
  • a joint adjacency matrix for linking basic structures is a joint adjacency that represents the relationship between an arbitrary basic structure and a basic structure that includes a word that can be the starting word of a word belonging to it. It turns out that it is a matrix. Because, as shown in the directed graph, there is only a directional relationship from the starting word to the ending word for the relationship between words, so the relationship between the basic structures is also changed from the basic structure including the starting word to the ending word. There is only a relationship toward the basic structure including, and there is no reverse relationship (the joint adjacency matrix that represents the relationship between such basic structures has all intersection points of 0).
  • Equation 4 is a joint adjacency matrix FC1 indicating the relationship between the basic structure BS1 (input) (start word) force and the basic structure BS2 & BS3 (end word).
  • the adjacency matrix FC1 is the word a, word b, word c, word that are elements of BS1 (input) when word e and word f, which are elements of the basic structure BS2 & BS3, are placed at the end word.
  • d, word x f represents the state used as the starting word, and shows the relationship between the two basic structures. As shown in Fig. 4, word e and word f use word c, word d, and word X as the starting word. Therefore, in FC1, the intersection of the line of end word e and end word f and start point words c, d, and X is “1”, and the intersection point with other start point words is “0”.
  • Equation 5 represents the adjacency matrix FC2 indicating the relationship from the basic structure BS1 (input) and the basic structure BS2 & BS3 (start point word) to the basic structure BS1 (output) (end point word).
  • FC2 g [0 0 0 0 1 l]
  • the adjacency matrix FC2 is the word a, word b, word word that is an element of BS1 (input), BS2, BS3 that appears before in the directed graph when the word g, which is an element of the basic structure BSl (output), is placed at the end word.
  • d, word X word e, and word f are used as starting words, and the relationship between the two groups is shown.
  • word g uses word e and word f as the starting word. Therefore, in FC2, the intersection of the line of the end point word g and the start point words e and f is “1”, and the intersection point of the other start point words is “0”.
  • Equation 6 is a joint adjacency matrix FC3 indicating that there is no relationship between the basic structure BS2 & BS3 (start word) and the basic structure BS1 (input) (end word).
  • Equation 7 is a connection adjacency matrix FC4 indicating that there is no relationship between the basic structure BSl (output) (start word) and the basic structure BSl (input) (end word).
  • Equation 8 is a joint adjacency matrix FC5 indicating that there is no relationship between the basic structure BS1 (output) (start word) force basic structure BS2 & BS3 (end word).
  • Example 1 Using the adjacency matrices F1 to F3 and the combined adjacency matrices FC1 to FC5 shown above, the system of Example 1 is expressed as one adjacency matrix F.
  • one system composed of two or more basic structural forces can be represented by one adjacency matrix.
  • the adjacency matrix F of the system of Example 1 As shown in Fig. 6, all the intersections with the starting word whose value is 1 are in the lower left triangle (1301). As mentioned in Chapter 1, this means that the words are in the optimal order. Therefore, the adjacency matrix F in Equation 9 has already been topologically sorted and is in the order of words that can complete the generation of output words with the minimum number of executions, given the initial word state vector. It can be said.
  • a word-by-word program arranged in the optimal execution order by topological sorting can generate all output word values in one round.
  • the number of data to be minus minus 1 is the minimum number of repetitions.
  • Such an aggregation process can also be expressed in one adjacency matrix using a combined adjacency matrix.
  • the power and other search techniques described using the topological sort as an example may be used.
  • the adjacency matrix definition is essentially an indispensable step in this paper to help ease understanding. In other words, it is within the scope of the idea of the present invention to reach a search such as topological 'sorting' directly from the definition of the relationship between declarations without defining adjacent matrices or through directed graph creation. It can realize the intended purpose of Ming.
  • This section functions as a function that generates the value of the adjacency matrix F force output word of the system shown in the previous section, and the force is also topologically sorted, so all output words are generated with the minimum number of executions. Is verified by a calculation operation that multiplies the state vector of the word disclosed in Patent Document 6 by the same applicant. If the value of the output word g is determined, the adjacency matrix F can be said to function as a function. In addition, since the system of Example 5 does not include the repetitive processing such as the above-described aggregation processing, it can be said that the processing is completed with the minimum number of executions if the state of the value of the output word g is determined in one round processing.
  • the state of the value of the word before the user inputs that is, the initial value of the state vector X of the word is all elements as disclosed in Patent Document 6 by the same applicant. Is “null (undecided)”, and it becomes like the following number 10.
  • s noil Performs a calculation process that multiplies the adjacency matrix F of number 9 (ie, the system of Example 1) by the state vector X of number 10 (ie, inputs to the system of Example 1). The state of the value of the word that is changed by the FX calculation process will be explained for each terminal word.
  • a 0-null + 0-null + 0-null + 0-null + 0-null + 0 ⁇ null + 0 ⁇ null + 0-null
  • the value state is fixed regardless of the value state, and changes from nuU to (+1). In other words, this indicates that the value has been determined by the input.
  • the state of the value of each word after completion of the word a line during one round is as shown in Table 2 below.
  • the calculation of the end point word b during the first round process is as follows because it uses the state of the word value in Table 2.
  • word a and word b are alternative buttons on the screen, so when one of them is selected, the state of both values is confirmed.
  • the calculation of the end point word d during the first round process is as follows because the state of the word value in Table 4 is used.
  • the execution conditions of word e and word f are alternative conditions, so if one of the conditions is determined to be true, the other condition is determined to be false.
  • the adjacency matrix F is arranged so that the word unit programs are executed in the optimal order by topological sorting, the state of the value of all words is determined by executing one round of calculation processing.
  • the value of the output word g could be established.
  • the execution condition of the path action element is equal to the condition for executing the defining expression of the set of all words (one or more powers) belonging to the basic structure specified by the path action element. This is because all the words of the basic structure are executed when the condition of the path action element is satisfied. Therefore, the execution condition of the path action element can be shifted to the condition of the word belonging to the basic structure specified by the path action element.
  • Table 10 shows the definition formula and definition formula execution conditions for word X, word e, and word f, which are path action elements.
  • FIG. 7 is a directed graph showing the relationship of words in the system of Example 1 with the path action element removed.
  • Equation 13 is the adjacency matrix of basic structure BS2 & BS3 c
  • Equation 14 is the adjacency matrix of basic structure BS1 (output).
  • FC1 'in Equation 15 is a combined adjacency matrix indicating the relationship from basic structure BS1 (input) to basic structure BS2 & BS3. Since the path action element has been deleted, the word X is deleted as the element of the starting word. As shown in Table 11, word e and word f have new word a and word b as starting words, respectively, by changing the execution conditions of the path action element. Therefore, the end point word e has an intersection point with the word a in addition to the start point words c and d. The end word f has an intersection point with the word b in addition to the start words c and d.
  • f [0 1 1 1 FC2 of number 16 is a connected adjacency matrix that shows the relationship from basic structure BS2 & BS3 to basic structure BS1 (output). Since the path action element has been deleted, the word as the element of the starting word It has been deleted.
  • FC3 in Equation 17 is a combined adjacency matrix indicating that there is no relationship from basic structure BS2 & BS3 to basic structure BS1 (input). Since the path action element has been deleted, the word X is deleted as the element of the starting word.
  • FC4 'of number 18 is a joint adjacency matrix indicating that there is no relationship from basic structure BS1 (output) to basic structure BS1 (input). Since the path action element has been deleted, the word X is deleted as the element of the starting word.
  • FC5 'of number 19 is a joint adjacency matrix indicating that there is no relationship from basic structure BS1 (output) to basic structure BS2 & BS3.
  • Equation 19 S The adjacency matrix F of the system can be expressed by the adjacency matrix F ′ shown in the following equation 20 when the condition of the path action element is replaced and the path action element is deleted.
  • Fl ', F2', F3 ', FC1', FC2 'and 0 shows how the basic structural unit adjacency matrix and combined adjacency matrix are integrated to represent the entire system.
  • FC3', FC4 Corresponding to ', FC5'
  • Fl ', F2', F3 ', FC 1', FC2 ', FC3', FC4 ', FC5' are integrated to form F ', and even more power ⁇ ) 8.
  • 1201 has a proportional force F1 ', 1202 force SF2', 1203 is F3 ', 1204 is FC1', and 1205 is FC2 '.
  • a joint adjacency matrix with all matrix intersections of 0 constitutes FC3, force 206, FC4 'force 207, same 5, and ⁇ 208.
  • one system having two or more basic structural forces can be represented by one adjacency matrix by removing the path action element.
  • topological sorting is performed on the adjacency matrix of this system so that the state of all word values is determined with the minimum number of executions (that is, generation of all output words is completed). Sort programs by word in the optimal order. Looking at the adjacency matrix F ', as shown in Fig. 9, all the intersections with the starting word whose value is 1 are in the lower left triangle (1601). As shown in the same applicant's patent document 5, this is the word in the optimal order Means that. Therefore, the adjacency matrix F ′ of the number 20 has already been topologically sorted, and if an initial value word state vector is given, the order of the words that can complete the generation of the output word with the minimum number of executions becomes. It can be said that.
  • the adjacency matrix F ′ which shows the structure of the system excluding the path action element, shown in the previous section, has the same function function as the adjacency matrix F, which is the structure before eliminating the path action element.
  • the state vector X of the word to be given to F ′ first is Like 21.
  • the calculation of the end word a during the first round process is as follows.
  • the end point word b uses the value state of the word in Table 12 for the calculation process, the end point word b during the first round process is calculated as follows.
  • Calculation processing of the end point word d uses the value state of the word in Table 14. The calculation of the end point word d during the first round processing is as follows.
  • the end point word g uses the state of the word value in Table 17 in the calculation process, the end point word g during the first round process is calculated as follows.
  • the adjacency matrix F ′ is arranged in such a way that the word unit programs are executed in the optimal order by topological sorting! /, So all word values are determined by executing one round of calculation processing. And the value of the output word g was established.
  • the adjacency matrix F ' excluding the word of the path action element also gives the initial value of the state vector (input), so that the value of all the words is the same as the adjacency matrix F. It can be seen that the state is fixed and the value of the output word g can be generated. Therefore, it was verified that the adjacency matrix F, which is a system with a path action element, and the adjacency matrix F ', which is a system without a path action element, have equivalent processing functions as a system.
  • Any program can be written only in a recursive way .
  • Any program written in a procedural programming language eg C, java, etc.
  • Any program written in a procedural programming language can be written in a while program that plays the same role as a recursive program. This shows that the while program can theoretically do anything.
  • a structuring element (Vector of Clear) is defined to clear.
  • the action element is generally a kind of word with a predicate structure.
  • the structure of the program code is the same as a word.
  • the main difference from a word is that it handles two or more words at the same time. The meaning is to clear the path and area for the external interface and control structure.
  • the program's adjacency matrix (the entire program's matrix) is merged into a single matrix, using a split adjacency matrix and a connection matrix that only moves state.
  • the connection matrix indicates that words from other groups are used as the starting word. It is therefore possible to use a mathematical model of a word-based program.
  • Example 2 The record X and X values of each word in the file are summed in order of the leading force.
  • Word X is cleared when X is transferred to X.
  • Word X, Word X, and Word X are simply
  • connection matrices that integrate F1 and reused F1 are F2 and F3. These have the function of only transmitting the state.
  • Each end point word indicates which word is used as the start point word.
  • F2 is a connection matrix of x 1, x 2, x force x.
  • F3 is from X to X, X, X,
  • F2 is the output of x force
  • F3 is the action element for X force and input to X.
  • the adjacency matrix of the entire program that reuses F1 is F.
  • the adjacency matrix of the entire program is expressed using a circular matrix and a connection matrix.
  • Gatsutsu It is possible to use a mathematical model of a word-based program. As a result, all the usual algorithms that can be expressed in a procedural language can be realized in that structure by word-based programming.
  • a non-empty subset of B) is a fully ordered set under, B is called a chain, and B is called an anti-chain when any binary of B is incomparable.
  • F is monotonous because one iteration will define more endpoints than the number of defined start points on the right side. Therefore, iterative sequences generated one after another by repeating F
  • (F k ) k N is a chain. Where k is the number of iterations. The minimum number of iterations is the maximum chain size.
  • a partially ordered set can be divided into antichains by the following theorem. [theorem]
  • Partially ordered set (A,
  • n is the largest chain size
  • A is divided into n disjoint antichains.
  • Topological sort can be done in order.
  • A is the set of local maxima.
  • it is the set of words closest to the output side.
  • the word arranged in this way is A
  • the basic structure is one, and the words are rearranged.
  • the program generated by this method has the following structure.
  • Words and input / output action elements that belonged to the same basic structure have the same execution conditions because the execution conditions for the path action elements of the basic structure are expanded equally. Create a group of groups.
  • the basic elements are regrouped according to the route execution conditions, and the basic elements are arranged in the order of execution from the top.
  • the requirement of this example is an example of a student grade management system.
  • the general manager can register the student's name
  • the teacher can register the score for each test of the student, and register the overall evaluation at the end of the semester.
  • the initial screen shown in Fig. 11, the "Student Registration Screen” shown in Fig. 12 and the "Grade Management Screen” shown in Fig. 13, and the administrator and teacher IDs and passwords are registered.
  • “ID & password file”, “Student name file” where the student's name and ID are registered! / “Student name file” where the score for each test is registered It consists of four files: “Comprehensive evaluation file” that is registered at the end of the period.
  • the initial screen is a screen displayed when the grade management system is activated. Press the Exit button to exit the system. If you enter the ID and password fields and press the OK button, the system will refer to (read) the entered data and the data registered in the ID & password file, and the entered data will be sent to the general affairs staff. Whether it is a teacher's, a teacher's, or neither. If the result of the judgment is that the ID and password are for the administrator, the student registration screen is displayed. If the ID and password are for the teacher, the grade management screen is displayed. Otherwise, the initial screen is displayed.
  • the student registration screen is a screen in which the general affairs officer registers the student name and student ID number. ID and password determined on the initial screen
  • the system refers to the student name file and displays the data of already registered students in the field of the student list. After the screen is displayed, enter the student name and student ID number in the new registration field and press the registration button. The entered data will be registered (written) in the student name file. Press the back button to return to the initial screen.
  • the grade management screen is a screen for registering and referencing the score and overall evaluation for each student test. Displayed when the ID and password determined on the initial screen belong to the teacher.
  • the system refers to the student name file and prepares a list of student names and student ID numbers assigned by the accessing teacher as a selection candidate list that can be displayed in the student name text box. To do.
  • the general clerk presses the button at the right end of the text box to display the student name list and selects (enters) the student name and ID number that he / she wants to refer to, the system references Calculate and display student test results and average scores. If a comprehensive evaluation has already been registered, at the same time, refer to the comprehensive evaluation file and display the comprehensive evaluation.
  • To register a new test result enter the data of the selected student in the test result registration field and press the register button.
  • the system registers new data in the test results file, and at the same time updates and displays the contents of the test result field including the new data, and recalculates and displays the average score.
  • To register a comprehensive evaluation enter the comprehensive evaluation of the selected student in the comprehensive evaluation registration field and press the register button.
  • the system registers the comprehensive evaluation data in the comprehensive evaluation file, and at the same time displays the data registered in the comprehensive evaluation field. Press the back button to return to the initial screen.
  • Fig. 14 shows the requirements of this grade management program and the processing path diagram showing the structure when this program is divided into the conventional basic structure.
  • Database 'Management system is Access 97 with DOA.
  • the Lyee structure program generated with the basic structure divided is compared with the new program based on the Lyee methodology as follows.
  • the number of execution steps and the time are those for a program that requires the requirement of “selecting 7 students' ability and displaying the results of 5 exams”.
  • CPU process time is a value that does not include database access time
  • Total process time is the total time that includes database access time. The processing time was calculated as the difference between the start and end by adding a time stamp function to the program.
  • the decrease in executable code is mainly due to the fact that the word structure has become smaller and the basic structure has become one.
  • the main inflection point is
  • the predicate structure is about 21 powers. This is usually only a generation expression consisting of one line of assignment expression.
  • the action element of the path becomes one IF statement. Input / output elements Remains almost intact.
  • One basic structure requires about 24KB excluding words and action elements. In this case, nine basic structures become one.
  • the decrease in the number of execution steps and the decrease in execution time is mainly due to the decrease in repetition.
  • the main change is
  • CPU time is dominant in real-time processing that does not use database processing, such as process control such as a building monitoring system. Therefore, the new method is very effective in the case of process control in terms of program size and processing time.
  • Word execution conditions can be viewed as execution conditions for process-defined actions, reducing design difficulties in traditional Lyee.
  • the advantage of Lyee, declarative specification capture, is realized in the new program with process definitions and word definitions. Therefore, in the new program, the procedure for control is realized by the process definition, so no program design is required.
  • the conventional method requires some design based on the specifications.
  • the program generated by the tool based on the Lyee methodology is a specification that has been divided at the time of design and expanded into program modules in a divided state.
  • utilizing information about the order clearly expressed in the requirements in the design will improve the accuracy of the design and help improve efficiency.
  • Lyee-structured programs dynamically solve problems that can be solved statically before execution, so the code size is large and the processing speed is slow. There is room for improvement here. It is possible to generate a program without changing the meaning of the program and dividing it into the basic structure from the beginning, while taking advantage of the efficiency of design efficiency. By doing so, the whole word becomes one area.
  • Creating a processing path diagram means capturing words that have common elements in the output condition in logical units. Assigning common elements of conditions to route action elements has great advantages for efficiently defining user requirements.
  • Path action elements are also subject to topological sorting, and word relationships are defined, and the same requirements as logical elements are defined by word relationships. In other words, it defines what conditions are satisfied (execution conditions of definition formulas) and which basic structure execution is specified (definition formulas).
  • the route action element is eliminated by adding the execution condition of the definition expression of this route action element to the execution condition of the module belonging to the basic structure specified by the route action element when the condition is satisfied.
  • the declaration execution module group (not including the path action element) of the unified program obtained in this way is topologically sorted to rearrange the declaration execution module group in the optimal order. This avoids unnecessary repetition and allows the program to be executed with the minimum number of executions.
  • the present invention is not limited to the above-described embodiments and examples, and various modifications can be made within the scope of the technical idea of the present invention.
  • a business 'method, software development device, software development support device, software development management device, or software for realizing these functions on a computer and a recording medium equipped with the software' dedicated machine. Is possible.
  • the present invention can be applied to a method, software having a powerful function, a device on which the software is mounted (including software itself), a system Even so, it can be realized.
  • FIG. 16 shows, as a different embodiment of the present invention, a program (software), a program generation device, a program processing device, a tool (as a device or a device) for producing “software to be developed”.
  • Software development equipment, software FIG. 5 is a functional block diagram showing a configuration provided as a function when the present invention is implemented as either a software development support device or a software development management device.
  • a program (software), a program generation device, a program processing device, a tool (including both as a device and software), a software development device, a software development support device, or
  • the software development management device includes an overall control unit 1601, an execution unit definition unit 1602 for word unit declaration, a (semi) order relation definition unit 1603, a topological sort unit 1604, a code string arrangement unit 1605, and an information storage unit 1606. It is comprised with.
  • the overall control unit 1601 is a program (software), a program generation device, a program processing device, a tool (including both as a device and software), a software development device, a software development support device, or a software development management device. It has functions to perform overall operation control, timing control, input / output control, etc., and a dedicated chip having this function, a dedicated circuit, or software for causing the computer to perform this function (as a tool) (Including software), or a recording medium on which the software is recorded, a processing device, a management device, or a tool on which the recording medium is mounted.
  • the execution unit specifying unit 1602 for the word unit declaration has a function for specifying the execution unit for the word unit declaration as described above, and includes a dedicated chip, a dedicated circuit, Alternatively, it is realized as software (including software as a tool) for causing the computer to perform the function, or as a recording medium on which the software is recorded, a processing device / management device / tool on which the recording medium is mounted.
  • the (semi) order relation definition unit 1603 performs all L2 processing (input word attribute check processing), L processing (output word value generation processing), 12 processing (logical input processing), 04 processing (logic For body output processing), it has a function to define the order relationship by expressing the mutual order relationship with a directed graph, focusing on the words used in the declaration. It is realized as a circuit or software (including software as a tool) for causing a computer to perform the function, or a recording medium storing the software, a processing device, a management device, or a tool equipped with the recording medium.
  • the topological 'sorting unit 1604 is, for example, provided by the (semi-) order relation defining unit 1603.
  • a depth-first search is performed on the directed graph, and the node sequence (number sequence) is arranged by acquiring the node when returning to the force search path when it arrives.
  • a dedicated chip having a function, a dedicated circuit, or software (including software as a tool) for causing a computer to perform the function, or a recording medium on which the software is recorded, and a processing device equipped with the recording medium Management device ⁇ Realized as a tool.
  • the code string arrangement unit 1605 is a sequence of execution units of declarations rearranged by the topological 'sort unit 1604 (all L2 processing (input word attribute check processing), L processing (output word value generation processing) ), 12 processing (Logical body input processing), 04 processing (Logical body output processing))) and a function for allocating a given code string based on the Lyee methodology corresponding to the declaration execution unit
  • L2 processing input word attribute check processing
  • L processing output word value generation processing
  • 12 processing logical body input processing
  • 04 processing Logical body output processing
  • a recording medium on which the software is recorded a recording medium on which the software is recorded, a processing apparatus on which the recording medium is mounted, a management apparatus / tool.
  • the information storage unit 1606 is a model of various control information, logical elements (L2, L3, L4) modularized as process' cells, and action elements (12, 04, S4), Code string layout part 1605 template, topological 'sort part 1604 template, (semi) order relation definition part 1603 template, execution unit specification part for word unit declaration 1602 model, target program, etc. It is also used as a memory for temporary storage.
  • FIG. 17 shows a program (software), a program generation device, a program processing device, a tool (including both as a device and software), a software development device, a software development support device, or 5 is a flowchart showing the operation of the present invention implemented as one of software development management devices.
  • the execution unit specifying unit 1602 of the word unit declaration implements the user requirements implemented as one program for each logical unit with an access condition. For each word, from the word unit declaration declared by the word name, definition expression, execution condition of the definition expression, input / output attributes, and word value attributes, all L2 processing (input Specify the execution unit of one of the declarations (word attribute check processing), L processing (output word value generation processing), 12 processing (logical input processing), 04 processing (logical output processing) Step 1701). In defining the execution unit of this declaration, a template stored in the information storage unit 1606 may be used.
  • the (semi) order relation defining unit 1603 defines the (semi) order relations of all the declared execution units (step 1702).
  • a template stored in the information storage unit 1606 may be used to define the (semi) order relation of the declaration execution unit.
  • the topological 'sorting unit 1604 performs topological' sorting on all the declaration execution units specified by the defined (semi) order relationship (step 1703).
  • a template stored in the information storage unit 1606 may be used.
  • the code string arrangement unit 1605 obtains a given code string based on the Lyee methodology corresponding to the declaration execution unit from the information storage unit 1606 according to the sequence of execution units of the sorted declarations. It arranges after reading (step 1704).
  • the process of the declaration execution module for generating the output data in the program that also serves as the word-by-word declaration execution module is eliminated. It can be completed with the minimum number of executions and the program size can be reduced.
  • Program (software), program generation device, program processing device, tool (including both as device or software) for producing "software to be developed" as different embodiments of the present invention
  • the software development device, the software development support device, and the software development management device the user requirements to be implemented as a single program, for each logical body with access conditions, for each word on the logical body, a word name, a definition formula, From the execution condition of the definition expression, input / output attributes, and word unit declarations declared by the word value attribute, all L2 processing (input word attribute check processing) and L processing ( Output word value generation process), 12 process (logical input process), 04 process (logical output process) All of the specified L2 processing (input word attribute check processing), L processing (output word value generation processing), 12 processing (logical input processing), 04 processing (logical output processing) (half) Means for defining an order relationship, means for performing a topological sort on the L2 processing, L processing, 12 processing, and 04 processing defined by the (semi-) order relationship defined by the step, and
  • the present invention further includes software produced by the above-described "method for producing software to be developed" and a recording medium on which the software is installed or an apparatus on which the software is installed.
  • the present invention implements the user requirements implemented as one program for each logical body with access conditions, for each word on the logical body, a word name, a definition formula, Declaration power in units of words declared by the execution conditions of the definition formula, input / output attributes, and word value attributes All L2 processing (input word attribute check processing) required for satisfying the requirements, L processing ( Output word value generation processing), 12 processing (logical body input processing), 04 processing (logical body output processing) declaration execution unit based on (semi-) order relationship that also defined the requirement power declared in word units Line It can also be configured as a given code sequence based on the appropriate Lyee methodology, according to the ordered sequence reordered by the topological sort.
  • the present invention relates to software as a template of software code used for producing software by the above-mentioned "method for producing software to be developed", and a recording medium on which the software is mounted.
  • a recording medium on which the software is mounted.
  • it can be realized as a device (hardware) on which the software is installed.
  • the present invention is an extraction method of information (document (paper, data)) extracted from the requirements by the above-mentioned "method for producing software to be developed" and extraction by a powerful extraction method.
  • Information (document (paper, data)), as a method of using the extracted information, or as an information recording medium on which such information is mounted, or as a method of extracting information Z It may be realized as information extracted from the software development requirements, including coded software and related information that can be realized as a recording medium Z device (hardware) on which the software is installed.
  • directed graphs for example, breadth-first search, iterative deeping, heuristic search, Hill Climbing, and optimal first search (Best — Sorting may be done by combining various search techniques such as First Search, Euler, and Dijkstra.
  • the basic idea of the present invention may be realized by combining these various search techniques after calculating the adjacency matrix.
  • the technical idea of the present invention includes, for example, an automatic development device for computer software, an automatic development program, a recording medium recording the automatic development program, a transmission medium, and a paper medium.
  • an automatic development device for computer software for example, an automatic development program, a recording medium recording the automatic development program, a transmission medium, and a paper medium.
  • it can also be realized and used in categories such as computer 'equipment with automatic development program', client that runs automatic development program 'server type, etc.! /.
  • the present invention is not limited to a computer system including a single processor, a single hard disk drive, and a single local memory, and as an option of the system, any plural or combination processors or storage devices are provided. Also suitable for. Computer systems include sophisticated calculators, palm-type computers, laptop z notebook computers, minicomputers, mainframe computers, and supercomputers, and combinations of these processing system networks. It can be replaced by any suitable processing system operating in accordance with the principles of the present invention and can be used in combination.
  • the technical idea according to the present invention can be applied to all kinds of programming languages. Furthermore, the technical idea according to the present invention can be applied to application software of all kinds of functions.
  • the present invention allows various modifications, additions, substitutions, enlargements, reductions, etc. within the scope of the same and equivalent technical idea.
  • the software power produced using the invention of the present application is listed as a secondary product and commercialized, the value of the present invention will not be reduced.
  • the pre-processing to eliminate repetition is automatically performed, and the pre-processed word unit program thus obtained is automatically used by the Lyee (registered trademark) methodology. Generate the target program. In other words, it is possible to automate everything from the refinement (alignment) of user requirements to the generation of the target program. This will have a significant effect on the software industry, such as greatly improving the efficiency of software production, improving productivity, and improving quality.
  • FIG. 1 is a conceptual diagram for explaining the concept of a cell according to an embodiment of the present invention.
  • FIG. 2 is an explanatory diagram of a screen of the system of Example 1 according to an embodiment of the present invention.
  • FIG. 3 is an explanatory diagram showing words in the system of Example 1 according to an embodiment of the present invention in units of basic composition.
  • FIG. 4 is a directed graph showing word relationships in the system of Example 1 according to an embodiment of the present invention.
  • FIG. 5 is a diagram for explaining a process in which the entire system of Example 1 according to the embodiment of the present invention is represented by one adjacency matrix F.
  • FIG. 6 is a diagram for explaining that the adjacency matrix F according to an embodiment of the present invention has been topologically sorted.
  • Structural force of the system of Example 1 is a directed graph representing the relationship between words when a path action element is deleted.
  • Structural force of system of example 1 according to an embodiment of the present invention is a diagram for explaining a process of representing the entire system by one adjacency matrix F ′ when a path action element is deleted.
  • FIG. 9 is a diagram for explaining that the adjacency matrix F ′ according to an embodiment of the present invention has been topologically sorted.
  • Example 2 according to an embodiment of the present invention is a directed graph.
  • FIG. 11 is a diagram showing an “initial screen” of Example 2 according to an embodiment of the present invention.
  • Example 12 A diagram showing the “student registration screen” in Example 2 according to an embodiment of the present invention.
  • Example 13 A diagram showing a “score management screen” in Example 2 according to an embodiment of the present invention.
  • FIG. 14 is a processing path diagram showing the requirements of the grade management program of Example 2 according to an embodiment of the present invention and the structure when this program is divided into conventional basic structures.
  • FIG. 16 As a different embodiment of the present invention, a program (software), a program generation device, a program processing device, a tool (including both as a device and software) for producing “software to be developed”
  • FIG. 3 is a functional block diagram showing a configuration provided as a function when the present invention is implemented as any one of a software development device, a software development support device, and a software development management device.
  • a program (software) having the above-described configuration according to an embodiment of the present invention, a program
  • the operation of the present invention implemented as any of a program generation device, a program processing device, a tool (including both as a device and software), a software development device, a software development support device, and a software development management device is shown. It is a flowchart.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

A word-unit program constituting a system and adapted for crating output data is processed with a minimum number of implementations by eliminating useless repetition. Even a path action element is assumed as one word, and a requirement is defined as a word-unit program where the relation between words is defined. By placing the condition of implementation of the definition formula of the path action element in the condition of implementation of the definition formula of a word belonging to the basic structure specified by the path action element when the path action element definition formula implementation condition is met, the path action element is eliminated, and the structures of the whole system are integrated into one structure. The word-unit programs (not including the path action element) of the thus unified whole system are topologically sorted to re-arrange the word-unit programs in an optimal order. With this, for example, useless repetition can be avoided.

Description

ソフトウェア生成方法  Software generation method
技術分野  Technical field
[0001] 本発明は、数学的考え方にたったソフトウェア生成方法に係り、特に、隣接行列、ト ポロジカル 'ソートを Lyee方法論に用いたソフトウェア生成方法に関する。  TECHNICAL FIELD [0001] The present invention relates to a software generation method based on a mathematical concept, and more particularly to a software generation method using an adjacency matrix and a topological 'sort in Lyee methodology.
背景技術  Background art
[0002] (1)ソフトウェア開発の課題 [0002] (1) Issues in software development
高 、品質を持つソフトウエアを容易に迅速に製造することは、ソフトウエア開発研究 分野の基本的な関心事である。ソフトウエア開発の生産性、保守性、品質を向上する ための種々の方法論および技術が考案され提案されてきたが、いまだにこれらの課 題を本質的に解決できたものはない。その理由の 1つは、ソフトウェア自身が複雑な ものであり、捕らえにくいものである力もであり、もう 1つの理由は、現在の方法論に限 界があるからである。実際、提案されたほとんどすべての方法論は、明快に理解でき 、修正可能なシステムの製造に失敗しているのみならず、それらは、非常に広範囲の 能力、技術および知識を持つ専門家にし力利用できないものといまだに見なされて いる。そのため、人件費や維持費が高いものになり、ソフトウェア上で実行させるため には広範なチェックが必要になる。従来のソフトウェア開発手法の概要と課題をまとめ ると以下のようになる。  Making high-quality software easily and quickly is a fundamental concern in the field of software development research. Various methodologies and techniques have been devised and proposed to improve the productivity, maintainability, and quality of software development, but none of these issues have been solved essentially. One reason is that the software itself is complex and difficult to catch, and another reason is that current methodologies are limited. In fact, almost all the proposed methodologies are not only clearly understood and fail to produce modifiable systems, but they are also used by professionals with a very wide range of capabilities, skills and knowledge. It is still considered impossible. As a result, labor costs and maintenance costs are high, and extensive checks are required to run on software. The summary and issues of the conventional software development method are summarized as follows.
(2)手続き型プログラミング  (2) Procedural programming
一般に、手続型プログラミングは、その記述言語の扱いやすさから、業務システム 開発とその実装において効果を発してきた。しかし、いまだ要件を正確に実装するこ との困難性、生産性や保守性の向上という重大な課題が残されている。  In general, procedural programming has been effective in business system development and implementation because of the ease of handling of its description language. However, there are still important issues such as difficulty in accurately implementing requirements, and improvement in productivity and maintainability.
(3)宣言型プログラミング  (3) Declarative programming
一方、要件定義そのものである宣言によってプログラミングを行う宣言型のプロダラ ミングは、人工知能、エキスパートシステムをはじめ論理的証明(logical reasoning)、 推論 (inference)、ュ' ~~ザ情報収集、user intelligence gathering  On the other hand, declarative programming, in which programming is performed by declarations that are requirement definitions themselves, includes artificial intelligence, expert systems, logical reasoning, inference, user information gathering, and user intelligence gathering.
)など、非計算系のアプリケーション分野で使用されている。宣言型プログラミングは、 制御手順でなぐ要件定義されているデータ間の関係を宣言し、その宣言に基づい てプログラミングを行うので、そのメリットは、制御手順などの手続きを明示的に指定 する必要がある手続き型プログラミングと異なり、要件を正確に実装できるということで ある。 ) And other non-computational application fields. Declarative programming Requirement defined in the control procedure Declares the relationship between defined data and programming is performed based on the declaration, so the advantage is different from procedural programming that requires the procedure such as the control procedure to be explicitly specified. This means that requirements can be implemented accurately.
[0003] しかし、宣言型プログラミングにも、実行制御の構造上、実行時の効率が良くないと いう問題がある。また、宣言型プログラミングを行うための言語は使いこなすのが難し いという欠点がある。宣言型プログラミングを行うための言語には、論理式を用いる論 理型言語 (たとえば PROLOG)や対象の状態を数学的な関数として記述する関数型 言語 (たとえば LISP)がある。宣言しただけでは値は生成されないから、値を生成す るためには、宣言型言語は、宣言を実行するための手続きの論理メカニズムを持って いる。これらの手続きの論理メカニズムには、あらゆる宣言を実行できるようにするた めに多くの条件があり、数学や論理学の知識も必要で、使いこなすのが難しい。この ために、プログラミング言語として普及していない。人間の自然言語に近い構造を持 つ手続き型言語による、手続き型プログラミングの方が普及して 、るゆえんである。 (4)オブジェクト指向プログラミング  [0003] However, declarative programming also has a problem that the efficiency of execution is not good due to the structure of execution control. Another disadvantage is that it is difficult to use a language for declarative programming. Languages for declarative programming include logical languages that use logical expressions (for example, PROLOG) and functional languages that describe target states as mathematical functions (for example, LISP). Declarative languages have a procedural logical mechanism for executing declarations, because values are not generated just by declaring them. The logical mechanisms of these procedures have a number of conditions in order to be able to execute all declarations, require knowledge of mathematics and logic, and are difficult to master. For this reason, it is not popular as a programming language. This is why procedural programming using a procedural language that has a structure similar to that of human natural language is becoming more prevalent. (4) Object-oriented programming
データとそれを操作する手続き (メソッドと呼ぶ)をオブジェクトと呼ばれるひとまとま りの単位として一体ィ匕し、オブジェクトの組み合わせとしてプログラムを記述するプロ グラミング技法として、オブジェクト指向プログラミングがある。オブジェクトという独立 性の高いモジュールによってプログラムが構成されるため、変更'修正の影響の範囲 が限定され、またオブジェクトの単位で再利用がしゃすくなるなどのメリットがある。  Object-oriented programming is a programming technique in which data and procedures (called methods) that operate on it are combined as a unit called an object, and a program is written as a combination of objects. Since the program is composed of highly independent modules called objects, the scope of the impact of changes and modifications is limited, and there is an advantage that reuse can be reduced in units of objects.
[0004] しかし、要件を、どのような単位のオブジェクトによって実装するの力 さらに、構成 要素をどのように組み立てるかについては厳格な規則はなぐまた、構造化設計アブ ローチのような実行順序についての規制もない。実際の開発の場においては、ォブ ジェタト間の関係が完全に一貫性を持って適用されず、多くの場合、開発成果物に 大量のオブジェクトが生成されて 、ても、作成者自身を除けば誰もそれを理解して ヽ ないということになる。すなわち、完成したソフトウェアは規則性のない機能のかたまり となり、最終的に解体したり、再使用したりするのが困難になる傾向が強い。  [0004] However, there is no strict rule on how to implement the requirements by what units of objects, and how the components are assembled. There are no restrictions. In actual development situations, the relationships between objects are not applied completely consistently, and in many cases a lot of objects are generated in the development artifacts, even if the creator itself is excluded. No one understands it. In other words, the completed software becomes a group of non-regular functions, and it tends to be difficult to finally disassemble and reuse.
特許文献 1:国際公開第 97Z16784号パンフレット 特許文献 2 :国際公開第 98Z19232号パンフレット Patent Document 1: Pamphlet of International Publication No. 97Z16784 Patent Document 2: Pamphlet of International Publication No. 98Z19232
特許文献 3:国際公開第 99Z49387号パンフレット  Patent Document 3: Pamphlet of International Publication No. 99Z49387
特許文献 4 :国際公開第 OOZ79385号パンフレット  Patent Document 4: Pamphlet of International Publication No.OOZ79385
特許文献 5:国際公開第 02Z42904号パンフレット  Patent Document 5: Pamphlet of International Publication No. 02Z42904
特許文献 6:国際公開第 2004Z68342号パンフレット  Patent Document 6: International Publication No. 2004Z68342 Pamphlet
特許文献 7:特開 2002-202883号公報  Patent Document 7: JP 2002-202883 A
非特許文献 1 :ダリン 'ウィンスケル著、「プログラミング言語の公式意味論」、 MITプレ ス、 1993年  Non-Patent Document 1: Dallin 'Winskel, “Official Semantics of Programming Languages”, MIT Press, 1993
非特許文献 2 :ハンネ'リース 'ニールソン、フレミング'ニールソン著、「アプリケーショ ンについての意味論 公式紹介」、ジョン'ワイリ一'アンド'サンズ、 1992年 非特許文献 3 :根来 文生著、「Lyeeソフトウェアの原理」、 21世紀( IS2000 )におけ る情報社会についての国際会議会報、 日本、会津、 2000年 11月 5日- 8日、 pp441 - 446  Non-Patent Document 2: Hanne 'Rees' Neilson, Fleming's Nielson, “Semantics of Application Semantics”, John “Wylie'and” Sands, 1992 Of the Information Society in the 21st Century (IS2000), Japan, Aizu, November 5-8, 2000, pp441-446
非特許文献 4 :根来 文生著、「ソースコード生成についての高密度処理方法」、シス テミタス、サイバネティクス及びインフォマテイクスについての第 5回世界多極会議会 報、 ( SCI2001 )、米国、才ーランド、 2001年 7月 22日—25日  Non-Patent Document 4: Fumio Negori, “High-Density Processing Method for Source Code Generation”, 5th World Multipolar Conference Report on Systemitas, Cybernetics and Informatics, (SCI2001), USA, July 22-25, 2001
発明の開示  Disclosure of the invention
発明が解決しょうとする課題  Problems to be solved by the invention
[0005] (l) Lyee開発方法論 [0005] (l) Lyee Development Methodology
最近、 Lyee (governmentaL methodologY for so土 twarE providencEの §¾· 尾をとつたもの。「リー」と読む。発明者は根来文生。)と呼ばれる新しぐ非常に有望 な方法論が提案された。 Lyeeは、要件力もソフトウェアを自動的に開発する新しい方 法である。  Recently, a new and very promising method called Lyee (governmentaL methodologY for so satwarE providencE §¾ · tailed. Read as “Lee. The inventor is Fumio Nerai.”) Was proposed. Lyee is a new way to automatically develop software with requirements as well.
[0006] Lyeeの場合、宣言型でありながら、宣言を実行するための特別な論理メカニズムを 必要とせず、宣言の実行は、手続き型プログラミングと同じぐ単純な値の代入という 手続きである。従って、使用する言語は一般に普及している手続き型言語でよい。つ まり、 Lyeeは要件を正確に実装できるという宣言型の利点と、記述が容易な手続き型 言語を使用できるという手続き型の利点をあわせ持っているのである。 [0007] Lyee開発方法の概要については、本願の出願人による特願 2004— 272400およ び特許文献 6を引用し、これを開示の一部となす。以下に概要を述べる。 [0006] In the case of Lyee, although it is declarative, it does not require a special logic mechanism for executing the declaration, and execution of the declaration is a procedure of assigning a value as simple as procedural programming. Therefore, the language to be used may be a procedural language that is widely used. In other words, Lyee has the declarative advantage of being able to implement the requirements correctly and the procedural advantage of being able to use a procedural language that is easy to describe. [0007] For an overview of the Lyee development method, reference is made to Japanese Patent Application No. 2004-272400 and Patent Document 6 by the applicant of the present application, which are incorporated in the disclosure. An outline is given below.
(2) Lyeeにおける宣言とは  (2) What is the declaration in Lyee?
Lyeeにおいては、宣言する抽象化の対象は変数である。宣言された変数を、 Lyee では単語と呼ぶ。一般的に、仕様が宣言的であるとは、宣言される抽象化の単位は 記述の順序性が排除されることと、等式として表現され右辺力 左辺、左辺から右辺 への双方向性があることである。 Lyeeでは、単語は記述の順序性が排除される力 双 方向性をもたず、このことによって、枠組みが簡潔になっている。  In Lyee, the object of the abstraction that you declare is a variable. Declared variables are called words in Lyee. In general, if a specification is declarative, the unit of abstraction in which it is declared excludes the order of description, and it is expressed as an equation that has the right-hand side power and the bidirectionality from the left-hand side to the right-hand side. That is. In Lyee, words have no power bi-directionality that eliminates the ordering of descriptions, which simplifies the framework.
[0008] 単語の宣言の主な要素は、単語名、定義式、定義式の計算条件、入出力属性、値 の属性などである。定義式とは、他の単語との関係を示す関係式である。たとえば、 単語 aは定義式 a=b+cのように宣言できる。そして、この宣言の実行は、関係式を代入 式として実行するだけである。たとえば、単語 aの宣言 a=b+cを実行するには (aの値を 求めるには)、右辺の変数 bおよび cに値を代入すればよい。 [0008] The main elements of a word declaration are a word name, a definition formula, a calculation condition for the definition formula, input / output attributes, a value attribute, and the like. A definition expression is a relational expression that indicates a relationship with another word. For example, the word a can be declared as the defining expression a = b + c. And the execution of this declaration only executes the relational expression as an assignment expression. For example, to execute the declaration a = b + c of the word a (to find the value of a), just assign a value to the variables b and c on the right side.
(3)手続き型の枠組みで宣言を実行するメカニズム  (3) Mechanism for executing declarations in a procedural framework
手続き型言語の枠組みで、実装していながら、宣言の記述の順序性排除を実現し ているのは、 Lyeeが提供する定型構造のプログラム構造である。プログラムを処理す るコンピュータが、現在使われている、命令をシーケンシャルに処理するノイマン型で ある限り、手続き型言語であれば、なんらかの方法で順序性の問題を解決しなけれ ばならない。他の宣言型プログラミングは、宣言型言語がそれを解決している。手続 き型言語を用いる Lyeeは、プログラム構造によって解決して!/、る。  It is the program structure of the fixed structure provided by Lyee that achieves the elimination of the order of declaration descriptions while implementing it in the framework of a procedural language. As long as the computer that processes the program is a Neumann type that processes instructions sequentially, if it is a procedural language, the ordering problem must be solved in some way. Other declarative programming is solved by a declarative language. Lyee, which uses a procedural language, is solved by the program structure! /
[0009] そのプログラム構造は、単語単位の宣言を実行する定型構造のモジュール (以下、 「宣言実行モジュール」と呼ぶ。)からなり、それらのモジュールは、パレットと呼ぶ単 位で集合ィ匕されている。パレット内の、宣言実行モジュールの実行順序は、いかなる 配列でもよい。パレット内の実行制御モジュール力 パレット内の全ての宣言実行モ ジュールの実行が完了するまで (すなわち、値が生成できまるで)宣言実行モジユー ルの実行を繰り返すよう実行を制御する。  [0009] The program structure is composed of fixed-format modules (hereinafter referred to as "declaration execution modules") that execute word-by-word declarations, and these modules are aggregated in units called palettes. Yes. The execution order of declaration execution modules in the palette can be any array. Execution control module power in the pallet Controls execution so that execution of the declaration execution module is repeated until execution of all the declaration execution modules in the pallet is completed (ie, values can be generated).
[0010] パレットは、入力単語の宣言実行のための W02パレット、出力単語の宣言のうち計 算条件を実行するための W03パレット、出力単語の宣言のうち定義式実行と出力を 実行するための W04パレットがある。これらの 3種類のパレットが 1組となって、基本 構造という集合単位を成している。すなわち、 Lyee構造のプログラムは、基本構造単 位に分割され、その基本構造は 3種類のパレットに分割され、パレットは宣言実行モ ジュールに分割される、という構造をとつているのである。基本構造は、出力論理体( すなわち同時に同じ媒体に出力される単語のグループ)の単位につくられる。 Lyeeプ ログラムのこの分割構造を図示したのが、処理経路図(PRD: [0010] The palette consists of the W02 palette for executing the input word declaration, the W03 palette for executing the calculation condition in the output word declaration, and the definition expression execution and output in the output word declaration. There is a W04 palette to execute. These three types of pallets form a set, forming a collective unit called the basic structure. In other words, the Lyee structure program is divided into basic structure units, the basic structure is divided into three types of palettes, and the palettes are divided into declaration execution modules. The basic structure is created in units of output logic (ie, groups of words that are simultaneously output to the same medium). This division structure of the Lyee program is illustrated as a processing path diagram (PRD:
Process Route Diagram;で fcOo  Process Route Diagram; fcOo
[0011] Lyeeによるプログラム全体は、単語単位の宣言を実行する定型構造の宣言実行モ ジュールによって構成され、し力もそれら宣言実行モジュールでプログラム全体を構 成する方法も定型化されている。従って、この定型構造の宣言実行モジュールに、単 語単位の要件の宣言を代入すれば、 自動的にプログラムを生成することも可能であ る。 [0011] The entire program by Lyee is composed of a fixed-structure declaration execution module that executes word-by-word declarations, and the method of configuring the entire program with these declaration execution modules is also standardized. Therefore, it is possible to automatically generate a program by substituting the declaration of requirements in units of words into this fixed structure declaration execution module.
[0012] 実際、 Lyeeによるプログラムの自動生成は、「LyeeALL」と呼ばれるツールによつ て実現されている。 LyeeALLは、いわば、定型構造の宣言実行モジュールのコード (「テンプレート」と呼ぶ。テンプレートはひな形の意。)の所定の空欄に、要件の宣言 を自動的に代入し、それらの宣言実行モジュールを所定の方法に従って構成して 1 つのプログラムを構築するツールである。  [0012] Actually, automatic generation of a program by Lyee is realized by a tool called "LyeeALL". In other words, LyeeALL automatically assigns the requirement declarations to a given blank in the code of the boilerplate declaration execution module (called a “template”. Template is a template). It is a tool that is constructed according to a predetermined method and builds one program.
[0013] Lyee方法論によるソフトウェア開発では、技術者は 2つのグループに分かれ、それ ぞれ特化した 2種類の仕事を行うことになる。 1つのチームは、 OS、ミドルウェア、デ ータベースなど、 Lyee構造プログラムが動く外部環境に係わる技術に習熟し、 Lyee 構造プログラムのテンプレートに、外部環境ごとのパラメータを設定する。もう 1つのチ ームは、ユーザ要件定義を行い、要件を Lyee構造プログラムのテンプレートに実装 するために、 Lyee方法論に従った要件の宣言を行う。このような分業制による開発が 可能になるため、 Lyee方法論の開発においては、プログラマ全員が広範な外部環 境に係わる技術を持つ必要がなぐそのようなスキルを持つ人材不足の問題も解消 できる。  [0013] In software development using the Lyee methodology, engineers are divided into two groups, each performing two specialized tasks. One team is familiar with technologies related to the external environment in which the Lyee structure program runs, such as the OS, middleware, and database, and sets parameters for each external environment in the template of the Lyee structure program. The other team defines the user requirements and declares the requirements according to the Lyee methodology to implement the requirements in the Lyee structured program template. Since this kind of division of labor can be developed, the development of Lyee methodology can also solve the problem of shortage of human resources with such skills, which does not require all programmers to have technologies related to a wide range of external environments.
(4)従来の Lyee構造の課題  (4) Issues with conventional Lyee structure
上述のように、要件の正確な実装、コード生成の自動化、保守の容易性など、大き なメリットがある Lyee方法論であるが、その繰り返しと分割の構造には課題もある。繰り 返し処理のために、実行速度が遅ぐ分割構造のためにプログラムサイズが大きい、 と言われている。 As mentioned above, there are significant requirements such as accurate implementation of requirements, automation of code generation, and ease of maintenance. This is a Lyee methodology that has many advantages, but there are also problems with its repetition and division structure. It is said that the program size is large due to the division structure with slow execution speed due to the repeated processing.
[0014] 一方、 Lyeeでは、基本構造と呼ぶ単位に、要件を分割して仕様を捉える。画面の遷 移、データベースのキーの関係などの実行順序に関する明白な情報を単語のダル ープ (record)を単位として捉え、そのグループに属す単語の実行条件をまとめて把 握する。現状の Lyee構造は、この分割構造を、そのままコードィ匕しているため、プログ ラムサイズが大きぐ実行速度も遅くなつている。  On the other hand, in Lyee, requirements are divided into units called basic structures to capture specifications. Understand the clear information about the execution order such as screen transitions, database key relationships, etc., using word duplication as a unit, and grasp the execution conditions of words belonging to the group. In the current Lyee structure, this split structure is coded as it is, so the program size is large and the execution speed is also slow.
[0015] Lyee構造を、その宣言的プログラミングの利点をそのままに、要件的意味を変更せ ずに維持しながら、不要な反復がなぐよりサイズが小さぐ効率的処理速度のプログ ラムに改善することは重要な課題である。  [0015] Improving the Lyee structure to an efficient processing speed program that is smaller in size than unnecessary iterations, while maintaining its declarative programming benefits without changing the requirement semantics. Is an important issue.
[0016] 不要な繰り返しをなくして、実行速度の改善をは力る方法としては、トポロジカル'ソ ートによって、宣言実行モジュールの配置順序を自動的に最適化する(1巡で宣言 実行が完了する順序化)方法がすでに提案されている(PCTZJP03Z09591)。パ レット内のモジュールにトポロジカル 'ソートを行って、パレット内の無駄な繰り返しを 除することがでさる。  [0016] As a method to improve the execution speed by eliminating unnecessary repetition, the topological sort automatically optimizes the placement order of declaration execution modules (declaration execution is completed in one round) Ordering) method has already been proposed (PCTZJP03Z09591). You can topologically sort the modules in the palette to eliminate wasted repetition in the palette.
[0017] しかし、 Lyeeの分割構造の枠組みをそのままにしてトポロジカル 'ソートを行っただ けでは、その効果には限界がる。なぜなら、パレット間、基本構造間にも繰り返しがあ り、パレット内のトポロジカル 'ソートによる最適順序化により、繰り返し回数は最小限 になるもの、全ての値の生成が 1巡では完了しないからである。また、分割構造そのも の力 プログラムサイズを大きくしている一因である。  [0017] However, if the topological sort is performed with the Lyee division structure as it is, the effect is limited. This is because there is repetition between pallets and basic structures, and the optimal ordering by topological 'sorting within the pallet minimizes the number of repetitions, but generation of all values is not completed in one cycle. . In addition, the split structure itself is one factor that increases the program size.
[0018] 従って、繰り返しと分割の構造を持った Lyeeプログラムのサイズと処理速度の問題 を、さらに大きく改善するためには、パレットおよび基本構造という分割単位をなくし、 1本のプログラムとして実装する要件の範囲の宣言を実行するモジュールに対してト ポロジカル 'ソートを行うことが有効と思われる。  [0018] Therefore, in order to further improve the problem of the size and processing speed of a Lyee program having a repetition and division structure, it is necessary to eliminate the division unit of the palette and the basic structure and implement it as a single program. It seems to be useful to perform topological 'sorting' on modules that execute the range declaration.
[0019] 本発明は、従来の Lyee構造プログラムの分割単位をなくし、プログラム全体に対し てトポロジカル 'ソートを行う方法に関するものである。これにより、 Lyee方法論による ソフトウェアの実行速度の向上、プログラムサイズの改善を実現することを目的とする 課題を解決するための手段 The present invention relates to a method of performing topological sort on the entire program by eliminating the division unit of the conventional Lyee structure program. This aims to improve software execution speed and program size with the Lyee methodology. Means for solving the problem
[0020] 力かる課題を解決するために本発明は、 1つのプログラムとして実装するユーザ要 件を、アクセス条件を伴う論理体ごとに、該論理体上の単語ごとに、単語名、定義式 、該定義式の実行条件、入出力属性、単語の値の属性によって宣言された単語単 位の宣言から、要件充足に必要な全ての、 L2処理 (入力単語の属性チェック処理)、 L処理(出力単語の値生成処理)、 12処理 (論理体入力処理)、 04処理 (論理体出力 処理)のいずれかの宣言の実行単位を規定する第 1のステップと、前記に規定された 、全ての L2処理 (入力単語の属性チヱック処理)、 L処理(出力単語の値生成処理)、 12処理 (論理体入力処理)、 04処理 (論理体出力処理)の(半)順序関係を定義する 第 2のステップと、前記ステップによって定義された(半)順序関係で規定される前記 L2処理、 L処理、 12処理、 04処理に対してトポロジカル 'ソートを行う第 3のステップ と、前記第 3のステップによって並び替えられた宣言の実行単位の順序列にしたがつ て該宣言実行単位に該当する Lyee方法論に基づく所与のコード列を配置する第 4 のステップとを具備する。  [0020] In order to solve the problem, the present invention provides a user requirement to be implemented as one program for each logical body with an access condition, for each word on the logical body, a word name, a definition formula, From the word unit declaration declared by the execution condition, input / output attribute, and word value attribute of the definition expression, all L2 processing (input word attribute check processing) and L processing (output) required for satisfying the requirements are performed. The first step that defines the execution unit of one of the declarations of word value generation processing, 12 processing (logical body input processing), and 04 processing (logical body output processing), and all the L2 defined above Define (semi) order relations of processing (input word attribute check processing), L processing (output word value generation processing), 12 processing (logical input processing), 04 processing (logical output processing) Specified by the step and the (semi) order relationship defined by the step The L2 process, the L process, the 12 process, and the 04 process are subjected to a third step of performing topological sort, and according to the sequence of execution units of the declarations rearranged by the third step. And a fourth step of arranging a given code sequence based on the Lyee methodology corresponding to the declaration execution unit.
[0021] 力かる構成を有する本願発明によれば、第 1のステップによって規定された単語単 位の宣言を、 L2処理 (入力単語の属性チェック処理)、 L処理(出力単語の値生成処 理)、 12処理 (論理体入力処理)、 04処理 (論理体出力処理)、の単位で、最短順序 で実行するプログラムが作成されることとなり、 Lyee方法論を用いたソフトウェア生成 がより効率化する。つまり、これらの各ステップの機能は総て自動化できるので、結局 繰返し処理の排除→ソフトウェア生成まで一貫して自動処理が可能となり、ソフトゥェ ァ生産速度、効率は各段に向上する。  [0021] According to the present invention having a powerful configuration, the word unit declaration defined in the first step is subjected to L2 processing (input word attribute check processing), L processing (output word value generation processing). ), 12 processing (Logical body input processing), 04 processing (Logical body output processing), the program to be executed in the shortest order is created, and software generation using Lyee methodology becomes more efficient. In other words, all the functions of these steps can be automated, and eventually automatic processing can be performed consistently from the elimination of repeated processing to software generation, and the software production speed and efficiency are improved in each stage.
[0022] ここで、「全ての L2処理 (入力単語の属性チェック処理)、 L処理(出力単語の値生 成処理)、 12処理 (論理体入力処理)、 04処理 (論理体出力処理)の(半)順序関係 を定義する」とは、宣言で用いられる単語に着目して相互の順序関係をたとえば有向 グラフで表すことをいう。順序関係としては半順序及び全順序が考えられる。「有向グ ラフ」とは、ソフトウェア開発要望者であるユーザの発する要件に含まれるそれぞれの 宣言実行単位をノードによって表し、 a≤b(a力 bが作られることを意味する記号とし て「≤」を定義する。以下同じ。)という始点と終点の間の半順序関係 (または全順序 関係)を矢印によって表したものをいう。例えば、こうした機能をプログラム化したソフト ウェアとしてもよいし、或いは当該ソフトウェアをコード化したものを ROM (Readonly Memory)に書きこんだものであってもよい。 [0022] Here, “all L2 processing (input word attribute check processing), L processing (output word value generation processing), 12 processing (logical input processing), 04 processing (logical output processing)” “Defining (semi-) order relation” means expressing the mutual order relation in a directed graph, focusing on the words used in the declaration. As the order relationship, a partial order and a full order can be considered. `` Directed graph '' means each declaration execution unit included in the requirements issued by the user who is a software development requester by a node, and it is a symbol that means that a≤b (a force b is created. Define “≤”. same as below. ) Is a partial order relation (or full order relation) between the start and end points. For example, software in which such a function is programmed may be used, or a code obtained by coding the software may be written in a ROM (Read Only Memory).
[0023] また、「トポロジカル 'ソート」とは、上記で得られた有向グラフに対して (後述の)深さ 優先探索を行い、行きついたところ力 探索経路を戻るときにノードを取得してゆくこ とでノード列 (数列)を整列する機能をいう。例えば、こうした機能をプログラム化したソ フトウエアとしてもよ 、し、或いは当該ソフトウェアをコード化したものを ROM (ReadO nlyMemory)に書きこんだものであってもよい。このトポロジカル 'ソートに際しては、 上記で得られた有向グラフを隣接行列で表し、これに深さ優先探索を行い、零冪行 列を生成するように動作させてもょ 、。  [0023] In addition, "topological 'sorting" is a method in which a depth-first search (described later) is performed on the directed graph obtained above, and nodes are acquired when the force search path is reached. This is a function that arranges node sequences (numerical sequences). For example, it may be software that has programmed such functions, or may be software that has been coded into ROM (Read Only Memory). In this topological sort, the directed graph obtained above is represented by an adjacency matrix, and a depth-first search is performed on this to generate a zero-throw matrix.
[0024] ここで、「深さ優先探索」とは、  Here, “depth-first search” means
始点であるノードを出発してノード間の連結がとれているノードを訪問が重複しないよ つに迪み、  Depart from the starting node and visit nodes that are connected to each other so that visits do not overlap,
行く場所がなくなったら行く場所のあるノードまで戻り (再帰)、  When there is no place to go, go back to the node where the place is going (recursion),
戻ったノードから再び(1)の要領で進み、  Proceed in the same way (1) from the returned node,
進むところがなくなったら終了する、  End when there is no more way forward,
というアルゴリズムをいう。  This is an algorithm.
[0025] 「探索」とは、上記の深さ優先探索(Depth— First Search)のほか、幅優先探索( Breadth-First Search)、反復深化法(Iterative Deeping)、発見的探索(Heu ristic Search)、ヒル ·クライミング(Hill Climbing)、最適優先探索(Best— First Search)、オイラー(Euler)の一筆書き、ダイクストラ(Dijkstra)法等を含む各種ァ ルゴリズムをいう。例えば、こうした機能をプログラム化したソフトウェアとしてもよいし、 或いは当該ソフトウェアをコード化したものを ROM (ReadOnlyMemory)に書きこん だものであってもよい。 [0025] In addition to the above-mentioned depth-first search, “search” includes breadth-first search, iterative deeping, heuristic search, Various algorithms including Hill Climbing, Best- First Search, Euler stroke, Dijkstra method and so on. For example, it may be software that programs such functions, or may be software that has been coded in ROM (ReadOnlyMemory).
[0026] また、ここで用いる「ソフトウェア」とは広義の意である。即ち、ユーザからの開発要望 及び当該要望にあった目的プログラムの双方を包含する概念である。  [0026] "Software" used here has a broad meaning. In other words, it is a concept that includes both development requests from users and target programs that meet the needs.
[0027] 上記のような構成を備えることにより、本願発明では、繰返しを回避するので、より高 効率、高速、高パフォーマンスを備えたソフトウェア開発を実現することが可能となる 。さらに、繰返しをなくす前処理を自動で行い、こうして得られた前処理済の宣言実 行単位のプログラムをもとに Lyee (登録商標)方法論により自動的に目的プログラム 生成を行う。つまり、ユーザ要件の洗練化 (整列)から目的プログラムの生成に至るま で自動化することが可能となる。これにより、ソフトウェア生産の大幅な効率向上、生 産性向上、品質向上等、ソフトウエア産業上に大きな効果をもたらす。 [0027] By providing the configuration as described above, in the present invention, since repetition is avoided, higher Software development with high efficiency, high speed and high performance can be realized. Furthermore, preprocessing that eliminates repetition is automatically performed, and a target program is automatically generated by the Lyee (registered trademark) methodology based on the preprocessed declaration execution unit program obtained in this way. In other words, it is possible to automate everything from the refinement (arrangement) of user requirements to the generation of the target program. This will have a significant effect on the software industry, such as significantly improving the efficiency of software production, improving productivity, and improving quality.
[0028] 本発明の異なる実施体としての「開発対象のソフトウェア」を生産するためのプログ ラム(ソフトウェア)、プログラム生成装置、プログラム処理装置、ツール (装置として或 いはソフトウェアとしての双方を含む)、ソフトウェア開発装置、ソフトウェア開発支援 装置、ソフトウェア開発管理装置は、 1つのプログラムとして実装するユーザ要件を、 アクセス条件を伴う論理体ごとに、該論理体上の単語ごとに、単語名、定義式、該定 義式の実行条件、入出力属性、単語の値の属性によって宣言された単語単位の宣 言から、要件充足に必要な全ての、 L2処理 (入力単語の属性チェック処理)、 L処理 (出力単語の値生成処理)、 12処理 (論理体入力処理)、 04処理 (論理体出力処理) のいずれかの宣言の実行単位を規定する手段と、前記に既定された、全ての L2処 理 (入力単語の属性チヱック処理)、 L処理(出力単語の値生成処理)、 12処理 (論理 体入力処理)、 04処理 (論理体出力処理)の(半)順序関係を定義する手段と、前記 ステップによって定義された(半)順序関係で規定される前記 L2処理、 L処理、 12処 理、 04処理に対してトポロジカル 'ソートを行う手段と、前記第 3のステップによって並 び替えられた宣言の実行単位の順序列にしたがって該宣言実行単位に該当する Ly ee方法論に基づく所与のコード列を配置する手段とを具備するように構成することも できる。 [0028] A program (software), a program generation device, a program processing device, and a tool (including both as a device and software) for producing "software to be developed" as different embodiments of the present invention The software development device, the software development support device, and the software development management device, the user requirements to be implemented as a single program, for each logical body with access conditions, for each word on the logical body, word name, definition formula, From the execution condition of the definition expression, input / output attributes, and word unit declarations declared by the word value attribute, all L2 processing (input word attribute check processing) and L processing ( Output word value generation process), 12 process (logical body input process), 04 process (logical body output process) All of the specified L2 processing (input word attribute check processing), L processing (output word value generation processing), 12 processing (logical input processing), 04 processing (logical output processing) (half) Means for defining an order relationship, means for performing a topological sort on the L2 processing, L processing, 12 processing, and 04 processing defined by the (semi-) order relationship defined by the step, and the third And a means for arranging a given code string based on the Lyee methodology corresponding to the declaration execution unit according to the sequence of the execution units of the declarations rearranged by the above steps.
[0029] 本発明はさらに、上述の「開発対象のソフトウェアを生産する方法」によって生産さ れたソフトウェア、及び当該ソフトウェアが搭載された記録媒体或いは当該ソフトゥェ ァが搭載された装置 (ノ、一ドウエア)としても実現される力 この場合の本発明は、 1つ のプログラムとして実装するユーザ要件を、アクセス条件を伴う論理体ごとに、該論理 体上の単語ごとに、単語名、定義式、該定義式の実行条件、入出力属性、単語の値 の属性によって宣言された単語単位の宣言力 規定された、要件充足に必要な全て の、 L2処理 (入力単語の属性チェック処理)、 L処理(出力単語の値生成処理)、 12 処理 (論理体入力処理)、 04処理 (論理体出力処理)の宣言の実行単位が、単語単 位に宣言された要件力も定義した (半)順序関係に基づいて行われるトポロジカル'ソ ートによって並び替えられた順序列にしたがって、該当する Lyee方法論に基づく所 与のコード列として構成されることもできる。 [0029] The present invention further includes software produced by the above-described "method for producing software to be developed" and a recording medium on which the software is installed or an apparatus on which the software is installed. In this case, the present invention implements the user requirements implemented as one program for each logical body with access conditions, for each word on the logical body, a word name, a definition formula, Declaration power in units of words declared by execution conditions of definition formulas, input / output attributes, and word value attributes Everything necessary to satisfy the requirements The execution units of declarations of L2 processing (input word attribute check processing), L processing (output word value generation processing), 12 processing (logical input processing), and 04 processing (logical output processing) are single words. It is constructed as a given code sequence based on the relevant Lyee methodology according to the sequence sequence sorted by the topological sort performed on the (semi) order relationship that also defines the requirement power declared in the You can also.
[0030] またさらに本発明は、上述の「開発対象のソフトウェアを生産する方法」によってソフ トウエアを生産するために用いられるソフトウェアコードの雛型としてのソフトウェア、及 び当該ソフトウェアが搭載された記録媒体或いは当該ソフトウェアが搭載された装置 (ハードウェア)としても実現される。  [0030] Furthermore, the present invention relates to software as a model of software code used for producing software by the above-mentioned "method for producing software to be developed", and a recording medium on which the software is mounted. Alternatively, it can be realized as a device (hardware) on which the software is installed.
[0031] さらに、本発明は、上述の「開発対象のソフトウェアを生産する方法」による、要件か ら抽出した情報 (ドキュメント (紙、データ))の抽出方法として、また力かる抽出方法に よって抽出された情報 (ドキュメント (紙、データ))として、さらには当該抽出された情 報の使用方法として、或いは、これらの情報が搭載された情報記録媒体として、また は情報の抽出方法 Z使用方法がコード化されたソフトウェア、当該ソフトウェアが搭 載された記録媒体 Z装置 (ハードウ ア)として、いずれも実現することができる関連 づける情報とを備えるソフトウェア開発要件力 抽出した情報として実現してもよい。  [0031] Further, the present invention is an extraction method of information (document (paper, data)) extracted from the requirements by the above-mentioned "method for producing software to be developed", and extraction by a powerful extraction method. Information (document (paper, data)), as a method of using the extracted information, or as an information recording medium on which such information is mounted, or as a method of extracting information Z It may be realized as information extracted from the software development requirements, including coded software and related information that can be realized as a recording medium Z device (hardware) on which the software is installed.
[0032] なお、論理体については、同一出願人による特願 2004— 272400を参照し、これを 引用し、開示の一部とする。  [0032] Regarding the logical body, refer to Japanese Patent Application No. 2004-272400 by the same applicant, which is cited and made a part of the disclosure.
発明の効果  The invention's effect
[0033] 本発明によれば、単語単位の宣言実行モジュール力もなるシステムプログラムにお ける、出力データを生成するための宣言実行モジュールの処理を、無駄な繰り返しを 排除して最少実行回数で完了し、かつ、プログラムサイズを小さくすることが可能とな る。より具体的には、下記の点が可能になる。  [0033] According to the present invention, the processing of the declaration execution module for generating output data in the system program that also has the word-by-word declaration execution module power is completed with the minimum number of executions by eliminating unnecessary repetition. In addition, the program size can be reduced. More specifically, the following points are possible.
[0034] プログラムの要件を単語単位に宣言した宣言から、実行すべき単語単位の宣言実 行単位を決定し、それらの単語単位の宣言実行単位の半順序関係を定義することが 可能となる。  [0034] From the declarations in which the program requirements are declared in word units, it is possible to determine the word execution units to be executed and to define the partial order relationship between the word execution units.
[0035] 最適順序化によって不要となる単語単位の宣言実行単位、たとえば経路作用要素 は削除する。要件の意味を維持するために実装することが必要な順序情報である経 路作用要素の実行条件については、他の単語単位の宣言実行単位の半順序関係 定義に反映することによって、要件の意味を保持することができる。 [0035] A word-based declaration execution unit, for example, a path action element, which becomes unnecessary by the optimal ordering is deleted. The order information that must be implemented to maintain the meaning of the requirement. The execution condition of the road action element can retain the meaning of the requirement by reflecting it in the definition of the partial order relation of the declaration execution unit of other word units.
[0036] こうして得られた単語単位の宣言実行単位モジュール群 (経路作用要素を含めな い)に対して、トポロジカル 'ソートを行って、単語単位の宣言実行単位群を最適順序 に並び替える。これにより、無駄な繰返しを回避し、最少実行回数でプログラムを実 行することが可能となる。  [0036] Topological sorting is performed on the word-wise declaration execution unit module group (not including the path action element) obtained in this way, and the word-unit declaration execution unit group is rearranged in the optimal order. This avoids unnecessary repetition and allows the program to be executed with the minimum number of executions.
発明を実施するための最良の形態  BEST MODE FOR CARRYING OUT THE INVENTION
[0037] 本発明は、従来の Lyee構造プログラムの分割単位をなくし、プログラム全体に対し てトポロジカル 'ソートを行うことによって、前述の従来技術の問題を改善するものであ る。本発明によって、 Lyee方法論によって開発されるソフトウェアの実行速度の向上 、プログラムサイズの改善を実現する。以下、図面を参照しながら、本願の発明の具 体的な実施形態について説明する。 Lyee構造プログラムに対してトポロジカル 'ソート を行う技術については同一出願人による特許文献 6を引用し、これを開示の一部とな す。 [0037] The present invention improves the above-mentioned problems of the prior art by eliminating the division unit of the conventional Lyee structure program and performing topological sort on the entire program. According to the present invention, improvement in the execution speed of software developed by the Lyee methodology and improvement in program size are realized. Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. For the technique of topological 'sorting for Lyee structure program, reference is made to Patent Document 6 by the same applicant, which is a part of the disclosure.
[0038] 1章では、本発明の統合の対象である Lyeeソフトウェアの分割構造がどのようなもの カゝ、概要を説明する。 2章では、基本構造を統合する具体的な方法を述べる。 3章で は、本発明を用いて基本構造を統合するプログラムの事例とその効果を述べる。 く 1章 Lyeeソフトウェアの分割構造のしくみ >  [0038] Chapter 1 explains the outline and outline of the division structure of the Lyee software that is the object of integration of the present invention. Chapter 2 describes a specific method for integrating the basic structure. Section 3 describes examples of programs that integrate basic structures using the present invention and their effects. Chapter 1 Structure of Lyee software division structure>
分割構造をもった従来の Lyee構造プログラムを統合するためには、まず、その分割 構造のしくみについて理解する必要がある。基本構造への分割は、単語がどのような グループ単位にどのような条件で出力されるべきなの力、という要件を捉えて宣言し たものである。単語単位の宣言の要素に入出力属性という項目があつたが、入出力 の区別の他に、各単語がどの入力または出力グループ (論理体)に属するのか、その 入出力グループがどのような条件で入出力されるの力 も宣言されるべき要件である 。様々な処理を表わす要件定義から、この入出力に関する要件情報を、どのように正 確に取り出すかについての詳細は、同一出願人による特願 2004-272400を引用し これを開示の一部とする。ここでは、基本構造への分割の意味について、本発明の 説明に必要と思われる概要のみを述べる。 1.基本構造への分割の意味 In order to integrate a conventional Lyee structure program with a divided structure, it is first necessary to understand how the divided structure works. The division into basic structures is declared based on the requirement that the word should be output in what group and under what conditions. There is an input / output attribute item in the element of the word unit declaration. In addition to the input / output distinction, what input or output group (logical body) each word belongs to, and what conditions the input / output group has The power to be input / output in is also a requirement to be declared. For details on how to accurately extract the requirement information related to this input / output from the requirement definitions representing various processes, refer to Japanese Patent Application No. 2004-272400 by the same applicant, which is a part of the disclosure. . Here, only the outline considered necessary for the explanation of the present invention will be described with respect to the meaning of the division into the basic structure. 1. Meaning of division into basic structures
分割構造の意味 Meaning of division structure
Lyeeソフトウェアの分割構造は、最小単位のモジュールである宣言実行モジュール が、一定の規則に従って、グループ化されている、という構造である。その構造を、図 1 (a)及び (b)に示す。  The division structure of Lyee software is a structure in which declaration execution modules, which are the smallest unit modules, are grouped according to certain rules. The structure is shown in Fig. 1 (a) and (b).
同期範囲 Sync range
プログラムを構成するモジュールは、まず、図 1 (a)で「同期範囲」と示した単位にグ ループ化されている。同期範囲とは、ユーザによるプログラムへの処理実行指示であ るイベント(たとえばボタンを押す、メニューを選択する、などのコマンド)によって、コ ンピュータが実行するように要件で定められているひとまとまりの処理の範囲のことで ある。言い換えれば、同期範囲とは、同じイベントを実行条件として実行されるモジュ ールのグループである。 Lyeeでは、この同期範囲の処理が完了することを「同期」と 呼ぶ。同期範囲の処理が完了するとは、イベントに対して要件で定められている出力 単語の生成と出力を全て完了することである。  The modules that make up the program are first grouped into units shown as “synchronization range” in Fig. 1 (a). The synchronization range is a set of requirements defined by the computer to be executed by an event (for example, a command such as pressing a button or selecting a menu) that is a process execution instruction to the program by the user. It is the scope of processing. In other words, a synchronization range is a group of modules that are executed using the same event as an execution condition. In Lyee, this synchronization range processing is called “synchronization”. Completing the synchronization range processing means completing the generation and output of all output words specified in the requirements for the event.
本構造  This structure
次に、同期範囲内のモジュールは、図 1 (a)の 101に示すように、基本構造単位に グループ化されている。コンピュータの入出力処理は、データ単位ではなぐデータ の集合単位に行われる力 同時に同一の定義体に対して入力または出力処理され る単語の集合を Lyeeでは論理体と呼んでいる。論理体とは、画面、ファイル、帳票、 電文など、単語の値を保持する単位である。同一の出力論理体に関与するモジユー ルをグループ化したものが基本構造である。プログラムの役割は、ユーザによるィべ ントが指定する出力単語の値を生成、出力することであるが、 1つのイベントによる同 期範囲の中で行う出力は 1つとは限らない。単語の値の生成結果を画面に表示(出 力)する以外に、生成結果をファイルへ保存(出力)する、などのように、多くの場合、 1つの同期範囲内で 2つ以上の出力論理体が出力され、同期範囲は複数の基本構 造にグループィ匕される。  Next, modules within the synchronization range are grouped into basic structural units as shown at 101 in FIG. 1 (a). The input / output processing of a computer is performed on a set of data rather than on a data unit. A set of words that are simultaneously input or output to the same definition is called a logical entity in Lyee. A logical unit is a unit that holds word values such as screens, files, forms, and messages. The basic structure is a grouping of modules involved in the same output logic. The role of the program is to generate and output the value of the output word specified by the event by the user, but the output to be performed within the synchronization range by one event is not necessarily one. In many cases, two or more output logics within one synchronization range, such as saving (outputting) the generation results to a file, in addition to displaying (outputting) the word value generation results on the screen Field is output, and the synchronization range is grouped into multiple basic structures.
ノヽレット Knowlet
最後に、基本構造内のモジュールは、その種類別に 3つにグループィ匕される。基本 構造内のモジュールのグループを、 Lyeeではパレットと呼んでいる。 3つのパレットを 、それぞれ W02パレット、 W03パレット、 W04パレットと呼ぶ。 W02パレットは、入力単語 の入力にかかわるモジュールの集合である。 W03パレットは出力単語の定義式の計 算条件の判定にかかわるモジュールの集合である。 W04パレットは出力単語の定義 式の実行による値の生成と、値の出力にかかわるモジュールの集合である。 Finally, the modules in the basic structure are grouped into three groups by type. Basic A group of modules in a structure is called a palette in Lyee. The three pallets are called W02 pallet, W03 pallet, and W04 pallet, respectively. The W02 palette is a collection of modules related to input word input. The W03 palette is a set of modules related to the determination of the calculation condition of the output word definition formula. The W04 palette is a set of modules related to the generation of values by the execution of output word definition formulas and the output of values.
[0039] 次に基本構造の実行順序について説明する。 Next, the execution order of the basic structure will be described.
同じ同期範囲内  Within the same synchronization range
基本構造間には端点始点関係がある。従って、深さ優先探索で次に実行すべき基 本構造が決まる。同じ同期範囲内の宣言実行モジュールに対してトポロジカルソート を実行すれば実行順序が決まる。  There is an end point starting point relationship between the basic structures. Therefore, the basic structure to be executed next in the depth-first search is determined. If the topological sort is executed for the declaration execution modules within the same synchronization range, the execution order is determined.
同期範囲の実行順序  Execution order of synchronization range
どの同期範囲が実行されるかは、どのイベントがユーザによって発せられたかによ る。たとえば、画面に処理 Aを実行するボタンと、処理 Bを実行するボタンがあり、ュ 一ザがこれらのボタンのいずれか 1つを押下することによって、プログラムが実行する 処理内容 (すなわち、同期範囲)が決定する。このように、プログラム全体は、異なるィ ベントを実行条件にする複数の同期範囲によって構成されているので、プログラム全 体の宣言実行モジュールに対して、単純にトポロジカルソートを行うことができない。 2 章で、 2つのイベントによる 2つの同期範囲を持つ仕様を例に用いて、異なる同期範 囲の宣言実行モジュールに対して統合してトポロジカルソートを行う方法を説明する  Which sync range is executed depends on which event is fired by the user. For example, there are a button for executing process A and a button for executing process B on the screen, and the contents of the process executed by the program when the user presses one of these buttons (that is, the synchronization range) ) Is determined. In this way, the entire program is composed of a plurality of synchronization ranges with different events as execution conditions, so it is not possible to simply perform topological sort on the declaration execution module of the entire program. Chapter 2 explains how to perform topological sorting by integrating the declaration execution modules with different synchronization ranges, using a specification with two synchronization ranges due to two events as an example.
2.トポロジカルソートの対象 2. Topological sort target
トポロジカルソートによって最適順序化する、その対象は、 Lyeeソフトウェアの構成 要素である宣言実行モジュールが実行して ヽる処理である。宣言実行モジュールは 、 2つの種類があり、 1つは論理要素で、単語の値を成立させるためのモジュールで ある。もう 1つは作用要素で、入出力処理など、値の成立以外の処理を行うモジユー ルである。  The target of optimal ordering by topological sort is the processing executed by the declaration execution module that is a component of Lyee software. There are two types of declaration execution modules, one is a logical element and is a module for establishing the value of a word. The other is an action element, a module that performs processing other than value establishment, such as input / output processing.
[0040] 同一出願人による特許文献 6は、値を成立させる論理要素を有向グラフおよび隣 接行列の要素として取扱い、数学的モデルによって表わし、トポロジカルソートの実 施形態を開示している。作用要素も、論理要素と同じぐ有向グラフおよび隣接行列 の要素として取扱うことができ、トポロジカルソートの対象とすることができる。論理要 素と作用要素の大きな違いは、論理要素は 1つの単語のみに作用(値の生成という 作用)するが、作用要素は同時に 2つ以上の単語に対して作用する点だけである。た とえば、経路作用要素 (次に実行する基本構造を指定する)は、基本構造という単語 の集合に対して作用し、出力作用要素(出力単語を出力する)は、出力論理体という 単語の集合に対して作用する。 [0040] Patent document 6 by the same applicant treats logical elements that establish values as elements of a directed graph and an adjacency matrix, expresses them by a mathematical model, and implements a topological sort. Embodiments are disclosed. Action elements can also be handled as elements of the directed graph and adjacency matrix that are the same as logical elements, and can be the target of topological sort. The only major difference between a logical element and an action element is that the logic element acts on only one word (acting as a value generation), but the action element acts on two or more words at the same time. For example, a path action element (which specifies the basic structure to be executed next) operates on a set of words called the basic structure, and an output action element (outputs an output word) is a word called an output logic. Act on sets.
[0041] 以下に、宣言実行モジュールを順次考察しながら、トポロジカルソートの対象にする 方法を述べる。 [0041] In the following, a method for subjecting topological sorts will be described while considering the declaration execution modules sequentially.
「論理要素」  "Logical elements"
『L2』  "L2"
L2は、入力単語の属性が要件に合致するかのチェックを行う宣言実行モジュール である。いかなる条件下にあっても、 L2の処理が実行できる条件は、入力単語の値 力 媒体力もメモリ領域内に取り込まれている (入力済みである)ことである。従って、ト ポロジカルソートの対象とする L2処理は、始点が L2の値の入力を行う 12だと考えれ ば良い。  L2 is a declaration execution module that checks whether the attribute of the input word meets the requirements. Under any condition, the condition under which L2 processing can be executed is that the input word's value / medium power is also taken into the memory area (already entered). Therefore, it can be considered that the L2 processing that is the target of topological sorting is the input 12 of the L2 value at the start point.
[0042] イベントのコマンド(ボタンやメニュー)も入力単語の 1つとして扱う。  [0042] Event commands (buttons and menus) are also treated as one of the input words.
[0043] 『: L3および L4』 [0043] “: L3 and L4”
現状の Lyeeソフトウェア構造では、出力単語の生成処理は、 L3 (計算条件式の実 行)と L4 (定義式の実行)の 2つのモジュールによって実現している。さらに、出力単 語 aが複数の定義式を持つ場合 (このような場合の単語を等価単語と呼ぶ)は、定義 式と計算条件の組の数だけ、 L3および L4を設ける。  In the current Lyee software structure, the output word generation processing is realized by two modules, L3 (execution of calculation condition expressions) and L4 (execution of definition expressions). Furthermore, when the output word a has a plurality of definition expressions (the word in such a case is called an equivalent word), L3 and L4 are provided as many as the number of combinations of the definition expression and the calculation condition.
[0044] 出力単語 aが複数の定義式を持ち(このような場合の単語を等価単語と呼ぶ)、下 記のように宣言されて 、るとする。 [0044] Assume that the output word a has a plurality of defining expressions (the word in such a case is called an equivalent word) and is declared as follows.
[0045] <定義式> <計算条件 > [0045] <Definition formula> <Calculation conditions>
(1) b + c e> 10  (1) b + c e> 10
(2) b-d e≤10  (2) b-d e≤10
等価単語は複数の定義式を持っているが、出力単語に必ず 1つだけ値が与えられ なければならない。従って、等価単語の定義式の計算条件は、排他的かつ完備でな ければならない。 Equivalent words have multiple definitions, but only one value is assigned to the output word. There must be. Therefore, the calculation conditions for the definition of equivalent words must be exclusive and complete.
[0046] いかなる条件下にあっても、単語 aの生成処理が実行できる条件は、単語 aの全て の定義式と計算条件式に用いられている全ての始点単語、が決定ずみであれば良 い。すなわち、トポロジカルソートの対象は、単語 b、 c、 d、 eの定義式が先に実行され ていれば良い。  [0046] Under any conditions, the condition for generating the word a is sufficient if all the definition words of the word a and all the start words used in the calculation condition are determined. Yes. In other words, the topological sort target only needs to execute the definition expressions for the words b, c, d, and e first.
[0047] 従って、トポロジカルソートの対象となるのは、出力単語ごとの、 L3および L4処理の 組の全てで、始点は、それらの定義式と計算条件に始点として用いられている入力 単語の L2処理、および、出力単語の L4と L3処理の組である。  [0047] Therefore, the topological sort targets are all of the L3 and L4 processing pairs for each output word, and the starting point is the input word L2 used as the starting point in their definition and calculation conditions. It is a set of processing and output word L4 and L3 processing.
「作用要素」  `` Functional element ''
『入力作用要素 12』  `` Input action element 12 ''
12は、媒体からメモリ内へ値を取り込む (入力)処理を行うモジュールである。従って 、いかなる条件下においても、 12の処理が実行できる条件は、無条件である(すなわ ち、他の処理に依存しない)。トポロジカルソートの対象となる 12処理は、始点をもた ない。(ただし、ファイルからの入力の場合は、ファイルにアクセスするためのキーとな るキー単語の値が成立して 、る必要がある)  Reference numeral 12 denotes a module for performing (input) processing for fetching values from the medium into the memory. Therefore, the condition under which 12 processes can be executed under any condition is unconditional (that is, it does not depend on other processes). The 12 processes subject to topological sort do not have a starting point. (However, in the case of input from a file, the value of the key word, which is the key for accessing the file, must be established)
『出力作用要素 04』  "Output action element 04"
04は、 Lyeeソフトウェア領域力 メモリ上の出力バッファへ単語の値を書き込む(出 力)処理を行うモジュールである。従って、いかなる条件下においても、 04の処理が 実行できる条件は、出力対象の出力単語の、値が成立済み (すなわち、 1つの L4が 実行済み)であることである。トポロジカルソートの対象となる 04処理は、始点が出力 対象の出力単語だと見なせる。  04 is a module that writes (outputs) word values to the output buffer in the Lyee software domain memory. Therefore, the condition under which the process 04 can be executed under any condition is that the value of the output word to be output has been established (that is, one L4 has been executed). The 04 process that is the target of the topological sort can be regarded as the output word that is the output target.
[0048] 『構造作用要素 S4』 [0048] "Structure action element S4"
S4は、単語の値を記録する領域と、処理の結果 (たとえば、出力が正常に完了した 、出力が正常に完了しな力つたなど)を記録する領域を初期化 (初期値を記録する) する処理を行うモジュールである。従来の繰り返し構造をもつ Lyeeにおける、単語の 値の領域への上書き禁止と初期化は、繰り返し構造のメカニズムのための手段であ つた。従って、プログラム全体にトポロジカルソートを行って、最適順序化した Lyee構 造にぉ 、ては、単語の値の領域の初期化は不要となる。 S4 initializes the area to record the word value and the area to record the processing result (for example, output completed successfully, output not completed normally) (record the initial value) It is a module that performs processing. In Lyee with a conventional repeat structure, overwriting prohibition and initialization of word value areas were means for the repeat structure mechanism. Therefore, the topological sort is performed on the entire program, and the Lyee structure is optimally ordered. Therefore, it is not necessary to initialize the word value area.
[0049] 一方、処理結果の記録領域の初期化は、繰り返し構造のメカニズムのための処理 ではな!/、ので、統合 Lyee構造にも必要な処理である。 [0049] On the other hand, the initialization of the processing result recording area is not a process for the mechanism of the repetitive structure! /, So it is also necessary for the integrated Lyee structure.
[0050] 『経路作用要素』 [0050] "Path action element"
経路作用要素は、次に実行するパレットを指定する処理を行うモジュールである。 経路作用要素は、プログラムの分割単位である、パレット、およびそのパレットの集合 である基本構造を、リンクする役割を果たしている。  The path action element is a module that performs processing for designating a palette to be executed next. The path action element plays a role of linking the pallet which is a division unit of the program and the basic structure which is a set of the pallet.
[0051] 〈基本構造内のパレット間遷移を行う経路作用要素〉 [0051] <Route action element that performs transition between palettes in the basic structure>
〈基本構造間の遷移を行う経路作用要素〉  <Route action element that makes transition between basic structures>
以下に例を上げて、基本構造から別の基本構造の実行を指定する経路作用要素 の意味を説明する。  The meaning of the path action element that specifies the execution of another basic structure from the basic structure is explained below with an example.
(例 1)  (Example 1)
図 2は、あるシステムの画面で、ユーザがデータ項目 cおよびデータ項目 dにデータ を入力して実行ボタンの aまたは bを押すことによって、データ項目 gに値を得るため のシステムである。 701はデータ項目 cの入力データフィールド、 702はデータ項目 d の入力データフィールド、 703はデータ項目 gの出力データフィールド、 704は実行 ボタン a、 705は実行ボタン bである。実行ボタン aが押されるときは、 gの値は定義式 c + dで計算され、実行ボタン bが押されるときは、 gの値は定義式 c X dによって計算さ れる。実行ボタンの aおよび bは、両方が同時に押されることはないので、 gの値の生 成のための 2つの定義式のどちらが実行されるかの条件となっている。  Fig. 2 shows a system in which a user obtains a value for data item g by inputting data into data item c and data item d and pressing a or b of the execute button on a screen of a certain system. 701 is an input data field of data item c, 702 is an input data field of data item d, 703 is an output data field of data item g, 704 is execute button a, and 705 is execute button b. When the execution button a is pressed, the value of g is calculated by the definition expression c + d, and when the execution button b is pressed, the value of g is calculated by the definition expression cXd. Since the execution buttons a and b are not pressed at the same time, it is a condition that one of the two defining expressions for generating the value of g is executed.
[0052] 図 2の画面のプログラムを、基本構造の分割単位に表すと図 3のようになる。図 3の BS1、 BS2、 BS 3はそれぞれ基本構造である。基本構造 BS1は、図 2に示した画面 への出力論理体の基本構造である。 BS1は、実行ボタンである入力単語 aと入力単 語 b、入力データ項目である入力単語 bと入力単語 c、出力データ項目である出力単 語 g、経路作用要素 Xを含んでいる。  [0052] The program of the screen in FIG. 2 is represented in FIG. 3 as divided units of the basic structure. BS1, BS2, and BS3 in Fig. 3 are basic structures. Basic structure BS1 is the basic structure of the output logic to the screen shown in Fig.2. BS1 includes an input word a and an input word b that are execution buttons, an input word b and an input word c that are input data items, an output word g that is an output data item, and a path action element X.
[0053] 基本構造 BS2は、実行ボタン aが押されたとき、出力データ項目 gの値を式 c + dに よって計算するための基本構造 (媒体がファイル)である。式 c + dの結果を記録する 単語 eを含んでいる。基本構造 BS3は実行ボタン bが押されたとき、出力データ項目 g の値を式 c X dによって計算するための基本構造 (媒体がファイル)である。式 c X dの 計算結果を記録する単語 fを含んでレ、る。 [0053] The basic structure BS2 is a basic structure (medium is a file) for calculating the value of the output data item g by the expression c + d when the execute button a is pressed. Log the result of the expression c + d. It contains the word e. Basic structure BS3 is output data item g when execute button b is pressed Is the basic structure (medium is a file) for calculating the value of x by the formula c X d. It contains the word f that records the calculation result of the expression c X d.
[0054] 画面にユーザがデータを入力した (BS1が実行された)後に、出力単語 gの値を計 算するための基本構造は BS2または BS 3である力 どちらが実行されるべきかを指 定するのが経路作用要素 Xである。 2つの基本構造に所属する単語は、それぞれボ タン aと bのどちらが押されたかによつて実行が決まるので、経路作用要素 Xは、実行 ボタン aが押された場合 (単語 a =真、値がある)は BS2を、実行ポタン bが押された場 合 (単語 b=真、値がある).は BS3を、次に実行する基本構造として指定する。また、 実行が次の基本構造に移るのは入力データがそろったときであるので、単語 cおよび 単語 dに値があることも、経路作用要素 Xの実行条件となる。  [0054] After the user enters data on the screen (BS1 is executed), the basic structure for calculating the value of the output word g is BS2 or BS 3 Specifies which force should be executed It is the pathway action element X that does. The execution of the words belonging to the two basic structures depends on whether the button a or b is pressed, so that the path action element X can be used when the execution button a is pressed (word a = true, value ) Specifies BS2, and if execution button b is pressed (word b = true, has value). Specifies BS3 as the next basic structure to execute. Also, since execution moves to the next basic structure when input data is ready, the fact that word c and word d have a value is also an execution condition for path action element X.
[0055] 基本構造 BS2または BS3の実行によって、出力単語 gの値が単語 eまたは単語 こ 成立する。出力データを画面に出力するための基本構造 BS1の出力単語 gは、単語 eに値が成立したとき (e=真)は g=e、単語 fに値が成立したとき (f =真)は g=f、と定 義される。  [0055] By executing the basic structure BS2 or BS3, the value of the output word g is the word e or the word. Basic structure for outputting output data to the screen The output word g of BS1 is g = e when a value is established for the word e (e = true), and when a value is established for the word f (f = true) It is defined as g = f.
[0056] 上記のような単語の定義を整理すると下記の表 1のとおりである  [0056] The definitions of the above words are summarized in Table 1 below.
[0057] [表 1] [0057] [Table 1]
Figure imgf000018_0001
Figure imgf000018_0001
『制御モジュール』 Control module
従来の Lyee構造は、分割構造があり、分割単位に繰り返し処理が行われていたた めに、パレット内の各モジュールをコールして実行させるパレット関数 (パレットの数だ け設置)と、それらのパレット関数自体をコールして実行させるパレット連鎖関数 (プロ グラムに 1つ)、の 2種類の制御モジュールが必要であった。  The conventional Lyee structure has a division structure, and iterative processing is performed for each division unit. Two types of control modules were required: a palette chain function (one program) that calls and executes the palette function itself.
トポロジカルソート後は、プログラム全体が統合され、順序ィヒされるので、プログラム 全体に 1つ、プログラム内のモジュールをコ一ルする制御モジュールがあれば良!/、。 差替え用紙(規則 26) 2章 基本構造の統合とトポロジカルソート After the topological sort, the entire program is integrated and sequenced, so it is sufficient if there is one control module that collects the modules in the program! /. Replacement paper (Rule 26) 2. Basic structure integration and topological sorting
例 1の要件を用いて、トポロジカルソートの具体的手順を説明する。  Using the requirements of Example 1, the specific procedure for topological sorting is explained.
基本構造の隣接行列  Adjacency matrix of basic structure
図 4は、図 3の単語の関係を有向グラフによって示した図である。基本構造 BS1に 属する入力単語である単語 a、単語 b、単語 単語 dは、有向グラフによって表される 単語のネットワークの最端始点となる。同じく基本構造 BS1に属する経路作用要素で ある単語 Xは、上記表 1に示したとおり、値が成立 (次に実行する基本構造決定の真 偽判定が成立)するためには、単語 aまたは単語 bと単語 cと単語 dが必要であるので 、これらの 4つの単語を始点とする矢印によって 4つの単語とリンクされる。基本構造 B S2に属す単語 e、および、基本構造 BS3に属す単語 fは、値が成立するために、単 語 c、単語 dおよび単語 Xが必要であるので、これらの 3つの単語を始点とする矢印に よって各々 3つの単語とリンクされる。基本構造 BS1に属す出力単語 gは、値が成立 するために、単語 eまたは中間単語 fが必要であるので、これらの 2つの単語を始点と する矢印によって 2つの単語とリンクされる。  FIG. 4 is a diagram showing the relationship of the words in FIG. 3 with a directed graph. Words a, b, and d, which are input words belonging to the basic structure BS1, are the end points of the word network represented by the directed graph. Similarly, as shown in Table 1 above, the word X, which is a path action element belonging to the basic structure BS1, must be either the word a or the word Since b, word c, and word d are needed, they are linked to the four words by arrows starting from these four words. The word e belonging to the basic structure B S2 and the word f belonging to the basic structure BS3 require the word c, the word d, and the word X in order for the value to be satisfied. Each arrow is linked to three words. Since the output word g belonging to the basic structure BS1 requires the word e or the intermediate word f in order for the value to be established, it is linked to the two words by arrows starting from these two words.
[0059] 次に、図 4で有向グラフで示した例 1のシステムを隣接行列を用いて表す。最初に 図 4の、入力単語を扱った基本構造 BS1 (901)を表した隣接行列 F1を下記の数 1に 示す。 Next, the system of Example 1 shown by the directed graph in FIG. 4 is represented using an adjacency matrix. First, the adjacency matrix F1 that represents the basic structure BS1 (901) that handles the input word in Fig. 4 is shown in Equation 1 below.
基本構造 BS1 (入力単語)の隣接行列  Adjacency matrix of basic structure BS1 (input word)
[0060] [数 1] [0060] [Equation 1]
a b c d xr abcdx r
β「0 0 0 0 0  β `` 0 0 0 0 0
ft 0 0 0 0 0  ft 0 0 0 0 0
FJ = c 0 0 0 0 0  FJ = c 0 0 0 0 0
0 0 0 0 0  0 0 0 0 0
xr [ l 1 1 1 0 x r [l 1 1 1 0
BS1 (入力単語)の要素は単語 a、単語 b、単語 単語 d、単語 ^であるから、 F1の 行列はこれらの要素によって構成される。入力単語である単語 a、単語 b、単語 単 語 dは、始点単語を持たないので、終点単語 a、 b、 c、 dのそれぞれの横列 (始点単語 a、 b、 c、 d、 xとの交点)は総て始点単語として用いないことを示す「0」となる。経路作 用要素である単語 Xは、図 4の有向グラフに示したとおり、始点として単語 a、単語 b、 単語 単語 dを持つので、終点単語 Xfの横列は、これらの始点単語との交点は始点 であることを示す「1」となる。 Since the elements of BS1 (input word) are word a, word b, word word d, and word ^, the matrix of F1 is composed of these elements. Since the input word word a, word b, and word word d do not have a start word, each row of end words a, b, c, d (start word a, b, c, d, x “Intersection points” are all “0” indicating that they are not used as the start point words. As shown in the directed graph in Fig. 4, word X, which is a route creation element, has word a, word b, Since it has the word d, the row of the end word X f is “1” indicating that the intersection with these start words is the start point.
[0061] 次に、基本構造 BS2および BS3 (以下、基本構造 BS2&BS3と記す)を合わせた ものを表す隣接行列 F2を下記の数 2に示す。  [0061] Next, the adjacency matrix F2 representing the combination of the basic structures BS2 and BS3 (hereinafter referred to as the basic structures BS2 & BS3) is shown in Equation 2 below.
基本構造 BS 2 & BS 3の隣接行列  Adjacency matrix of basic structure BS 2 & BS 3
[0062] [数 2] [0062] [Equation 2]
e f  e f
BS2&BS3の要素は単語 eと単語 fのみであるので、 F2の行列はこれら 2つの要素 で構成される。単語 eと単語 fはお互いに独立している(すなわち、どちらの単語も始 点単語としてもう一方の単語を用いて 、な 、)ので、 、ずれの交点も「0」となる。 Since the elements of BS2 & BS3 are only word e and word f, the matrix of F2 is composed of these two elements. Since the word e and the word f are independent from each other (that is, both words use the other word as the starting word), the misalignment intersection is also “0”.
[0063] 基本構造 BS1の出力単語を扱った集合の隣接行列 F3を、下記の数 3に示す。  [0063] The adjacency matrix F3 of the set that handles the output words of the basic structure BS1 is shown in the following Equation 3.
基本構造 BS1 (出力単語)の隣接行列  Adjacency matrix of basic structure BS1 (output word)
[0064] [数 3]  [0064] [Equation 3]
8  8
F3 = g[0]  F3 = g [0]
BS3の要素は単語 gのみであるので、 F3の行列は単語 glつのみで構成される。単 語 gは始点として自身を用いな 、ので、交点は「0」となる。  Since the element of BS3 is only word g, the matrix of F3 is composed of only gl words. The word g does not use itself as the starting point, so the intersection is “0”.
[0065] 以上で、例 1のシステムを構成する基本構造単位に、同一基本構造内の要素間の 関係を隣接行列に表した。  As described above, in the basic structural unit constituting the system of Example 1, the relationship between elements in the same basic structure is represented in the adjacency matrix.
2.結合隣接行列による基本構造の統合  2. Integration of basic structure by joint adjacency matrix
次に、これらをシステム全体として 1つの隣接行列として表すために、各基本構造の 要素である単語と他の基本構造の要素である単語との関係を示すことによって基本 構造をリンクする結合隣接行列(connection matrix)について説明する。  Next, in order to represent them as a single adjacency matrix for the entire system, a combined adjacency matrix that links the basic structures by showing the relationship between the words that are the elements of each basic structure and the words that are the elements of other basic structures (Connection matrix) will be described.
[0066] 任意の基本構造の単語と他の基本構造の単語の関係は、図 4に示したように終点 単語と始点単語の関係によって表わされている。基本構造同士は、それに属する単 語の関係によってリンクされていると言える。図 4から以下のことが分かる。  [0066] The relationship between a word having an arbitrary basic structure and a word having another basic structure is represented by the relationship between the end point word and the start point word as shown in FIG. Basic structures can be said to be linked by the relationship of the words belonging to them. Figure 4 shows the following.
基本構造 BS1 (入力)の単語を終点単語としたとき、いずれの他の基本構造の単語も 、 BS1 (入力)の単語より後に現れるので、始点単語となりえない。 When the word of basic structure BS1 (input) is the end word, any other basic structure word Since it appears after the word BS1 (input), it cannot be the starting word.
基本構造 BS2 & 3の単語を終点単語としたとき、 BS2 & 3の単語より前に現れる BS1 BS1 appears before the word of BS2 & 3 when the word of the basic structure BS2 & 3 is the end word.
(入力)の単語は始点単語となりえる力 BS1 (出力)の単語は始点単語となりえない 基本構造 BS1 (出力)の単語を終点単語としたとき、 BS2 & 3および BS1 (入力)のい ずれの単語も、 BS1 (出力)の単語より前に現れるので、始点単語となりえる。 (Input) word can be the starting word BS1 (Output) word cannot be the starting word Basic structure When the BS1 (output) word is the end word, either BS2 & 3 or BS1 (input) Since the word also appears before the BS1 (output) word, it can be the starting word.
[0067] 上記の考察の結果、基本構造をリンクするための結合隣接行列として重要なのは、 任意の基本構造と、それに属す単語の始点単語になりえる単語を含む基本構造との 関係を表す結合隣接行列であることがわかる。なぜなら、有向グラフで示されるように 、単語間の関係は始点単語から終点単語へと向力 関係のみが存在するがゆえに、 基本構造間の関係も、それと同様に始点単語を含む基本構造から終点単語を含む 基本構造へと向かう関係のみが存在し、逆の関係は存在しない (そのような基本構造 間の関係を表す結合隣接行列は、すべての交点が 0となる)力もである。 [0067] As a result of the above consideration, what is important as a joint adjacency matrix for linking basic structures is a joint adjacency that represents the relationship between an arbitrary basic structure and a basic structure that includes a word that can be the starting word of a word belonging to it. It turns out that it is a matrix. Because, as shown in the directed graph, there is only a directional relationship from the starting word to the ending word for the relationship between words, so the relationship between the basic structures is also changed from the basic structure including the starting word to the ending word. There is only a relationship toward the basic structure including, and there is no reverse relationship (the joint adjacency matrix that represents the relationship between such basic structures has all intersection points of 0).
[0068] 以下に、例 1の基本構造をリンクする (始点単語を含む基本構造カゝら終点単語を含 む基本構造へと向力 関係を表す)結合隣接行列を 1つづつ考察する。 [0068] The following considers one connected adjacency matrix that links the basic structure of Example 1 (representing a directional relationship from the basic structure including the start word to the basic structure including the end word).
[0069] 数 4は、基本構造 BS1 (入力)(始点単語)力ら基本構造 BS2&BS3 (終点単語)へ の関係を示す結合隣接行列 FC1である。 [0069] Equation 4 is a joint adjacency matrix FC1 indicating the relationship between the basic structure BS1 (input) (start word) force and the basic structure BS2 & BS3 (end word).
[0070] 画 [0070] drawings
a b c d xr abcdx r
e「0 0 1 1 Γ  e `` 0 0 1 1 Γ
FC1 =  FC1 =
/|_0 0 1 1 1 隣接行列 FC1は、基本構造 BS2&BS3の要素である単語 eと単語 fを終点単語に おいたとき、 BS1 (入力)の要素である単語 a、単語 b、単語 c、単語 d、単語 xfが始点 単語として用いられる状態を表し、 2つの基本構造の関係を示している。図 4で示した ように、単語 eおよび単語 fは、は単語 c、単語 d、単語 Xを始点単語に用いる。従って 、 FC1において、終点単語 eおよび終点単語 fの行と、始点単語 c、 d、 Xとの交点は「 1」となり、その他の始点単語との交点は「0」となる。 / | _0 0 1 1 1 The adjacency matrix FC1 is the word a, word b, word c, word that are elements of BS1 (input) when word e and word f, which are elements of the basic structure BS2 & BS3, are placed at the end word. d, word x f represents the state used as the starting word, and shows the relationship between the two basic structures. As shown in Fig. 4, word e and word f use word c, word d, and word X as the starting word. Therefore, in FC1, the intersection of the line of end word e and end word f and start point words c, d, and X is “1”, and the intersection point with other start point words is “0”.
[0071] 数 5は、基本構造 BS1 (入力)および基本構造 BS2&BS3 (始点単語)から、基本 構造 BS1 (出力)(終点単語)への関係を示す隣接行列 FC2を表している。 [0072] [数 5] Equation 5 represents the adjacency matrix FC2 indicating the relationship from the basic structure BS1 (input) and the basic structure BS2 & BS3 (start point word) to the basic structure BS1 (output) (end point word). [0072] [Equation 5]
a b c d e f  a b c d e f
FC2 = g[0 0 0 0 1 l]  FC2 = g [0 0 0 0 1 l]
隣接行列 FC2は、基本構造 BSl (出力)の要素である単語 gを終点単語においたと き、有向グラフにそれ以前に現われる BS1 (入力)、 BS2、 BS3の要素である単語 a、 単語 b、単語 単語 d、単語 X単語 e、単語 f、が始点単語として用いられる状態を表 して、 2つのグループの関係を表している。図 4で示したように、単語 gは、単語 eと単 語 fを始点単語に用いる。従って、 FC2において、終点単語 gの行と、始点単語 eおよ び fとの交点は「1」となり、その他の始点単語との交点は「0」となる。  The adjacency matrix FC2 is the word a, word b, word word that is an element of BS1 (input), BS2, BS3 that appears before in the directed graph when the word g, which is an element of the basic structure BSl (output), is placed at the end word. d, word X word e, and word f are used as starting words, and the relationship between the two groups is shown. As shown in Fig. 4, word g uses word e and word f as the starting word. Therefore, in FC2, the intersection of the line of the end point word g and the start point words e and f is “1”, and the intersection point of the other start point words is “0”.
[0073] 以上が、例 1のシステムを構成する基本構造間のリンクに意味を持つ結合隣接行列 であった。システム全体として 1つの隣接行列へ統合する過程の説明を簡便にするた めに、下記に、関係が存在しない基本構造間の結合隣接行列も示す。数 6は、基本 構造 BS2&BS3 (始点単語)から基本構造 BS1 (入力)(終点単語)の関係がないこ とを示す結合隣接行列 FC3である。  [0073] The above is the joint adjacency matrix that is meaningful for the links between the basic structures constituting the system of Example 1. To simplify the description of the process of integrating the entire system into one adjacency matrix, the following is also shown the adjacency matrix between basic structures that do not have a relationship. Equation 6 is a joint adjacency matrix FC3 indicating that there is no relationship between the basic structure BS2 & BS3 (start word) and the basic structure BS1 (input) (end word).
[0074] [数 6]  [0074] [Equation 6]
Figure imgf000022_0001
Figure imgf000022_0001
数 7は、基本構造 BSl (出力)(始点単語)から基本構造 BSl (入力)(終点単語)の 関係がな!ヽことを示す結合隣接行列 FC4である。  Equation 7 is a connection adjacency matrix FC4 indicating that there is no relationship between the basic structure BSl (output) (start word) and the basic structure BSl (input) (end word).
[0075] [数 7]
Figure imgf000023_0001
数 8は、基本構造 BS1 (出力)(始点単語)力 基本構造 BS2&BS3 (終点単語)の 関係がな!ヽことを示す結合隣接行列 FC5である。
[0075] [Equation 7]
Figure imgf000023_0001
Equation 8 is a joint adjacency matrix FC5 indicating that there is no relationship between the basic structure BS1 (output) (start word) force basic structure BS2 & BS3 (end word).
[数 8] [Equation 8]
S  S
1 1
Figure imgf000023_0002
上記に示した隣接行列 F1から F3、結合隣接行列 FC1から FC5を用いて、例 1の システムを 1つの隣接行列 Fとして表したものが数 9である。
Figure imgf000023_0002
Using the adjacency matrices F1 to F3 and the combined adjacency matrices FC1 to FC5 shown above, the system of Example 1 is expressed as one adjacency matrix F.
[数 9] [Equation 9]
a b c d xr e f g abcdx r efg
Figure imgf000023_0003
Figure imgf000023_0003
上記数式で、「F =」の右辺に示された、 Fl、 F2、 F3、 FC1、 FC2と 0 (行列の交点 が総て 0である隣接行列で、 FC3、 FC4、 FC5に相当する)で構成された行列は、基 本構造単位の隣接行列と結合隣接行列がどのように統合されてシステム全体を表わ すかを示している。次に、それらの要素を単語に変えたもの力 その右辺にある a、 b 、 c、 d、 x、 e、 f、 gを行列の要素とする隣接行列である。 Fl、 F2、 F3、 FC1、 FC2、 FC3、 FC4、 FC5がどのように統合されて Fを構成するの力 さらにわかりやすく示し たの力 である。 5の 1001の咅 力 SF1、 1002力 SF2、 1003力F3、 1004力FC1 、 1005が FC2である。行列の交点が総て 0である結合隣接行列は、 FC3力 006、 FC4力 1007、 FC5力 1008を する。 In the above formula, with Fl, F2, F3, FC1, FC2 and 0 shown on the right side of “F =” (adjacent matrix with all matrix intersections 0, corresponding to FC3, FC4, FC5) The constructed matrix shows how the basic structural unit adjacency matrix and the combined adjacency matrix are integrated to represent the entire system. Next, the power of changing those elements into words is an adjacency matrix whose elements are a, b, c, d, x, e, f, and g on the right side. Fl, F2, F3, FC1, FC2, FC3, FC4, FC5 It is the power of others. 5 1001 repulsive force SF1, 1002 force SF2, 1003 force F3, 1004 force FC1, 1005 are FC2. A joint adjacency matrix with all matrix intersections of 0 has FC3 force 006, FC4 force 1007, and FC5 force 1008.
[0078] 以上のようにして、 2つ以上の基本構造力 成る 1つのシステムは、 1つの隣接行列 で表すことができる。 [0078] As described above, one system composed of two or more basic structural forces can be represented by one adjacency matrix.
[0079] 以上でシステム全体を 1つの隣接行列で表わすことができたので、このシステムの 隣接行列に対して、同一出願人による特許文献 6で開示されるトポロジカルソートを 行って、総ての単語の値の状態が最少実行回数で確定 (すなわち総ての出力単語 の生成が完了)するような最適順序に単語単位のプログラムの並び替えを行う。  [0079] Since the entire system can be represented by one adjacency matrix as described above, the topological sort disclosed in Patent Document 6 by the same applicant is performed on the adjacency matrix of this system, and all words are displayed. The program is rearranged in the optimal order so that the state of the value of is fixed with the minimum number of executions (ie, the generation of all output words has been completed).
[0080] 例 1のシステムの隣接行列 Fをみれば、図 6に示すように、値が 1である始点単語と の交点は総て左下三角形(1301)の内にある。 1章で述べたように、これは単語が最 適順序に並んでいることを意味する。従って、数 9の隣接行列 Fは、すでにトポロジカ ルソート済みであって、初期値の単語の状態ベクトルを与えれば、最少実行回数で 出力単語の生成を完了することができる単語の順序になっているといえる。  [0080] Looking at the adjacency matrix F of the system of Example 1, as shown in Fig. 6, all the intersections with the starting word whose value is 1 are in the lower left triangle (1301). As mentioned in Chapter 1, this means that the words are in the optimal order. Therefore, the adjacency matrix F in Equation 9 has already been topologically sorted and is in the order of words that can complete the generation of output words with the minimum number of executions, given the initial word state vector. It can be said.
[0081] ここで、トポロジカルソートを施す効果について補足する。トポロジカルソートによつ て最適実行順序に並んだ単語単位のプログラムは、 1巡処理で総ての出力単語の値 を生成することができる。しかし、システム全体に対して言及する場合には、より正確 には「最少実行回数」で実現できるということが適切である。なぜなら、システム全体 でみたときには、集計処理のように、一時的記録領域を置くことによって同じ計算式 を繰り返し利用する必要がある処理を含む場合があるからである。もちろん、この場 合の「繰り返し」は、無駄な繰り返しではない。集計するデータの数マイナス 1が最少 繰り返し数になる。このような集計処理も、結合隣接行列を用いて 1つの隣接行列に 表わすことができる。  Here, a supplementary explanation will be given on the effect of topological sorting. A word-by-word program arranged in the optimal execution order by topological sorting can generate all output word values in one round. However, when referring to the entire system, it is appropriate that it can be realized more accurately with the “minimum number of executions”. This is because the system as a whole may include processes that require repeated use of the same formula by placing a temporary recording area, such as tabulation processing. Of course, “repetition” in this case is not useless repetition. The number of data to be minus minus 1 is the minimum number of repetitions. Such an aggregation process can also be expressed in one adjacency matrix using a combined adjacency matrix.
[0082] なお、ここでは探索技法の一例としてトポロジカル 'ソートを例にとり説明した力 他 の探索の技法を用いても良い。また、隣接行列定義については、本稿では理解の容 易さを助けるために入れた力 本質的には必須のステップではない。つまり、隣接行 列を定義することなぐ宣言間関係の規定から、直接に、或いは有向グラフ作成を介 して、トポロジカル 'ソート等の探索に至ることも本発明の思想の範囲内であり、本発 明の目的とするところを実現し得る。 It should be noted that here, as an example of the search technique, the power and other search techniques described using the topological sort as an example may be used. In addition, the adjacency matrix definition is essentially an indispensable step in this paper to help ease understanding. In other words, it is within the scope of the idea of the present invention to reach a search such as topological 'sorting' directly from the definition of the relationship between declarations without defining adjacent matrices or through directed graph creation. It can realize the intended purpose of Ming.
3.プログラムの隣接行列の検証  3. Verification of program adjacency matrix
本セクションでは、前セクションで示したシステムの隣接行列 F力 出力単語の値を 生成する関数として機能し、し力も、トポロジカル 'ソート済みであるので、最少実行回 数で総ての出力単語の生成を完了できることを、同一出願人による特許文献 6で開 示される単語の状態ベクトルをかける計算操作によって検証する。出力単語 gの値が 決定されれば、隣接行列 Fは関数として機能すると言える。また、例 5のシステムは、 前述の集計処理のような繰り返し処理を含まないので、 1巡処理で出力単語 gの値の 状態が確定すれば、最少実行回数で処理が完了したと言える。  This section functions as a function that generates the value of the adjacency matrix F force output word of the system shown in the previous section, and the force is also topologically sorted, so all output words are generated with the minimum number of executions. Is verified by a calculation operation that multiplies the state vector of the word disclosed in Patent Document 6 by the same applicant. If the value of the output word g is determined, the adjacency matrix F can be said to function as a function. In addition, since the system of Example 5 does not include the repetitive processing such as the above-described aggregation processing, it can be said that the processing is completed with the minimum number of executions if the state of the value of the output word g is determined in one round processing.
[0083] 例 1のシステムにおいて、ユーザが入力を行う前の単語の値の状態、すなわち単語 の状態ベクトル Xの初期値は、同一出願人による特許文献 6で開示されるように総て の要素が「null (未決定)」で、下記の数 10のようになる。  [0083] In the system of Example 1, the state of the value of the word before the user inputs, that is, the initial value of the state vector X of the word is all elements as disclosed in Patent Document 6 by the same applicant. Is “null (undecided)”, and it becomes like the following number 10.
[0084] [数 10] a  [0084] [Equation 10] a
b null  b null
c null  c null
d  d
null  null
e null  e null
f null  f null
s noil 数 9の隣接行列 F (すなわち例 1のシステム)に、数 10の状態ベクトル Xをかける計 算処理を施す (すなわち、例 1のシステムに入力を行う)。 FXの計算処理によって変 化する単語の値の状態を 1つの終点単語ごとに追って説明する。  s noil Performs a calculation process that multiplies the adjacency matrix F of number 9 (ie, the system of Example 1) by the state vector X of number 10 (ie, inputs to the system of Example 1). The state of the value of the word that is changed by the FX calculation process will be explained for each terminal word.
(1) 1巡目処理中の終点単語 aの計算  (1) Calculation of end word a during the first round
1巡目処理中の終点単語 aの計算は、次のようになる。  The calculation of the end word a during the first round is as follows.
a =0-null+0-null+0-null + 0 - null + 0 - null + 0 · null + 0 · null + 0 - null  a = 0-null + 0-null + 0-null + 0-null + 0-null + 0 · null + 0 · null + 0-null
= (+1) +(+1) +(+1) +(+1) +(+1) +(+1)  = (+1) + (+ 1) + (+ 1) + (+ 1) + (+ 1) + (+ 1)
+ (+1) +(+1) =(+1) + (+1) + (+ 1) = (+ 1)
入力単語 aは始点単語を持たな 、ので、どのような値の状態をかけても値の状態が 確定し、 nuUから (+1)へ変化する。すなわち、これは入力によって値が確定したことを 表わしている。その結果、 1巡処理中の単語 a行完了後の各単語の値の状態は、以 下の表 2のとおりである。  Since the input word a has no starting word, the value state is fixed regardless of the value state, and changes from nuU to (+1). In other words, this indicates that the value has been determined by the input. As a result, the state of the value of each word after completion of the word a line during one round is as shown in Table 2 below.
[表 2]
Figure imgf000026_0001
[Table 2]
Figure imgf000026_0001
(2) 1巡目処理中の終点単 febの計算 (2) Calculation of end point single feb during the first round processing
1巡目処理中の終点単語 bの計算は、表 2の単語の値の状態を用いるので次のよう になる。  The calculation of the end point word b during the first round process is as follows because it uses the state of the word value in Table 2.
b =0 -(+l)+0-null+0 -null + 0 - null + 0 - null + 0 · null + 0 · null + 0 · null b = 0-(+ l) + 0-null + 0 -null + 0-null + 0-null + 0 · null + 0 · null + 0 · null
=(+1) +(+1) +(+1) +(+1) +(+1)  = (+ 1) + (+ 1) + (+ 1) + (+ 1) + (+ 1)
+ (+1) +(+1) +(+1) · + (+1) + (+ 1) + (+ 1)
=(+1)  = (+ 1)
入力単語 bも始点単語を持たな 、ので、どのような値の状態をかけても値の状態が 確定し、 nullから (+1)へ変化する。その結果、 1巡処理中の単語 b行完了後の各単語 の値の状態は、以下の表 3のとおりである。  Since the input word b also has no starting word, the value state is fixed regardless of the value state, and changes from null to (+1). As a result, the state of the value of each word after completion of the word b line during one round is as shown in Table 3 below.
[表 3]
Figure imgf000026_0002
[Table 3]
Figure imgf000026_0002
例 1のシステムでは、単語 aと単語 bは画面上の 2者択一の指示ボタンであるので、 どちらか一方が選択されることによって、双方の値の状態が確定することになる。 (3) 1巡目処理中の終点単語 cの計算  In the system of Example 1, word a and word b are alternative buttons on the screen, so when one of them is selected, the state of both values is confirmed. (3) Calculation of end word c during the first round
1巡目処理中の終点単語 cの計算は、表 3の単語の値の状態を用いるので次のよう になる。  The calculation of the end point word c during the first round process is as follows because it uses the state of the word value in Table 3.
c =0-(+l)+0-(+l)+0-null + 0 - null + 0 - null + 0 - null + 0 - null + 0 - null c = 0-(+ l) +0-(+ l) + 0-null + 0-null + 0-null + 0-null + 0-null + 0-null
=(+1) +(+1) +(+1) +(+1) +(+1)  = (+ 1) + (+ 1) + (+ 1) + (+ 1) + (+ 1)
+ (+1) +(+1) +(+1) + (+1) + (+ 1) + (+ 1)
差替え用紙(規則 26) =(+1) Replacement paper (Rule 26) = (+ 1)
入力単語 cも始点単語を持たなレ、ので、どのような値の状態をかけても値の状態が 確定し、 null力 (+1)へ変化する。その結果、 1巡処理中の単語 c行完了後の各単語 の値の状態は、以下の表 4のとおりである。  Since the input word c does not have a starting word, the value state is fixed regardless of the value state and changes to null force (+1). As a result, the state of the value of each word after completion of the word c line in one round is as shown in Table 4 below.
[表 4]
Figure imgf000027_0002
[Table 4]
Figure imgf000027_0002
(4) 1巡目処理中の終点単語 dの計算  (4) Calculation of end point word d during the first round processing
1巡目処理中の終点単語 dの計算は、表 4の単語の値の状態を用いるので次のよう になる。  The calculation of the end point word d during the first round process is as follows because the state of the word value in Table 4 is used.
d =0 ·(+1)+0· (+1)+0 ·(+1) + 0 - null + 0 - null + 0 - null + 0 - null + 0 - null d = 0 (+1) + 0 (+1) + 0 (+1) + 0-null + 0-null + 0-null + 0-null + 0-null
=(+1) +(+1) +(+1) +(+1) +(+1)  = (+ 1) + (+ 1) + (+ 1) + (+ 1) + (+ 1)
+ (+1) +(+1) +(+1) + (+1) + (+ 1) + (+ 1)
=(+1)  = (+ 1)
入力単語 dも始点単語を持たないので、どのような値の状態をかけても値の状態が 確定し、 nuUから (+1)へ変化する。その結果、 1巡処理中の単語 d行完了後の各単語 の値の状態は、以下の表 5のとおりである。  Since the input word d also has no starting word, the value state is fixed regardless of the value state, and changes from nuU to (+1). As a result, the state of the value of each word after completion of the word d line during one round is as shown in Table 5 below.
[表 5]
Figure imgf000027_0001
Figure imgf000027_0003
[Table 5]
Figure imgf000027_0001
Figure imgf000027_0003
(5) 1巡目処理中の終点単語 の計算 (5) Calculation of end point word during the first round
1巡目処理中の終点単語 ^の計算は、表 5の単語の値の状態を用いるので次のよう になる。  The calculation of the end-point word ^ during the first round process is as follows, using the word value states in Table 5.
= 1 · (+1)+ 1 ·(+1) + 1 · (+1) + 1 · (+ 1) + 0 · null+ 0 · null + 0 · null + 0 - null  = 1 · (+1) + 1 · (+1) + 1 · (+1) + 1 · (+1) + 0 · null + 0 · null + 0 · null + 0-null
= (+1) +(+1) +(+1) +(+1) +(+1)  = (+1) + (+ 1) + (+ 1) + (+ 1) + (+ 1)
+ (+1) +(+1) +(+1) + (+1) + (+ 1) + (+ 1)
= (+1)  = (+1)
単語 ^の始点単語となる単語 a b c dの値の状態がすでに確定した、すなわち、 表 1に示した経路作用要素である単語 Xの定義式実行条件(1)および (2)が満たさ  The state of the value of the word a b c d that is the starting word of the word ^ has already been determined, that is, the definition formula execution conditions (1) and (2) for the word X that is the path action element shown in Table 1 are satisfied.
差替え用紙(細 IJ26) れたので、単語 ^の値の状態も nullから確定済みの (+1) 変化する。その結果、 1巡 処理中の単語 x行完了後の各単語の値の状態は、以下の表 6のとおりである。 Replacement paper (thin IJ26) As a result, the value state of the word ^ also changes from null to the confirmed (+1). As a result, the state of the value of each word after completion of the word x line during one round processing is as shown in Table 6 below.
[表 6]
Figure imgf000028_0001
[Table 6]
Figure imgf000028_0001
(6) 1巡目処理中の終点単語 eの計算 (6) Calculation of end word e during the first round
1巡目処理中の終点単語 eの計算は、表 6の単語の値の状態を用レ、るので次のよう になる。  The calculation of the end point word e during the first round process is as follows because it uses the state of the word values in Table 6.
e =0'(+1)+0·(+1)+1·(+1)' -t-l-(+l) + l-(+l)+0'null+0-null+0-null e = 0 '(+ 1) + 0 · (+1) + 1 · (+1)' -t-l-(+ l) + l-(+ l) + 0'null + 0-null + 0-null
= (+1) +(+1) +(+1) +(+1) +(+1)  = (+1) + (+ 1) + (+ 1) + (+ 1) + (+ 1)
+ (+1) +(+1) +(+1) + (+1) + (+ 1) + (+ 1)
=(+1)  = (+ 1)
単語 eの始点単語となる単語 c dおよび Xの値の状態がすでに確定済みであるの で、すなわち、定義式 c + dの始点単語の値が決定済み、かつ経路作用要素 Xが次 に実行する基本構造を指定したわで、単語 eの値の状態も nullから確定済み (+1) 変 化する。その結果、 1巡処理中の単語 e行完了後の各単語の俥の状態 、以下の表 7のとおりである。  Since the state of the values of the words cd and X that are the starting words of the word e have already been determined, that is, the values of the starting words of the definition expression c + d have been determined, and the path action element X executes next. Since the basic structure is specified, the value of the word e changes from null to confirmed (+1). As a result, the state of the habit of each word after completion of the word e line during one round is shown in Table 7 below.
[ ]
Figure imgf000028_0002
[]
Figure imgf000028_0002
(7) 1巡目処理中の終点単語 fの計算  (7) Calculation of end word f during the first round
1巡目処理中の終点単語 fの計算は、表 7の単語の値の状態を用いるので次のよう になる。  The calculation of the end-point word f during the first round process is as follows because it uses the word value states in Table 7.
f =0·(+1)+0·(+1)+1·(+1) +l'(+l) + l'(+l)+0'(+l)+0'mill+0'null f = 0 · (+1) + 0 · (+1) + 1 · (+1) + l '(+ l) + l' (+ l) +0 '(+ l) + 0'mill + 0' null
=(+1) +(+1) +(+1) +(+1) +(+1)  = (+ 1) + (+ 1) + (+ 1) + (+ 1) + (+ 1)
+ (+1) +(+1) +(+1) + (+1) + (+ 1) + (+ 1)
=(+1)  = (+ 1)
単語 fの始点単語となる単語 c dおよび Xの値の状態がすでに確定済みであるの で、単語 fの値の状態も nullから (+1) 変化する。その結果、 1巡処理中の単語 f行完  Since the values of the words c d and X that are the starting words of the word f have already been determined, the value of the word f also changes from null to (+1). As a result, the word f line being processed in one round is completed.
差眷ぇ用紙 (mm 了後の各単語の値の状態は、以下の表 8のとおりである。 Difference paper (mm The status of each word after completion is shown in Table 8 below.
[0091] [表 8]
Figure imgf000029_0001
[0091] [Table 8]
Figure imgf000029_0001
例 1のシステムでは、単語 eと単語 fはそれぞれの実行条件が 2者択一の条件である ので、どちらか一方の条件が真と確定すれば、他方の条件は偽と確定し、双方の値 の状態が確定することになる。たとえば、 BS2が指定されれば、単語 eの定義式実行 条件 =真が確定して単語 eに値が与えられることによって値の状態が確定する。一方In the system of Example 1, the execution conditions of word e and word f are alternative conditions, so if one of the conditions is determined to be true, the other condition is determined to be false. The state of the value will be confirmed. For example, if BS2 is specified, the definition expression execution condition of word e = true is confirmed and the value state is determined by giving a value to word e . on the other hand
、単語 fは、定義式実行条件 =偽が確定して単語 fに値が与えられないことによって 値の状態が確定する。従って、経路作用要素がどちらか一方の基本構造を指定した とき、単語 eも単語 fも値の状態が確定済みとなるのである。 The condition of the value of the word f is determined when the definition formula execution condition = false is confirmed and no value is given to the word f. Therefore, when the path action element specifies one of the basic structures, the values of both word e and word f are already determined.
(8) 1巡目処理中の終点単語 gの計算  (8) Calculation of end point word g during the first round processing
1巡目処理中の終点単語 gの計算は、表 8の単語の値の状態を用いるので次のよう にな 。  The calculation of the end point word g during the first round process uses the word value states in Table 8 and is as follows.
g =0·(+1)+0·(+1)+0·(+1) +0-(+l)+0-(+l)+ l -(+l)+ l -(+l)+0-null  g = 0 · (+1) + 0 · (+1) + 0 · (+1) +0-(+ l) +0-(+ l) + l-(+ l) + l-(+ l) + 0-null
=(+1) +(+1) +(+1) +(+1) +(+1)  = (+ 1) + (+ 1) + (+ 1) + (+ 1) + (+ 1)
+ (+1) +(+1) +(+1)  + (+1) + (+ 1) + (+ 1)
=(+1)  = (+ 1)
単語 gの始点単語となる単語 eおよび fの値の状態がすでに確定済みであるので、 単語 gの値の状態も null力 (+1)へ変化する。その結果、 1巡処理中の単語 g行完了 後の各単語の値の状態は、以下の表 9のとおりである。  Since the state of the values of words e and f, which are the starting words of word g, have already been determined, the state of the value of word g also changes to null force (+1). As a result, the state of the value of each word after completion of the word g line during one round is as shown in Table 9 below.
[表 9]
Figure imgf000029_0002
[Table 9]
Figure imgf000029_0002
以上で隣接行歹 (JFの総ての単語行の計算処理が 1巡したことになる。従って、表 9 が FXの結果となる。下記の数 11の状態ベクトル Xが FXの結果である。  This completes the calculation of all the word lines of JF (one word in JF. Therefore, Table 9 is the result of FX. The state vector X in Equation 11 below is the result of FX.
[0093] [数 11] [0093] [Equation 11]
差替え用弒(規則 2
Figure imgf000030_0001
Replacement bowl (Rule 2
Figure imgf000030_0001
以上のように、隣接行列 Fは、トポロジカルソートによって単語単位プログラムが最 適順序で実行されるように並んでいるので、 1巡の計算処理の実行で総ての単語の 値の状態が確定し、出力単語 gの値を成立することができた。  As described above, since the adjacency matrix F is arranged so that the word unit programs are executed in the optimal order by topological sorting, the state of the value of all words is determined by executing one round of calculation processing. The value of the output word g could be established.
4.経路作用要素の排除  4. Elimination of pathway action elements
経路作用要素の実行条件は、経路作用要素によって指定される基本構造に属す る全単語の集合(1つ以上力 なる)の定義式を実行するための条件と等しい。なぜ なら、その基本構造の単語の総ては、その経路作用要素の条件が満されたときに実 行されるからである。従って、 路作用要素の実行条件は、経路作用要素によって 指定される基本構造に属す単語の条件に移すことができる。  The execution condition of the path action element is equal to the condition for executing the defining expression of the set of all words (one or more powers) belonging to the basic structure specified by the path action element. This is because all the words of the basic structure are executed when the condition of the path action element is satisfied. Therefore, the execution condition of the path action element can be shifted to the condition of the word belonging to the basic structure specified by the path action element.
[0094] 例 1のシステムの場合で具体的に述べると次のようになる。まず、経路作用要素で ある単語 Xと、単語 eおよび単語 fの定義式と定義式実行条件は下記の表 10の通りで あった。  [0094] The case of the system of Example 1 is specifically described as follows. First, Table 10 shows the definition formula and definition formula execution conditions for word X, word e, and word f, which are path action elements.
[0095] [表 10]
Figure imgf000030_0002
Figure imgf000030_0003
[0095] [Table 10]
Figure imgf000030_0002
Figure imgf000030_0003
従って、 Xの条件(1)「a=真かつ、 c=真および d=真」を、この条件が成立すると き指定する基本構造 BS2に属する単語 eの実行条件「Xrが BS2を指定」と置き換え、 条件 (2)「b=真かつ、 c=真および d==真」をこの条件が成立するとき指定する基本 構造 BS3に属する単語 fの実行条件「Xr力 ¾S3を指定」と置き換える、ということにな る。この結果、単語 eおよび単語 fの定義式、定義式実行条件は下記の表 11のように  Therefore, the condition of X (1) “a = true and c = true and d = true” is specified when this condition is satisfied. The execution condition “Xr specifies BS2” for the word e belonging to the basic structure BS2. Replace condition (2) Replace “b = true, c = true and d == true” with the execution condition “Xr force ¾S3 specified” for the word f belonging to the basic structure BS3 specified when this condition is satisfied. It turns out that. As a result, the definition formula and definition formula execution conditions for word e and word f are as shown in Table 11 below.
差眷ぇ用弒 (規則 26) なる。 Differences (Rule 26) Become.
[0096] [表 11]
Figure imgf000031_0001
表 11のように、経路作用要素の実行条件を、指定先の基本構造の単語の実行条 件に置き換えると、 BS1と BS2および BS3のリンクは、 BS2および BS3の単語の実行 条件によって成立するので、経路作用要素は単に、次の基本構造の実行に移る条 件が整ったこと (入力率語 c:^よび dに値があり、かつボタン aまたは bが押された)を示 すだけの意味しか持^なくなる。これは、経路作用要素を取り除いてもシステムの意 味に変化が生じないことを意味する。従って、経路作用要素の実行条件を、その条 件の成立によって指定される基本構造の単語の実行条件に置き換える操作を行った 後、システム全体の隣接行列から、経路作用要素を除くことができる。
[0096] [Table 11]
Figure imgf000031_0001
As shown in Table 11, if the execution condition of the path action element is replaced with the execution condition of the word of the designated basic structure, the link between BS1, BS2, and BS3 is established by the execution condition of the word of BS2 and BS3. The path action element simply indicates that the condition to move to the next basic structure is ready (the input rate word c: ^ and d have a value and the button a or b has been pressed). It only has meaning. This means that the meaning of the system does not change even if the path action element is removed. Therefore, after performing the operation to replace the execution condition of the path action element with the execution condition of the basic structure word specified by the establishment of the condition, the path action element can be removed from the adjacency matrix of the entire system.
[0097] 図 7は、経路作用要素を取り除いて、例 1のシステムの単語の関係を有向グラフで 表したものである。図 7では、経路作用要素である単語 Xがなくなり、単語 eおよぴ単 語 fと始点単語との関係は、上記の表 11で定義された定義式と定義式実行条件に従 つて示されている。すなわち、単語 eは、始点単語として単靜 a (定義式実行条件「実 行ボタン aが押された」)、単語 cおよび単語 d (定義式「c + d」および、定義式実行条 件「c =真および d=真」)を持つ。単語 fは、始点単語として単語 b (定義式実行条件「 実行ポタン bが押された」)、単語 cおよび単語 d (定義式「c + d」および、定義式実行 条件「c=真および d=真」)を持つ。単語 eおよび単語 f力 単語 gへの関係は図 4と 変らない。 [0097] FIG. 7 is a directed graph showing the relationship of words in the system of Example 1 with the path action element removed. In FIG. 7, the word X, which is a path action element, disappears, and the relationship between the word e and the word f and the starting word is shown according to the definition formula and the definition formula execution condition defined in Table 11 above. ing. That is, the word e is a simple word “a” (definition formula execution condition “execution button a is pressed”), word c and word d (definition formula “c + d” and definition formula execution condition “ c = true and d = true "). The word f is the starting point word b (definition formula execution condition “execution button b was pressed”), word c and word d (definition expression “c + d” and definition expression execution condition “ c = true and d” = True "). Word e and word f force The relationship to word g is the same as in Figure 4.
[0098] 経路作用要素を取り除いた例 1のシステムを、図 7の有向グラフに従って隣接行列 に表わせば、以下のようになる。数 12の F1 'は、基本構造 BS1 (入力)の隣接行列で ある。経路作用要素である単語 Xが要素力 削除されている。  [0098] When the system of Example 1 with the path action element removed is represented in the adjacency matrix according to the directed graph of Fig. 7, the following is obtained. F1 'in Equation 12 is the adjacency matrix of the basic structure BS1 (input). The word action element X has been deleted.
[0099] [数 12]  [0099] [Equation 12]
差替え用紙 it & c a Replacement paper it & ca
Figure imgf000032_0001
Figure imgf000032_0001
数 13の F2,は、基本構造 BS2&BS3の隣接行列である c F2 in Equation 13 is the adjacency matrix of basic structure BS2 & BS3 c
[0100] [数 13] [0100] [Equation 13]
^ /
Figure imgf000032_0002
数 14の F3'は、基本構造 BS1 (出力)の隣接行列である。
^ /
Figure imgf000032_0002
F3 'in Equation 14 is the adjacency matrix of basic structure BS1 (output).
[0101] [数 14] [0101] [Equation 14]
S  S
数 15の FC1 'は、基本構造 BS1 (入力)から基本構造 BS2&BS3への関係を示す 結合隣接行列である。経路作用要素が削除されたので、始点単語の要素として単語 Xが削除されている。単語 eおよび単語 fは、表 11に示したように経路作用要素の実 行条件を移したことで、それぞれ新たに単語 a、単語 bを始点単語として持つことにな つた。従って、終点単語 eは、始点単語 cおよび dの他に単語 aとの交点が 1となってい る。終点単語 fは、始点単語 cおよび dの他に単語 bとの交点が 1となっている。 FC1 'in Equation 15 is a combined adjacency matrix indicating the relationship from basic structure BS1 (input) to basic structure BS2 & BS3. Since the path action element has been deleted, the word X is deleted as the element of the starting word. As shown in Table 11, word e and word f have new word a and word b as starting words, respectively, by changing the execution conditions of the path action element. Therefore, the end point word e has an intersection point with the word a in addition to the start point words c and d. The end word f has an intersection point with the word b in addition to the start words c and d.
[0102] [数 15] [0102] [Equation 15]
a b c d  a b c d
e f l 0 1 f  e f l 0 1 f
FCl ' =  FCl '=
f [0 1 1 1 数 16の FC2,は、基本構造 BS2&BS3から基本構造 BS1 (出力)への関係を示す 結合隣接行列である。経路作用要素が削除されたので、始点単語の要素として単語 削除されている。 f [0 1 1 1 FC2 of number 16 is a connected adjacency matrix that shows the relationship from basic structure BS2 & BS3 to basic structure BS1 (output). Since the path action element has been deleted, the word as the element of the starting word It has been deleted.
[0103] [数 16] a h € ά e f [0103] [Equation 16] a h € ά e f
F€2f =^> Q 0 1 l] 数 17の FC3,は、基本構造 BS2&BS3から基本構造 BS1 (入力)への関係がない ことを示す結合隣接行列である。経路作用要素が削除されたので、始点単語の要素 として単語 Xが削除されている。 F € 2 f = ^> Q 0 1 l] FC3 in Equation 17 is a combined adjacency matrix indicating that there is no relationship from basic structure BS2 & BS3 to basic structure BS1 (input). Since the path action element has been deleted, the word X is deleted as the element of the starting word.
[0104] [数 17] e / [0104] [Equation 17] e /
0 0  0 0
b 0 0  b 0 0
war c u  war c u
d 0 0 数 18の FC4'は、基本構造 BS1 (出力)から基本構造 BS1 (入力)への関係がない ことを示す結合隣接行列である。経路作用要素が削除されたので、始点単語の要素 として単語 Xが削除されている。  d 4 0 FC4 'of number 18 is a joint adjacency matrix indicating that there is no relationship from basic structure BS1 (output) to basic structure BS1 (input). Since the path action element has been deleted, the word X is deleted as the element of the starting word.
[0105] [数 18] g [0105] [Equation 18] g
a 0  a 0
b 0  b 0
0  0
d 0 数 19の FC5'は、基本構造 BS1 (出力)から基本構造 BS2&BS3への関係がない ことを示す結合隣接行列である。  d 0 FC5 'of number 19 is a joint adjacency matrix indicating that there is no relationship from basic structure BS1 (output) to basic structure BS2 & BS3.
[0106] [数 19] S
Figure imgf000034_0001
システムの隣接行列 Fは、経路作用要素の条件の置き換えと経路作用要素の削除 を行うと、下記の数 20に示す隣接行列 F'で表わすことができる。
[0106] [Equation 19] S
Figure imgf000034_0001
The adjacency matrix F of the system can be expressed by the adjacency matrix F ′ shown in the following equation 20 when the condition of the path action element is replaced and the path action element is deleted.
[数 20]  [Equation 20]
a b c d e f g  a b c d e f g
Figure imgf000034_0002
Figure imgf000034_0002
上記数式で、「F' =」の右辺に示された、 Fl '、 F2'、 F3'、 FC1 '、 FC2'と 0 (行列 の交点が総て 0である隣接行列で、 FC3'、 FC4'、 FC5'に相当する)で構成された 行列は、基本構造単位の隣接行列と結合隣接行列がどのように統合されてシステム 全体を表わすかを示している。次に、それらの要素を単語に変えたもの力 その右辺 にある a、 b、 c、 d、 e、 f、 gを行列の要素とする隣接行列である。 Fl '、 F2'、 F3'、 FC 1 '、 FC2'、 FC3'、 FC4'、 FC5'がどのように統合されて F'を構成するのか、さらに わ力^)やすく示したの力 S図 8である。図 8の 1201の咅分力F1 '、 1202力 SF2'、 1203 が F3'、 1204が FC1 '、 1205が FC2'である。行列の交点が総て 0である結合隣接 行列は、 FC3,力 206、 FC4'力 207、 じ5,カ^208を構成する。  In the above formula, Fl ', F2', F3 ', FC1', FC2 'and 0 (the adjacency matrix where all matrix intersections are 0, FC3', FC4 (Corresponding to ', FC5') shows how the basic structural unit adjacency matrix and combined adjacency matrix are integrated to represent the entire system. Next, it is an adjacency matrix whose elements are a, b, c, d, e, f, and g on the right side. Fl ', F2', F3 ', FC 1', FC2 ', FC3', FC4 ', FC5' are integrated to form F ', and even more power ^) 8. In FIG. 8, 1201 has a proportional force F1 ', 1202 force SF2', 1203 is F3 ', 1204 is FC1', and 1205 is FC2 '. A joint adjacency matrix with all matrix intersections of 0 constitutes FC3, force 206, FC4 'force 207, same 5, and ^ 208.
[0108] 以上のようにして、 2つ以上の基本構造力も成る 1つのシステムを、経路作用要素を 排除して、 1つの隣接行列で表わすことができる。  [0108] As described above, one system having two or more basic structural forces can be represented by one adjacency matrix by removing the path action element.
[0109] 次に、このシステムの隣接行列に対して、トポロジカルソートを行って、総ての単語 の値の状態が最少実行回数で確定 (すなわち総ての出力単語の生成が完了)するよ うな最適順序に単語単位のプログラムの並び替えを行う。隣接行列 F'をみると、図 9 に示すように、値が 1である始点単語との交点は総て左下三角形(1601)内にある。 同一出願人による特許文献 5で示されるように、これは単語が最適順序に並んでいる ことを意味する。従って、数 20の隣接行列 F'は、すでにトポロジカルソート済みであ つて、初期値の単語の状態ベクトルを与えれば、最少実行回数で出力単語の生成を 完了することができる単語の順序になっているといえる。 [0109] Next, topological sorting is performed on the adjacency matrix of this system so that the state of all word values is determined with the minimum number of executions (that is, generation of all output words is completed). Sort programs by word in the optimal order. Looking at the adjacency matrix F ', as shown in Fig. 9, all the intersections with the starting word whose value is 1 are in the lower left triangle (1601). As shown in the same applicant's patent document 5, this is the word in the optimal order Means that. Therefore, the adjacency matrix F ′ of the number 20 has already been topologically sorted, and if an initial value word state vector is given, the order of the words that can complete the generation of the output word with the minimum number of executions becomes. It can be said that.
5.経路作用要素を排除した構造の検証  5.Verification of the structure excluding the path action element
このセクションでは、前セクションで示した、経路作用要素を排除したシステムの構 造を示す隣接行列 F'が、経路作用要素を排除する前の構造である隣接行列 Fと同 じ関数機能を持つことを検証する。以下に、隣接行列 F'に単語の状態ベクトルを与 えて出力単語 gの値を求める過程を示す。 m回目の計算処理の結果、単語の状態べ タトル Xの値が総て確定済みとなれば、 F'も Fと同等に機能する関数だと言える。ま た、トポロジカルソートを施したことによって、最少実行回数で出力単語の生成を完了 できることも検証する。例 1のシステムである F'も、 1巡処理で単語 gの値の状態が確 定すれば、最少実行回数で実行できたと言える。  In this section, the adjacency matrix F ′, which shows the structure of the system excluding the path action element, shown in the previous section, has the same function function as the adjacency matrix F, which is the structure before eliminating the path action element. To verify. The process for obtaining the value of the output word g by giving the word state vector to the adjacency matrix F 'is shown below. As a result of the m-th calculation, if all the values of the state state vector X of the word are confirmed, F ′ can be said to be a function that functions in the same way as F. It is also verified that the generation of output words can be completed with the minimum number of executions by performing topological sorting. It can be said that F 'which is the system of Example 1 could be executed with the minimum number of executions if the state of the value of the word g is determined in one round.
[0110] 前述したように、単語の状態ベクトルの初期値は総ての要素が「null (未決定)」であ るので、 F'に最初に与えるべき単語の状態ベクトル X,は下記の数 21のようになる。 [0110] As described above, since all elements of the initial value of the word state vector are “null (undecided)”, the state vector X of the word to be given to F ′ first is Like 21.
[0111] [数 21] [0111] [Equation 21]
Figure imgf000035_0001
Figure imgf000035_0001
数 20の隣接行列 F,(すなわち例 1のシステム)に、数 20の状態ベクトル X,をかける 計算処理を施す (すなわち、例 1のシステムに入力を行う)。 F'X'の計算処理によつ て変化する単語の値の状態を 1つの終点単語ごとに追って説明する。  Apply the calculation processing to multiply the adjacency matrix F in Equation 20 (ie, the system in Example 1) by the state vector X in Equation 20 (ie, input to the system in Example 1). The state of the value of the word that is changed by the calculation process of F'X 'will be explained for each terminal word.
F' 1巡目処理中の終点単語 aの計算  F 'Calculation of end word a during the first round
終点単語 aは、計算処理に X,の単語の値の状態を用いるので、 1巡目処理中の終 点単語 aの計算は、次のようになる。  Since the end word a uses the state of the value of the word X, in the calculation process, the calculation of the end word a during the first round process is as follows.
a =0-null+0-null+0-null + 0 - null + 0 - null + 0 · null + 0 · null =(+1) +(+1) +(+1) +(+1) +(+1) ' a = 0-null + 0-null + 0-null + 0-null + 0-null + 0 · null + 0 · null = (+ 1) + (+ 1) + (+ 1) + (+ 1) + (+ 1) '
+ (+1) +(+1) + (+1) + (+ 1)
=(+1)  = (+ 1)
入力単語 aは始点単語を持たないので、値の状態が確定し、 nullから (+1)へ変化す る。すなわち、これは入力によって値が確定したことを表わしている。その結果、 1巡 処理中の単語 a行完了後の各単語の値の状態は、以下の表 12のとおりである。  Since the input word a has no starting word, the state of the value is fixed and changes from null to (+1). That is, this indicates that the value has been determined by the input. As a result, the state of the value of each word after completion of the word a line during one round is as shown in Table 12 below.
[表 12]
Figure imgf000036_0001
[Table 12]
Figure imgf000036_0001
(2) F' 1巡目処理中の終点単語 bの計算 (2) F 'Calculation of end word b during the first round process
終点単語 bは、計算処理に表 12の単語の値の状態を用いるので、 1巡目処理中の 終点単語 bの計算は、次のようになる。  Since the end point word b uses the value state of the word in Table 12 for the calculation process, the end point word b during the first round process is calculated as follows.
b =0-(+l)+0-null+0-null + 0 - null + 0 - null -I- 0 - null + 0 - null b = 0-(+ l) + 0-null + 0-null + 0-null + 0-null -I- 0-null + 0-null
=(+1) +(+1) +(+1) +(+1)  = (+ 1) + (+ 1) + (+ 1) + (+ 1)
+ (+1) +(+1) +(+1) + (+1) + (+ 1) + (+ 1)
=(+1)  = (+ 1)
入力単語 bも始点単語を持たないので、値の状態が確定し、 nuU力も (+1)へ変化す る。その結果、 1巡処理中の単語 a行完了後の各単語の値の状態は、以下の表 13の とおりである。  Since the input word b does not have a starting word, the value state is fixed and the nuU force changes to (+1). As a result, the state of the value of each word after completion of the word a line during one cycle is as shown in Table 13 below.
[表 13]
Figure imgf000036_0002
[Table 13]
Figure imgf000036_0002
(3) F' 1巡目処理中の終点単語 cの計算 (3) F 'Calculation of end word c during the first round process
終点単語 cは、訐算処理に表 13の単語の値の状態を用いるので、 1巡目処理中の 終点単語 cの計算は、次のようになる。  Since the end point word c uses the state of the word value in Table 13 in the calculation process, the calculation of the end point word c during the first round process is as follows.
c =0-(+l) + 0-(+l)+0-null + 0 · null + 0 · null + 0 - null + 0 - null c = 0-(+ l) + 0-(+ l) + 0-null + 0 · null + 0 · null + 0-null + 0-null
=(+1) +(+1) +(+1) +(+1)  = (+ 1) + (+ 1) + (+ 1) + (+ 1)
+(+1) +(+1) +(+1)  + (+ 1) + (+ 1) + (+ 1)
=(+1)  = (+ 1)
差替え用紙 (規則 26) 入力単語 cも始点単語を持たないので、値の状態が確定し、 nullから (+1)へ変化す る。その結果、 1巡処理中の単語 c行完了後の各単語の値の状態は、以下の表 14の とおりである。 Replacement paper (Rule 26) Since the input word c also has no starting word, the state of the value is fixed and changes from null to (+1). As a result, the state of the value of each word after completion of the word c line during one round is as shown in Table 14 below.
[表 U]
Figure imgf000037_0001
[Table U]
Figure imgf000037_0001
(4) F' 1巡目処理中の終点単語 dの計算 (4) F 'Calculation of end word d during the first round process
終点単語 dは、計算処理 表 14の単語の値の状態を用いるので、 1巡目処理中の ' 終点単語 dの計算は、次のようになる。  Calculation processing of the end point word d uses the value state of the word in Table 14. The calculation of the end point word d during the first round processing is as follows.
d =0·(+1)+0·(+1)+0·(+1) Η-0-null+O-null+O-null+O-null  d = 0 · (+1) + 0 · (+1) + 0 · (+1) Η-0-null + O-null + O-null + O-null
=(+1) +(+1) +(+1) +(+1)  = (+ 1) + (+ 1) + (+ 1) + (+ 1)
+ (+1) +(+1) +(+1)  + (+1) + (+ 1) + (+ 1)
=(+1)  = (+ 1)
入力単語 dも始点単語を持たないので、値の状態が確定し、 null力 (+1)へ変化す る。その結果、 1巡処理中の単語 d行完了後の各単語の値の状態は、以下の表 15の とおりである。  Since the input word d also has no starting word, the state of the value is confirmed and changes to null force (+1). As a result, the state of the value of each word after completion of the word d line during one round is shown in Table 15 below.
[表 15]
Figure imgf000037_0002
[Table 15]
Figure imgf000037_0002
(5) F' 1巡目処理中の終点単語 eの計算 (5) F 'Calculation of end word e during the first round processing
終点単語 eは、計算処理に表 15の単語の値の状態を用いるので、 1巡目処理中の 終点単語 eの計算は、次のようになる。 Since the end point word e uses the value state of the word in Table 15 for the calculation process, the calculation of the end point word e during the first round process is as follows.
e = 1 ·(+1)+0·(+1)+ 1·(+1) -t- l -(+l)-t-0-nulH-0-null+0-null  e = 1 (+1) +0 (+1) +1 (+1) -t- l-(+ l) -t-0-nulH-0-null + 0-null
=(+1) +(+1) +(+1) +(+1)  = (+ 1) + (+ 1) + (+ 1) + (+ 1)
+ (+1) +(+1) +(+1)  + (+1) + (+ 1) + (+ 1)
=(+1)  = (+ 1)
単語 eの始点単語である単語 a、 c、 dの値の状態が確定しているので、単語 eの値 の状態も nuU力も (+1)へ変化して確定する。その結果、 1巡処理中の単語 e行完了後 の各単語の値の状態は、以下の表 16のとおりである。 差替え用紙(規則 26) [表 16]
Figure imgf000038_0001
Since the values of the words a, c, and d, which are the starting words of the word e, are fixed, both the value of the word e and the nuU force are changed to (+1) and fixed. As a result, the state of the value of each word after completion of the word e line during one round is as shown in Table 16 below. Replacement paper (Rule 26) [Table 16]
Figure imgf000038_0001
(6) F' 1巡目処理中の終点単語 fの計算  (6) F 'Calculation of end word f during the first round processing
終点単語 fは、計算処理に表 16の単語の値の状態を用いるので、 1巡目処理中の 終点単語 fの計算は、次のようになる。  Since the end point word f uses the state of the word value in Table 16 for the calculation process, the calculation of the end point word f during the first round process is as follows.
f =0·(+1)+ 1 ·(+1) + 1 ·(+1) + l -(+l)+0-(+l)+0-null+0-null f = 0 (+1) + 1 (+1) + 1 (+1) + l-(+ l) +0-(+ l) + 0-null + 0-null
=(+1) +(+1) +(+1) +(+1)  = (+ 1) + (+ 1) + (+ 1) + (+ 1)
+ (+1) +(+1) +(+1) + (+1) + (+ 1) + (+ 1)
=(+1)  = (+ 1)
単語 fの始点単語である単語 b、 c、 dの値の状態が確定しているので、単語 fの値の 状態も nullから (+1)へ変化して確定する。その結果、 1巡処理中の単語 f行完了後の 各単語の値の状態は、以下の表 17のとおりである。  Since the values of the words b, c, and d, which are the starting words of the word f, are fixed, the value of the word f is also changed from null to (+1) and fixed. As a result, the state of the value of each word after completion of the word f line during one round is as shown in Table 17 below.
[表 17]
Figure imgf000038_0002
[Table 17]
Figure imgf000038_0002
(7) F, 1巡目処理中の終点単語 gの計箄  (7) F, total of end word g during the first round processing
終点単語 gは、計算処理に表 17の単語の値の状態を用いるので、 1巡目処理中の 終点単語 gの計算は、次のようになる。  Since the end point word g uses the state of the word value in Table 17 in the calculation process, the end point word g during the first round process is calculated as follows.
g =0'(+l)+0'(+l)+0'(+l) +0'(+l)+ l '(+l)+ l '(+l)+0'null g = 0 '(+ l) +0' (+ l) +0 '(+ l) +0' (+ l) + l '(+ l) + l' (+ l) + 0'null
=(+1) +(+1) +(+1) +(+1)  = (+ 1) + (+ 1) + (+ 1) + (+ 1)
+ (+1) +(+1) +(+1)  + (+1) + (+ 1) + (+ 1)
=(+1)  = (+ 1)
単語 gの始点単語である単語 e、 fの値の状態が確定しているので、単語 gの値の状 態も null力 (+1)へ変化して確定する。その結果、 1巡処理中の単語 g行完了後の各 単語の値の状態は、以下の表 18のとおりである。  Since the values of the words e and f, which are the starting words of the word g, are fixed, the value of the word g is also changed to null force (+1) and fixed. As a result, the state of the value of each word after completion of the word g line during one round is as shown in Table 18 below.
[表 18]
Figure imgf000038_0003
[Table 18]
Figure imgf000038_0003
以上で隣接行列 F'の総ての単語行の計算処理が 1巡したことになる。従って、表 1 差替え用弒(規則 26) 8の単語の値の状態が F'X'の結果となる。 X
Figure imgf000039_0001
This completes one round of calculation processing for all word lines in the adjacency matrix F '. Therefore, Table 1 Replacement bowl (Rule 26) The state of the 8 word value results in F'X '. X
Figure imgf000039_0001
の結果である。  Is the result of
[0119] [数 22] [0119] [Equation 22]
Figure imgf000039_0002
以上のように、隣接行列 F'は、トポロジカルソートによって単語単位プログラムが最 適順序で実行されるように並んで!/、るので、 1巡の計算処理の実行で総ての単語値 が確定し、出力単語 gの値を成立することができた。
Figure imgf000039_0002
As described above, the adjacency matrix F ′ is arranged in such a way that the word unit programs are executed in the optimal order by topological sorting! /, So all word values are determined by executing one round of calculation processing. And the value of the output word g was established.
[0120] また、経路作用要素の単語を除いた隣接行列 F'も、状態べ外ルの初期値を与え る (入力を行う)ことで、隣接行列 Fと同様に総ての単語の値の状態が確定し、出力単 語 gの値が生成できたことがわかる。従って、経路作用要素のあるシステムである隣 接行列 Fと、経路作用要素のないシステムである隣接行列 F'は、システムとして同等 の処理機能を持つことが検証できた。  [0120] Also, the adjacency matrix F 'excluding the word of the path action element also gives the initial value of the state vector (input), so that the value of all the words is the same as the adjacency matrix F. It can be seen that the state is fixed and the value of the output word g can be generated. Therefore, it was verified that the adjacency matrix F, which is a system with a path action element, and the adjacency matrix F ', which is a system without a path action element, have equivalent processing functions as a system.
[0121] 上記で述べたように、全体システムが複数の基本構造を有する場合に、これを統合 し、さらに当該統合されたものに対して (例えばトポロジカルソートのような)探索を施 すことで、 Lyee (登録商標)等のソフトウェアの自律的開発技術の適用に際して各段 のパフォーマンスを提供する。これが例えば、統合されずに複数の基本構造をそのま ま有する場合には、本願に係る発明によるほどのパフォーマンスは得られず、また、ト ポロジカルソート等の探索技法によって整序しな力つた場合には本願に係る発明に よるほどのパフォーマンスは得られな!/、。  [0121] As described above, when the entire system has a plurality of basic structures, these are integrated, and a search (for example, topological sort) is performed on the integrated system. , Lyee (registered trademark), etc., provide performance at each stage when applying software autonomous development technology. For example, if there are a plurality of basic structures as they are without being integrated, performance as high as that of the invention of the present application cannot be obtained, and the search technique such as topological sort has been used in order. In that case, the performance of the invention according to the present application cannot be obtained! /.
6.プログラムの再利用  6. Reuse of programs
プログラムの再利用が必要な処理は、トポロジカルソートを行っても繰り返しが行わ れる。  Processing that requires program reuse is repeated even when topological sorting is performed.
どんなプログラム (アルゴリズム)でも再帰的な方法だけによつて記述することができる 。手続き型のプログラミング言語 (例えば、 C、 javaなど)によって書かれたどんなプロ グラムでも、再帰プログラムと同じ役割を果たす whileプログラムによって書くことができ る。このことは、 whileプログラムは理論的には、なんでもできることを示している。 しかしながら、 単語を基礎とするプログラム法では、自分自身を始点単語として使用 することができない。例えば、 a = a + bを Any program (algorithm) can be written only in a recursive way . Any program written in a procedural programming language (eg C, java, etc.) can be written in a while program that plays the same role as a recursive program. This shows that the while program can theoretically do anything. However, the word-based programming method cannot use itself as the starting word. For example, a = a + b
単語を基礎とするプログラムでは使うことはできない。なぜなら、 aは、一度決定 (decided)になると aの値は変化しないからである。したがって、再帰的使用のためには 、一時的に aの値を保持する領域とクリアする方法が必要となる。保持された値を始点 として使用する。この目的のために一時的に内容が保持される領域を持つことが必 要である。この領域を一時的な単語と呼ぶ。クリアするために構造作用要素 (Vector of Clear)が定義される。  It cannot be used in a word-based program. This is because the value of a does not change once it is decided. Therefore, for recursive use, an area that temporarily holds the value of a and a clearing method are required. Use the stored value as the starting point. For this purpose it is necessary to have an area where content is temporarily held. This area is called a temporary word. A structuring element (Vector of Clear) is defined to clear.
Lyeeでは一般に、作用要素は述語構造を持つ一種の単語である。プログラムコード の構造は単語と同じである。単語との主な相違は同時にふたつあるいはもっと多くの 単語を扱って 、ることである。その意味は外部とのインターフェースおよび制御構造 のための経路や領域のクリアである。  In Lyee, the action element is generally a kind of word with a predicate structure. The structure of the program code is the same as a word. The main difference from a word is that it handles two or more words at the same time. The meaning is to clear the path and area for the external interface and control structure.
[0122] プログラムの隣接行列 (プログラム全体の行列)は分割された隣接行列とただ状態 を移すだけの接続行列とを使って、 1つの行列に統合ィ匕される。接続行列は、他のグ ループ上の単語を始点単語として使うことを示している。したがって、単語を基礎とす るプログラムの数学的なモデルを使うことが可能である。 [0122] The program's adjacency matrix (the entire program's matrix) is merged into a single matrix, using a split adjacency matrix and a connection matrix that only moves state. The connection matrix indicates that words from other groups are used as the starting word. It is therefore possible to use a mathematical model of a word-based program.
それによつて、手続き型の言語で表現することができるすべての通常のアルゴリズム は、単語を基礎とするプログラムの構造で表現することができる。  As a result, all normal algorithms that can be expressed in procedural languages can be expressed in word-based program structures.
[0123] 次に、前述の a=a+bのような、一時的な単語を必要とする集計処理の例である (例 2) を用いて、接続行列による隣接行列の統合を説明する。 [0123] Next, the integration of adjacency matrices by connection matrices will be described using (Example 2) which is an example of aggregation processing that requires temporary words such as a = a + b described above.
(例 2)ファイルのある単語のそれぞれのレコード X、 Xの値は先頭力も順番に合計し  (Example 2) The record X and X values of each word in the file are summed in order of the leading force.
2 6  2 6
、集計結果を単語 X、 Xに集計する。  , Total the results into words X and X.
3 7  3 7
[0124] Lyeeでは、一度決定した値は上書きできないので、 x =x +xのように記述しこれ  [0124] In Lyee, the value once decided cannot be overwritten, so write x = x + x
3 1 2  3 1 2
を再利用する。 X X  Will be reused. X X
1は前回の 3の値を代入するための単語である。 X  1 is a word for substituting the previous value of 3. X
3の値は、次の再利 用時に Xに代入するために、一時的な領域 Xに転送される。「一時的な単語」と呼ぶ 。この例 2を有向グラフに表すと図 10に示すようになる。単語 X、 X、 The value of 3 is transferred to the temporary area X for assignment to X at the next reuse. Call it a “temporary word” . Figure 2 shows Example 2 in a directed graph. Words X, X,
1 2  1 2
Xは、 Xが Xに転送されたときにクリアされる。単語 X、単語 X、単語 Xは、それぞれ単 X is cleared when X is transferred to X. Word X, Word X, and Word X are simply
3 3 4 5 6 7 3 3 4 5 6 7
語 X、単語 X、単語 Xの再使用である。  Reuse of word X, word X, and word X.
1 2 7  1 2 7
[0125] 図 10の再使用されるプログラムの部分の隣接行列 (one path matrix)は以下に示す [0125] The adjacency matrix (one path matrix) of the portion of the reused program in Figure 10 is
F1である。 F1.
[0126] [数 23] 1,5 x2fi x3,l [0126] [Equation 23] 1,5 x 2fi x 3, l
^1,5 0 0 0  ^ 1,5 0 0 0
Fl = Χ2,β 0 0 0 one path matrix  Fl = Χ2, β 0 0 0 one path matrix
X3 1 1 0  X3 1 1 0
Flを再利用するため、 F1と再利用された F1とを統合する接続行列 (connection matrix)が F2と F3である。これらは状態を伝達するだけの機能を有するものである。 それぞれの終点単語が、始点単語としてどの単語を使用するかを示す。 In order to reuse Fl, the connection matrices that integrate F1 and reused F1 are F2 and F3. These have the function of only transmitting the state. Each end point word indicates which word is used as the start point word.
[数 24]  [Number 24]
F2 4 [θ 0 1 ]: connection matnx irom F2 4 [θ 0 1]: connection matnx irom
「'― i「'― I
5 & I 0 I : connection matrix from x4 to xs > x6, 5 & I 0 I: connection matrix from x 4 to x s> x 6 ,
4。」  Four. "
F2は x , x , x 力ら x 、の接続行列である。 F3は X から X , X , X 、の  F2 is a connection matrix of x 1, x 2, x force x. F3 is from X to X, X, X,
2 3 接続行列 である。 F2は x 力 、の出力、 F3は X力も X .への入力、のための作用要素として  2 3 Connection matrix. F2 is the output of x force, F3 is the action element for X force and input to X.
4 5  4 5
理解される。 F1を再利用する全体プログラムの隣接行列が Fである。  Understood. The adjacency matrix of the entire program that reuses F1 is F.
[数 25]  [Equation 25]
χ\ χ2 χ3 χ4 Χ5 χβ χ \ χ 2 χ 3 χ 4 Χ5 χ β
entire system matrix
Figure imgf000041_0001
全体プログラムの隣接行列は一巡行列と接続行列とを使って表現される。したがつ て、単語を基礎とするプログラムの数学的なモデルを使うことが可能である。それによ つて、手続き型の言語で表現されることができるすべての通常のアルゴリズムは、単 語に基礎とするプログラミングによって、その構造で実現することができる。
entire system matrix
Figure imgf000041_0001
The adjacency matrix of the entire program is expressed using a circular matrix and a connection matrix. Gatsutsu It is possible to use a mathematical model of a word-based program. As a result, all the usual algorithms that can be expressed in a procedural language can be realized in that structure by word-based programming.
3章 本発明を用いた具体例 Chapter 3 Specific examples using the present invention
<トポロジカルソートの数学的アルゴリズム >  <Mathematical algorithm for topological sort>
具体的方法を示す前に、半順序集合の元を要素とする配列が与えられたとき、それ をトポロジカルソートするひとつのアルゴリズムを示す。 Before showing the concrete method, we will show an algorithm that topologically sorts an array with elements of partial ordered sets as elements.
Lyeeの仕様を単語の系で表現すると、 Lyeeにおける仕様は以下のように表現される X = F ( x) (式 2- 1-3)  When Lyee's specification is expressed in terms of words, the specification in Lyee is expressed as follows: X = F (x) (Equation 2- 1-3)
ここで、汎関数 Fは以下で定義されたものである。 Here, the functional F is defined as follows.
F(x)(i) = f ( x(l),x(2),&fracl4;,x(n)), i = l,2,&fracl4;,n F (x) (i) = f (x (l), x (2), &fracl4;, x (n)), i = l, 2, &fracl4;, n
(式 2- 1-2) (Formula 2-1-2)
順序集合 (A, Ordered set (A,
)の空でない部分集合 Bが の下で全順序集合であるとき Bを鎖といい、 Bのどの 2元も比較不能であるとき Bを反 鎖という。 1回の反復処理で、右辺の始点が定義されている数以上の端点が定義され るため、 Fは単調である。したがって Fを繰り返すことによって、次々に生成される反復 列 A non-empty subset of B) is a fully ordered set under, B is called a chain, and B is called an anti-chain when any binary of B is incomparable. F is monotonous because one iteration will define more endpoints than the number of defined start points on the right side. Therefore, iterative sequences generated one after another by repeating F
[数 26] [Equation 26]
( F k ) k N は鎖である。ここで、 kは反復の回数である。最小の反復の回数は最大の鎖のサイズ である。一般に、以下の定理によって、半順序集合は、反鎖に分割できる。 [定理] (F k ) k N is a chain. Where k is the number of iterations. The minimum number of iterations is the maximum chain size. In general, a partially ordered set can be divided into antichains by the following theorem. [theorem]
半順序集合 (A, Partially ordered set (A,
)の最大の鎖のサイズを nとすると、 Aは n個の互いに素な反鎖に分割される。 ) Where n is the largest chain size, A is divided into n disjoint antichains.
この定理は、数学的帰納法によって証明される。この定理を半順序集合である全単 語に適用すると、以下のことが言える。すなわち、全単語は、その中では順序がない n個の単語の集合に分割される。反復列 (数 26)の長さ(サイズ) nは単語の始点と端 点の関係力 求まる鎖のうち最大のもの、すなわち、同期するまでに必要な最小の反 復回数を示す。 This theorem is proved by mathematical induction. Applying this theorem to all words that are partially ordered sets, we can say the following. That is, all words are divided into a set of n words that are not in any order. The length (size) n of the repetitive sequence (Equation 26) indicates the maximum number of chains that can be obtained, ie, the minimum number of iterations required before synchronization.
この定理の証明は、半順序集合の元を要素とする配列が与えられたとき、それをトポ ロジカルソートするひとつのアルゴリズムを与えている。すなわち、 Anを反鎖とすると、 入力側から、 A1,A2,を A =0となるまで次々と求め、 Aの元を適当な順序で並べ、そ n+1 n The proof of this theorem gives an algorithm that topologically sorts an array whose elements are partial order sets. That is, if An is the opposite chain, A1, A2, and A2 are obtained one after another until A = 0 from the input side, the elements of A are arranged in an appropriate order, and n + 1 n
の後に A の元を適当な順序で並べ、最後に Aの元を適当な順序で並べれば、昇 n-1 1 After the elements of A in the proper order and finally the elements of A in the appropriate order, the ascending n-1 1
順にトポロジカルソートできる。ここで Aは極大元の集合である。ここでは、すなわち、 出力側に一番近い単語の集合である。このように並べた単語は A Topological sort can be done in order. Where A is the set of local maxima. Here, it is the set of words closest to the output side. The word arranged in this way is A
1 (入力側)から実行 すれば、 1度の処理で、すべての単語が次々と成立する。  If executed from 1 (input side), all the words are established one after another in a single process.
1.分割構造を統合する方法 1. How to integrate split structures
基本構造を 1つとし、単語の並べ替えを行う。この方法によって生成されるプログラム は以下の構造を持つ。 The basic structure is one, and the words are rearranged. The program generated by this method has the following structure.
1)値の生成のための W04論理要素は W03へ置く。  1) The W04 logic element for value generation is placed in W03.
2) W03論理要素と W04論理要素とを統合した単語とする。等価単語はひとつの単語 に統合したものとする。  2) A word that combines the W03 logic element and the W04 logic element. Equivalent words are combined into one word.
3)スタート画面の W04にすベての基本構造上の単語を置く。このとき、経路の作用要 素についている実行条件はそれぞれの単語に展開する。経路の作用要素は、展開 しない。  3) Put all basic structural words on W04 on the start screen. At this time, the execution condition attached to the action element of the path is expanded to each word. Path action elements do not expand.
4)すべての単語と入出力作用要素に対して、その始点と基本要素との関係を有向グ ラフ (Directed  4) For all words and input / output action elements, the relationship between the start point and basic elements
Graph)で表現し、上記の方法で、トポロジカルソートして順序を決め配置する。パレツ ト内の反復は不要となるため設置しない。パレット領域のクリアも、不要となり、設置し ない。 (Graph), and the topological sort and the order are determined and arranged by the above method. Parez It is not installed because it is not necessary to repeat it. Clearing the pallet area is also unnecessary and will not be installed.
5) Control Areaのフラグ、入出力の作用要素のフラグは、クリアが必要であり、そのま ま置く。  5) The Control Area flag and the input / output action element flag must be cleared and left as they are.
この結果、 As a result,
1)同じ基本構造に属していた単語と入出力作用要素は、その基本構造の経路作用 要素についていた実行条件が等しく展開されるので、同一の実行条件を持ち、従つ て、ソート後もひとまとまりのグループを作り出す。  1) Words and input / output action elements that belonged to the same basic structure have the same execution conditions because the execution conditions for the path action elements of the basic structure are expanded equally. Create a group of groups.
2)結果的に、経路の実行条件により、基本要素が再グループ化され、そのグループ の中では、基本要素は上から実行順に並ぶ。  2) As a result, the basic elements are regrouped according to the route execution conditions, and the basic elements are arranged in the order of execution from the top.
2.事例の仕様  2.Specification of case
この例題の要件は、生徒の成績管理システムの事例である。このシステムでは、総 務担当者が生徒の名前を登録し、先生が生徒のテストごとの点数を登録、学期末に は総合評価を登録することができる。このシステムは、図 11に示す「初期画面」、図 1 2に示す「生徒登録画面」、図 13に示す「成績管理画面」の 3つの画面と、管理者と 先生の IDとパスワードが登録された「ID&パスワードファイル」、生徒の名前や IDが登 録されて!/ヽる「生徒名ファイル」、生徒別テストごとの点数が登録されて ヽる「テスト別 成績ファイル」、生徒ごとの学期末総合評価が登録されて ヽる「総合評価ファイル」、 の 4つのファイルから構成されて!、る。  The requirement of this example is an example of a student grade management system. In this system, the general manager can register the student's name, the teacher can register the score for each test of the student, and register the overall evaluation at the end of the semester. In this system, the initial screen shown in Fig. 11, the "Student Registration Screen" shown in Fig. 12 and the "Grade Management Screen" shown in Fig. 13, and the administrator and teacher IDs and passwords are registered. “ID & password file”, “Student name file” where the student's name and ID are registered! / “Student name file” where the score for each test is registered, It consists of four files: “Comprehensive evaluation file” that is registered at the end of the period.
初期画面は、成績管理システムを起動したときに表示される画面である。 Exitボタン を押すとシステムは終了する。 IDとパスワードのフィールドに入力して、 OKボタンを押 すと、システムは、入力されたデータと ID& スワードファイルに登録されているデー タを参照(読み込み)し、入力されたデータが総務担当者のものか、先生のものか、あ るいは、そのいずれでもないか、を判定する。判定の結果、 IDとパスワードが管理者 のものならば、生徒登録画面を表示、先生のものなら成績管理画面を表示、いずれ のものでもない場合は、初期画面を表示する。 The initial screen is a screen displayed when the grade management system is activated. Press the Exit button to exit the system. If you enter the ID and password fields and press the OK button, the system will refer to (read) the entered data and the data registered in the ID & password file, and the entered data will be sent to the general affairs staff. Whether it is a teacher's, a teacher's, or neither. If the result of the judgment is that the ID and password are for the administrator, the student registration screen is displayed. If the ID and password are for the teacher, the grade management screen is displayed. Otherwise, the initial screen is displayed.
生徒登録画面は、総務担当者が生徒名、生徒 ID番号を登録する画面である。初期 画面で判定した IDとパスワード力 総務担当者のものであった場合に表示される画面 で、表示のときには、システムは、生徒名ファイルを参照して、すでに登録済みである 生徒のデータを生徒一覧のフィールドに表示する。画面が表示された後、新規登録 のフィールドに生徒名と生徒 ID番号を入力し、登録ボタンを押すと、入力したデータ が生徒名ファイルに登録 (書き込み)される。戻るボタンを押すと、初期画面に戻るこ とがでさる。 The student registration screen is a screen in which the general affairs officer registers the student name and student ID number. ID and password determined on the initial screen At the time of display, the system refers to the student name file and displays the data of already registered students in the field of the student list. After the screen is displayed, enter the student name and student ID number in the new registration field and press the registration button. The entered data will be registered (written) in the student name file. Press the back button to return to the initial screen.
成績管理画面は、生徒のテストごとの点数と総合評価の登録、参照を行う画面であ る。初期画面で判定した IDとパスワードが先生のものであったとき表示される。画面表 示のときには、システムは、生徒名ファイルを参照して、アクセスしている先生が担当 する生徒名と生徒 ID番号の一覧を、生徒名のテキストボックスに表示可能な選択候 補リストとして用意する。総務担当者が、テキストボックスの右端のボタンを押して、生 徒名リストを表示させ、参照したい生徒名と ID番号を選択 (入力)すると、システムは テスト別成績ファイルを参照して、入力された生徒のテスト結果と、テスト結果の平均 点を計算して表示する。総合評価がすでに登録されている場合は、同時に、総合評 価ファイルを参照して、総合評価を表示する。新たなテスト結果を登録するときには、 テスト結果登録フィールドに、選択されている生徒のデータを入力し、登録ボタンを押 す。システムは、新規データをテスト別成績ファイルに登録し、同時に、テスト結果フィ 一ルドの内容を新規データも含めた内容に更新して表示し、平均点も再計算して表 示する。総合評価を登録するときには、総合評価登録フィールドに、選択されている 生徒の総合評価を入力し、登録ボタンを押す。システムは、総合評価のデータを総 合評価ファイルに登録し、同時に、総合評価フィールドに登録したデータを表示する 。戻るボタンを押すと、初期画面に戻ることができる。  The grade management screen is a screen for registering and referencing the score and overall evaluation for each student test. Displayed when the ID and password determined on the initial screen belong to the teacher. When the screen is displayed, the system refers to the student name file and prepares a list of student names and student ID numbers assigned by the accessing teacher as a selection candidate list that can be displayed in the student name text box. To do. When the general clerk presses the button at the right end of the text box to display the student name list and selects (enters) the student name and ID number that he / she wants to refer to, the system references Calculate and display student test results and average scores. If a comprehensive evaluation has already been registered, at the same time, refer to the comprehensive evaluation file and display the comprehensive evaluation. To register a new test result, enter the data of the selected student in the test result registration field and press the register button. The system registers new data in the test results file, and at the same time updates and displays the contents of the test result field including the new data, and recalculates and displays the average score. To register a comprehensive evaluation, enter the comprehensive evaluation of the selected student in the comprehensive evaluation registration field and press the register button. The system registers the comprehensive evaluation data in the comprehensive evaluation file, and at the same time displays the data registered in the comprehensive evaluation field. Press the back button to return to the initial screen.
この成績管理プログラムの要件、および、このプログラムを、従来の基本構造に分割 した構造にする場合の構造を表わした処理経路図を図 14に示す。 Fig. 14 shows the requirements of this grade management program and the processing path diagram showing the structure when this program is divided into the conventional basic structure.
1人の学生に対して試験別成績の一覧を表示するような、同じ処理の部分的繰り返し や、平均点の算出のための、集計計算を含んでおり、上に述べた基本的な的な処理 を網羅している。  Includes a summary calculation for partial repetition of the same process, such as displaying a list of grades by exam for one student, and calculating the average score. Covers processing.
3.事例の実装手順  3. Example implementation procedure
使用言語は、 C++、画面部のみ C++の機能を用い、残りは、 Cの文法のみで記述して いる。データベース 'マネージメントシステムは、 Access 97 with DOAである。 The language used is C ++, only the screen part uses the C ++ function, and the rest is written only in the C grammar. Yes. Database 'Management system is Access 97 with DOA.
設計時、 9基本構造に分割した要件を 1基本構造のプログラムに統合した形で、実装 した。プログラムの生成は、 LyeeALL2 (Lyee構造プログラムのコード自動生成ツール )を用い、そのテンプレート (基本要素および制御プログラムの雛形)を基本構造統合 型 Lyeeプログラム用に製作変更して、コード自動生成した。図 15は、統合型新プログ ラムコードの一部である。新プログラムの 7行目は、経路の実行条件、すなわちプロセ ス定義における実行条件であり、基本要素はこれによって再びグループィ匕している。 W02 At the time of design, the requirements divided into 9 basic structures were implemented by integrating them into 1 basic structure program. The program was generated automatically using LyeeALL2 (Lyee structure program code automatic generation tool), and its templates (basic elements and control program templates) were modified for the basic structure integrated Lyee program. Figure 15 shows part of the integrated new program code. Line 7 of the new program is the execution condition of the path, that is, the execution condition in the process definition, and the basic elements are grouped again by this. W02
パレットにあった基本要素は、ソート後の順序に並んでいる。単語は、 11, 12,13,14行 のように生成式のみが残る。 The basic elements that were in the palette are arranged in the sorted order. As for the word, only the generation formula remains like 11, 12, 13, 14 lines.
基本構造を分割した状態で生成した Lyee構造のプログラムと、 Lyee方法論による新 プログラムと比較すると以下の通りである。この実行ステップ数と時間は、「7人の学生 力もひとりを選び、 5試験の成績を表示させる」という要件のプログラムのときのもので ある。 CPUプロセス時間はデータベースのアクセス時間を含まない値、 Totalプロセス 時間はデータベースのアクセス時間を含む全時間である。処理時間は、プログラムに タイムスタンプの機能を付加し、開始、終了との差として求めた。 The Lyee structure program generated with the basic structure divided is compared with the new program based on the Lyee methodology as follows. The number of execution steps and the time are those for a program that requires the requirement of “selecting 7 students' ability and displaying the results of 5 exams”. CPU process time is a value that does not include database access time, and Total process time is the total time that includes database access time. The processing time was calculated as the difference between the start and end by adding a time stamp function to the program.
4.結果と評価 4. Results and evaluation
1)結果 1) Results
[表 19]
Figure imgf000046_0001
[Table 19]
Figure imgf000046_0001
実行コードの減少は主に、単語の構造が小さくなつたことと、基本構造が 1つになつ たこと〖こよる。主な変ィ 点、は、 The decrease in executable code is mainly due to the fact that the word structure has become smaller and the basic structure has become one. The main inflection point is
1.述語構造はおおよそ 21行力も成る。これが、通常、代入式 1行から成る生成式の みとなる。  1. The predicate structure is about 21 powers. This is usually only a generation expression consisting of one line of assignment expression.
2. W03の生成条件と W04の生成式とは 1つに統合される。  2. The generation condition of W03 and the generation expression of W04 are integrated into one.
3.作用要素については、経路の作用要素は一つの IF文となる。入出力の作用要素 はほぼそのまま残る。 3. As for the action element, the action element of the path becomes one IF statement. Input / output elements Remains almost intact.
4. 80%のクリアの作用要素は取り除かれる。  4. 80% clearing action is removed.
5. 一つの基本構造は単語や作用要素を除いて約 24KBを必要とする。この事例で は、 9個の基本構造が 1つになる。  5. One basic structure requires about 24KB excluding words and action elements. In this case, nine basic structures become one.
実行ステップ数の減少と実行時間の減少は主に繰り返しが減ったことによる。主な 変化点は、  The decrease in the number of execution steps and the decrease in execution time is mainly due to the decrease in repetition. The main change is
1.すべてのパレットは最低 2回繰り返され、基本構造は最低 3回繰り返される。これ 力 1回になる。  1. All pallets are repeated at least twice and the basic structure is repeated at least three times. This power is once.
2.プログラム 'コードは、 31%に削減される。  2. Program 'code is reduced to 31%.
3.し力し全プロセス時間は、それほど減少しない。データベースのアクセス時間が支 配的であるためである。  3. The total process time will not decrease so much. This is because the database access time is controlled.
4.データベース処理を用いないリアルタイム処理、たとえばビル監視システムのよう なプロセス制御では、 CPU時間が支配的である。従って、新方法は、プログラムの大 きさ、処理時間とも、プロセス制御の場合に効果が大きい。  4. CPU time is dominant in real-time processing that does not use database processing, such as process control such as a building monitoring system. Therefore, the new method is very effective in the case of process control in terms of program size and processing time.
2)評価  2) Evaluation
従来の構造型プログラミングによるプログラムと比較すると、以下のことが、言えるであ ろう。現時点で、この仕様に基づく従来の構造型プログラミングによるプログラムは、 課題を残すものであり、また、従来法はプログラマの技量によるため、定性的比較に 留める。 The following can be said when compared with a program based on conventional structural programming. At present, conventional structural programming based on this specification remains a challenge, and the conventional method depends on the skill of the programmer, so it is limited to qualitative comparison.
1)プログラムの設計  1) Program design
単語の実行条件は、プロセス定義のアクションの実行条件として、捉えることができ、 従来の Lyeeにおける設計上の困難が減少する。 Lyeeの利点である、宣言的に仕様 を捉えることは、新プログラムではプロセス定義と単語の定義で実現される。従って、 新プログラムでは、プロセス定義によって制御のための手続きが実現されるため、プ ログラムの設計は必要ない。従来法では、仕様を基に何らかの設計が必要である。Word execution conditions can be viewed as execution conditions for process-defined actions, reducing design difficulties in traditional Lyee. The advantage of Lyee, declarative specification capture, is realized in the new program with process definitions and word definitions. Therefore, in the new program, the procedure for control is realized by the process definition, so no program design is required. The conventional method requires some design based on the specifications.
2)プログラムのサイズ 2) Program size
従来の構造型プログラミングによるプログラムと比較し、新プログラムにおいて、構造 上明らかに増加しているコードは、ない。 3)実行速度 There is no code that is clearly increased in structure in the new program compared to the program using the conventional structural programming. 3) Execution speed
新プログラムでは、繰り返しの回数は必要最小な数に限られるため、従来型プロダラ ムに比べて実行速度が遅くなる理由はない。  In the new program, the number of iterations is limited to the minimum necessary number, so there is no reason for the execution speed to be slower than in the conventional program.
4章 むすび  Chapter 4 Conclusion
現状では、 Lyee方法論に基づくツールによって生成されるプログラムは、設計時点で 分割した仕様を、分割した状態でプログラムモジュールに展開したものである。確か に、要件に明白に表されている順序に関する情報を設計に活用することは、設計の 精度をあげ、効率化に役立つ。しかし、 Lyee構造のプログラムは、実行前に、静的に 解決できる問題点を、実行時点で動的に解決しているため、コードのサイズは大きく 、処理速度も遅い。ここに改善の余地がある。設計の効率ィ匕の効果を生力しつつ、プ ログラムの意味を変えずに、初めから基本構造に分割せずに、プログラムを生成する ことが出来る。そうすることによって、単語全体は 1つの領域となる。したがって、単語 の関係が作り出す有向グラフ上のトポロジカルソートで、単語全体の正 、順序が決 定されると、順序性を確保するための繰り返しは不要となる (特許文献 6参照)。 したがって、処理経路図を作成すること、すなわち要件を分割してとらえることは、シ ステムの要件を正確にとらえるために非常に有用である。処理経路図を作成すること は、出力条件に共通要素を持つ単語を論理体の単位でとらえることである。条件の 共通要素を経路作用要素に割り当てることは、効率的にユーザ要件を定義するため には大きなメリットがある。  At present, the program generated by the tool based on the Lyee methodology is a specification that has been divided at the time of design and expanded into program modules in a divided state. Certainly, utilizing information about the order clearly expressed in the requirements in the design will improve the accuracy of the design and help improve efficiency. However, Lyee-structured programs dynamically solve problems that can be solved statically before execution, so the code size is large and the processing speed is slow. There is room for improvement here. It is possible to generate a program without changing the meaning of the program and dividing it into the basic structure from the beginning, while taking advantage of the efficiency of design efficiency. By doing so, the whole word becomes one area. Therefore, when the correct order of words is determined in the topological sort on the directed graph created by the word relationship, it is not necessary to repeat the order to ensure the order (see Patent Document 6). Therefore, it is very useful to create a processing path diagram, that is, to divide the requirements and to grasp the system requirements accurately. Creating a processing path diagram means capturing words that have common elements in the output condition in logical units. Assigning common elements of conditions to route action elements has great advantages for efficiently defining user requirements.
[0134] 一方、プログラムのコードを生成し、実行する時点では、基本構造に分割したシステ ムを統合することが有用である。なぜなら、システム全体の単語単位のプログラムの 実行順序を、最少実行回数で出力単語の生成を完了できる順序に並べることができ るカゝらである。 [0134] On the other hand, at the time of generating and executing program code, it is useful to integrate a system divided into basic structures. This is because the execution order of the word-by-word programs in the entire system can be arranged in an order in which generation of output words can be completed with the minimum number of executions.
[0135] 本明細書では、単語単位の宣言実行モジュール力もなるシステムにおける、出力 データを生成するための宣言実行モジュールの処理を、無駄な繰り返しを排除して 最少実行回数で完了し、かつ、プログラムサイズを小さくすることを課題として、以下 の手段で解決することについて述べた。  In this specification, the processing of the declaration execution module for generating output data in a system that also has a word-level declaration execution module power is completed with the minimum number of executions without unnecessary repetition, and the program The issue of reducing the size was described as a solution by the following means.
1)同じ出力条件を持つ単語の集合 (論理体)を、 1つの基本構造として、システム全 体を処理経路図でとらえる。これによつて、同じ基本構造に属する宣言実行に共通 する実行条件 (経路作用要素がその基本構造を指定する条件)を的確にとらえること ができる。 1) A set of words (logical body) with the same output condition as a basic structure Capture the body with a processing path diagram. As a result, execution conditions common to execution of declarations belonging to the same basic structure (conditions for the path action element to specify the basic structure) can be accurately grasped.
2)経路作用要素もトポロジカルソートの対象とし、単語の関係を定義して 、る論理要 素と同じぐその要件を単語の関係で定義する。すなわち、どのような条件が成立し たとき (定義式の実行条件)、どの基本構造の実行を指定するか (定義式)、を定義す る。  2) Path action elements are also subject to topological sorting, and word relationships are defined, and the same requirements as logical elements are defined by word relationships. In other words, it defines what conditions are satisfied (execution conditions of definition formulas) and which basic structure execution is specified (definition formulas).
3)この経路作用要素の定義式実行条件を、その条件が成立するときに経路作用要 素が指定する基本構造に属するモジュールの実行条件に加えることによって、経路 作用要素を排除する。経路作用要素の実行条件を、指定先の基本構造のモジユー ルの実行条件に置くことによって、経路作用要素を削除しても、基本構造間のリンク( すなわち単語間のリンク)が成立するので、プログラム全体を 1つにまとめることが可 會 になる。  3) The route action element is eliminated by adding the execution condition of the definition expression of this route action element to the execution condition of the module belonging to the basic structure specified by the route action element when the condition is satisfied. By placing the execution condition of the route action element in the execution condition of the module of the designated basic structure, even if the route action element is deleted, a link between basic structures (that is, a link between words) is established. It is possible to combine the entire program into one.
こうして得られた単一化されたプログラム全体の宣言実行モジュール群 (経路作用要 素を含めない)に対して、トポロジカル 'ソートを行って宣言実行モジュール群を最適 順序に並び替える。これにより、無駄な繰返しを回避し、最少実行回数でプログラム を実行することが可能となる。  The declaration execution module group (not including the path action element) of the unified program obtained in this way is topologically sorted to rearrange the declaration execution module group in the optimal order. This avoids unnecessary repetition and allows the program to be executed with the minimum number of executions.
[0136] なお、本発明は、上述した実施形態および実施例には限定されず、本発明の技術 思想の範囲内で様々な変形が可能である。たとえば、ビジネス 'メソッド、ソフトウェア 開発装置、ソフトウェア開発支援装置、ソフトウェア開発管理装置、あるいはこれらの 機能をコンピュータに実現するためのソフトウェア並びに該ソフトウェアを搭載した記 録媒体'専用機、などとしてもそれぞれ実現することが可能である。さらに、上記で説 明したように本発明は、方法としても、或いは力かる機能を備えるソフトウェアとしても 、該ソフトウェアが搭載される装置'ツール (ソフトウェア自体の場合も含む)としても、 さらにはシステムとしても、実現され得るのはもとよりである。  Note that the present invention is not limited to the above-described embodiments and examples, and various modifications can be made within the scope of the technical idea of the present invention. For example, a business 'method, software development device, software development support device, software development management device, or software for realizing these functions on a computer and a recording medium equipped with the software' dedicated machine. Is possible. Further, as described above, the present invention can be applied to a method, software having a powerful function, a device on which the software is mounted (including software itself), a system Even so, it can be realized.
[0137] 例えば図 16は、本発明の異なる一実施形態として、「開発対象のソフトウエア」を生 産するためのプログラム(ソフトウェア)、プログラム生成装置、プログラム処理装置、ッ ール (装置として或いはソフトウェアとしての双方を含む)、ソフトウェア開発装置、ソフ トウエア開発支援装置、或いはソフトウェア開発管理装置のいずれ力として本発明を 実施する場合に機能として備える構成を示した機能ブロック図である。同図に示すよ うに、本発明に係るプログラム (ソフトウェア)、プログラム生成装置、プログラム処理装 置、ツール (装置として或いはソフトウェアとしての双方を含む)、ソフトウェア開発装 置、ソフトウエア開発支援装置、或いはソフトウェア開発管理装置は、全体制御部 16 01、単語単位の宣言の実行単位の規定部 1602、(半)順序関係定義部 1603、トポ ロジカル ·ソート部 1604、コード列配置部 1605及び情報記憶部 1606を備えて構成 される。 For example, FIG. 16 shows, as a different embodiment of the present invention, a program (software), a program generation device, a program processing device, a tool (as a device or a device) for producing “software to be developed”. Software development equipment, software FIG. 5 is a functional block diagram showing a configuration provided as a function when the present invention is implemented as either a software development support device or a software development management device. As shown in the figure, a program (software), a program generation device, a program processing device, a tool (including both as a device and software), a software development device, a software development support device, or The software development management device includes an overall control unit 1601, an execution unit definition unit 1602 for word unit declaration, a (semi) order relation definition unit 1603, a topological sort unit 1604, a code string arrangement unit 1605, and an information storage unit 1606. It is comprised with.
[0138] 全体制御部 1601は、本プログラム(ソフトウェア)、プログラム生成装置、プログラム 処理装置、ツール (装置として或いはソフトウェアとしての双方を含む)、ソフトウェア 開発装置、ソフトウェア開発支援装置、或いはソフトウェア開発管理装置の全体の動 作制御、タイミング制御、入出力制御等を行う機能を有しており、当該機能を持つ専 用チップ、専用回路、または当該機能をコンピュータに果たさせるためのソフトウェア (ツールとしてのソフトウェアも含む)、或いは該ソフトウェアを記録した記録媒体、当 該記録媒体を搭載した処理装置 ·管理装置 ·ツールとして実現される。  The overall control unit 1601 is a program (software), a program generation device, a program processing device, a tool (including both as a device and software), a software development device, a software development support device, or a software development management device. It has functions to perform overall operation control, timing control, input / output control, etc., and a dedicated chip having this function, a dedicated circuit, or software for causing the computer to perform this function (as a tool) (Including software), or a recording medium on which the software is recorded, a processing device, a management device, or a tool on which the recording medium is mounted.
[0139] 単語単位の宣言の実行単位の規定部 1602は、前述したような単語単位の宣言の 実行単位を規定するための機能を有しており、当該機能を持つ専用チップ、専用回 路、または当該機能をコンピュータに果たさせるためのソフトウェア(ツールとしてのソ フトウ アも含む)、或いは該ソフトウェアを記録した記録媒体、当該記録媒体を搭載 した処理装置 ·管理装置 ·ツールとして実現される。  [0139] The execution unit specifying unit 1602 for the word unit declaration has a function for specifying the execution unit for the word unit declaration as described above, and includes a dedicated chip, a dedicated circuit, Alternatively, it is realized as software (including software as a tool) for causing the computer to perform the function, or as a recording medium on which the software is recorded, a processing device / management device / tool on which the recording medium is mounted.
[0140] (半)順序関係定義部 1603は、全ての L2処理 (入力単語の属性チェック処理)、 L 処理(出力単語の値生成処理)、 12処理 (論理体入力処理)、 04処理 (論理体出力 処理)について、宣言で用いられる単語に着目して相互の順序関係をたとえば有向 グラフで表すことで順序関係を定義するための機能を有しており、当該機能を持つ 専用チップ、専用回路、または当該機能をコンピュータに果たさせるためのソフトゥェ ァ(ツールとしてのソフトウェアも含む)、或いは該ソフトウェアを記録した記録媒体、当 該記録媒体を搭載した処理装置 ·管理装置 ·ツールとして実現される。  [0140] The (semi) order relation definition unit 1603 performs all L2 processing (input word attribute check processing), L processing (output word value generation processing), 12 processing (logical input processing), 04 processing (logic For body output processing), it has a function to define the order relationship by expressing the mutual order relationship with a directed graph, focusing on the words used in the declaration. It is realized as a circuit or software (including software as a tool) for causing a computer to perform the function, or a recording medium storing the software, a processing device, a management device, or a tool equipped with the recording medium. The
[0141] トポロジカル 'ソート部 1604は、(半)順序関係定義部 1603で得られたたとえば有 向グラフに対して深さ優先探索を行い、行きついたところ力 探索経路を戻るときにノ ードを取得してゆくことでノード列 (数列)を整列するための機能を有しており、当該機 能を持つ専用チップ、専用回路、または当該機能をコンピュータに果たさせるための ソフトウェア(ツールとしてのソフトウェアも含む)、或いは該ソフトウェアを記録した記 録媒体、当該記録媒体を搭載した処理装置 ·管理装置 ·ツールとして実現される。 [0141] The topological 'sorting unit 1604 is, for example, provided by the (semi-) order relation defining unit 1603. A depth-first search is performed on the directed graph, and the node sequence (number sequence) is arranged by acquiring the node when returning to the force search path when it arrives. A dedicated chip having a function, a dedicated circuit, or software (including software as a tool) for causing a computer to perform the function, or a recording medium on which the software is recorded, and a processing device equipped with the recording medium Management device · Realized as a tool.
[0142] コード列配置部 1605は、トポロジカル 'ソート部 1604によって並び替えられた宣言 の実行単位の順序列(全ての L2処理 (入力単語の属性チェック処理)、 L処理(出力 単語の値生成処理)、 12処理 (論理体入力処理)、 04処理 (論理体出力処理) )にし たがって該宣言実行単位に該当する Lyee方法論に基づく所与のコード列を配置す るための機能を有しており、当該機能を持つ専用チップ、専用回路、または当該機 能をコンピュータに果たさせるためのソフトウェア(ツールとしてのソフトウェアも含む)[0142] The code string arrangement unit 1605 is a sequence of execution units of declarations rearranged by the topological 'sort unit 1604 (all L2 processing (input word attribute check processing), L processing (output word value generation processing) ), 12 processing (Logical body input processing), 04 processing (Logical body output processing))) and a function for allocating a given code string based on the Lyee methodology corresponding to the declaration execution unit A dedicated chip, a dedicated circuit, or software that allows a computer to perform the function (including software as a tool)
、或いは該ソフトウェアを記録した記録媒体、当該記録媒体を搭載した処理装置,管 理装置 ·ツールとして実現される。 Or a recording medium on which the software is recorded, a processing apparatus on which the recording medium is mounted, a management apparatus / tool.
[0143] 情報記憶部 1606は、プログラム情報のほか、各種制御情報、プロセス 'セルとして モジュール化された論理要素(L2、 L3、 L4)および、作用要素(12、 04、 S4)のひな 型、コード列配置部 1605のひな型、トポロジカル 'ソート部 1604のひな型、(半)順 序関係定義部 1603のひな型、単語単位の宣言の実行単位の規定部 1602のひな 型、 目的プログラム等の格納のほか、一時記憶のためのメモリとしても用いられる。  [0143] In addition to program information, the information storage unit 1606 is a model of various control information, logical elements (L2, L3, L4) modularized as process' cells, and action elements (12, 04, S4), Code string layout part 1605 template, topological 'sort part 1604 template, (semi) order relation definition part 1603 template, execution unit specification part for word unit declaration 1602 model, target program, etc. It is also used as a memory for temporary storage.
[0144] 図 17は、上記の構成を備えるプログラム (ソフトウェア)、プログラム生成装置、プロ グラム処理装置、ツール (装置として或いはソフトウェアとしての双方を含む)、ソフトゥ ア開発装置、ソフトウェア開発支援装置、或いはソフトウェア開発管理装置のいず れカとして実施される本発明の動作を示したフローチャートである。  [0144] FIG. 17 shows a program (software), a program generation device, a program processing device, a tool (including both as a device and software), a software development device, a software development support device, or 5 is a flowchart showing the operation of the present invention implemented as one of software development management devices.
[0145] 同図に示すように、まず、単語単位の宣言の実行単位の規定部 1602が、 1つのプ ログラムとして実装するユーザ要件を、アクセス条件を伴う論理体ごとに、該論理体上 の単語ごとに、単語名、定義式、該定義式の実行条件、入出力属性、単語の値の属 性によって宣言された単語単位の宣言から、要件充足に必要な全ての、 L2処理 (入 力単語の属性チェック処理)、 L処理(出力単語の値生成処理)、 12処理 (論理体入 力処理)、 04処理 (論理体出力処理)の 、ずれかの宣言の実行単位を規定する (ス テツプ 1701)。この宣言の実行単位の規定にあたっては、情報記憶部 1606に格納 される雛型を用いてもよい。 [0145] As shown in the figure, first, the execution unit specifying unit 1602 of the word unit declaration implements the user requirements implemented as one program for each logical unit with an access condition. For each word, from the word unit declaration declared by the word name, definition expression, execution condition of the definition expression, input / output attributes, and word value attributes, all L2 processing (input Specify the execution unit of one of the declarations (word attribute check processing), L processing (output word value generation processing), 12 processing (logical input processing), 04 processing (logical output processing) Step 1701). In defining the execution unit of this declaration, a template stored in the information storage unit 1606 may be used.
[0146] すると、(半)順序関係定義部 1603が、既定された、全ての宣言実行単位の(半) 順序関係を定義する (ステップ 1702)。この宣言実行単位の(半)順序関係の定義に あたっては、情報記憶部 1606に格納される雛型を用いてもよい。  [0146] Then, the (semi) order relation defining unit 1603 defines the (semi) order relations of all the declared execution units (step 1702). A template stored in the information storage unit 1606 may be used to define the (semi) order relation of the declaration execution unit.
[0147] 次に、トポロジカル 'ソート部 1604が、定義された(半)順序関係で規定される全て の宣言実行単位に対してトポロジカル 'ソートを行う(ステップ 1703)。このトポロジカ ル 'ソートを行うにあたっては、情報記憶部 1606に格納される雛型を用いてもよい。  Next, the topological 'sorting unit 1604 performs topological' sorting on all the declaration execution units specified by the defined (semi) order relationship (step 1703). In performing this topological sort, a template stored in the information storage unit 1606 may be used.
[0148] 次に、コード列配置部 1605が、並び替えられた宣言の実行単位の順序列にしたが つて該宣言実行単位に該当する Lyee方法論に基づく所与のコード列を情報記憶部 1606から読み出した上で配置する(ステップ 1704)。  [0148] Next, the code string arrangement unit 1605 obtains a given code string based on the Lyee methodology corresponding to the declaration execution unit from the information storage unit 1606 according to the sequence of execution units of the sorted declarations. It arranges after reading (step 1704).
[0149] よって、上記のような構成を備える本発明によれば、単語単位の宣言実行モジユー ルカもなるプログラムにおける、出力データを生成するための宣言実行モジュールの 処理を、無駄な繰り返しを排除して最少実行回数で完了し、かつ、プログラムサイズ を小さくすることが可能となる。  Therefore, according to the present invention having the above-described configuration, the process of the declaration execution module for generating the output data in the program that also serves as the word-by-word declaration execution module is eliminated. It can be completed with the minimum number of executions and the program size can be reduced.
[0150] 本発明の異なる実施体としての「開発対象のソフトウェア」を生産するためのプログ ラム(ソフトウェア)、プログラム生成装置、プログラム処理装置、ツール (装置として或 いはソフトウェアとしての双方を含む)、ソフトウェア開発装置、ソフトウェア開発支援 装置、ソフトウェア開発管理装置は、 1つのプログラムとして実装するユーザ要件を、 アクセス条件を伴う論理体ごとに、該論理体上の単語ごとに、単語名、定義式、該定 義式の実行条件、入出力属性、単語の値の属性によって宣言された単語単位の宣 言から、要件充足に必要な全ての、 L2処理 (入力単語の属性チェック処理)、 L処理 (出力単語の値生成処理)、 12処理 (論理体入力処理)、 04処理 (論理体出力処理) のいずれかの宣言の実行単位を規定する手段と、前記に既定された、全ての L2処 理 (入力単語の属性チヱック処理)、 L処理(出力単語の値生成処理)、 12処理 (論理 体入力処理)、 04処理 (論理体出力処理)の(半)順序関係を定義する手段と、前記 ステップによって定義された(半)順序関係で規定される前記 L2処理、 L処理、 12処 理、 04処理に対してトポロジカル 'ソートを行う手段と、前記第 3のステップによって並 び替えられた宣言の実行単位の順序列にしたがって該宣言実行単位に該当する Ly ee方法論に基づく所与のコード列を配置する手段とを具備するように構成することも できる。 [0150] Program (software), program generation device, program processing device, tool (including both as device or software) for producing "software to be developed" as different embodiments of the present invention The software development device, the software development support device, and the software development management device, the user requirements to be implemented as a single program, for each logical body with access conditions, for each word on the logical body, a word name, a definition formula, From the execution condition of the definition expression, input / output attributes, and word unit declarations declared by the word value attribute, all L2 processing (input word attribute check processing) and L processing ( Output word value generation process), 12 process (logical input process), 04 process (logical output process) All of the specified L2 processing (input word attribute check processing), L processing (output word value generation processing), 12 processing (logical input processing), 04 processing (logical output processing) (half) Means for defining an order relationship, means for performing a topological sort on the L2 processing, L processing, 12 processing, and 04 processing defined by the (semi-) order relationship defined by the step, and the third Normal by step It is also possible to provide a means for arranging a given code string based on the Lyee methodology corresponding to the declaration execution unit according to the sequence of execution units of the replaced declaration.
[0151] 本発明はさらに、上述の「開発対象のソフトウェアを生産する方法」によって生産さ れたソフトウェア、及び当該ソフトウェアが搭載された記録媒体或いは当該ソフトゥェ ァが搭載された装置 (ノ、一ドウエア)としても実現される力 この場合の本発明は、 1つ のプログラムとして実装するユーザ要件を、アクセス条件を伴う論理体ごとに、該論理 体上の単語ごとに、単語名、定義式、該定義式の実行条件、入出力属性、単語の値 の属性によって宣言された単語単位の宣言力 規定された、要件充足に必要な全て の、 L2処理 (入力単語の属性チェック処理)、 L処理(出力単語の値生成処理)、 12 処理 (論理体入力処理)、 04処理 (論理体出力処理)の宣言の実行単位が、単語単 位に宣言された要件力も定義した (半)順序関係に基づいて行われるトポロジカル'ソ ートによって並び替えられた順序列にしたがって、該当する Lyee方法論に基づく所 与のコード列として構成されることもできる。  [0151] The present invention further includes software produced by the above-described "method for producing software to be developed" and a recording medium on which the software is installed or an apparatus on which the software is installed. In this case, the present invention implements the user requirements implemented as one program for each logical body with access conditions, for each word on the logical body, a word name, a definition formula, Declaration power in units of words declared by the execution conditions of the definition formula, input / output attributes, and word value attributes All L2 processing (input word attribute check processing) required for satisfying the requirements, L processing ( Output word value generation processing), 12 processing (logical body input processing), 04 processing (logical body output processing) declaration execution unit based on (semi-) order relationship that also defined the requirement power declared in word units Line It can also be configured as a given code sequence based on the appropriate Lyee methodology, according to the ordered sequence reordered by the topological sort.
[0152] またさらに本発明は、上述の「開発対象のソフトウェアを生産する方法」によってソフ トウエアを生産するために用いられるソフトウェアコードの雛型としてのソフトウェア、及 び当該ソフトウェアが搭載された記録媒体或いは当該ソフトウェアが搭載された装置 (ハードウェア)としても実現される。  [0152] Further, the present invention relates to software as a template of software code used for producing software by the above-mentioned "method for producing software to be developed", and a recording medium on which the software is mounted. Alternatively, it can be realized as a device (hardware) on which the software is installed.
[0153] さらに、本発明は、上述の「開発対象のソフトウェアを生産する方法」による、要件か ら抽出した情報 (ドキュメント (紙、データ))の抽出方法として、また力かる抽出方法に よって抽出された情報 (ドキュメント (紙、データ))として、さらには当該抽出された情 報の使用方法として、或いは、これらの情報が搭載された情報記録媒体として、また は情報の抽出方法 Z使用方法がコード化されたソフトウェア、当該ソフトウェアが搭 載された記録媒体 Z装置 (ハードウ ア)として、いずれも実現することができる関連 づける情報とを備えるソフトウェア開発要件力 抽出した情報として実現してもよい。  [0153] Furthermore, the present invention is an extraction method of information (document (paper, data)) extracted from the requirements by the above-mentioned "method for producing software to be developed" and extraction by a powerful extraction method. Information (document (paper, data)), as a method of using the extracted information, or as an information recording medium on which such information is mounted, or as a method of extracting information Z It may be realized as information extracted from the software development requirements, including coded software and related information that can be realized as a recording medium Z device (hardware) on which the software is installed.
[0154] 本発明は当該技術分野における通常の知識を有する者にとって修正および改変 が容易に数多くなし得るので、図示および記述されたものと寸分違わぬ構成および 動作に本発明を限定することは望ましくないことであり、従って、あらゆる適切な改変 体および等価体は本発明の範囲に含まれるものと見なされうる。前述の本発明に係 る実施の具体的形態の説明および例示によって詳細に記述されたが、本願の特許 請求の範囲のみならず本発明に係る開示事項全体に定義された本発明の範囲から 逸脱することなしに、修正、置換、および、変更が数多く可能である。 [0154] Since the present invention can be easily modified and modified by those having ordinary skill in the art, it is desirable to limit the present invention to configurations and operations that are not exactly different from those illustrated and described. And therefore any suitable modification The body and equivalents can be considered within the scope of the present invention. Although described in detail with the description and illustration of the specific embodiments of the present invention described above, it deviates from the scope of the present invention defined not only in the claims of the present application but also in the entire disclosure of the present invention. Many modifications, substitutions, and changes are possible without doing so.
[0155] また、本願に係る発明は、その適用において、上記の記述において説明されるか、 或いは、図面に示された要素の詳細な解釈及び組み合わせに限定されるものでは ない。本発明は、他の実施形態が可能であり、種々の方法で実用および実施可能で ある。また、ここで用いられた語法および用語は記述を目的とするものであり、限定的 に働くものとみなされてはならな 、。  [0155] Further, the invention according to the present application is not limited to the detailed interpretation and combination of elements described in the above description or shown in the drawings. The invention is capable of other embodiments and of being practiced and practiced in various ways. Also, the terminology and terminology used here is for descriptive purposes and should not be considered as limiting.
[0156] 従って、当該技術分野における通常の知識を有する者は、本開示の基調となる概 念は、本発明の幾つかの目的を実施するための他の構造、方法、及び、システムを 設計するための基礎として容易に利用され得ることを理解するはずである。従って、 本発明の趣旨および範囲力 逸脱しない限り、本願の特許請求の範囲にはそのよう な等価な解釈が含まれるものと見なされるものである。  [0156] Accordingly, those of ordinary skill in the art may design other structures, methods, and systems to implement some of the objectives of the present disclosure based on the underlying concepts of this disclosure. It should be understood that it can be easily utilized as a basis for doing so. Accordingly, it is intended that the scope of the claims of the present application include such equivalent interpretations without departing from the spirit and scope of the invention.
[0157] 上記の詳細な説明では、有向グラフ表記、隣接行列算出、トポロジカル 'ソート、並 び替えと 、う順序で本発明の思想を実現する方法にっ 、て述べた。しかしこれらはど れも絶対不可欠な要素というものではなぐ例えば、有向グラフ表記の表記を経ない で直接隣接行列算出→トポロジカル 'ソート→並び替えという順序で本発明の思想を 実現してちょい。  [0157] In the above detailed description, the method for realizing the idea of the present invention in the following order: directed graph notation, adjacency matrix calculation, topological sort, rearrangement, and the like has been described. However, these are not absolutely indispensable elements. For example, the idea of the present invention can be realized in the order of direct adjacency matrix calculation → topological 'sorting → rearrangement without going through the notation of directed graph notation.
[0158] さらに、有向グラフに対して、例えば幅優先探索(Breadth— First Search)、反復 深化法(Iterative Deeping)、発見的探索(Heuristic Search)、ヒル ·クライミン グ(Hill Climbing)、最適優先探索(Best— First Search)、オイラー(Euler)の一 筆書き、ダイクストラ(Dijkstra)法等の各種探索技法を組み合わせることで並び替え てもよい。  [0158] Further, for directed graphs, for example, breadth-first search, iterative deeping, heuristic search, Hill Climbing, and optimal first search (Best — Sorting may be done by combining various search techniques such as First Search, Euler, and Dijkstra.
[0159] 或いは、隣接行列算出のあとを、これらの各種探索技法を組み合わせることで本発 明の根本思想を実現してもよ 、。  [0159] Alternatively, the basic idea of the present invention may be realized by combining these various search techniques after calculating the adjacency matrix.
[0160] また、本発明に係る技術思想は、例えばコンピュータソフトウェアの自動開発装置、 自動開発プログラム、自動開発プログラムを記録した記録媒体、伝送媒体、紙媒体と しても、また、自動開発プログラムを登載したコンピュータ '装置、自動開発プログラム を実行するクライアント 'サーバ形式等といったカテゴリーにおいても実現、利用可能 であることは 、うまでもな!/、。 [0160] The technical idea of the present invention includes, for example, an automatic development device for computer software, an automatic development program, a recording medium recording the automatic development program, a transmission medium, and a paper medium. However, it can also be realized and used in categories such as computer 'equipment with automatic development program', client that runs automatic development program 'server type, etc.! /.
[0161] さらに本発明は、単一プロセッサ、単一ハードディスクドライブ、及び、単一ローカル メモリを備えたコンピュータシステムに限らず、当該システムのオプションとして、任意 の複数または組み合わせプロセッサ又は記憶デバイスを装備するにも適して 、る。コ ンピュータシステムは、精巧な計算器、掌タイプコンピュータ、ラップトップ zノートブッ クコンピュータ、ミニコンピュータ、メインフレームコンピュータ、及び、スーパーコンビ ユータ、ならびに、これらの処理システムネットワーク組合わせを含む。本発明の原理 に従って作動する任意の適切な処理システムによって代替されうるし、また、これらと 組合せて用いることも可能である。 [0161] Further, the present invention is not limited to a computer system including a single processor, a single hard disk drive, and a single local memory, and as an option of the system, any plural or combination processors or storage devices are provided. Also suitable for. Computer systems include sophisticated calculators, palm-type computers, laptop z notebook computers, minicomputers, mainframe computers, and supercomputers, and combinations of these processing system networks. It can be replaced by any suitable processing system operating in accordance with the principles of the present invention and can be used in combination.
[0162] また、本発明に係る技術思想は、もとよりあらゆる種類のプログラミング言語に対応 可能である。さらに本発明に係る技術思想は、あらゆる種類'機能のアプリケーション ソフトウェアに対しても適用可能である。  [0162] Furthermore, the technical idea according to the present invention can be applied to all kinds of programming languages. Furthermore, the technical idea according to the present invention can be applied to application software of all kinds of functions.
[0163] またさらに本願発明は、その技術思想の同一及び等価に及ぶ範囲において様々 な変形、追加、置換、拡大、縮小等を許容するものである。また、本願発明を用いて 生産されるソフトウェア力 その 2次的生産品に登載されて商品化された場合であつ ても、本願発明の価値は何ら減ずるものではな 、。  [0163] Furthermore, the present invention allows various modifications, additions, substitutions, enlargements, reductions, etc. within the scope of the same and equivalent technical idea. In addition, even if the software power produced using the invention of the present application is listed as a secondary product and commercialized, the value of the present invention will not be reduced.
産業上の利用可能性  Industrial applicability
[0164] 上記で規定される本発明では、繰返しをなくす前処理を自動で行 、、こうして得ら れた前処理済の単語単位のプログラムをもとに Lyee (登録商標)方法論により自動 的に目的プログラム生成を行う。つまり、ユーザ要件の洗練化 (整列)から目的プログ ラムの生成に至るまで自動化することが可能となる。これにより、ソフトウェア生産の大 幅な効率向上、生産性向上、品質向上等、ソフトウェア産業上に大きな効果をもたら す。 [0164] In the present invention as defined above, the pre-processing to eliminate repetition is automatically performed, and the pre-processed word unit program thus obtained is automatically used by the Lyee (registered trademark) methodology. Generate the target program. In other words, it is possible to automate everything from the refinement (alignment) of user requirements to the generation of the target program. This will have a significant effect on the software industry, such as greatly improving the efficiency of software production, improving productivity, and improving quality.
図面の簡単な説明  Brief Description of Drawings
[0165] [図 1]本発明の一実施形態に係るセルの概念を説明するための概念図である。 FIG. 1 is a conceptual diagram for explaining the concept of a cell according to an embodiment of the present invention.
[図 2]本発明の一実施形態に係る例 1のシステムの画面の説明図である [図 3]本発明の一実施形態に係る例 1のシステムの単語を基本構図単位に示した説 明図である。 FIG. 2 is an explanatory diagram of a screen of the system of Example 1 according to an embodiment of the present invention. FIG. 3 is an explanatory diagram showing words in the system of Example 1 according to an embodiment of the present invention in units of basic composition.
[図 4]本発明の一実施形態に係る例 1のシステムの単語の関係を表わした有向グラフ である。  FIG. 4 is a directed graph showing word relationships in the system of Example 1 according to an embodiment of the present invention.
圆 5]本発明の一実施形態に係る例 1のシステム全体を 1つの隣接行列 Fで表わす過 程を説明するための図である。 [5] FIG. 5 is a diagram for explaining a process in which the entire system of Example 1 according to the embodiment of the present invention is represented by one adjacency matrix F.
圆 6]本発明の一実施形態に係る隣接行列 Fがトポロジカルソート済みであることを説 明するための図である。 [6] FIG. 6 is a diagram for explaining that the adjacency matrix F according to an embodiment of the present invention has been topologically sorted.
圆 7]本発明の一実施形態に係る例 1のシステムの構造力 経路作用要素を削除し たときの、単語の関係を表わした有向グラフである。 [7] Structural force of the system of Example 1 according to an embodiment of the present invention is a directed graph representing the relationship between words when a path action element is deleted.
圆 8]本発明の一実施形態に係る例 1のシステムの構造力 経路作用要素を削除し たとき、システム全体を 1つの隣接行列 F'で表わす過程を説明するための図である。 圆 9]本発明の一実施形態に係る隣接行列 F'がトポロジカルソート済みであることを 説明するための図である。 8] Structural force of system of example 1 according to an embodiment of the present invention is a diagram for explaining a process of representing the entire system by one adjacency matrix F ′ when a path action element is deleted. [9] FIG. 9 is a diagram for explaining that the adjacency matrix F ′ according to an embodiment of the present invention has been topologically sorted.
圆 10]本発明の一実施形態に係る例 2を有向グラフである。 [10] Example 2 according to an embodiment of the present invention is a directed graph.
圆 11]本発明の一実施形態に係る例 2の「初期画面」を表した図である。 [11] FIG. 11 is a diagram showing an “initial screen” of Example 2 according to an embodiment of the present invention.
圆 12]本発明の一実施形態に係る例 2の「生徒登録画面」を表した図である。 12] A diagram showing the “student registration screen” in Example 2 according to an embodiment of the present invention.
圆 13]本発明の一実施形態に係る例 2の「成績管理画面」を表した図である。 13] A diagram showing a “score management screen” in Example 2 according to an embodiment of the present invention.
[図 14]本発明の一実施形態に係る例 2の成績管理プログラムの要件、および、このプ ログラムを、従来の基本構造に分割した構造にする場合の構造を表わした処理経路 図である。  FIG. 14 is a processing path diagram showing the requirements of the grade management program of Example 2 according to an embodiment of the present invention and the structure when this program is divided into conventional basic structures.
圆 15]本発明の一実施形態に係る統合型新プログラムコードの一部である。 [15] Part of the integrated new program code according to an embodiment of the present invention.
[図 16]本発明の異なる一実施形態として、「開発対象のソフトウエア」を生産するため のプログラム(ソフトウェア)、プログラム生成装置、プログラム処理装置、ツール (装置 として或いはソフトウェアとしての双方を含む)、ソフトウェア開発装置、ソフトウェア開 発支援装置、或いはソフトウエア開発管理装置のいずれかとして本発明を実施する 場合に機能として備える構成を示した機能ブロック図である。  [FIG. 16] As a different embodiment of the present invention, a program (software), a program generation device, a program processing device, a tool (including both as a device and software) for producing “software to be developed” FIG. 3 is a functional block diagram showing a configuration provided as a function when the present invention is implemented as any one of a software development device, a software development support device, and a software development management device.
圆 17]本発明の一実施形態に係る上記の構成を備えるプログラム (ソフトウェア)、プ ログラム生成装置、プログラム処理装置、ツール (装置として或いはソフトウェアとして の双方を含む)、ソフトウェア開発装置、ソフトウェア開発支援装置、或いはソフトゥェ ァ開発管理装置のいずれかとして実施される本発明の動作を示したフローチャート である。 圆 17] A program (software) having the above-described configuration according to an embodiment of the present invention, a program The operation of the present invention implemented as any of a program generation device, a program processing device, a tool (including both as a device and software), a software development device, a software development support device, and a software development management device is shown. It is a flowchart.
符号の説明 Explanation of symbols
101 同期範囲 101 Sync range
1101 基本構造 BS1 (入力) 1101 Basic structure BS1 (input)
1102 基本構造 BS2 1102 Basic structure BS2
1103 基本構造 BS3 1103 Basic structure BS3
1104 基本構造 BS1 (出力) 1104 Basic structure BS1 (Output)
1201 隣接行列 Fl, 1201 Adjacency matrix Fl,
1202 隣接行列 F2, 1202 Adjacency matrix F2,
1203 隣接行列 F3' 1203 Adjacency matrix F3 '
1204 結合隣接行列 FC1 ' 1204 Joined adjacency matrix FC1 '
1205 結合隣接行列 FC2' 1205 Joined adjacency matrix FC2 '

Claims

請求の範囲 The scope of the claims
1つのプログラムとして実装するユーザ要件を、アクセス条件を伴う論理体ごとに、 該論理体上の単語ごとに、単語名、定義式、該定義式の実行条件、入出力属性、単 語の値の属性によって宣言された単語単位の宣言から、要件充足に必要な全ての、 L2処理 (入力単語の属性チヱック処理)、 L処理(出力単語の値生成処理)、 12処理 ( 論理体入力処理)、 04処理 (論理体出力処理)の 、ずれかの宣言の実行単位を規 定する第 1のステップと、  User requirements to be implemented as a single program for each logical body with access conditions, for each word on the logical body, the word name, definition expression, execution condition of the definition expression, input / output attributes, and word value From the word unit declaration declared by the attribute, all the necessary L2 processing (input word attribute check processing), L processing (output word value generation processing), 12 processing (logical input processing), 04 process (logic output process), the first step to define the execution unit of any declaration,
前記に規定された、全ての L2処理 (入力単語の属性チェック処理)、 L処理(出力 単語の値生成処理)、 12処理 (論理体入力処理)、 04処理 (論理体出力処理)の(半 )順序関係を定義する第 2のステップと、 前記ステップによって定義された(半)順序関係で規定される前記 L2処理、 L処理 、 12処理、 04処理に対してトポロジカル 'ソートを行う第 3のステップと、  All the L2 processing (input word attribute check processing), L processing (output word value generation processing), 12 processing (logical input processing), 04 processing (logical output processing) specified in the above (half ) A second step for defining the order relationship, and a third step for performing topological 'sorting on the L2 processing, L processing, 12 processing, 04 processing defined by the (semi) order relationship defined by the step Steps,
前記第 3のステップによって並び替えられた宣言の実行単位の順序列にしたがって 該宣言実行単位に該当する Lyee方法論に基づく所与のコード列を配置する第 64の ステップと  A 64th step of allocating a given code sequence based on the Lyee methodology corresponding to the declaration execution unit according to the sequence of execution units of the declaration rearranged by the third step;
を具備することを特徴とするソフトウェア生成方法。  A software generation method comprising:
PCT/JP2004/014868 2004-10-07 2004-10-07 Software creating method WO2006038303A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2004/014868 WO2006038303A1 (en) 2004-10-07 2004-10-07 Software creating method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2004/014868 WO2006038303A1 (en) 2004-10-07 2004-10-07 Software creating method

Publications (1)

Publication Number Publication Date
WO2006038303A1 true WO2006038303A1 (en) 2006-04-13

Family

ID=36142393

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/014868 WO2006038303A1 (en) 2004-10-07 2004-10-07 Software creating method

Country Status (1)

Country Link
WO (1) WO2006038303A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117311678A (en) * 2023-08-04 2023-12-29 四川大学 Equivalent embedding method for synthesizing program module sequencing group function of AI system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001035213A1 (en) * 1999-11-11 2001-05-17 Information System Development Institute Program reproducing method and device, and medium on which a program for program reproduction recording
JP2002312167A (en) * 2001-04-13 2002-10-25 Fujitsu Ltd Program for making computer calculate value of variable, compile program, variable value determining method, and program generating method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001035213A1 (en) * 1999-11-11 2001-05-17 Information System Development Institute Program reproducing method and device, and medium on which a program for program reproduction recording
JP2002312167A (en) * 2001-04-13 2002-10-25 Fujitsu Ltd Program for making computer calculate value of variable, compile program, variable value determining method, and program generating method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NAKAMURA M. ET AL: "Jido Vector-ka compiler ni okeru Ideom Ninshikiho", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 32, no. 4, 15 April 1991 (1991-04-15), pages 491 - 503, XP002979816 *
SAKAMOTO K. ET AL: "Heiretsu KLIC Shorikeijo deno Hairetsu Enzan no Saitekika (Optimizing array processing of parallel KLIC)", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 42, no. SIG 3 (PRO 10), 15 March 2001 (2001-03-15), pages 1 - 13, XP002998967 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117311678A (en) * 2023-08-04 2023-12-29 四川大学 Equivalent embedding method for synthesizing program module sequencing group function of AI system
CN117311678B (en) * 2023-08-04 2024-06-04 四川大学 Equivalent embedding method for synthesizing program module sequencing group function of AI system

Similar Documents

Publication Publication Date Title
Buckner et al. JRipples: A tool for program comprehension during incremental change
JP7439242B2 (en) Visual creation and monitoring of machine learning models
Grif et al. Methods of desingning and modeling of man-machine systems
CN104794527A (en) Method and equipment for constructing classification model based on convolutional neural network
CN108228187B (en) Global optimization method of numerical program
US20070169006A1 (en) Software generation method
Kravets et al. Intelligent multi-agent systems generation
Chen et al. Knowledge-based support for simulation analysis of manufacturing cells
Mandorli et al. Negative knowledge and a novel approach to support MCAD education
Johansson Lemma discovery for induction: a survey
Hassan et al. A framework of software project scope definition elements: An ISM-DEMATEL approach
US11610134B2 (en) Techniques for defining and executing program code specifying neural network architectures
Weyers et al. Formal modeling and reconfiguration of user interfaces for reduction of errors in failure handling of complex systems
Fumagalli et al. Towards automated support for conceptual model diagnosis and repair
Lerchner et al. An open S-BPM runtime environment based on abstract state machines
WO2006030809A1 (en) Software generating method
WO2006038303A1 (en) Software creating method
Qian et al. Structural descriptions of process models based on goal-oriented unfolding
Siriweera et al. Constraint-driven complexity-aware data science workflow for AutoBDA
JPWO2004068342A1 (en) Software development pre-processing method, software control method, software development method, and software development apparatus
Pileggi et al. Ontology in software engineering
CN108780416A (en) Analysis to recurrence processing
Peña-Mora et al. Design rationale and design patterns in reusable software design
Broll et al. Deepforge: An open source, collaborative environment for reproducible deep learning
Kulkarni et al. From Building Systems Right to Building Right Systems: A Generic Architecture and Its Model Based Realization

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP