venerdì 31 agosto 2007

Funzionamento CDT part1

L'acronimo CDT sta per C/C++ Development Tools. E' la plugin di eclipse per lo sviluppo in ambiente C.

La parte sicuramente più importante è il DOM parser che si passa in rassegna tutto il codice dell'utente e ne effettua un'analisi approfondita da cui estrae una struttura dati ad uso interno, indicizzata e facilmente parsabile dal resto della plugin: AST (Abstract Syntax Tree). Questa è un'operazione assolutamente standard per i parser.
La seconda operazione importante effettuata dal DOM parser è creare una seconda struttura dati (credo sia una semplice lista contenente oggetti speciali chiamati "completion nodes") che sarà utilizzata per le proposte di completamento (il cosiddetto "content assist").

Il motivo di tutto ciò è, prevalentemente, l'ottimizzazione. Infatti indicizzare la struttura AST associata al codice sorgente è un'operazione meno pesante che indicizzare _il_ codice sorgente.

Il processo di parsing, in generale, si divide in tre parti: analisi lessicale, sintattica e semantica.
Nel primo si controlla la correttezza dei termini (token) usati nelle espressioni, nella seconda la correttezza delle espressioni formate dall'unione dei token mentre nella fase finale si effettuano controlli più ad alto livello (a livello semantico, per esempio si controlla se sono rispettati i tipi delle variabili, nel dettaglio se una variabile è un intero non si può assegnargli un valore stringa, anche se formalmente sarebbe corretto, cosa che eviterebbe quindi di generare errore ai passaggi precedenti)

Nel secondo post approfondirò la parte di preprocessing

Nessun commento: