Linguaggi
Traduzione
Traduzione
Cosa significa tradurre?
Un codice sorgente scritto in un linguaggio di alto livello si può tradurre in uno equivalente ma di basso livello (come l'Assembly).
Ci sono poi traduzioni di interi linguaggi, come per il Logo, nel senso che gli elementi fissi del linguaggio vengono modificati in modo che siano significativi per i parlanti nativi di una certa lingua madre.
Ma si può tradurre un codice sorgente da un linguaggio all’altro? E si può fare in maniera automatica?
Sembrano domande banali, ma fanno riferimento implicitamente a concetti di cui non è chiaro il significato.
Si traduce parola per parola? O istruzione per istruzione? Come si fa a sapere se un programma tradotto è una buona traduzione dell'originale?
Per esempio, nella compilazione non tutte le informazioni vengono conservate, ma solo quelle necessarie all’esecuzione. Queste parti non vengono, ovviamente tradotte. E allora quali?
Nel tradurre da un linguaggio di alto livello ad un altro (si dice "transpilare") si estrae dal primo codice un Albero Sintattico Astratto (AST) che viene usato per ricostruire il codice sorgente in un secondo linguaggio.
Una forma particolare di riscrittura è il "refactoring", in cui si riscrive un pezzo di codice nello stesso linguaggio, ma in forma più chiara, o più efficiente, lasciandone invariato il comportamento.
Prossimo pannello: ⇨ COBOL
© Codexpo.org - Content released under Creative Commons 4.0 BY/SA/NC
Versione: 02/02/2022 - 08:59:47
Parole: 129