Compilatore Z : XML tra Source e Target
Autore
Giuseppe Zuffanti - Università degli Studi di Torino - [2003-04]
Documenti
  • Preview
  • Indice
  • Bibliografia
  • Tesi completa: 113 pagine
  • Abstract
    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":
    http://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: http://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.
    Questa tesi è correlata alla categoria


    Skype Me™! Tesionline Srl P.IVA 01096380116   |   Pubblicità   |   Privacy

    .:: segnala questa pagina ::.
    | Scrivici | | Ricerca tesi | | Come pubblicare | | FAQ | | Cinema | | Biografie |
    | Registrati | | Elenco tesi | | Borse di studio | | Personaggi | | Economia | | Libri usati |
    | Parole chiave | | La tesi del giorno | | Cronologia | | Formazione | | Ingegneria | | Glossario |
    | Home personale | | Ultime tesi pubblicate | | Una parola al giorno | | Database dei master | | Sociologia | | Approfondimenti |
      La redazione è a tua disposizione dalle ore 9:00 alle ore 18:30 (dal lunedì al venerdì) - tel. 039 6180216
      Pubblicità   |   Privacy