Skip to content

Compilatore Z : XML tra Source e Target

Questa tesi concerne lo sviluppo di un front-end di un compilatore (chiamato Z, a cui ci riferiremo spesso con il termine generico "compilatore"), il quale traduce un linguaggio source dalla sintassi molto semplice, il ¸ λ -calcolo, in vari \linguaggi" target di un qualche utilizzo pratico, come, ad esempio, l'albero sintattico corrispondente a un ¸ λ -termine dato, od un formato pretty printing" dello stesso termine in linguaggio LaTeX.
Il punto focale del lavoro non sta tanto nella scelta del linguaggio source, ma quanto nel fatto che per tradurre dal source ai vari target si µe scelto di utilizzare un passo intermedio di traduzione che utilizza un formato dei dati intermedio, l'XML. Il λ¸-termine dato viene tradotto in formato intermedio XML, e tale formato intermedio viene manipolato in modo da ottenere una delle forme target.
La tesi si pone come il punto iniziale dello sviluppo di compilatori per i calcoli studiati in alcuni lavori sui fondamenti dei linguaggi orientati agli oggetti che hanno le loro radici nel ¸ λ -calcolo. Le caratteristiche fondamentali di tali compilatori dovrebbero essere una rapida prototipazione e la possibilitµa di essere estesi con facilitµa. La traduzione intermedia in XML sembra promettente per soddisfare entrambi i requisiti.
L'idea di utilizzare un formato intermedio, ed in particolare un formato in cui i dati siano semi-strutturati, non µe originale, ed µe stata esplorata in precedenza in contesti simili da Sebastien Carlier, dottorando della Heriot-Watt University di Edimburgo, UK (alcuni lavori che sfruttano questa tecnologia si possono trovare nel sito dei deliverable software del progetto \Dynamic Assem-bly, Recon¯guration and Type-checking IST-2001-33477 (DART) project in the Global Computing pro-active initiative of Future and Emerging Technologies":
https://www.cee.hw.ac.uk/DART/software/). La novità del nostro lavoro è quella di utilizzare per manipolare i dati espressi in XML il linguaggio Java
[6, 7, 5], quando invece Carlier ha usato il linguaggio Haskell (il cui sito ufficiale µe: https://www.haskell.org/). Haskell è un linguaggio funzionale, ricco di librerie per la costruzione di analizzatori lessicali e parser, ed è certamente piµu vicino ai calcoli relati al ¸ λ -calcolo, ma non è un linguaggio cosidetto di produzione", cioè universalmente" usato come lo lo è invece Java. Il nostro scopo è quello di mostrare che queste tecniche sono efficaci anche se sviluppate in un linguaggio meno specialistico, da un programmatore " non accademico ".
I risultati che andiamo a presentare ci danno speranza per voler, in linea
di principio, procedere con queste tecniche, dato che le conoscenze generali sui linguaggi e i compilatori che abbiamo dovuto acquisire si sono dimostrate relativamente di base (ad esempio, la grammatica che definisce il traduttore da ¸ λ-calcolo a XML non è particolarmente complicata), inoltre Java offre una buona serie di strumenti per la creazione di analizzatori lessicali e parser, in generale, e per la manipolazione di dati semistrutturati come quelli in formato
XML, in particolare.
L'applicazione sviluppata consta non soltanto del compilatore, ma anche di un interfaccia web client-server, che consente di introdurre il programma" da compilare, e di scegliere il target desiderato tra quelli disponibili.
La tesi si divide in sei capitoli principali e un'appendice contenente il codice sviluppato. Il Capitolo 2 è un'introduzione al ¸ λ -calcolo e alla corrispondente sintassi utilizzata nel seguito. Il Capitolo 4 descrive tutti i possibili output del nostro compilatore. Il Capitolo 3 è una breve rassegna su XML, il linguaggio da noi utilizzato come linguaggio intermedio. Il Capitolo 5 descrive, con un certo dettaglio, l'utilizzo delle librerie Java che riguardano JLex e Java CUP (per la creazione di analizzatori lessicali e parser). Il Capitolo 6 illustra brevemente le librerie Java per la manipolazione dei dati in formato XML. Il Capitolo 7 descrive il compilatore, presentandone i moduli principali, che sono l'analizzatore lessicale, il parser e gli algoritmi di manipolazione dei dati XML. Concludiamo poi con un diagramma riassuntivo e alcuni commenti sul lavoro svolto.

CONSULTA INTEGRALMENTE QUESTA TESI

La consultazione è esclusivamente in formato digitale .PDF

Acquista
Mostra/Nascondi contenuto.
Capitolo 1 Introduzione Questa tesi concerne lo sviluppo di un front-end di un compilatore (chiamato Z, a cui ci riferiremo spesso con il termine generico “compilatore”), il quale traduce un linguaggio source dalla sintassi molto semplice, il λ-calcolo, in vari “linguaggi” target di un qualche utilizzo pratico, come, ad esempio, l’albero sintattico corrispondente a un λ-termine dato, od un formato “pretty printing” dello stesso termine in linguaggio LaTeX [8]. Il punto focale del lavoro non sta tanto nella scelta del linguaggio source, ma quanto nel fatto che per tradurre dal source ai vari target si e` scelto di utilizzare un passo intermedio di traduzione che utilizza un formato dei dati intermedio, l’XML [12, 13, 9]. Il λ-termine dato viene tradotto in formato intermedio XML, e tale formato intermedio viene manipolato in modo da ottenere una delle forme target. La tesi si pone come il punto iniziale dello sviluppo di compilatori per i calcoli studiati in alcuni lavori sui fondamenti dei linguaggi orientati agli oggetti, quali [4, 3, 2], che hanno le loro radici nel λ-calcolo. Le caratteristiche fondamentali di tali compilatori dovrebbero essere una rapida prototipazione e la possibilita` di essere estesi con facilita`. La traduzione intermedia in XML sembra promettente per soddisfare entrambi i requisiti. L’idea di utilizzare un formato intermedio, ed in particolare un formato in cui i dati siano semi-strutturati, non e` originale, ed e` stata esplorata in precedenza in contesti simili da Se´bastien Carlier, dottorando della Heriot-Watt University di Edimburgo, UK (alcuni lavori che sfruttano questa tecnologia si possono trovare nel sito dei deliverable software del progetto “Dynamic Assem- bly, Reconfiguration and Type-checking IST-2001-33477 (DART) project in the Global Computing pro-active initiative of Future and Emerging Technologies”: http://www.cee.hw.ac.uk/DART/software/). La novita` del nostro lavoro e` quella di utilizzare per manipolare i dati espressi in XML il linguaggio Java [6, 7, 5], quando invece Carlier ha usato il linguaggio Haskell (il cui sito ufficiale e`: http://www.haskell.org/). Haskell e` un linguaggio funzionale, ricco di li- brerie per la costruzione di analizzatori lessicali e parser, ed e` certamente piu` vicino ai calcoli relati al λ-calcolo, ma non e` un linguaggio cosidetto di “pro- 1

CONSULTA INTEGRALMENTE QUESTA TESI

La consultazione è esclusivamente in formato digitale .PDF

Acquista
Il miglior software antiplagio

L'unico servizio antiplagio competitivo nel prezzo che garantisce l'aiuto della nostra redazione nel controllo dei risultati.
Analisi sicura e anonima al 100%!
Ottieni un Certificato Antiplagio dopo la valutazione.

Informazioni tesi

  Autore: Giuseppe Zuffanti
  Tipo: Laurea I ciclo (triennale)
  Anno: 2003-04
  Università: Università degli Studi di Torino
  Facoltà: Scienze dell'informazione
  Corso: Informatica
  Relatore: Viviana Bono
  Lingua: Italiano
  Num. pagine: 113

FAQ

Per consultare la tesi è necessario essere registrati e acquistare la consultazione integrale del file, al costo di 29,89€.
Il pagamento può essere effettuato tramite carta di credito/carta prepagata, PayPal, bonifico bancario.
Confermato il pagamento si potrà consultare i file esclusivamente in formato .PDF accedendo alla propria Home Personale. Si potrà quindi procedere a salvare o stampare il file.
Maggiori informazioni
Ingiustamente snobbata durante le ricerche bibliografiche, una tesi di laurea si rivela decisamente utile:
  • perché affronta un singolo argomento in modo sintetico e specifico come altri testi non fanno;
  • perché è un lavoro originale che si basa su una ricerca bibliografica accurata;
  • perché, a differenza di altri materiali che puoi reperire online, una tesi di laurea è stata verificata da un docente universitario e dalla commissione in sede d'esame. La nostra redazione inoltre controlla prima della pubblicazione la completezza dei materiali e, dal 2009, anche l'originalità della tesi attraverso il software antiplagio Compilatio.net.
  • L'utilizzo della consultazione integrale della tesi da parte dell'Utente che ne acquista il diritto è da considerarsi esclusivamente privato.
  • Nel caso in cui l’utente che consulta la tesi volesse citarne alcune parti, dovrà inserire correttamente la fonte, come si cita un qualsiasi altro testo di riferimento bibliografico.
  • L'Utente è l'unico ed esclusivo responsabile del materiale di cui acquista il diritto alla consultazione. Si impegna a non divulgare a mezzo stampa, editoria in genere, televisione, radio, Internet e/o qualsiasi altro mezzo divulgativo esistente o che venisse inventato, il contenuto della tesi che consulta o stralci della medesima. Verrà perseguito legalmente nel caso di riproduzione totale e/o parziale su qualsiasi mezzo e/o su qualsiasi supporto, nel caso di divulgazione nonché nel caso di ricavo economico derivante dallo sfruttamento del diritto acquisito.
L'obiettivo di Tesionline è quello di rendere accessibile a una platea il più possibile vasta il patrimonio di cultura e conoscenza contenuto nelle tesi.
Per raggiungerlo, è fondamentale superare la barriera rappresentata dalla lingua. Ecco perché cerchiamo persone disponibili ad effettuare la traduzione delle tesi pubblicate nel nostro sito.

Scopri come funziona »

DUBBI? Contattaci

Contatta la redazione a
[email protected]

Ci trovi su Skype (redazione_tesi)
dalle 9:00 alle 13:00

Oppure vieni a trovarci su

Parole chiave

compilatore
compilatore z
funzioni
java
lambda
latex
parser
php
xml

Tesi correlate


Non hai trovato quello che cercavi?


Abbiamo più di 45.000 Tesi di Laurea: cerca nel nostro database

Oppure consulta la sezione dedicata ad appunti universitari selezionati e pubblicati dalla nostra redazione

Ottimizza la tua ricerca:

  • individua con precisione le parole chiave specifiche della tua ricerca
  • elimina i termini non significativi (aggettivi, articoli, avverbi...)
  • se non hai risultati amplia la ricerca con termini via via più generici (ad esempio da "anziano oncologico" a "paziente oncologico")
  • utilizza la ricerca avanzata
  • utilizza gli operatori booleani (and, or, "")

Idee per la tesi?

Scopri le migliori tesi scelte da noi sugli argomenti recenti


Come si scrive una tesi di laurea?


A quale cattedra chiedere la tesi? Quale sarà il docente più disponibile? Quale l'argomento più interessante per me? ...e quale quello più interessante per il mondo del lavoro?

Scarica gratuitamente la nostra guida "Come si scrive una tesi di laurea" e iscriviti alla newsletter per ricevere consigli e materiale utile.


La tesi l'ho già scritta,
ora cosa ne faccio?


La tua tesi ti ha aiutato ad ottenere quel sudato titolo di studio, ma può darti molto di più: ti differenzia dai tuoi colleghi universitari, mostra i tuoi interessi ed è un lavoro di ricerca unico, che può essere utile anche ad altri.

Il nostro consiglio è di non sprecare tutto questo lavoro:

È ora di pubblicare la tesi