Come funziona il compilatore o traduttore di linguaggi per la programmazione incrociata [chiuso]

0

In questi giorni ci sono più compilatori di linguaggi di programmazione incrociata (specialmente da un linguaggio 'X' a JavaScript). Mi chiedo come siano sviluppati? Quali sono i passaggi generali da prendere in considerazione per scrivere algoritmi se dovessi svilupparne uno?

Devo essere completamente completo in Analisi lessicale?

Per quel che riguarda la mia conoscenza, dovrebbero seguire gli stessi passi della traduzione di alcune "X" nella lingua dell'Assembly (compilazione di base). È così che sono stati effettivamente sviluppati? O c'è un altro modo?

Grazie

    
posta poddroid 01.05.2013 - 17:17
fonte

2 risposte

4

Hai sostanzialmente ragione. Un compilatore "standard" può essere pensato come un compilatore di linguaggio trasversale che traduce [lingua di input] in codice macchina. Una volta compreso, il resto diventa chiaro.

Il front-end (analisi lessicale, sintattica e semantica) è lo stesso. Leggete la lingua di input e sviluppate un albero di sintassi astratto da esso. Ciò che è diverso è il back-end. Una volta ottenuto il codice AST, il generatore di codice emette un codice che esprime gli stessi concetti in un linguaggio di programmazione leggibile dall'uomo, anziché codice macchina.

    
risposta data 01.05.2013 - 17:39
fonte
0

Tutti i compilatori compilano da una lingua di partenza a una lingua di destinazione, l'unica differenza con questi traduttori è che la lingua di destinazione è molto più alta rispetto a un compilatore tradizionale. Di conseguenza dovresti cercare le risorse generali del compilatore.

L'analisi lessicale non è strettamente necessaria ( almeno non come un passaggio separato ) tuttavia è spesso usata per < a href="http://boost-spirit.com/home/2010/01/25/what-are-the-benefits-of-using-a-lexer/"> velocizza la fase di analisi

    
risposta data 01.05.2013 - 17:38
fonte

Leggi altre domande sui tag