Riassunti VERIFICATO

LFC riassunto appunti

Università degli Studi di Perugia informatica 2026
Nessun voto ancora
Condividi: WhatsApp Telegram
Anteprima pagina 1 — LFC riassunto appunti Anteprima pagina 2 — LFC riassunto appunti Anteprima pagina 3 — LFC riassunto appunti

Stai vedendo l'anteprima delle prime pagine. Sblocca tutte le pagine con l'abbonamento.

Di cosa parla

Il corso di Linguaggi Formali e Compilatori copre i seguenti argomenti essenziali:

  • Compilatori e Interpreti: I compilatori traducono un programma completo in linguaggio macchina, mentre gli interpreti eseguono la traduzione riga per riga. L'Albero Sintattico Astratto (AST) è una rappresentazione intermedia.
  • Fasi di Compilazione:
    • Analitica: Include l'analisi lessicale (scanner, lessemi, token), sintattica (parser, AST) e semantica statica (type checking).
    • Sintetica: Generazione del codice intermedio (indipendente dall'architettura) e del codice oggetto (specifico dell'architettura), con ottimizzazione.
  • Linguaggi Formali: Definiti da un alfabeto (insieme finito di simboli) e parole (sequenze finite di simboli). Il Teorema di Cantor sottolinea l'impossibilità di una caratterizzazione univoca dei linguaggi tramite una singola parola.
  • Grammatiche: Una grammatica a struttura di frase è una quadrupla (V, Σ, P, S). Vengono definite le conseguenze dirette e le derivazioni.
  • Gerarchia di Chomsky: Classifica le grammatiche in Tipo 0 (struttura di frase), Tipo 1 (sensibili al contesto), Tipo 2 (non contestuali) e Tipo 3 (regolari), in base alle restrizioni sulle produzioni.
  • Automi a Stati Finiti (FSA): Modelli per riconoscere i linguaggi.
  • Automi Deterministici (DFA): Ogni coppia stato-simbolo ha una singola transizione definita. Il linguaggio accettato è l'insieme delle parole che portano a uno stato finale.
  • Automi Non Deterministici (NFA) e con Epsilon-transizioni (ε-NFA): Possono avere più transizioni o transizioni "vuote" per una data coppia stato-simbolo.
  • Determinizzazione: Ogni NFA o ε-NFA può essere convertito in un DFA equivalente.
  • Espressioni Regolari: Costruite con operazioni di unione, concatenazione e chiusura di Kleene. Il Teorema di Kleene stabilisce l'equivalenza tra linguaggi regolari e linguaggi riconoscibili da FSA.
  • Minimizzazione degli Automi: L'algoritmo di minimizzazione e il Teorema di Nerode permettono di costruire il DFA con il minor numero di stati.
  • Analisi Lessicale: Identifica lessemi e li raggruppa in token (es. identificatori, parole chiave) usando pattern (espressioni regolari). Gestisce priorità e il prefisso più lungo.
  • Semplificazione delle Grammatiche: Processi per eliminare produzioni "inutili" come ε-produzioni, produzioni 1-arie, variabili improduttive e inaccessibili.
  • Forme Normali: La Forma Normale di Chomsky (CNF) e la Forma Normale di Greibach (GNF) sono standardizzate per le grammatiche non contestuali.
  • Parsing:
    • Algoritmo CYK: Soluzione per parsing e ricognizione per grammatiche in CNF (complessità O(n³)).
    • Parsing Top-Down (Predittivo): Utilizza le funzioni FIRST e FOLLOW per fare scelte deterministiche nella derivazione.
    • Grammatiche LL(1): Permettono un parsing top-down deterministico senza backtracking.
  • Automi a Pila (PDA): Estensioni degli FSA con una pila, utilizzati per riconoscere i linguaggi non contestuali. Il Teorema di Caratterizzazione collega PDA e grammatiche non contestuali.
  • Pumping Lemmas: Dimostrano che certi linguaggi non sono regolari o non contestuali, verificando l'iterabilità di sottostringhe.
  • Proprietà di Chiusura: I linguaggi regolari sono chiusi rispetto alle operazioni booleane. I linguaggi non contestuali sono chiusi per unione, concatenazione, chiusura di Kleene e intersezione con linguaggi regolari.

Registrati e scarica subito 3 appunti gratis.

Altri appunti di LINGUAGGI FORMALI E COMPILATORI

Condividi questi appunti

WhatsApp Telegram