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



Versione: 02/02/2022 - 08:59:47

Parole: 129

Pannelli

Linguaggi                   
Linguaggi di programmazione 
Nomi dei linguaggi          
Caratteri e linguaggi       
Famiglie                    
Traduzione                  
COBOL                       
Lisp                        
APL                         
Perl                        
Javascript                  
Python                      
PHP                         
Ruby                        
Linguaggi educativi         
Pascal                      
Ada                         
Logo                        
Prolog                      
IEML                        
Linguaggi nazionali         
Linotte                     
Linguaggi esoterici         
Intercal                    
Brainfuck                   
Emmental                    
HQ9+                        
🔎