Questo testo è una dispensa di appunti scritta da studenti; lo scopo è quello di raccogliere i contenuti del corso di Linugaggi Formali e Compilatori e organizzarli secondo un'esposizione quanto più completa, efficace ed intuitiva possibile, tanto per lo studente desideroso di ottenere un'ottima padronanza degli argomenti, quanto anche per lo studente pigro in cerca di risorse per "portare a casa" l'esame.
Gli appunti sono stati presi durante il corso di Linguaggi Formali e Compilatori tenuto dalla professoressa Paola Quaglia per il Corso di Laurea in Informatica, DISI, Università degli studi di Trento, anno accademico 2020-2021. I contenuti provengono quindi primariamente dalle lezioni della professoressa, mentre invece ordine ed esposizione sono in gran parte originali. Allo stesso modo, la maggior parte degli assets (figure, grafi, tabelle, pseudocodici) sono contenutisticamente tratti dal materiale della professoressa, ma ricreati e molto spesso manipolati dagli autori; inoltre, per ottenere il risultato appena citato, è stato molto spesso necessario abbandonare quasi del tutto l'esposizione della professoressa e usarla, appunto, come canovaccio per svilupparne una originale.
Maggiori informazioni sul progetto e e sugli autori possono essere trovate nella prefazione dell'elaborato.
Se durante la lettura doveste incorrere in errori di qualsiasi tipo, tra gli altri errori di battitura, errori concettuali o di impaginazione, vi chiediamo di fare una segnalazione; ve ne saremo riconoscenti e provvederemo a correggere quanto prima. Se siete arrivati a questo punto assumiamo una buona familiarità con Github, per cui come canali per segnalare errori:
Se preferite non segnalare l'errore tramite Github potete comunque contattarci personalmente tramite gli indirizzi email che trovate sui nostri profili Github, oppure con la mail istituzionale [email protected]
, o naturalmente con mezzi più informali.
Prerequisiti:
pip
, per cui assicuratevi di aver installato Python
A questo punto:
git clone https://github.com/filippodaniotti/Appunti-LFC
pip install Pygments
pdflatex -shell-escape main.tex
latexmk -pdf -shell-escape main.tex
arara main.tex
(dovete necessariamente trovarvi nella directory ~/src/
), sarà equivalente a lanciare una sola passata di pdflatex
È possibile compilare singolarmente ogni capitolo e ogni asset, è sufficiente lanciare la compilazione sul singolo .tex
desiderato.
Se lavorate con degli IDE o con degli editor in coppia con dei tool per la scrittura LaTeX (e.g. VS Code + LaTeX Workshop o Atom + latex), assicuratevi di attivare il flag -shell-escape
dalle impostazioni di compilazione del vostro tool.
Se non disponete dei prerequisiti per la build indicati sopra (o non volete installarli system-wide), potete buildare con docker. Se poi avete sia VS Code che Docker, potete riferirvi a questo gist per una configurazione già pronta.
Prerequisiti:
Procedimento:
git clone https://github.com/filippodaniotti/Appunti-LFC
docker build -t dispensa_lfc .
docker build -t dispensa_lfc --build-arg UID=$(id -u) --build-arg GID=$(id -g) .
(si assicura che il vostro userId e groupId corrispondano a quelli che il container userà)docker run -ti --rm -v $(pwd):/dispensa --name dispensa_lfc dispensa_lfc
standalone
per gestire la compilazione autonoma di capitoli e assetstabularx
per la gestione delle tabelleforest
per la generazione degli alberitikz
con librerie automata
per la generazione dei grafialgorithm2e
per la scrittura degli pseudocodiciminted
per la scrittura di codice