I compilatori traducono i linguaggi artificiali (come Java e XML) nelle rappresentazioni usate dalle macchine di calcolo: senza di essi non esisterebbe l’informatica. I concetti della compilazione hanno avuto origine nella linguistica strutturale e nella logica matematica, da cui si sono sviluppati gli algoritmi e i metodi di progetto che hanno realizzato innumerevoli linguaggi. Il testo espone in modo piano e rigoroso le grammatiche formali, gli automi, gli algoritmi di analisi sintattica, le relazioni di traduzione e gli automi traduttori, le traduzioni guidate dalla sintassi e le funzioni semantiche, terminando con l’analisi statica del flusso nei programmi. Molti esempi, semplici ma realistici, conducono il lettore verso la comprensione analitica e la capacità progettuale delle tecniche elementari di compilazione. L’esperienza degli autori nella ricerca e sviluppo su linguaggi e compilatori si riflette nella selezione degli argomenti, sempre motivata da finalità applicativa e da economia concettuale. L’opera vuole trovare un giusto medio tra i testi di orientamento puramente teorico e i manuali dei compilatori. Il passaggio dagli algoritmi all’implementazione è sufficientemente delineato, senza prolissità, affinché un lettore di cultura informatica possa compierlo da solo. Al termine del percorso, il lettore comprenderà il funzionamento delle parti essenziali di un compilatore, conoscerà gli algoritmi usati negli strumenti (scanner parser generator) e potrà progettare semplici linguaggi e traduttori sintattici. Il testo è adatto a un corso universitario di cinque crediti per studenti con almeno due anni di informatica alle spalle. Esso è la base per approfondimenti specialistici in più direzioni, quali: l’ottimizzazione del codice macchina, i sistemi anti-intrusione, i linguaggi interattivi e grafici, i metodi per il trattamento del linguaggio naturale e i linguaggi per l’accesso ai grandi dati della Rete.

Linguaggi formali e compilazione - 2a edizione

CRESPI REGHIZZI, STEFANO;BREVEGLIERI, LUCA ODDONE;MORZENTI, ANGELO CARLO
2015-01-01

Abstract

I compilatori traducono i linguaggi artificiali (come Java e XML) nelle rappresentazioni usate dalle macchine di calcolo: senza di essi non esisterebbe l’informatica. I concetti della compilazione hanno avuto origine nella linguistica strutturale e nella logica matematica, da cui si sono sviluppati gli algoritmi e i metodi di progetto che hanno realizzato innumerevoli linguaggi. Il testo espone in modo piano e rigoroso le grammatiche formali, gli automi, gli algoritmi di analisi sintattica, le relazioni di traduzione e gli automi traduttori, le traduzioni guidate dalla sintassi e le funzioni semantiche, terminando con l’analisi statica del flusso nei programmi. Molti esempi, semplici ma realistici, conducono il lettore verso la comprensione analitica e la capacità progettuale delle tecniche elementari di compilazione. L’esperienza degli autori nella ricerca e sviluppo su linguaggi e compilatori si riflette nella selezione degli argomenti, sempre motivata da finalità applicativa e da economia concettuale. L’opera vuole trovare un giusto medio tra i testi di orientamento puramente teorico e i manuali dei compilatori. Il passaggio dagli algoritmi all’implementazione è sufficientemente delineato, senza prolissità, affinché un lettore di cultura informatica possa compierlo da solo. Al termine del percorso, il lettore comprenderà il funzionamento delle parti essenziali di un compilatore, conoscerà gli algoritmi usati negli strumenti (scanner parser generator) e potrà progettare semplici linguaggi e traduttori sintattici. Il testo è adatto a un corso universitario di cinque crediti per studenti con almeno due anni di informatica alle spalle. Esso è la base per approfondimenti specialistici in più direzioni, quali: l’ottimizzazione del codice macchina, i sistemi anti-intrusione, i linguaggi interattivi e grafici, i metodi per il trattamento del linguaggio naturale e i linguaggi per l’accesso ai grandi dati della Rete.
2015
978-88-7488-875-7
linguaggio formale, espressione regolare, grammatica libera, grammatica context-free, automa finito, automa a pila, analisi sintattica, parsing, grammatica libera estesa, BNF, EBNF, LR, ELR, LL, ELL, LL(1), LR(1), LR(k), LL(k), traduzione sintattica, traduzione regolare, grammatica con attributi, analisi statica del programma
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11311/980957
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact