Linguaggi Formali e Compilazione
eBook - ePub

Linguaggi Formali e Compilazione

  1. Italian
  2. ePUB (disponibile sull'app)
  3. Disponibile su iOS e Android
eBook - ePub

Informazioni su questo libro

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.

Domande frequenti

Sì, puoi annullare l'abbonamento in qualsiasi momento dalla sezione Abbonamento nelle impostazioni del tuo account sul sito web di Perlego. L'abbonamento rimarrà attivo fino alla fine del periodo di fatturazione in corso. Scopri come annullare l'abbonamento.
Al momento è possibile scaricare tramite l'app tutti i nostri libri ePub mobile-friendly. Anche la maggior parte dei nostri PDF è scaricabile e stiamo lavorando per rendere disponibile quanto prima il download di tutti gli altri file. Per maggiori informazioni, clicca qui.
Perlego offre due piani: Base e Completo
  • Base è ideale per studenti e professionisti che amano esplorare un’ampia varietà di argomenti. Accedi alla Biblioteca Base con oltre 800.000 titoli affidabili e best-seller in business, crescita personale e discipline umanistiche. Include tempo di lettura illimitato e voce Read Aloud standard.
  • Completo: Perfetto per studenti avanzati e ricercatori che necessitano di accesso completo e senza restrizioni. Sblocca oltre 1,4 milioni di libri in centinaia di argomenti, inclusi titoli accademici e specializzati. Il piano Completo include anche funzionalità avanzate come Premium Read Aloud e Research Assistant.
Entrambi i piani sono disponibili con cicli di fatturazione mensili, ogni 4 mesi o annuali.
Perlego è un servizio di abbonamento a testi accademici, che ti permette di accedere a un'intera libreria online a un prezzo inferiore rispetto a quello che pagheresti per acquistare un singolo libro al mese. Con oltre 1 milione di testi suddivisi in più di 1.000 categorie, troverai sicuramente ciò che fa per te! Per maggiori informazioni, clicca qui.
Cerca l'icona Sintesi vocale nel prossimo libro che leggerai per verificare se è possibile riprodurre l'audio. Questo strumento permette di leggere il testo a voce alta, evidenziandolo man mano che la lettura procede. Puoi aumentare o diminuire la velocità della sintesi vocale, oppure sospendere la riproduzione. Per maggiori informazioni, clicca qui.
Sì! Puoi usare l’app Perlego sia su dispositivi iOS che Android per leggere in qualsiasi momento, in qualsiasi luogo — anche offline. Perfetta per i tragitti o quando sei in movimento.
Nota che non possiamo supportare dispositivi con iOS 13 o Android 7 o versioni precedenti. Scopri di più sull’utilizzo dell’app.
Sì, puoi accedere a Linguaggi Formali e Compilazione di Angelo Morzenti,Luca Breveglieri,Stefano Crespi Reghizzi in formato PDF e/o ePub, così come ad altri libri molto apprezzati nelle sezioni relative a Informatica e Linguaggi di programmazione. Scopri oltre 1 milione di libri disponibili nel nostro catalogo.

Indice dei contenuti

  1. 1
  2. Title Page
  3. Prefazione
  4. Indice
  5. Capitolo 1 - Introduzione
  6. 1.2 Parti del compilatore e concetti corrispondenti
  7. Capitolo 2 - Sintassi
  8. 2.1.2 Tipi di linguaggio
  9. 2.1.3 Scaletta
  10. 2.2 Teoria dei linguaggi formali
  11. 2.2.1.1 Operazioni su stringhe
  12. 2.2.1.3 Sottostringa
  13. 2.2.1.5 Ripetizione
  14. 2.2.3 Operazioni su insiemi
  15. 2.2.4 Stella e croce
  16. 2.2.5 Quoziente
  17. 2.3 Espressioni e linguaggi regolari
  18. 2.3.2 Derivazione e linguaggio
  19. 2.3.2.1 Ambiguit delle espressioni regolari
  20. 2.3.3 Altri operatori
  21. 2.3.4 Propriet di chiusura della famiglia REG
  22. 2.4 Astrazione linguistica
  23. 2.4.1 Lista astratta e concreta
  24. 2.4.1.1 Sostituzione
  25. 2.5 Grammatiche generative libere da contesto
  26. 2.5.1 Limiti dei linguaggi regolari
  27. 2.5.3 Rappresentazione convenzionale delle grammatiche
  28. 2.5.4 Derivazione e linguaggio generato
  29. 2.5.5 Grammatica erronea e regola inutile
  30. 2.5.6 Regole ricorsive e infinitezza del linguaggio
  31. 2.5.7 Albero sintattico e derivazione canonica
  32. 2.5.7.1 Derivazione destra e sinistra
  33. 2.5.8 Linguaggi a parentesi
  34. 2.5.9 Composizione regolare di linguaggi liberi
  35. 2.5.10 Ambiguit
  36. 2.5.11 Catalogo di forme ambigue e rimedi
  37. 2.5.11.1 Ambiguit di ricorsione bilaterale
  38. 2.5.11.2 Ambiguit di unione
  39. 2.5.11.3 Ambiguit di concatenamento
  40. 2.5.11.4 Codifica univoca
  41. 2.5.11.5 Altre situazioni ambigue
  42. 2.5.11.6 Ambiguit della frase condizionale
  43. 2.5.11.7 Ambiguit inerente del linguaggio
  44. 2.5.12 Equivalenza debole e strutturale
  45. 2.5.12.1 Equivalenza strutturale in senso lato
  46. 2.5.13 Trasformazioni di grammatiche e formenormali
  47. 2.5.13.3 Eliminare i nonterminali annullabili e le regole vuote
  48. 2.5.13.4 Eliminare le regole di copia o categorizzazione
  49. 2.5.13.5 Eliminare le parti destre ripetute
  50. 2.5.13.6 Forma normale di Chomsky o binaria
  51. 2.5.13.7 Forma normale con operatori
  52. 2.5.13.8 Trasformare la ricorsione da sinistra in destra
  53. 2.5.13.9 Forma normale in tempo reale e di Greibach
  54. 2.6 Grammatiche dei linguaggi regolari
  55. 2.6.1 Dallespressione regolare alla grammatica libera
  56. 2.6.2 Grammatica lineare e unilineare
  57. 2.6.3 Equazioni lineari e linguaggio
  58. 2.7 Linguaggi liberi e regolari a confronto
  59. 2.7.0.1 Ruolo della derivazione autoinclusiva
  60. 2.7.1 Limiti dei linguaggi liberi
  61. 2.7.2 Propriet di chiusura di REG e LIB
  62. 2.7.3 Trasformazioni alfabetiche
  63. 2.7.3.1 Chiusura rispetto a trasformazioni alfabetiche
  64. 2.7.4 Grammatica estesa con espressioni regolari
  65. 2.7.4.1 Derivazioni e alberi nelle grammatiche libere estese
  66. 2.8 Grammatiche e famiglie di linguaggi pi generali
  67. Capitolo 3 - Automi finiti e riconoscimento dei linguaggi regolari
  68. 3.2 Algoritmi di riconoscimento e automi
  69. 3.2.1 Un automa generale
  70. 3.3 Introduzione agli automi finiti
  71. 3.4 Automa finito deterministico
  72. 3.4.1 Stato di errore e completamento dellautoma
  73. 3.4.2 Automa pulito
  74. 3.4.3 Automa minimo
  75. 3.4.3.1 Costruzione dellautoma minimo
  76. 3.4.4 Dallautoma alla grammatica
  77. 3.5 Automa non deterministico
  78. 3.5.1 Motivazioni del nondeterminismo
  79. 3.5.1.2 Dualit sinistra-destra e riflessione del linguaggio
  80. 3.5.2 Riconoscitore non deterministico
  81. 3.5.2.1 Funzione di transizione
  82. 3.5.3 Automa con mosse spontanee
  83. 3.5.3.1 Unicit dello stato iniziale
  84. 3.5.5 Ambiguit dellautoma
  85. 3.6 Dallautoma allespressione regolare direttamente: metodo BMC
  86. 3.7 Eliminazione del non determinismo
  87. 3.7.1 Costruzione delle parti finite raggiungibili
  88. 3.8 Dallespressione regolare allautoma riconoscitore
  89. 3.8.1 Metodo strutturale di Thompson
  90. 3.8.2 Metodo di Berry-Sethi
  91. 3.8.2.2 Espressioni regolari lineari e loro insiemi locali
  92. 3.8.2.3 Dallespressione regolare allautoma deterministico
  93. 3.8.2.4 Riconoscitore deterministico mediante lalgoritmo diBerry-Sethi
  94. 3.9 Espressione regolare con complemento e intersezione
  95. 3.9.1 Prodotto di automi
  96. 3.9.1.1 Espressioni regolari estese e ristrette
  97. 3.9.1.2 Linguaggi senza stella
  98. 3.10 Riepilogo: relazioni tra linguaggi regolari, automi egrammatiche
  99. Capitolo 4 - Automi a pila e parsificazione
  100. 4.2 Automa a pila
  101. 4.2.1 Dalla grammatica allautoma a pila
  102. 4.2.1.1 Complessit di calcolo dellautoma a pila
  103. 4.2.2 Definizione dellautoma a pila
  104. 4.2.2.1 Diagramma stato-transizione per automi a pila
  105. 4.2.2.2 Variet di automi a pila
  106. 4.3 Linguaggi liberi e automi a pila: una sola famiglia
  107. 4.3.1 Intersezione di linguaggi liberi e regolari
  108. 4.3.2 Automi a pila e linguaggi deterministici
  109. 4.3.2.1 Propriet di chiusura dei linguaggi deterministici
  110. 4.3.2.2 Linguaggi nondeterministici
  111. 4.3.2.3 Determinismo e inambiguit del linguaggio
  112. 4.3.2.4 Sottoclassi degli automi deterministici a pila
  113. 4.3.2.5 Semplici sottofamiglie deterministiche
  114. 4.4 Analisi sintattica
  115. 4.4.1 Analisi discendente e ascendente
  116. 4.5 La grammatica come rete di automi finiti
  117. 4.5.0.1 Diagrammi sintattici
  118. 4.5.1 Derivazione per una rete di macchine
  119. 4.5.1.1 Grammatica linearizzata a destra
  120. 4.5.1.2 Punto di chiamata e attivazione di una macchina
  121. 4.5.2 Insieme degli inizi e prospezione
  122. 4.6 Analisi sintattica deterministica ascendente
  123. 4.6.1 Dal riconoscitore finito al parsificatoreascendente
  124. 4.6.2 Costruzione del parsificatore ELR(1)
  125. 4.6.2.1 Base, chiusura e nucleo di un m-stato
  126. 4.6.3 Condizione ELR(1)
  127. 4.6.3.1 Algoritmo del parsificatore
  128. 4.6.4 Semplificazioni per le grammatiche BNF
  129. 4.6.4.2 Caratteristiche superflue
  130. 4.6.5 Implementazione del parsificatore con pilavettore
  131. 4.6.6 Allungamento della prospezione
  132. 4.7 Analisi sintattica deterministica discendente
  133. 4.7.1 Condizione ELL (1)
  134. 4.7.2 Derivazione passo a passo del parsificatoreELL (1)
  135. 4.7.2.2 Identificatori delle candidate e puntatori non necessari
  136. 4.7.2.3 Accorciamento della pila e parsificatore predittivo
  137. 4.7.3 Costruzione diretta del parsificatore predittivodiscendente
  138. 4.7.3.1 Parsificatore predittivo
  139. 4.7.4 Allungamento della prospezione
  140. 4.8 Famiglie di linguaggi deterministici: un confronto
  141. 4.9 Valutazione dei metodi di analisi
  142. 4.10 Un algoritmo generale di analisi sintattica
  143. 4.10.1 Presentazione introduttiva
  144. 4.10.2 Algoritmo di Earley
  145. 4.10.2.1 Osservazioni su complessit e ottimizzazioni
  146. 4.11 Parsificazione parallela locale
  147. 4.11.1 Grammatica di Floyd a precedenza di operatori
  148. 4.11.1.1 Confronto con i linguaggi deterministici
  149. 4.11.2 Parsificatore sequenziale a precedenza di operatori
  150. 4.11.3 Algoritmo di parsificazione parallelo
  151. 4.11.3.1 Complessit
  152. 4.12 Gestione degli errori e delle modifiche
  153. 4.12.1 Errori
  154. 4.12.1.2 Errori sintattici
  155. 4.12.2 Parsificazione incrementale
  156. Capitolo 5 - Traduzione, semantica e analisi statica
  157. 5.2 Relazione e funzione di traduzione
  158. 5.3 Traslitterazione
  159. 5.4 Traduzione sintattica pura
  160. 5.4.1 Forme infissa e polacca
  161. 5.4.2 Ambiguit della grammatica e della traduzione
  162. 5.4.3 Grammatica di traduzione e traduttore a pila
  163. 5.4.3.1 Dalla grammatica di traduzione al traduttore a pila
  164. 5.4.4 Analisi sintattica e traduzione in linea
  165. 5.4.6 Traduzione deterministica ascendente
  166. 5.4.6.1 Forma normale postfissa
  167. 5.4.6.2 Albero sintattico come traduzione
  168. 5.4.6.3 Confronto
  169. 5.5.1 Automa riconoscitore a due ingressi
  170. 5.5.1.1 Equivalenza dei modelli
  171. 5.5.2 Funzione di traduzione e automa traduttore
  172. 5.5.2.1 Traduttore deterministico e sequenziale
  173. 5.5.2.2 Traduzione in due passate opposte
  174. 5.5.3 Propriet di chiusura rispetto alla traduzione
  175. 5.6 Traduzione semantica
  176. 5.6.1 Grammatica con attributi
  177. 5.6.1.1 Esempio introduttivo
  178. 5.6.2 Attributo sinistro e destro
  179. 5.6.3 Definizione di grammatica con attributi
  180. 5.6.4 Grafo di dipendenza e valutazione degli attributi
  181. 5.6.4.1 Esistenza e unicit della soluzione
  182. 5.6.5 Valutazione semantica in una scansione
  183. 5.6.5.1 Grammatica a una scansione
  184. 5.6.6 Altri metodi di valutazione
  185. 5.6.7 Analisi sintattica e semantica integrate
  186. 5.6.7.2 Parsificatore a discesa ricorsiva con attributi
  187. 5.6.7.3 Parsificatore ascendente con attributi
  188. 5.6.8 Applicazioni tipiche della grammatica conattributi
  189. 5.6.8.2 Generazione di codice
  190. 5.6.8.3 Analisi sintattica guidata dalla semantica
  191. 5.7 Analisi statica del programma
  192. 5.7.1 Programma come automa
  193. 5.7.2 Intervallo di vita della variabile
  194. 5.7.2.1 Calcolo dellintervallo di vita
  195. 5.7.2.2 Soluzione del sistema di equazioni di flusso
  196. 5.7.2.3 Applicazione dellanalisi di vita
  197. 5.7.3 Definizione raggiungente
  198. 5.7.3.1 Propagazione di costante
  199. 5.7.3.2 Disponibilit di variabile e inizializzazione
  200. Riferimenti bibliografici
  201. Indice analitico
  202. Back cover