Introduzione al progetto dei compilatori

Dino Mandrioli

Introduzione al progetto dei compilatori

Edizione a stampa

40,50

Pagine: 272

ISBN: 9788820429966

Edizione: 2a edizione 1988

Codice editore: 272.2

Disponibilità: Nulla

Il testo si propone di presentare i principi sui quali è attualmente basata la progettazione dei compilatori. Esso ha carattere non specialistico ma neanche esclusivamente divulgativo. E' invece rivolto principalmente a chi voglia costruirsi una solida e rapida cultura sull'argomento.

Il primo capitolo introduce i concetti principali della compilazione basata sulla sintassi dei linguaggi di programmazione. Il secondo presenta il minimo necessario di teoria dei linguaggi formali e di tecniche di analisi sintattica. Nel terzo vengono presentate alcune tecniche di traduzione diretta da sintassi mediante esempi semplici ma sufficientemente significativi e generali. Infine il quarto capitolo si propone di dare un'idea dei problemi e degli strumenti tipici della progettazione di un compilatore reale.

Dino Mandrioli (n. 1949) si è laureato in ingegneria nel 1972 e in matematica nel 1976. E' stato ricercatore del Cnr e professore incaricato presso il Politecnico di Milano dal 1975 al 1980. Professore straordinario, presso l'università di Udine nel triennio 1981-1984, è attualmente docente di programmazione al Politecnico di Milano. I suoi interessi di ricerca sono principalmente nei campi della teoria degli automi e dei linguaggi formali, dei linguaggi di programmazione e dell'ingegneria del software, dei sistemi distribuiti, dei metodi di specifica e di analisi formale. E' autore di numerosi articoli scientifici, diversi dei quali pubblicati su riviste di alto livello internazionale.

Prefazione
Capitolo 1: La traduzione meccanica
1.1 Introduzione
1.2 La traduzione dei linguaggi di livello assembler
1.2.1 La macchina RASP (Random Access Stored Program)
1.2.2 Un assemblatore per la macchina RASP
1.3 La traduzione dei linguaggi di alto livello: primi problemi
1.4 La struttura di un programma
1.5 Struttura, significato e traduzione
1.6 Gli interpreti
Capitolo 2: La teoria dei linguaggi: Una base per la compilazione diretta da sintassi
2.1 Introduzione
2.2 Linguaggi e grammatiche: il modello non contestuale
2.3 L'uso delle grammatiche non contestuali per descrivere i linguaggi di programmazione
2.4 Il modello non contestuale e i linguaggi naturali: un cenno
2.5 L'analisi sintattica: introduzione
2.6 Gli automi: un meccanismo formale per analizzare i linguaggi
2.7 Le grammatiche LL(K) e l'analisi deterministica discendente
2.8 Compilazione e sematica: Un cenno
Appendice.
Il linguaggio SMALG+ e la sua sintassi
Altre notazioni sintattiche
Sintassi del Pascal
Capitolo 3: La compilazione guidata dalla sintassi
3.1 Primi esempi di traduzione guidata dalla sintassi
3.2 La traduzione di altri costruiti linguistici: problemi
3.3 Gli schemi di traduzione ad attributi
3.4 Gli schemi ad attributi e la compilazione dei linguaggi di programmazione
3.5 L'implementazione degli schemi ad attributi: algoritmi ascendenti e discendenti
Appendice.
Semantica operazionale del linguaggio SMALG+
Capitolo 4: E progetto dei compilatori: dalla teoria alla pratica
4.1 Introduzione
4.2 Descrizione delle variabili. Tabelle dei simboli. Analisi lessicale e sintattica
4.3 Linguaggi intermedi - Passate fisiche
4.4 L'ottimizzazione del codice
4.5 Compilazione separata e collegamento dei moduli
4.6 Gli errori e il loro trattamento
4.7 Costruzione di compilatori
4.8 Metacompilatori
Notizie bibliografiche
Bibliografia


Collana: Crai