WO2026000006A1 - Method for functional analysis of a source system - Google Patents
Method for functional analysis of a source systemInfo
- Publication number
- WO2026000006A1 WO2026000006A1 PCT/AT2025/060255 AT2025060255W WO2026000006A1 WO 2026000006 A1 WO2026000006 A1 WO 2026000006A1 AT 2025060255 W AT2025060255 W AT 2025060255W WO 2026000006 A1 WO2026000006 A1 WO 2026000006A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- language
- syntax
- embedding
- embeddings
- query
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/74—Reverse engineering; Extracting design information from source code
Definitions
- the invention relates to a method for functional analysis of a source system, wherein a syntax tree model is generated from the program code data of the source system.
- US20240020116A1 discloses a method for generating natural language elements based on program code data of a system.
- a machine learning model is trained using program code data with known functionality and natural language elements associated with this program code data, after which natural language elements are generated from unknown program code data. Based on these result elements Summaries, code documentation, and translations can be created using a large language model. Additionally, program code data can be generated from a natural language query.
- a disadvantage of this method is that only language elements with a known function can be recognized.
- the invention is therefore based on the objective of proposing a method for the functional analysis of a source system of the type described above, in particular with extensive program code data, which makes it possible to better identify related functional units and to improve further processing by a large language model while maintaining high result quality and simultaneously requiring low resources.
- the invention solves the stated problem by using a syntax analysis unit to generate a syntax embedding model by decomposing the syntax tree model into individual syntax element embeddings, each representing a syntax element, and storing them in a syntax embedding model memory; and by using a language analysis unit to generate a language embedding model by decomposing the program code data into individual language element embeddings, each representing a language element, and storing them in a language embedding model memory; after which a query unit retrieves a functional element from the source system.
- At least one query embedding is created, and those syntax element embeddings and language element embeddings that lie within a predefined similarity range to the query embedding are retrieved from the syntax element embedding model memory and the language element embedding model memory.
- the syntax elements and language elements represented by these retrieved embeddings are then passed as result elements to an output unit, which generates and outputs a function description record.
- the query unit can preferably generate two query embeddings from the query, one for the language embedding model and one for the syntax embedding model. This is particularly necessary when the dimensions of the embedding models differ.
- Key-value mappings which assign syntax and language elements to individual keys, can be used as the simplest embedding models.
- Vector space models can also be used as embedding models, so that the language and syntax element embeddings are accordingly implemented as language and syntax element vectors.
- the query embeddings can be implemented as query vectors, where the dimension of a first query vector corresponds to the dimension of the language vector space and the dimension of a second query vector corresponds to the dimension of the syntax vector space.
- graph embedding models can also be used as embedding models, which define individual syntax and language elements via their relationships to other syntax and language elements.
- the similarity range in particular the distance between the language and syntax element embeddings on the one hand and the respective query embeddings on the other, can be determined, especially in the embodiment of vector space models, for example, by their cosine similarity.
- other similarity measures such as the Jaro-Winkler distance, the Levenshtein distance, or the Jaccard index, can be used to determine those language and syntax element embeddings that lie within a predefined similarity range to the query embeddings.
- the similarity range can also be determined, for example, by specifying a number of syntax or language element embeddings ranked in ascending order according to their distance to the respective query embedding.
- the program code data can include both functional commands in a programming language and documentation in natural language.
- the program code data can be retrieved from the source system.
- the documentation data of the source system be decomposed by the language analysis unit into individual language element embeddings, each representing a language element. These embeddings are then added to the language embedding model and stored in the language embedding model memory. This enriches the language element embeddings already present in the language embedding model memory and assignable to individual program code sections with additional information. This additional information is not derived from the program code data itself, but from other documentation data, such as specifications, project documentation, case management system data, or manuals.
- the output unit can generate an inference dataset for a large language model from the result elements and pass it to an inference platform, after which the inference response is output as a function description dataset.
- This has the advantage that a relatively small, yet highly specific inference dataset can be generated from the result elements, preventing potential hallucinations arising from the large language model.
- This allows the respective inference platform to be used more reliably to reduce the level of abstraction of the result elements and to resolve potential contradictions or fill gaps using generally available information.
- the inference dataset allows the inference response to be adapted as a function description dataset to a target system that may differ in its architecture from the source system.
- Generative pretrained transformers (GPTs) for example, can be used as large language models.
- the syntax tree model be programming language-independent, in particular a Generic Abstract Syntax Tree Metamodel (GASTM).
- GASTM Generic Abstract Syntax Tree Metamodel
- a syntax element can comprise one or more nodes of the syntax tree model, which preferably form functional relationships or a functional unit.
- a complete mapping of functions relevant to the source system can be achieved if a generator unit selects function elements of the source system from the syntax tree model based on predefined rules and generates a query for each function element to be passed to the query unit.
- the individual function elements of the source system are systematically selected from the syntax tree based on their syntax elements.
- a syntax tree model is selected, whereby the predefined rules can be based, for example, on specific flow patterns in call and stack tracing or on other syntactic relationships. The use of such rules makes it possible to analyze different source systems according to a common system with regard to their function and to generate function description data records for the individual function elements.
- the inventive method can improve simple porting between different system architectures if the function description data sets include program code data for a target system whose architecture differs from that of the source system. Due to these features, the output unit provides a function description data set in a machine-readable language, which is preferably directly executable on the target system and stored in a program code memory of the target system. For this purpose, the program code data contained in the function description data set can be transferred to the target system.
- the invention is illustrated in the drawing, for example, in a schematic block diagram.
- a method according to the invention comprises a source system 1, from whose program code data a syntax tree model 3 is generated using a syntax tree generator 2.
- a syntax tree model 3 By decomposing the syntax tree model 3, several syntax element embeddings 5, each representing a syntax element, can be generated by a syntax analysis unit 4, which are then stored in a Syntax embedding models are stored in a syntax embedding model memory 6.
- language element embeddings 9 can be generated in a language analysis unit 8 from both the program code data of the source system 1 and from documentation data 7 of the source system 1 that is available in natural language, and these are stored in a language embedding model in a language embedding model memory 10.
- query embeddings 13 can be generated in a query unit 12, the dimension of which in a preferred embodiment corresponds to the dimension of the language or
- syntax embedding model This corresponds to the syntax embedding model. From the syntax embedding model memory 6 and the language embedding model memory 10, those syntax element embeddings 5 and language element embeddings 9 that lie within a predefined similarity range, in particular at a predefined distance, to the query embeddings 13 are then retrieved and passed as result elements 14 to an output unit 15. In the output unit 15, a function description data record 16 is then generated from the result elements 14.
- the output unit 15 can first generate an inference data set 17 for a large language model from the received result elements 14 and transfer it to an inference platform 18.
- the inference response 19 can then be used in the output unit 15 to create the function description data set 16, in particular to form the function description data set 16.
- the query 11 can be created in a generator unit 20 based on the functional elements of the syntax tree model 3.
- the functional description data set 16 resulting from the procedure can include program code data for a target system 21 whose architecture differs from that of the source system 1. ⁇
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
Description
Verfahren zur eines Procedures for one
Technisches Gebiet Technical field
Die Erfindung bezieht sich auf ein Verfahren zur Funktionsanalyse eines Quellsystems, wobei aus den Programmcodedaten des Quellsystems ein Syntaxbaummodell erzeugt wird. The invention relates to a method for functional analysis of a source system, wherein a syntax tree model is generated from the program code data of the source system.
Stand der Technik State of the art
Zur automatischen Funktionsanalyse von computerimplementierten Systemen ist es beispielsweise aus der US20220261241A1 bekannt, aus den Programmcodedaten eines Systems einen Syntaxbaum zu erstellen und mithilfe eines neuronalen Netzwerkes einen Funktionsbeschreibungstext in natürlicher Sprache zu erzeugen. Das neuronale Netzwerk wird dabei sowohl anhand bekannter Spezifikationen der eingesetzten Programmiersprache als auch anhand eines Trainingssets von open-source Programmcodedatenbanken trainiert. Nachteilig an einem derartigen Verfahren ist, dass die aus dem Syntaxbaum ableitbaren Informationen bestehende Dokumentation nicht berücksichtigen, inhaltlich zusammenhängende Funktionselemente nur unzureichend erkannt und der Funktionsbeschreibungstext in natürlicher Sprache nur einen geringen Abstraktionsgrad erreicht, sodass eine manuelle Analyse des Programmcodes vielfach erforderlich ist. For the automated functional analysis of computer-implemented systems, it is known, for example, from US20220261241A1, to create a syntax tree from the system's program code data and to generate a function description text in natural language using a neural network. The neural network is trained using both known specifications of the programming language employed and a training set of open-source program code databases. A disadvantage of such a method is that it does not consider the documentation derived from the syntax tree, recognizes related functional elements only inadequately, and the function description text in natural language achieves only a low level of abstraction, so that manual analysis of the program code is often necessary.
Die US20240020116A1 zeigt ein Verfahren zur Erzeugung natürlicher Sprachelemente basierend auf Programmcodedaten eines Systems. Ein Modell für maschinelles Lernen wird dabei mithilfe von Programmcodedaten mit bekannter Funktion und diesen Programmcodedaten zugeordneten natürlichen Sprachelementen trainiert, wonach natürliche Sprachelemente aus unbekannten Programmcodedaten generiert werden. Auf Basis dieser Ergebniselemente können mithilfe eines großen Sprachmodells Zusammenfassungen, Code Dokumentation oder Übersetzungen erstellt werden. Zusätzlich können aus einer Abfrage in natürlicher Sprache Programmcodedaten generiert werden. Nachteilig an diesem Verfahren ist, dass ausschließlich Sprachelemente mit vorbekannter Funktion erkannt werden können. US20240020116A1 discloses a method for generating natural language elements based on program code data of a system. A machine learning model is trained using program code data with known functionality and natural language elements associated with this program code data, after which natural language elements are generated from unknown program code data. Based on these result elements Summaries, code documentation, and translations can be created using a large language model. Additionally, program code data can be generated from a natural language query. A disadvantage of this method is that only language elements with a known function can be recognized.
Darüber hinaus wurde bereits vorgeschlagen, eine Funktionsanalyse von Programmcodedaten direkt durch Inferenz mit einem großen Sprachmodell zu erzeugen. Nachteilig daran sind allerdings einerseits die limitierte Größe des Inferenzdatensatzes und andererseits die für große Sprachmodelle typischen Halluzinationen sowie Ungenauigkeiten in der Funktionsbeschreibung, die die Funktionsanalyse von Quellsystemen mit umfangreichen Programmcodedaten unmöglich machen. Furthermore, it has already been proposed to generate a functional analysis of program code data directly through inference with a large language model. However, disadvantages of this approach include, on the one hand, the limited size of the inference dataset and, on the other hand, the hallucinations and inaccuracies in the functional description typical of large language models, which make the functional analysis of source systems with extensive program code data impossible.
Darstellung der Erfindung Description of the invention
Der Erfindung liegt somit die Aufgabe zugrunde, ein Verfahren zur Funktionsanalyse eines Quellsystems der eingangs beschriebenen Art, insbesondere mit umfangreichen Programmcodedaten, vorzuschlagen, welches es ermöglicht, zusammenhängende Funktionseinheiten besser zu erkennen und bei hoher Ergebnisqualität und gleichzeitig geringen Ressourcenanforderungen die Weiterverarbeitung durch ein großes Sprachmodell zu verbessern. The invention is therefore based on the objective of proposing a method for the functional analysis of a source system of the type described above, in particular with extensive program code data, which makes it possible to better identify related functional units and to improve further processing by a large language model while maintaining high result quality and simultaneously requiring low resources.
Die Erfindung löst die gestellte Aufgabe dadurch, dass durch eine Syntaxanalyseeinheit ein Syntaxeinbettungsmodell durch Zerlegen des Syntaxbaummodells in einzelne, je ein Syntaxelement repräsentierende Syntaxelementeinbettungen erzeugt und in einem Syntaxeinbettungsmodellspeicher abgelegt wird und dass durch eine Sprachanalyseeinheit ein Spracheinbettungsmodell durch Zerlegen der Programmcodedaten in einzelne, je ein Sprachelement repräsentierende Sprachelementeinbettungen erzeugt und in einem Spracheinbettungsmodellspeicher abgelegt wird, wonach durch eine Abfrageeinheit aus einer, ein Funktionselement des Quellsystems repräsentierenden Abfrage wenigstens eine Abfrageeinbettung erzeugt und aus dem Syntaxeinbettungsmodellspeicher und dem Spracheinbettungsmodellspeicher jene Syntaxelementeinbettungen und Sprachelementeinbettungen abgerufen werden, die innerhalb eines vorgegebenen Ähnlichkeitsbereiches zur Abfrageeinbettung liegen, wonach die durch die abgerufenen Syntaxelementeinbettungen repräsentierten Syntaxelemente und die durch die abgerufenen Sprachelementeinbettungen repräsentierten Sprachelemente als Ergebniselemente einer Ausgabeeinheit übergeben werden, die daraus einen Funktionsbeschreibungsdatensatz erzeugt und ausgibt. Zufolge dieser Maßnahmen können auch sehr umfangreiche Programmcodedaten sowohl hinsichtlich der Programmlogik als auch hinsichtlich etwaiger im Programmcode enthaltener Kommentare und Dokumentationen in natürlicher Sprache in kleinere Funktionselemente zerlegt werden, wobei die Ergebniselemente die Aspekte des jeweiligen Funktionselementes selbst bei verteilten Programmcodeteilen so umfangreich charakterisieren, dass trotz reduziertem Ressourcenverbrauch ein vollständiger Funktionsbeschreibungsdatensatz erzeugt werden kann. Die Abfrageeinheit kann aus der Abfrage vorzugsweise zwei Abfrageeinbettungen erzeugen, wobei je eine Abfrageeinbettung für das Spracheinbettungsmodell und eine Abfrageeinbettung für das Syntaxeinbettungsmodell vorgesehen sein kann. Dies ist insbesondere dann erforderlich, wenn die Dimensionen der Einbettungsmodelle voneinander abweichen. Als Einbettungsmodelle können in einfachster Weise Schlüssel-Wert Zuordnungen vorgesehen sein, die Syntax- und Sprachelemente einzelnen Schlüsseln zuweisen. Als Einbettungsmodelle können auch Vektorraummodelle eingesetzt werden, sodass die Sprach- und Syntaxelementeinbettungen dementsprechend als Sprach- und Syntaxelementvektoren erfolgen. Im Fall von Vektorraummodellen als Einbettungsmodelle können die Abfrageeinbettungen als Abfragevektoren vorgesehen sein, wobei die Dimension eines ersten Abfragevektors der Dimension des Sprachvektorraumes entspricht und die Dimension eines zweiten Abfragevektors der Dimension des Syntaxvektorraumes entspricht. Schließlich können als Einbettungsmodelle auch Grapheinbettungsmodelle eingesetzt werden, die einzelne Syntax- und Sprachelemente über ihre Beziehungen zu anderen Syntax- und Sprachelementen abbilden. Der Ähnlichkeitsbereich, insbesondere der Abstand zwischen den Sprach- und Syntaxelementeinbettungen auf der einen und den jeweiligen Abfrageeinbettungen auf der anderen Seite, kann insbesondere in der Ausführungsform von Vektorraummodellen beispielsweise durch deren Kosinus- Ähnlichkeit bestimmt werden. Alternativ können andere Ähnlichkeitsmaße wie beispielsweise die Jaro-Winkler Distanz, die Levenshtein Distanz oder der Jaccard Index zur Bestimmung derjenigen Sprach- und Syntaxelementeinbettungen, die innerhalb eines vorgegebenen Ähnlichkeitsbereichs zu den Abfrageeinbettungen liegen, herangezogen werden. Der Ähnlichkeitsbereich kann beispielsweise auch dadurch bestimmt werden, dass eine Anzahl von nach Ihrer Distanz zur jeweiligen Abfrageeinbettung aufsteigend gereihter Syntax- bzw. Sprachelementeinbettungen vorgeben wird. Die Programmcodedaten können sowohl funktionale Befehle in einer Programmiersprache als auch Dokumentation in natürlicher Sprache umfassen. Die Programmcodedaten können vom Quellsystem abgerufen werden. The invention solves the stated problem by using a syntax analysis unit to generate a syntax embedding model by decomposing the syntax tree model into individual syntax element embeddings, each representing a syntax element, and storing them in a syntax embedding model memory; and by using a language analysis unit to generate a language embedding model by decomposing the program code data into individual language element embeddings, each representing a language element, and storing them in a language embedding model memory; after which a query unit retrieves a functional element from the source system. For each query representing the query, at least one query embedding is created, and those syntax element embeddings and language element embeddings that lie within a predefined similarity range to the query embedding are retrieved from the syntax element embedding model memory and the language element embedding model memory. The syntax elements and language elements represented by these retrieved embeddings are then passed as result elements to an output unit, which generates and outputs a function description record. As a result of these measures, even very large program code data, with regard to both program logic and any comments and documentation in natural language contained within the program code, can be decomposed into smaller function elements. The result elements characterize the aspects of the respective function element so comprehensively, even in distributed program code segments, that a complete function description record can be generated despite reduced resource consumption. The query unit can preferably generate two query embeddings from the query, one for the language embedding model and one for the syntax embedding model. This is particularly necessary when the dimensions of the embedding models differ. Key-value mappings, which assign syntax and language elements to individual keys, can be used as the simplest embedding models. Vector space models can also be used as embedding models, so that the language and syntax element embeddings are accordingly implemented as language and syntax element vectors. In the case of vector space models as embedding models, the query embeddings can be implemented as query vectors, where the dimension of a first query vector corresponds to the dimension of the language vector space and the dimension of a second query vector corresponds to the dimension of the syntax vector space. Finally, graph embedding models can also be used as embedding models, which define individual syntax and language elements via their relationships to other syntax and language elements. The similarity range, in particular the distance between the language and syntax element embeddings on the one hand and the respective query embeddings on the other, can be determined, especially in the embodiment of vector space models, for example, by their cosine similarity. Alternatively, other similarity measures, such as the Jaro-Winkler distance, the Levenshtein distance, or the Jaccard index, can be used to determine those language and syntax element embeddings that lie within a predefined similarity range to the query embeddings. The similarity range can also be determined, for example, by specifying a number of syntax or language element embeddings ranked in ascending order according to their distance to the respective query embedding. The program code data can include both functional commands in a programming language and documentation in natural language. The program code data can be retrieved from the source system.
Um trotz unvollständig dokumentierter Programmcodedaten und über die reinen Programmcodedaten hinausgehender Architekturkonzepte einen vollständigen Funktionsbeschreibungsdatensatz erzeugen zu können, wird vorgeschlagen, dass zumindest abschnittsweise in natürlicher Sprache vorliegende Dokumentationsdaten des Quellsystems durch die Sprachanalyseeinheit in einzelne, je ein Sprachelement repräsentierende Sprachelementeinbettungen zerlegt werden, die dem Spracheinbettungsmodell hinzugefügt und im Spracheinbettungsmodellspeicher abgelegt werden. Dadurch werden die bereits im Spracheinbettungsmodellspeicher vorhandenen und einzelnen Programmcodestellen zuordenbare Sprachelementeinbettungen um zusätzliche Informationen angereichert, die sich zwar nicht aus den Programmcodedaten selbst, aber durch andere Dokumentationsdaten, wie beispielsweise Lasten- oder Pflichtenheften, Projektdokumentation, Fallbearbeitungssystemdaten oder Handbüchern ergeben. To generate a complete functional description dataset despite incompletely documented program code data and architectural concepts extending beyond the pure program code data, it is proposed that the documentation data of the source system, at least partially available in natural language, be decomposed by the language analysis unit into individual language element embeddings, each representing a language element. These embeddings are then added to the language embedding model and stored in the language embedding model memory. This enriches the language element embeddings already present in the language embedding model memory and assignable to individual program code sections with additional information. This additional information is not derived from the program code data itself, but from other documentation data, such as specifications, project documentation, case management system data, or manuals.
Um einerseits mögliche Lücken in den Syntax- und Sprachelementen, welche alsTo address potential gaps in the syntax and language elements, which are considered
Ergebniselemente an die Ausgabeeinheit übergeben werden, zu füllen und andererseits zu exakte oder widersprüchliche Informationen aufzulösen, kann die Ausgabeeinheit aus den Ergebniselementen einen Inferenzdatensatz für ein großes Sprachmodell erzeugen und einer Inferenzplattform übergeben, wonach die Inferenzantwort als Funktionsbeschreibungsdatensatz ausgegeben wird. Dies bringt den Vorteil mit sich, dass anhand der Ergebniselemente ein zwar verhältnismäßig kleiner, aber doch sehr spezifischer Inferenzdatensatz erzeugt werden kann, der möglichen, sich aus dem großen Sprachmodell ergebenden Halluzinationen vorbeugt. Dadurch kann die jeweilige Inferenzplattform auf zuverlässigere Weise dazu eingesetzt werden, den Abstraktionsgrad der Ergebniselemente zu verringern sowie mögliche Widersprüche anhand allgemein verfügbarer Informationen aufzulösen oder Lücken hierdurch zu füllen. Weiters kann durch den Inferenzdatensatz die Inferenzantwort als Funktionsbeschreibungsdatensatz an ein mögliches vom Quellsystem in seiner Architektur abweichendes Zielsystem angepasst werden. Als große Sprachmodelle können beispielsweise generative vortrainierte Transformer (GPT) eingesetzt werden. Result elements are passed to the output unit, to be filled and On the other hand, to resolve overly precise or contradictory information, the output unit can generate an inference dataset for a large language model from the result elements and pass it to an inference platform, after which the inference response is output as a function description dataset. This has the advantage that a relatively small, yet highly specific inference dataset can be generated from the result elements, preventing potential hallucinations arising from the large language model. This allows the respective inference platform to be used more reliably to reduce the level of abstraction of the result elements and to resolve potential contradictions or fill gaps using generally available information. Furthermore, the inference dataset allows the inference response to be adapted as a function description dataset to a target system that may differ in its architecture from the source system. Generative pretrained transformers (GPTs), for example, can be used as large language models.
Um die Anwendbarkeit des erfindungsgemäßen Verfahrens auf unterschiedliche Quellsysteme zu ermöglichen, wird vorgeschlagen, dass das Syntaxbaummodell programmierspracheunabhängig, insbesondere ein Generisches Abstraktes Syntaxbaum-Metamodell (GASTM) ist. Dies hat den Vorteil, dass das Syntaxbaummodell und damit auch der Syntaxeinbettungsmodellspeicher unabhängig von der verwendeten Programmiersprache aufgebaut und weiterverwendet werden kann. Ein Syntaxelement kann ein oder mehrere Knoten des Syntaxbaummodells umfassen, die vorzugsweise funktionell Zusammenhängen bzw. eine funktionale Einheit bilden. To enable the applicability of the method according to the invention to different source systems, it is proposed that the syntax tree model be programming language-independent, in particular a Generic Abstract Syntax Tree Metamodel (GASTM). This has the advantage that the syntax tree model, and thus also the syntax embedding model memory, can be constructed and reused independently of the programming language used. A syntax element can comprise one or more nodes of the syntax tree model, which preferably form functional relationships or a functional unit.
Eine vollständige Abbildung für das Quellsystem relevanter Funktionen kann erreicht werden, wenn eine Generatoreinheit aus dem Syntaxbaummodell Funktionselemente des Quellsystems anhand vorgegebener Regeln auswählt und je Funktionselement eine Abfrage zur Übergabe an die Abfrageeinheit erzeugt. Zufolge dieser Maßnahmen werden die einzelnen Funktionselemente des Quellsystems aufgrund ihrer Syntaxelemente systematisch aus dem Syntaxbaummodell ausgewählt, wobei die vorgebbaren Regeln beispielsweise auf bestimmten Ablaufmustern in der Aufruf- und Stapelverfolgung oder auf anderen syntaktischen Zusammenhängen beruhen können. Der Einsatz solcher Regeln ermöglicht es, unterschiedliche Quellsysteme einer gemeinsamen Systematik folgend hinsichtlich ihrer Funktion zu analysieren und für die einzelnen Funktionselemente Funktionsbeschreibungsdatensätze zu erzeugen. A complete mapping of functions relevant to the source system can be achieved if a generator unit selects function elements of the source system from the syntax tree model based on predefined rules and generates a query for each function element to be passed to the query unit. As a result of these measures, the individual function elements of the source system are systematically selected from the syntax tree based on their syntax elements. A syntax tree model is selected, whereby the predefined rules can be based, for example, on specific flow patterns in call and stack tracing or on other syntactic relationships. The use of such rules makes it possible to analyze different source systems according to a common system with regard to their function and to generate function description data records for the individual function elements.
Obwohl es grundsätzlich ausreichend sein kann, in einer bevorzugten Ausführungsform im Funktionsbeschreibungsdatensatz maschinenlesbare Informationen in einer Auszeichnungssprache vorzusehen, kann eine einfache Portierung zwischen verschiedenen Systemarchitekturen mithilfe des erfindungsgemäßen Verfahrens verbessert werden, wenn die Funktionsbeschreibungsdatensätze Programmcodedaten für ein vom Quellsystem in seiner Architektur abweichendes Zielsystem umfassen. Zufolge dieser Merkmale wird durch die Ausgabeeinheit ein Funktionsbeschreibungsdatensatz in einer maschinenlesbaren Sprache zur Verfügung gestellt, welcher vorzugsweise direkt auf dem Zielsystem ausführbar ist und in einem Programmcodespeicher des Zielsystems abgelegt wird. Zu diesem Zweck können die im Funktionsbeschreibungsdatensatz enthaltenen Programmcodedaten an das Zielsystem übertragen werden. Although it may generally be sufficient in a preferred embodiment to provide machine-readable information in a markup language within the function description data set, the inventive method can improve simple porting between different system architectures if the function description data sets include program code data for a target system whose architecture differs from that of the source system. Due to these features, the output unit provides a function description data set in a machine-readable language, which is preferably directly executable on the target system and stored in a program code memory of the target system. For this purpose, the program code data contained in the function description data set can be transferred to the target system.
Kurze Beschreibung der Erfindung Brief description of the invention
In der Zeichnung ist der Erfindungsgegenstand beispielsweise dargestellt, und zwar in einem schematischen Blockdiagramm. The invention is illustrated in the drawing, for example, in a schematic block diagram.
Wege zur Ausführung der Erfindung Ways to implement the invention
Ein erfindungsgemäßes Verfahren umfasst ein Quellsystem 1 , aus dessen Programmcodedaten mithilfe eines Syntaxbaumgenerators 2 ein Syntaxbaummodell 3 erzeugt wird. Durch Zerlegung des Syntaxbaummodells 3 können durch eine Syntaxanalyseeinheit 4 mehrere, je ein Syntaxelement repräsentierende Syntaxelementeinbettungen 5 erzeugt werden, welche in einem Syntaxeinbettungsmodell in einem Syntaxeinbettungsmodellspeicher 6 abgelegt werden. Parallel können sowohl aus den Programmcodedaten des Quellsystems 1 als auch aus in natürlicher Sprache vorliegenden Dokumentationsdaten 7 des Quellsystems 1 in einer Sprachanalyseeinheit 8 Sprachelementeinbettungen 9 generiert werden, welche in einem Spracheinbettungsmodell in einem Spracheinbettungsmodellspeicher 10 abgelegt werden. A method according to the invention comprises a source system 1, from whose program code data a syntax tree model 3 is generated using a syntax tree generator 2. By decomposing the syntax tree model 3, several syntax element embeddings 5, each representing a syntax element, can be generated by a syntax analysis unit 4, which are then stored in a Syntax embedding models are stored in a syntax embedding model memory 6. In parallel, language element embeddings 9 can be generated in a language analysis unit 8 from both the program code data of the source system 1 and from documentation data 7 of the source system 1 that is available in natural language, and these are stored in a language embedding model in a language embedding model memory 10.
Basierend auf einer Abfrage 11 können in einer Abfrageeinheit 12 mehrere Abfrageeinbettungen 13 erzeugt werden, deren Dimension in einer bevorzugten Ausführungsform jeweils der Dimension des Sprach- bzw. Based on a query 11, several query embeddings 13 can be generated in a query unit 12, the dimension of which in a preferred embodiment corresponds to the dimension of the language or
Syntaxeinbettungsmodells entspricht. Aus dem Syntaxeinbettungsmodellspeicher 6 und dem Spracheinbettungsmodellspeicher 10 werden anschließend diejenigen Syntaxelementeinbettungen 5 und Sprachelementeinbettungen 9, welche innerhalb eines vorgegebenen Ähnlichkeitsbereichs, insbesondere in einem vorgegebenen Abstand, zu den Abfrageeinbettungen 13 liegen, abgerufen und als Ergebniselemente 14 an eine Ausgabeeinheit 15 übergeben. In der Ausgabeeinheit 15 wird daraufhin aus den Ergebniselementen 14 ein Funktionsbeschreibungsdatensatz 16 erzeugt. This corresponds to the syntax embedding model. From the syntax embedding model memory 6 and the language embedding model memory 10, those syntax element embeddings 5 and language element embeddings 9 that lie within a predefined similarity range, in particular at a predefined distance, to the query embeddings 13 are then retrieved and passed as result elements 14 to an output unit 15. In the output unit 15, a function description data record 16 is then generated from the result elements 14.
Vorzugsweise kann die Ausgabeeinheit 15 aus den erhaltenen Ergebniselementen 14 vorerst einen Inferenzdatensatz 17 für ein großes Sprachmodell generieren und einer Inferenzplattform 18 übergeben. Die Inferenzantwort 19 kann schließlich in der Ausgabeeinheit 15 zur Erstellung des Funktionsbeschreibungsdatensatzes 16 dienen, insbesondere den Funktionsbeschreibungsdatensatz 16 bilden. Preferably, the output unit 15 can first generate an inference data set 17 for a large language model from the received result elements 14 and transfer it to an inference platform 18. The inference response 19 can then be used in the output unit 15 to create the function description data set 16, in particular to form the function description data set 16.
In der gezeigten Ausführungsform kann die Abfrage 11 in einer Generatoreinheit 20 auf Basis der Funktionselemente des Syntaxbaummodells 3 erstellt werden. In the embodiment shown, the query 11 can be created in a generator unit 20 based on the functional elements of the syntax tree model 3.
Der aus dem Verfahren resultierende Funktionsbeschreibungsdatensatz 16 kann Programmcodedaten für ein vom Quellsystem 1 in seiner Architektur abweichendes Zielsystem 21 umfassen. The functional description data set 16 resulting from the procedure can include program code data for a target system 21 whose architecture differs from that of the source system 1. ```
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ATA50520/2024 | 2024-06-25 | ||
| AT505202024 | 2024-06-25 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2026000006A1 true WO2026000006A1 (en) | 2026-01-02 |
Family
ID=96346087
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/AT2025/060255 Pending WO2026000006A1 (en) | 2024-06-25 | 2025-06-24 | Method for functional analysis of a source system |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2026000006A1 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20220261241A1 (en) | 2021-02-17 | 2022-08-18 | Open Weaver Inc. | Methods and systems for automated software natural language documentation |
| US20240020116A1 (en) | 2022-07-14 | 2024-01-18 | OpenAI Opco, LLC | Systems and methods for generating natural language using language models trained on computer code |
-
2025
- 2025-06-24 WO PCT/AT2025/060255 patent/WO2026000006A1/en active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20220261241A1 (en) | 2021-02-17 | 2022-08-18 | Open Weaver Inc. | Methods and systems for automated software natural language documentation |
| US20240020116A1 (en) | 2022-07-14 | 2024-01-18 | OpenAI Opco, LLC | Systems and methods for generating natural language using language models trained on computer code |
Non-Patent Citations (1)
| Title |
|---|
| NEAMTIU IULIAN ET AL: "Understanding source code evolution using abstract syntax tree matching", SOFTWARE ENGINEERING NOTES, ACM, NEW YORK, NY, US, vol. 30, no. 4, 17 May 2005 (2005-05-17), pages 1 - 5, XP058494788, ISSN: 0163-5948, DOI: 10.1145/1082983.1083143 * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2000011581A1 (en) | Method for advanced quantity-based cost allocation using different information sources | |
| DE69532307T2 (en) | Expression propagation for hierarchical net lists | |
| DE10149693A1 (en) | Objects in a computer system | |
| EP2439691A1 (en) | Method and device for mechanical production of a process diagram | |
| DE10026478A1 (en) | Generating method for application specific input files, involves preparing application specific files by canon-like transformation from generated object descriptions in XML representation | |
| EP3568757A1 (en) | Method for generating source code | |
| EP2601594A1 (en) | Method and apparatus for automatically processing data in a cell format | |
| WO2026000006A1 (en) | Method for functional analysis of a source system | |
| DE102022209618A1 (en) | Method for simulating a forming tool for producing a component for a motor vehicle, computer program product and electronic computing device | |
| DE10103845A1 (en) | computer system | |
| DE19831651C1 (en) | Method for generating a controllable and adaptable network of models of behavior patterns, including software systems | |
| DE102016214666A1 (en) | Method and device for designing a technical system | |
| EP3432139B1 (en) | A computer implemented method for generating computer program code | |
| DE102004023634B4 (en) | Method for checking the completeness and consistency of an information library | |
| WO2015172814A1 (en) | Method and engineering tool for automating an industrial system | |
| DE10131438B4 (en) | Process for developing a technical component | |
| WO1999060497A1 (en) | Method for carrying out the computer-aided simulation of a technical system | |
| WO2024132912A1 (en) | Method and system for handling product-specific information for a product system | |
| DE102024103861A1 (en) | Method for generating software components | |
| DE10109876B4 (en) | Method and device for data management | |
| DE102024002463A1 (en) | AI-supported business intelligence | |
| WO2025078229A1 (en) | Method for providing a work schedule for manufacturing a component, computer program and data storage medium | |
| DE60121445T2 (en) | Memory management for speech dialogue system | |
| DE102017207999A1 (en) | Method for the computer-aided processing of digital production data for the production of one or more products | |
| WO2025168430A1 (en) | Computer-implemented method for providing artifacts for a simulation of a real device |