IT202300003927A1 - METHOD FOR CONVERTING A SOURCE CODE AND COMPUTER PROGRAM TO IMPLEMENT THE SAID METHOD - Google Patents

METHOD FOR CONVERTING A SOURCE CODE AND COMPUTER PROGRAM TO IMPLEMENT THE SAID METHOD Download PDF

Info

Publication number
IT202300003927A1
IT202300003927A1 IT102023000003927A IT202300003927A IT202300003927A1 IT 202300003927 A1 IT202300003927 A1 IT 202300003927A1 IT 102023000003927 A IT102023000003927 A IT 102023000003927A IT 202300003927 A IT202300003927 A IT 202300003927A IT 202300003927 A1 IT202300003927 A1 IT 202300003927A1
Authority
IT
Italy
Prior art keywords
metadata
template
code
source code
electronic processor
Prior art date
Application number
IT102023000003927A
Other languages
Italian (it)
Inventor
Enrico Bianchi
Stefano Andrea Bassi
Original Assignee
Hornet Tech International S R L
Stefano Andrea Bassi
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 Hornet Tech International S R L, Stefano Andrea Bassi filed Critical Hornet Tech International S R L
Priority to IT102023000003927A priority Critical patent/IT202300003927A1/en
Publication of IT202300003927A1 publication Critical patent/IT202300003927A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

Landscapes

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

Description

METODO PER LA CONVERSIONE DI UN CODICE SORGENTE E PROGRAMMA PER ELABORATORE PER IMPLEMENTARE DETTO METODO METHOD FOR CONVERTING A SOURCE CODE AND COMPUTER PROGRAM TO IMPLEMENT THE SAID METHOD

DESCRIZIONE DESCRIPTION

Campo di applicazione Scope of application

La presente invenzione si riferisce ad un metodo per la conversione di un codice sorgente e ad un programma per elaboratore per implementare tale metodo. The present invention relates to a method for converting a source code and to a computer program for implementing such method.

Il metodo e il programma di cui trattasi si inseriscono nel settore dell?informatica, ed in particolare nel settore dello sviluppo di programmi per elaboratore destinati ad essere applicati in diversi settori, ad esempio in quello delle piattaforme informatiche dei sistemi bancari. The method and the program in question are part of the IT sector, and in particular of the development of computer programs intended for application in various sectors, for example in that of IT platforms for banking systems.

In particolare, il metodo e l?applicazione in oggetto sono destinati ad essere impiegati per convertire un codice sorgente di un programma da un linguaggio di programmazione (ad esempio Cobol) un differente linguaggio di programmazione. In particular, the method and application in question are intended to be used to convert the source code of a program from one programming language (e.g. Cobol) to a different programming language.

Stato della tecnica State of the art

Come ? noto, ? largamente diffuso nel settore informatico l?impiego di linguaggi di programmazione ad alto livello, che consentono ai programmatori di sviluppare programmi informatici senza dover operare direttamente sul linguaggio macchina e senza dover conoscere le specifiche strutture del processore o dei processori che eseguiranno tali programmi. As is well known, the use of high-level programming languages is widespread in the IT sector, which allow programmers to develop computer programs without having to operate directly on machine language and without having to know the specific structures of the processor or processors that will execute such programs.

? sempre maggiormente sentito negli ultimi anni la necessit? di convertire programmi gi? esistenti dall?originario linguaggio di programmazione in cui sono stati scritti (ad esempio Cobol) in un diverso linguaggio di programmazione, al fine di eseguire le funzionalit? di tale programma con linguaggi di programmazione (come Java, Swift, Python, C++, C#, ecc.) che consentono di utilizzare diversi paradigmi di programmazione (ad esempio, orientata agli oggetti, strutturata, imperativa, funzionale, ad eventi, ecc.) basati su architetture pi? moderne, come un?architettura a microservizi, containerizzata, distribuibile su piattaforme Cloud-base, ecc. In recent years, there has been an increasing need to convert existing programs from the original programming language in which they were written (e.g. Cobol) into a different programming language, in order to execute the functionalities of that program with programming languages (such as Java, Swift, Python, C++, C#, etc.) that allow the use of different programming paradigms (e.g. object-oriented, structured, imperative, functional, event-based, etc.) based on more modern architectures, such as a microservices architecture, containerized, distributable on Cloud-based platforms, etc.

Un tale attivit? di conversione di linguaggi di programmazione, se eseguita manualmente, pu? richiedere al programmatore un elevato sforzo in termini di energie e di tempo richiesto, nonch? con la probabilit? di commettere pi? errori nella scrittura del codice nel nuovo linguaggio di programmazione. Such a programming language conversion activity, if performed manually, can require a high effort from the programmer in terms of energy and time required, as well as with the probability of making more mistakes when writing code in the new programming language.

Per tale motivo, sono stati sviluppate diverse tecniche per convertire in maniera automatizzata un codice sorgente da un linguaggio di programmazione all?altro. Una tecnica particolarmente diffusa e quella denominata ?compiler to compiler?, la quale prevede lo sviluppo di metaprogrammi che eseguono la traduzione del codice istruzione per istruzione. For this reason, several techniques have been developed to automatically convert source code from one programming language to another. A particularly widespread technique is called "compiler to compiler", which involves the development of metaprograms that translate the code instruction by instruction.

Tale tecnica, tuttavia, non ? scevra di inconvenienti. This technique, however, is not without drawbacks.

In particolare, la traduzione istruzione per istruzione pu? compromettere l?efficienza del codice nel nuovo linguaggio di programmazione, nonch? ridurne sensibilmente la leggibilit?. In particular, translating instruction by instruction can compromise the efficiency of the code in the new programming language, as well as significantly reduce its readability.

Inoltre, la traduzione istruzione per istruzione rende il metaprogramma particolarmente pesante quando viene eseguito dal computer. Furthermore, the instruction-by-instruction translation makes the metaprogram particularly heavy when executed by the computer.

? altres? noto una diversa tecnica per adattare codici di programmi scritti in vecchi linguaggi di programmazione alle attuali evoluzioni informatiche, la quale prevede l?impiego dei cosiddetti ambienti di runtime. Tale tecnica prevede lo sviluppo di un programma interprete che eseguire il programma (senza tradurne il codice) in un differente ambiente informatico (detto ambiente di runtime), che ? in grado di caricare tutte le applicazioni del programma e di eseguirle su una determinata piattaforma. ? also known is a different technique for adapting program codes written in old programming languages to current computer developments, which involves the use of so-called runtime environments. This technique involves the development of an interpreter program that runs the program (without translating its code) in a different computer environment (called runtime environment), which is able to load all the applications of the program and run them on a given platform.

Anche tale soluzione tuttavia presenta importanti limitazioni. However, this solution also has important limitations.

In particolare, l?esecuzione del codice in ambente di runtime risulta molto lenta, perch? il codice ? eseguito su un ambiente meno performante e necessita di un?elaborazione aggiuntiva da parte del programma interprete prima che le funzionalit? possano essere implementate dalla CPU del computer. In particular, code execution in the runtime environment is very slow, because the code is executed in a less performant environment and requires additional processing by the interpreter program before the functionality can be implemented by the computer's CPU.

Presentazione dell?invenzione Presentation of the invention

Scopo principale della presente invenzione ? pertanto quello di ovviare agli inconvenienti manifestati dalle soluzioni di tipo noto, mettendo a disposizione un metodo per la conversione di un codice sorgente e un programma per elaboratore per implementare tale metodo, i quali consentano convertire un codice sorgente da un linguaggio di programmazione ad un diverso linguaggio di programmazione in maniera particolarmente performante ed efficiente. The main purpose of the present invention is therefore to overcome the drawbacks manifested by the known solutions, by providing a method for the conversion of a source code and a computer program to implement this method, which allow the conversion of a source code from a programming language to a different programming language in a particularly high-performance and efficient manner.

Un altro scopo della presente invenzione ? quello di mettere a disposizione un metodo per la conversione di un codice sorgente e un programma per elaboratore per implementare tale metodo, i quali consentano di eseguire la conversione del codice in tempi particolarmente rapidi. Another object of the present invention is to provide a method for converting source code and a computer program for implementing such method, which allow the conversion of the code to be performed in particularly rapid times.

Un altro scopo della presente invenzione ? quello di mettere a disposizione un metodo per la conversione di un codice sorgente ed un programma per elaboratore per implementare tale metodo, i quali generino un codice facilmente leggibile. Another object of the present invention is to provide a method for converting source code and a computer program for implementing such method, which generate easily readable code.

Breve descrizione dei disegni Brief description of the drawings

Le caratteristiche tecniche dell?invenzione, secondo i suddetti scopi, sono chiaramente riscontrabili dal contenuto delle rivendicazioni sotto riportate ed i vantaggi della stessa risulteranno maggiormente evidenti dalla descrizione dettagliata che segue, fatta con riferimento ai disegni allegati, che ne rappresentano una forma di realizzazione puramente esemplificativa e non limitativa, in cui: The technical characteristics of the invention, according to the aforementioned purposes, are clearly evident from the content of the claims reported below and the advantages of the same will be more evident from the detailed description that follows, made with reference to the attached drawings, which represent a purely exemplifying and non-limiting embodiment thereof, in which:

? la figura 1 e la figura 2 mostrano rispettive parti di uno schema a blocchi che illustra le principali fasi del metodo in oggetto; ? Figure 1 and Figure 2 show respective parts of a block diagram illustrating the main phases of the method in question;

? la figura 3 mostra un?interfaccia del programma in oggetto con indicate pi? classi di metadati; ? Figure 3 shows an interface of the program in question with several metadata classes indicated;

? la figura 4 mostra l?interfaccia del programma in oggetto con indicati i metadati di una classe di metadati; ? Figure 4 shows the interface of the program in question with the metadata of a metadata class indicated;

? la figura 5 mostra un esempio di un codice template impiegato nel metodo e nel programma in oggetto; ? Figure 5 shows an example of a template code used in the method and program in question;

? la figura 6 mostra una porzione tradotta di codice sorgente convertito ottenuta dal codice template di figura 5. ? Figure 6 shows a translated portion of converted source code obtained from the template code in Figure 5.

Descrizione dettagliata di un esempio di realizzazione preferita Con riferimento alle figure allegate, ? descritto nel seguito un esempio realizzativo, non limitativo del metodo per la conversione di un codice sorgente e del relativo programma per elaboratore. Detailed description of a preferred embodiment With reference to the attached figures, a non-limiting embodiment of the method for converting a source code and the related computer program is described below.

Il metodo ed il programma in oggetto sono destinati ad essere implementati mediante almeno un elaboratore elettronico 1, in particolare di tipo di per s? convenzionale, quale ad esempio un computer, un server, un tablet, uno smartphone, ecc. The method and the program in question are intended to be implemented by means of at least one electronic processor 1, in particular of a conventional type in itself, such as for example a computer, a server, a tablet, a smartphone, etc.

In particolare, il programma in oggetto pu? essere installato in un solo elaboratore, ad esempio il computer di un programmatore, oppure essere installato, almeno in parte, in un server (anche in cloud) ed essere accessibile tramite dispositivi client collegati al server ? dotati eventualmente di apposito applicativo del programma per accedere alle funzionalit? di quest?ultimo implementate dalla parte di programma installata nel server. In particular, the program in question may be installed on a single computer, for example a programmer's computer, or be installed, at least in part, on a server (even in the cloud) and be accessible via client devices connected to the server - possibly equipped with a specific application of the program to access the functions of the latter implemented by the part of the program installed on the server.

Vantaggiosamente, in maniera di perse tradizionale, l?elaboratore elettronico 1 comprende un processore 2 ed almeno una memoria 3 (anche in cloud) per l?immagazzinamento dei dati. Preferibilmente, l?elaboratore elettronico 1 comprende o ? collegato ad interfacce di input-output 4 (quali un monitor, una tastiera, un mouse, ecc.) mediante il quale un utente (come un programmatore) pu? interagire con il programma installato nell?elaboratore elettronico 1 per l?implementazione del metodo in oggetto. Advantageously, in a traditional manner, the electronic computer 1 comprises a processor 2 and at least one memory 3 (also in the cloud) for storing data. Preferably, the electronic computer 1 comprises or is connected to input-output interfaces 4 (such as a monitor, a keyboard, a mouse, etc.) by means of which a user (such as a programmer) can interact with the program installed in the electronic computer 1 for the implementation of the method in question.

Le caratteristiche dell?elaboratore elettronico 1, in quanto di per s? tradizionali, non verranno specificate ulteriormente nel seguito in quanto non necessario per la trattazione della presente invenzione. The characteristics of the electronic processor 1, being traditional in themselves, will not be specified further in the following as it is not necessary for the treatment of the present invention.

Secondo la presente invenzione, il metodo in oggetto comprende una fase di ingresso, in cui si fornisce in ingresso all?elaboratore elettronico pi? porzioni PS di un codice sorgente scritto in un primo linguaggio di programmazione, preferibilmente in Cobol. According to the present invention, the method in question comprises an input phase, in which the electronic processor is supplied with multiple PS portions of a source code written in a first programming language, preferably in Cobol.

Vantaggiosamente, in tale fase di ingresso, le porzioni PS sono selezionate dal programmatore, utilizzando le interfacce di input-output 4 dell?elaboratore elettronico 1, in particolare salvando ciascuna porzione PS in un corrispondente file (ad esempio di tipo di testo), preferibilmente nella memoria 3 di quest?ultimo. Advantageously, in this input phase, the PS portions are selected by the programmer, using the input-output interfaces 4 of the electronic processor 1, in particular saving each PS portion in a corresponding file (for example of text type), preferably in the memory 3 of the latter.

Opzionalmente, nella suddetta fase di ingresso, il codice sorgente pu? essere preliminarmente memorizzato tutto assieme nella memoria 3 dell?elaboratore elettronico 1 e successivamente il programmatore procede a selezionare le porzioni PS di interesse memorizzandole nei corrispondenti file. Optionally, in the aforementioned input phase, the source code can be preliminarily stored all together in the memory 3 of the electronic processor 1 and subsequently the programmer proceeds to select the PS portions of interest by storing them in the corresponding files.

Il metodo in oggetto comprende quindi una fase di analisi delle suddette porzioni PS del codice sorgente. The method in question therefore includes an analysis phase of the aforementioned PS portions of the source code.

Pi? in dettaglio, tale fase prevede di associare a ciascuna porzione PS del codice sorgente una corrispondente categoria CT scelta tra una lista di categorie CT memorizzate nella memoria 3 dell?elaboratore elettronico 1. Tali categorie CT possono essere, ad esempio: ?Mappa Video?, ?Maschera Video?, ?Mappa Coda?, ?Tracciato Record?, ?Struttura Database?, ?Struttura Coda?, ?Struttura API?. Ciascuna categoria CT ? associata a corrispondenti metadati MD descritti in dettaglio nel seguito. More specifically, this phase involves associating each PS portion of the source code with a corresponding CT category chosen from a list of CT categories stored in memory 3 of the electronic processor 1. Such CT categories may be, for example: ?Video Map?, ?Video Mask?, ?Queue Map?, ?Record Track?, ?Database Structure?, ?Queue Structure?, ?API Structure?. Each CT category is associated with corresponding MD metadata described in detail below.

La fase di analisi prevede inoltre di analizzare la struttura sintattica di ciascuna porzione PS di codice sorgente per individuare determinati elementi EL di tale porzione PS, come tabelle, campi, chiavi, liste dati, liste di valori, funzioni, ecc. La fase di analisi prevede quindi di generare un primo insieme I1 di metadati MD, in cui ciascun metadato MD contiene un corrispondente elemento EL della porzione PS di codice sorgente. The analysis phase also involves analyzing the syntactic structure of each PS portion of source code to identify certain EL elements of that PS portion, such as tables, fields, keys, data lists, value lists, functions, etc. The analysis phase then involves generating a first set I1 of MD metadata, where each MD metadata contains a corresponding EL element of the PS portion of source code.

Vantaggiosamente, questa fase di analisi ? eseguita (almeno in parte) manualmente dal programmatore, il quale associa la porzione PS ad una delle categorie CT, individua gli elementi EL di interesse della porzione PS mediante analisi della sintassi di quest?ultima e associa tale elemento EL ad un corrispondente metadato MD. Advantageously, this analysis phase is performed (at least in part) manually by the programmer, who associates the PS portion with one of the CT categories, identifies the EL elements of interest in the PS portion by analyzing the syntax of the latter and associates this EL element with a corresponding MD metadata.

Opzionalmente, la fase di analisi pu? essere eseguita (almeno in parte) in maniera automatizzata dall?elaboratore elettronico 1. Allo scopo, quest?ultimo ha memorizzato (in particolare nella sua memoria 3) pi? parser PA, ciascuno associato ad una corrispondente categoria CT. Optionally, the analysis phase can be performed (at least in part) in an automated manner by the electronic processor 1. For this purpose, the latter has stored (in particular in its memory 3) multiple PA parsers, each associated with a corresponding CT category.

Tali parser PA sono preinstallati nel programma installato nell?elaboratore mediante il quale ? implementato il metodo in oggetto, oppure possono essere anche creati ed aggiunti dal programmatore quando usa il programma. These PA parsers are pre-installed in the program installed on the computer by which the method in question is implemented, or they can also be created and added by the programmer when using the program.

In particolare, ciascun parser PA ? un programma che riconosce i costrutti linguistici sintattici specifici della porzione PS di codice e li traduce in metadati MD che verranno utilizzati nel metodo in oggetto. In particular, each PA parser is a program that recognizes the syntactic linguistic constructs specific to the PS portion of code and translates them into MD metadata that will be used in the method in question.

In particolare, secondo tale modalit? automatica, la fase di analisi (per lo meno per alcune porzioni PS di codice) ? eseguita applicando alla porzione PS il corrispondente parser associato alla categoria a cui ? associata a tale porzione PS. Vantaggiosamente, i metadati MD sono organizzati in pi? classi CL, ciascuna della quali comprende corrispondenti specifici metadati. In particular, according to this automatic mode, the analysis phase (at least for some PS portions of code) is performed by applying to the PS portion the corresponding parser associated with the category to which that PS portion is associated. Advantageously, MD metadata are organized in multiple CL classes, each of which includes corresponding specific metadata.

Ad esempio, le classi CL di metadati MD possono comprendere Domains, TypeAhead, Aree. For example, MD metadata CL classes can include Domains, TypeAhead, Areas.

Pi? in dettaglio, la classe CL dei Domains contiene metadati MT predisposti per descrivere strutture dati di databases, quali tabelle, campi, chiavi, relazioni, ecc. La classe CL dei TypeAheads contiene metadati MT predisposti per descrivere liste di dati, in particolare un metadato MT associato a ciascun dato della lista. La classe CL dei Lookups contiene metadati MT predisposti per descrivere le liste predefinite di valori, in particolare associati a specifici campi di tabelle; ad esempio, per applicazioni in ambito finanziario possono essere stati di una Fattura, come: ?Inserita?, ?Approvata?, ?Emessa?, ?Incassata?. More specifically, the Domains CL class contains MT metadata designed to describe database data structures, such as tables, fields, keys, relations, etc. The TypeAheads CL class contains MT metadata designed to describe lists of data, in particular an MT metadata associated with each data item in the list. The Lookups CL class contains MT metadata designed to describe predefined lists of values, in particular associated with specific table fields; for example, for financial applications, they may be the status of an Invoice, such as: ?Inserted?, ?Approved?, ?Issued?, ?Cashed?.

La classe CL dei Aree contiene metadati MT predisposti per descrivere macro aree funzionali dell?applicazione implementata dal programma definito dal codice sorgente; ognuna di tali macro aree opera su uno specifico insieme di dati (ad esempio: Clienti, Fatture, Ordini, Provvigioni, ecc.). The Areas CL class contains MT metadata designed to describe functional macro areas of the application implemented by the program defined by the source code; each of these macro areas operates on a specific set of data (for example: Customers, Invoices, Orders, Commissions, etc.).

Vantaggiosamente, ogni classe Area contiene metadati associati a corrispondenti funzionalit?, quali: Advantageously, each Area class contains metadata associated with corresponding functionalities, such as:

? Lista: mostra una lista tabellare e paginata di dati, i quali possono essere filtrati in base a vari criteri, ordinati in base alle colonne della tabella; ? List: displays a tabular, paginated list of data, which can be filtered by various criteria, sorted by table columns;

? Azioni: azioni che sono eseguibili su singole righe o su gruppi selezionati di righe, quali ad esempio: invocare la modifica di un elemento della lista, la cancellazione di uno o pi? elementi, il cambio di stato, ecc.; ? Actions: actions that can be performed on single rows or on selected groups of rows, such as: invoking the modification of an element of the list, the deletion of one or more elements, the change of state, etc.;

? Inserimento: funzionalit? atta a inserire nuovi elementi nella macro area; ? Insertion: functionality used to insert new elements into the macro area;

? Modifica: funzionalit? atta alla modifica degli elementi esistenti nella macro area; ? Edit: functionality used to modify existing elements in the macro area;

? Cancellazione: funzionalit? atta ad eliminare gli elementi esistenti nella macro area; ? Delete: functionality used to delete existing elements in the macro area;

? Dettagli: funzionalit? atta a mostrare i dettagli di un elemento di una macro area; ? Details: functionality used to show the details of an element of a macro area;

? Azione: funzionalit? atta ad applicare trasformazioni, anche complesse, su uno pi? elementi di una macro area ed, eventualmente, a pi? elementi correlati anche di altre macro aree. ? Action: functionality used to apply transformations, even complex ones, on one or more elements of a macro area and, possibly, on several related elements of other macro areas.

Vantaggiosamente, almeno a seguito della suddetta fase di analisi, l?elaboratore elettronico 1 genera un file progetto contenente pi? schede, ciascuna contenente a sua volta metadati MD di una corrispondente classe CL di metadati. Advantageously, at least following the aforementioned analysis phase, the electronic processor 1 generates a project file containing multiple cards, each containing in turn MD metadata of a corresponding CL class of metadata.

Vantaggiosamente, l?elaboratore elettronico 1 ? predisposto per implementare (ad esempio sullo schermo delle interfacce di input-output 4) un?interfaccia grafica in cui ? mostrata l?organizzazione del suddetto file progetto e, mediante, la quale il progettista pu? gestire le diverse fasi del metodo in oggetto. Advantageously, the electronic computer 1 is designed to implement (for example on the screen of the input-output interfaces 4) a graphical interface in which the organization of the aforementioned project file is shown and, by means of which the designer can manage the various phases of the method in question.

Alcuni esempi di tale interfaccia sono illustrati nelle figure 3 e 4. In particolare, la figura 3 mostra alcune classi CL di tipo Domain (?Audit?, ?Error?, ?Filiale?, ?Intestatario?, ?Login?, ?User?, ?Viewed?) generate mediante il metodo nell?esespio di tale figura. La figura 4 mostra alcuni metadati di una di tali classi Domain, ovvero della classe ?Intestatario?. Some examples of this interface are illustrated in Figures 3 and 4. In particular, Figure 3 shows some CL classes of type Domain (?Audit?, ?Error?, ?Filiale?, ?Intestatario?, ?Login?, ?User?, ?Viewed?) generated using the method in the example of that figure. Figure 4 shows some metadata of one of these Domain classes, namely the ?Intestatario? class.

Secondo l?invenzione, il metodo in oggetto comprende una fase di refactoring, in cui viene modificata la struttura sintattica dei metadati MD del primo insieme I1, generando un secondo insieme I2 di metadati MD. According to the invention, the subject method comprises a refactoring phase, in which the syntactic structure of the MD metadata of the first set I1 is modified, generating a second set I2 of MD metadata.

In particolare, in tale fase di refactoring, pu? prevedere una o pi? operazioni, scelte ad esempio tra: cancellare uno o pi? determinati metadati MD, aggiungere uno o pi? determinati metadati MD, modificare l?elemento contenuto in uno o pi? metadato MD. In particular, in this refactoring phase, it may include one or more operations, chosen for example between: deleting one or more specific MD metadata, adding one or more specific MD metadata, modifying the element contained in one or more MD metadata.

Ad esempio, con riferimento all?esempio di figura 4, l?operazione di aggiunta di un metadato MD ? abilitata dal programmatore mediante il pulsante (+), l?operazione di cancellazione di un metadato MD mediante il pulsante ?Cancella?, e l?operazione di aggiunta di un metadato MD mediante il pulsante ?Modifica?. For example, referring to the example in figure 4, the operation of adding an MD metadata is enabled by the programmer using the (+) button, the operation of deleting an MD metadata using the "Delete" button, and the operation of adding an MD metadata using the "Edit" button.

In particolare, la modifica dell?elemento EL del metadato MD secondo la fase di refactoring prevede di riorganizzazione il codice di tale elemento EL modificandone solo la struttura sintattica ma non la struttura semantica. Alcuni tipi di questa modifica prevedono di: In particular, the modification of the EL element of the MD metadata according to the refactoring phase involves reorganizing the code of this EL element by modifying only its syntactic structure but not its semantic structure. Some types of this modification involve:

1) rinominare il nome di una colonna di una tabella di database, ad esempio da ?REC-AA-001? a ?ClienteId?; 1) rename the name of a column in a database table, for example from ?REC-AA-001? to ?ClienteId?;

2) cambiare tipo di dati di una colonna di una tabella di database, ad esempio da ?PIC X(30)? ad ?int?; 2) change the data type of a column in a database table, for example from ?PIC X(30)? to ?int?;

3) cambiare tipologia di un campo di accettazione di una maschera video, ad esempio da ?PIC X(50)? a ?ListBox?. 3) change the type of an acceptance field of a video mask, for example from ?PIC X(50)? to ?ListBox?.

Vantaggiosamente, la fase di refactoring ? eseguita (almeno in parte) dal programmatore agendo mediante le interfacce di input-output 4 dell?elaboratore elettronico 1 e l?interfaccia del programma in oggetto. Advantageously, the refactoring phase is performed (at least in part) by the programmer acting through the input-output interfaces 4 of the electronic processor 1 and the interface of the program in question.

Opzionalmente, la fase di refactoring pu? essere eseguita (almeno in parte) in maniera automatizzata dall?elaboratore elettronico 1, ad esempio mediante specifici parser di rielaborazione che sono applicati allo specifico elemento EL del metadato MD per modificarne la sintassi in un determinato modo. Optionally, the refactoring phase can be performed (at least partly) in an automated manner by the electronic processor 1, for example by means of specific refactoring parsers that are applied to the specific EL element of the MD metadata to modify its syntax in a certain way.

Tale fase di refactoring, consente ad esempio di rendere pi? comprensibile e/o robusto il codice tradotto, e di strutturare i metadati MD con una configurazione tale da renderli adatti all?implementazione delle successive fasi del metodo, descritte nel seguito. This refactoring phase, for example, allows to make the translated code more comprehensible and/or robust, and to structure the MD metadata with a configuration that makes them suitable for the implementation of the subsequent phases of the method, described below.

Secondo l?invenzione, il metodo comprende una fase di generazione di un codice target, in cui, in particolare l?elaboratore elettronico 1 viene abilitato ad eseguire operazioni atte ad ottenere, sulla base del secondo insieme I2 di metadati MD sopra trattato, il suddetto codice target che corrisponde alla traduzione del codice sorgente originario in un determinato secondo linguaggio di programmazione (ad esempio: Java, Swift, Python, C++, C#). According to the invention, the method comprises a phase of generation of a target code, in which, in particular, the electronic processor 1 is enabled to perform operations aimed at obtaining, on the basis of the second set I2 of MD metadata discussed above, the aforementioned target code which corresponds to the translation of the original source code into a specific second programming language (for example: Java, Swift, Python, C++, C#).

Vantaggiosamente, tale fase di generazione ? abilitata dal programmatore mediante un apposito comando dell?interfaccia utente del programma in oggetto, indicato ad esempio con il tasto ?build? nell?esempio di figura 4. Advantageously, this generation phase is enabled by the programmer using a specific command in the user interface of the program in question, indicated for example by the "build" button in the example in figure 4.

Nella suddetta fase di generazione, l?elaboratore elettronico accede ad almeno una libreria di riferimento LT contenente pi? codici template TP scritti nel secondo linguaggio di programmazione. Un esempio di codice template TP ? riportato in figura 5. In the above generation phase, the electronic processor accesses at least one reference library LT containing multiple TP template codes written in the second programming language. An example of TP template code is shown in figure 5.

Ciascun metadato MD ? associato ad uno o pi? corrispondenti suddetti codici template TP, in modo tale che, ciascuno di tale codice template, quando invocato possa essere modificato sulla base del corrispondente metadato MD, come descritto nel seguito. Each MD metadata is associated with one or more corresponding TP template codes, such that each such template code, when invoked, can be modified based on the corresponding MD metadata, as described below.

Quindi, nella fase di generazione, per ciascun metadato MD, l?elaboratore elettronico 1 richiama almeno un corrispondente codice template TP e, sulla base dell?elemento di tale metadato MD, modifica il codice template TP per generare una corrispondente porzione tradotta PT di codice sorgente scritta nel secondo linguaggio di programmazione, un esempio della quale ? illustrata nella figura 6. Applicando le suddette operazioni della fase di generazione, il metodo consente di ottenere il codice target (nel secondo linguaggio di programmazione) corrispondente all?intero codice sorgente originario scritto nel primo linguaggio di programmazione. Then, in the generation phase, for each metadata MD, the electronic processor 1 calls at least one corresponding template code TP and, based on the element of such metadata MD, modifies the template code TP to generate a corresponding translated portion PT of source code written in the second programming language, an example of which is illustrated in figure 6. By applying the aforementioned operations of the generation phase, the method allows to obtain the target code (in the second programming language) corresponding to the entire original source code written in the first programming language.

Vantaggiosamente, ciascun codice template TP comprende una o pi? variabili segnaposto VM (dette nel gergo informatico anche ?placeholder?), ciascuna delle quali ? associata ad un corrispondente metadato. Advantageously, each TP template code includes one or more VM placeholder variables (also called ?placeholders? in computer jargon), each of which is associated with a corresponding metadata.

Nella fase di generazione, l?elaboratore elettronico 1 sostituisce a ciascuna variabile segnaposto VM con l?elemento EL del corrispondente metadato MD ottenendo in questo modo la corrispondente porzione tradotta PT del codice target. In the generation phase, the electronic processor 1 replaces each placeholder variable VM with the element EL of the corresponding metadata MD, thus obtaining the corresponding translated portion PT of the target code.

Con riferimento all?esempio di codice template TP illustrato in figura 5, le variabili segnaposto VM sono indicate con il prefisso ?@PLACEHOLDER? seguito dal nome del corrispondente metadato MD (ad esempio, ?DOMAIN_NAME?, ?CONTRUCTOR?, ?LIST_OF_FIELDS?, ecc.). Referring to the TP template code example shown in Figure 5, VM placeholder variables are indicated with the prefix ?@PLACEHOLDER? followed by the name of the corresponding MD metadata (e.g., ?DOMAIN_NAME?, ?CONTRUCTOR?, ?LIST_OF_FIELDS?, etc.).

Come visibile nell?esempio di figura 5, dopo l?esecuzione della fase di generazione, le variabili segnaposto VM sono state sostituite dagli elementi EL dei corrispondenti metadati MD, ottenendo in questo modo la corrispondente porzione tradotta PT di codice target. As visible in the example in Figure 5, after the generation phase was executed, the VM placeholder variables were replaced by the EL elements of the corresponding MD metadata, thus obtaining the corresponding translated portion PT of target code.

Vantaggiosamente, nella fase di generazione, l?elaboratore elettronico 1 esegue specifici programmi emitter associati a corrispondenti codici template TP e memorizzati preferibilmente nella memoria 3 dell?elaboratore elettronico 1 medesimo. Advantageously, in the generation phase, the electronic processor 1 executes specific emitter programs associated with corresponding TP template codes and preferably stored in the memory 3 of the electronic processor 1 itself.

Pi? in dettaglio, quando l?elaboratore elettronico esegui ciascuno di tali programmi emitter, esso accede al corrispondente codice template TP ed all?elemento EL di ciascun corrispondente metadato MD e sostituisce le variabili segnaposto VM del codice template TP con l?elemento EL del corrispondente metadato MD. More specifically, when the computer executes each of these emitter programs, it accesses the corresponding TP template code and the EL element of each corresponding MD metadata and replaces the VM placeholder variables of the TP template code with the EL element of the corresponding MD metadata.

In particolare, ciascuna programma emitter ? uno specifico modulo software che ? predisposto per leggere la struttura del codice template TP e sostituisce le variabili segnaposto VM con la parte di codice che forma l?elemento EL del corrispondente metadato MD. In particular, each emitter program is a specific software module that is designed to read the structure of the TP template code and replace the VM placeholder variables with the part of the code that forms the EL element of the corresponding MD metadata.

Vantaggiosamente, la libreria di riferimento LT (che contiene i codici template TP) comprende pi? famiglie FT di codici template TP. Ciascuna di tali famiglie FT ? associata ad una corrispondente classe CL di metadati MD e comprende corrispondenti codici template TP associaci a corrispondenti metadati MD della corrispondente classe CL. Advantageously, the LT reference library (which contains the TP template codes) includes multiple FT families of TP template codes. Each of these FT families is associated with a corresponding CL class of MD metadata and includes corresponding TP template codes associated with corresponding MD metadata of the corresponding CL class.

Nella fase di analisi (sopra trattata), ciascuna porzione PS di codice sorgente ? associata ad una corrispondente classe CL, i cui metadati MD sono associati a corrispondenti elementi EL di tale porzione PS. In the analysis phase (discussed above), each PS portion of source code is associated with a corresponding CL class, whose MD metadata are associated with corresponding EL elements of that PS portion.

Ad esempio, nel caso la porzione PS di codice sorgente contenda una tabella di un database relativa ad un intestatario di un conto, la porzione PS viene associata ad una classe CL ?Domain? che verr? chiamata ?Intestatario? (come illustrato nell?esempio di figura 3). In quest?ultima classe CL verranno generati pi? metadati MD contenenti corrispondenti elementi EL della porzione PS di codice sorgente e indicati ad esempio: ?Id?, ?Codice?, ?nominativo?, ?FirstName?, ecc. (come illustrato nell?esempio di figura 4). For example, if the PS portion of the source code contains a database table relating to an account holder, the PS portion is associated with a CL class ?Domain? which will be called ?Header? (as illustrated in the example in figure 3). In this last CL class, more MD metadata will be generated containing corresponding EL elements of the PS portion of the source code and indicated for example: ?Id?, ?Code?, ?name?, ?FirstName?, etc. (as illustrated in the example in figure 4).

Gli elementi EL di tali metadati MD verranno modificati nella fase di refactoring, come sopra trattato, cambiando ad esempio il nome di una determinata variabile (per rendere il codice pi? leggibile) oppure il tipo di una variabile (per renderlo compatibile con il secondo linguaggio di programmazione del codice target). The EL elements of such MD metadata will be modified in the refactoring phase, as discussed above, for example by changing the name of a certain variable (to make the code more readable) or the type of a variable (to make it compatible with the second programming language of the target code).

Nella fase di generazione, l?elaboratore elettronico 1 richiama i codici template TP della famiglia FT associata alla corrispondente classe CL, in questo caso la classe ?Domain?. In the generation phase, the electronic processor 1 calls the TP template codes of the FT family associated with the corresponding CL class, in this case the ?Domain? class.

In questo modo, le variabili segnaposto VM di ciascun codice template TP richiamati sono sostituite con gli elementi dei corrispondenti metadati MD, ad esempio la variabile segnaposto VM ?@placeholder_external_domain_name? posta nella locazione del codice template relativa al titolo della tabella, con il titolo ?Intestatario? che ? l?elemento EL del corrispondente metadato MD (come negli esempi delle figure 5 e 6). In this way, the VM placeholder variables of each called TP template code are replaced with the elements of the corresponding MD metadata, for example the VM placeholder variable ?@placeholder_external_domain_name? placed in the template code location relative to the table title, with the title ?Header? being the EL element of the corresponding MD metadata (as in the examples in figures 5 and 6).

Preferibilmente, i metadati sono organizzati in una struttura dati a pi? livelli, in cui il primo livello ? relativo alla classe CL (ad esempio ?Domain?, ?TypeAheads?, ?lookup?, ?Aree?, mentre i livelli successivi sono relativi ai metadati MD di ciascuna classe CL (ad esempio come negli esempi sopra trattati). Preferably, the metadata is organized in a multi-level data structure, where the first level is related to the CL class (e.g. ?Domain?, ?TypeAheads?, ?lookup?, ?Areas?), while the subsequent levels are related to the MD metadata of each CL class (e.g. as in the examples discussed above).

Vantaggiosamente, la libreria di riferimento LT dei codici template TP ? anch?essa organizzata in pi? livelli nidificati, in particolare un primo livello relativo a ciascuna famiglia FT e successivi livelli relativi ai codici template TP di ciascuna famiglia FT. Ad esempio, la famiglia FT associata alla classe ?Domains? contiene uno o pi? codici template per i campi, uno o pi? codici template per gli indici, ecc., e ciascuna famiglia FT associata alla corrispondente classe ?Aree? contiene uno o pi? codici template per Lista, Inserimento, Cancellazione, Azione, ecc. Advantageously, the LT reference library of TP template codes is also organized into several nested levels, in particular a first level relating to each FT family and subsequent levels relating to the TP template codes of each FT family. For example, the FT family associated with the ?Domains? class contains one or more template codes for fields, one or more template codes for indexes, etc., and each FT family associated with the corresponding ?Areas? class contains one or more template codes for List, Insert, Delete, Action, etc.

Preferibilmente, ciascuna famiglia FT di codici template TP (e preferibilmente ciascuna classe CL di metadati MD) ? organizzata secondo una struttura dati ad albero. Preferably, each FT family of TP template codes (and preferably each CL class of MD metadata) is organized according to a tree data structure.

In questo modo, ad ogni invocazione della fase di generazione, l?elaboratore elettronico 1 ? in grado, in maniera particolarmente rapida, di accedere ai metadati MD i codici template TP richiesti di eseguire i corrispondenti moduli emitter per generare le corrispondenti porzioni del codice target. In this way, at each invocation of the generation phase, the electronic processor 1 is able, in a particularly rapid manner, to access the MD metadata and the requested TP template codes and to execute the corresponding emitter modules to generate the corresponding portions of the target code.

In particolare, l?elaboratore elettronico 1 accede a ciascuna famiglia FT di codici template TP (e preferibilmente a ciascuna classe CL di metadati MD) secondo un algoritmo di visita ?in order?. In particular, the electronic processor 1 accesses each FT family of TP template codes (and preferably each CL class of MD metadata) according to an "in order" visit algorithm.

Come sopra trattato, costituisce oggetto della presente invenzione, anche un programma per elaboratore elettronico impiegato per eseguire il metodo sopra descritto. As discussed above, the present invention also includes a computer program used to carry out the method described above.

In particolare, tale programma comprende almeno la struttura dati contenente i metadati MD come sopra descritti, e una libreria di riferimento contenente i codici template come sopra descritti, In particular, such program includes at least the data structure containing the MD metadata as described above, and a reference library containing the template codes as described above,

Inoltre, tale programma contiene istruzioni le quali, quando esso ? eseguito da un elaboratore elettronico, quest?ultimo effettua le fasi del metodo sopra descritte. In particolare, le fasi del metodo sono azionabili dal programmatore mediante le componenti dell?interfaccia del programma sopra trattate. Furthermore, this program contains instructions which, when executed by an electronic processor, the latter carries out the phases of the method described above. In particular, the phases of the method can be activated by the programmer through the components of the program interface discussed above.

L?invenzione cos? descritta raggiunge pertanto gli scopi prefissati. The invention thus described therefore achieves the intended purposes.

Claims (10)

RIVENDICAZIONI 1. Metodo per la conversione di un codice sorgente, il quale metodo ? implementato mediante un elaboratore elettronico (1) e comprende:1. A method for converting a source code, which method is implemented by means of a computer (1) and comprises: ? una fase di ingresso, in cui si fornisce in ingresso a detto elaboratore elettronico (1) pi? porzioni (PS) di un codice sorgente scritto in un primo linguaggio di programmazione;? an input phase, in which said electronic processor (1) is provided with input multiple portions (PS) of a source code written in a first programming language; ? una fase di analisi, la quale prevede di:? an analysis phase, which includes: ? associare a ciascuna detta porzione (PS) una corrispondente categoria (CT) scelta tra una lista di categorie (CT) memorizzate in detto elaboratore elettronico (1), ciascuna categoria (CT) essendo associata a corrispondenti metadati (MD);? associate to each said portion (PS) a corresponding category (CT) chosen from a list of categories (CT) stored in said electronic processor (1), each category (CT) being associated with corresponding metadata (MD); ? analizzare la struttura sintattica di ciascuna detta porzione (PS) di detto codice sorgente per individuare determinati elementi (EL) di detta porzione (PS) di codice sorgente;? analyze the syntactic structure of each said portion (PS) of said source code to identify certain elements (EL) of said portion (PS) of source code; ? generare un primo insieme (I1) di metadati (MD), in cui ciascun detto metadato (MD) contiene un corrispondente detto elemento (EL) di detta porzione (PS) di codice sorgente;? generate a first set (I1) of metadata (MD), where each said metadata (MD) contains a corresponding said element (EL) of said portion (PS) of source code; ? una fase di refactoring, in cui la struttura sintattica di detto primo insieme (I1) di metadati viene modificata, generando un secondo insieme (I2) di metadati; ? una fase di generazione di un codice target, in cui:? a refactoring phase, in which the syntactic structure of said first set (I1) of metadata is modified, generating a second set (I2) of metadata; ? a target code generation phase, in which: ? detto elaboratore elettronico (1) accede ad almeno una libreria di riferimento (LT) contenente pi? codici template (TP) scritti in un determinato secondo linguaggio di programmazione, ciascun detto metadato (MD) essendo associato ad uno o pi? corrispondenti detti codici template (TP); ? said electronic processor (1) accesses at least one reference library (LT) containing multiple template codes (TP) written in a given second programming language, each said metadata (MD) being associated with one or more corresponding said template codes (TP); ? per ciascun detto metadato (MD), detto elaboratore elettronico (1) richiama almeno un corrispondente detto codice template (TP) e, sulla base dell?elemento (EL) di detto metadato (MD), modifica detto codice template (TP) per generare una corrispondente porzione tradotta (PT) di detto codice sorgente scritta in detto secondo linguaggio di programmazione.? for each said metadata (MD), said electronic processor (1) calls at least one corresponding said template code (TP) and, on the basis of the element (EL) of said metadata (MD), modifies said template code (TP) to generate a corresponding translated portion (PT) of said source code written in said second programming language. 2. Metodo secondo la rivendicazione n. 1, caratterizzato dal fatto che detti metadati (MD) sono organizzati in pi? classi (CL), ciascuna detta classe (CL) comprendendo corrispondenti detti metadati (MD);2. Method according to claim 1, characterized in that said metadata (MD) are organized into multiple classes (CL), each said class (CL) comprising corresponding said metadata (MD); in cui detta libreria di riferimento (LT) comprende pi? famiglie (FT) di codici template (TP), ciascuna detta famiglia (FT) essendo associata ad una corrispondente detta classe (CL) e comprendendo corrispondenti detti codici template (TP) associaci a corrispondenti metadati (MD) di detta corrispondente classe (CL);wherein said reference library (LT) comprises multiple families (FT) of template codes (TP), each said family (FT) being associated with a corresponding said class (CL) and comprising corresponding said template codes (TP) associated with corresponding metadata (MD) of said corresponding class (CL); in detta fase di analisi, detta porzione (PS) di codice essendo associata ad una corrispondente detta classe (CL), i cui metadati (MD) sono associati a corrispondenti detti elementi (EL) di detta porzione (PS) di codice sorgente; in detta fase di generazione, detto elaboratore elettronico (1) richiamando i codici template (TP) della famiglia (FT) associata alla corrispondente detta classe (CL).in said analysis phase, said portion (PS) of code being associated with a corresponding said class (CL), whose metadata (MD) are associated with corresponding said elements (EL) of said portion (PS) of source code; in said generation phase, said electronic processor (1) recalling the template codes (TP) of the family (FT) associated with the corresponding said class (CL). 3. Metodo secondo la rivendicazione n.2, caratterizzato dal fatto che ciascuna detta famiglia (FT) di codici template (TP) ? organizzata secondo una struttura dati ad albero.3. Method according to claim 2, characterized in that each said family (FT) of template codes (TP) is organized according to a tree data structure. 4. Metodo secondo la rivendicazione n. 3, caratterizzato dal fatto che detto elaboratore elettronico (1) accede a ciascuna detta famiglia (FT) di codici template (TP) secondo un algoritmo di visita ?in order?. 4. Method according to claim 3, characterised in that said electronic processor (1) accesses each said family (FT) of template codes (TP) according to an "in order" visit algorithm. 5. Metodo secondo una qualsiasi delle rivendicazioni precedenti dalla 2 alla 4, caratterizzato dal fatto che, a seguito di detta fase di analisi, detto elaboratore elettronico (1) genera un file progetto contenente pi? schede, ciascuna contenente metadati (MD) di una corrispondente detta classe (CL) di metadati (MD).5. Method according to any of the preceding claims from 2 to 4, characterised in that, following said analysis phase, said electronic processor (1) generates a project file containing multiple cards, each containing metadata (MD) of a corresponding said class (CL) of metadata (MD). 6. Metodo secondo una qualsiasi delle rivendicazioni precedenti, caratterizzato dal fatto che ciascun detto codice template (TP) comprende una o pi? variabili segnaposto (VM), ciascuna delle quali ? associata ad un corrispondente detto metadato (MD);6. Method according to any of the preceding claims, characterized in that each said template code (TP) comprises one or more placeholder variables (VM), each of which is associated with a corresponding said metadata (MD); in cui, in detta fase di generazione, detto elaboratore elettronico (1) sostituisce ciascuna detta variabile segnaposto (VM) con l?elemento (EL) del corrispondente detto metadato (MD).wherein, in said generation phase, said electronic processor (1) replaces each said placeholder variable (VM) with the element (EL) of the corresponding said metadata (MD). 7. Metodo secondo la rivendicazione 6, caratterizzato dal fatto che in detta fase di generazione detto elaboratore elettronico (1) esegue programmi emitter associati a corrispondenti detti codici template (TP), ciascuno dei quali programmi emitter accede al corrispondente detto codice template (TP) ed all?elemento (EL) di ciascun corrispondente detto metadato (MD) e sostituisce le variabili segnaposto (VM) di detto codice template (TP) con l?elemento (EL) del corrispondente detto metadato (MD).7. Method according to claim 6, characterised in that in said generation phase said electronic processor (1) executes emitter programs associated with corresponding said template codes (TP), each of which emitter programs accesses the corresponding said template code (TP) and the element (EL) of each corresponding said metadata (MD) and replaces the placeholder variables (VM) of said template code (TP) with the element (EL) of the corresponding said metadata (MD). 8. Metodo secondo una qualsiasi delle rivendicazioni precedenti, caratterizzato dal fatto che detta fase di analisi ? eseguita applicando a detta porzione (PS) di codice sorgente un parser (PA) associato a detta categoria (CT) associata a detta porzione (PS).8. Method according to any of the preceding claims, characterized in that said analysis phase is performed by applying to said portion (PS) of source code a parser (PA) associated with said category (CT) associated with said portion (PS). 9. Metodo secondo una qualsiasi delle rivendicazioni precedenti, caratterizzato dal fatto che detto primo linguaggio di programmazione ? Cobol.9. A method according to any of the preceding claims, characterized in that said first programming language is Cobol. 10. Programma per elaboratore elettronico, il quale comprende: 10. Computer program, which includes: ? almeno una struttura dati contenente detti metadati (MD);? at least one data structure containing said metadata (MD); ? almeno detta libreria di riferimento (LT) contenente detti codici template (TP);? at least said reference library (LT) containing said template codes (TP); ? istruzioni le quali, quando detto programma ? eseguito da un elaboratore elettronico (1), detto elaboratore elettronico (1) effettua le fasi del metodo secondo una qualsiasi delle rivendicazioni precedenti. ? instructions which, when said program is executed by an electronic computer (1), said electronic computer (1) carries out the steps of the method according to any of the preceding claims.
IT102023000003927A 2023-03-03 2023-03-03 METHOD FOR CONVERTING A SOURCE CODE AND COMPUTER PROGRAM TO IMPLEMENT THE SAID METHOD IT202300003927A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
IT102023000003927A IT202300003927A1 (en) 2023-03-03 2023-03-03 METHOD FOR CONVERTING A SOURCE CODE AND COMPUTER PROGRAM TO IMPLEMENT THE SAID METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102023000003927A IT202300003927A1 (en) 2023-03-03 2023-03-03 METHOD FOR CONVERTING A SOURCE CODE AND COMPUTER PROGRAM TO IMPLEMENT THE SAID METHOD

Publications (1)

Publication Number Publication Date
IT202300003927A1 true IT202300003927A1 (en) 2024-09-03

Family

ID=86331742

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102023000003927A IT202300003927A1 (en) 2023-03-03 2023-03-03 METHOD FOR CONVERTING A SOURCE CODE AND COMPUTER PROGRAM TO IMPLEMENT THE SAID METHOD

Country Status (1)

Country Link
IT (1) IT202300003927A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190004774A1 (en) * 2017-06-28 2019-01-03 Google Inc. Automated source code adaption to inject features between platform versions
CN113778848A (en) * 2021-01-29 2021-12-10 北京沃东天骏信息技术有限公司 Test code generation method, device, computer system and medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190004774A1 (en) * 2017-06-28 2019-01-03 Google Inc. Automated source code adaption to inject features between platform versions
CN113778848A (en) * 2021-01-29 2021-12-10 北京沃东天骏信息技术有限公司 Test code generation method, device, computer system and medium

Similar Documents

Publication Publication Date Title
US10162610B2 (en) Method and apparatus for migration of application source code
US7730448B2 (en) Layered type systems
CN108139891B (en) Method and system for generating recommendations to correct undefined tag errors
CN114041117A (en) Persistent annotation of grammars for code optimization
US8850414B2 (en) Direct access of language metadata
Churchill et al. Reusable components of semantic specifications
Wenzel Asynchronous proof processing with Isabelle/Scala and Isabelle/jEdit
Chillón et al. A model-driven approach to generate schemas for object-document mappers
Nagel Professional C# 7 and. Net Core 2.0
Degueule et al. Safe model polymorphism for flexible modeling
US8117610B2 (en) System and method for integrated artifact management
Yang et al. Powerstation: Automatically detecting and fixing inefficiencies of database-backed web applications in ide
Nagel et al. Professional C# 2012 and. Net 4.5
Bamford et al. XQuery reloaded
Nguyen Programming Language interoperability in cross-platform software development
Nagel Professional c# 6 and. net core 1.0
Garcia et al. Design and implementation of an efficient hybrid dynamic and static typing language
CN119718889A (en) Low-code platform static code analysis method, device, equipment, medium and program product
IT202300003927A1 (en) METHOD FOR CONVERTING A SOURCE CODE AND COMPUTER PROGRAM TO IMPLEMENT THE SAID METHOD
Alls High-Performance Programming in C# and. NET
Baszuro et al. Requirement engineering as a software development process
Matthews Code Like a Pro in Rust
Zhang et al. Renaissance of Literate Programming in the Era of LLMs: Enhancing LLM-Based Code Generation in Large-Scale Projects
Kobayashi et al. Archetype model-driven development framework for EHR web system
Sacerdoti Coen A plugin to export Coq libraries to XML