Skip to content

Analisi di un ambiente simbolico per lo sviluppo di un compilatore parallelizzante

Oggetto di questo lavoro di tesi è lo studio e l’implementazione (prototipazione) di un ambiente di programmazione per lo sviluppo di un compilatore fortemente modulare in cui le componenti di analisi e di ristrutturazione del codice possono essere combinate e ricombinate per ottenere da un lato maggiore flessibilità di utilizzo e dall’altro codici con migliori prestazioni computazionali. In particolare l’ambiente sviluppato si caratterizza per la semplicità di utilizzo. E’ possibile la codifica ed il test di algoritmi per l’analisi e trasformazione del codice, in maniera semplice ed efficiente. Questo vincolo progettuale ha fornito criteri per la scelta del linguaggio di programmazione con cui implementare un ambiente di sviluppo di compilatori con queste caratteristiche. L’attenzione si è infatti rivolta verso i linguaggi di manipolazione simbolica ed in particolare verso il più rappresentativo di questi, il LISP [McCar60]. Esso possiede caratteristiche uniche che lo rendono lo strumento più idoneo per la programmazione e la manipolazione simbolica di strutture dati ed algoritmi. L’aspetto più significativo è il fatto che le funzioni, con cui sono descritti tutti i processi di calcolo, possono esse rappresentate nelle stesse strutture dati del LISP. Questo distingue la programmazione in LISP dagli altri paradigmi di programmazione, poiché questi ultimi si fondano sulla tradizionale dicotomia tra dato ed algoritmo. Questa funzionalità rende quindi il LISP lo strumento migliore, per la scrittura di programmi che manipolano altri programmi come dati, come ad esempio gli interpreti ed infine proprio i compilatori [AS85].
Il prototipo implementato risulta costituito da tre componenti fondamentali:
1. Il Front-End per il linguaggio Fortran del compilatore parallelizzante Parafrase2.
2. Un Modulo di Conversione la cui funzione è la trasformazione della rappresentazione intermedia costruita dal front-end del compilatore parallelizzante Parafrase2 in un formato leggibile e manipolabile dal linguaggio LISP.
3. Una libreria di funzioni LISP per l’analisi del codice (Analisi del Flusso e Analisi delle Dipendenze).
Elemento caratterizzante del prototipo è che l’ambiente di compilazione e di sviluppo è costituito per intero dal sistema LISP. E’ infatti possibile compilare codice Fortran ed ottenere la relativa rappresentazione intermedia in formato LISP, pur rimanendo nel sistema. Questo è stato possibile attraverso l’implementazione di una funzione LISP (fortran_front_end) in cui sono integrati i primi due elementi del prototipo, rispettivamente il Front-End di Parafrase2 ed il Modulo di Conversione.

CONSULTA INTEGRALMENTE QUESTA TESI

La consultazione è esclusivamente in formato digitale .PDF

Acquista
Mostra/Nascondi contenuto.
INTRODUZIONE 7 Introduzione Con il termine parallelismo si indica la possibilità di eseguire più operazioni simultaneamente. In risposta alla crescente necessità di disporre di elaboratori ad alte prestazioni (high performance computing system) sono stati sviluppati algoritmi ed architetture che consentono una esecuzione concorrente (architetture parallele). Per utilizzare questa classe di macchine è necessario disporre di programmi che possono essere eseguiti su più unità processanti, programma che diremo programma parallelo. È ovvio che la ragione principale perché si voglia eseguire un programma in parallelo è l’aspettativa che il suo tempo complessivo di esecuzione sia significativamente inferiore rispetto al corrispondente programma sequenziale. Affinché questo obiettivo sia raggiungibile è necessario adattare il programma in modo da utilizzare al meglio le caratteristiche architettoniche delle macchine parallele. Questa problematica riguarda l’annotazione delle opportunità di parallelismo e richiede lo sviluppo dele metodologie e degli strumenti più confacenti per esplicitare il parallelismo potenziale di un programma o di un algoritmo. Le metodologie sviluppate per questa problematica prevedono o l’utilizzo di linguaggi di programmazione progettati per la programmazione parallela (Occam [Bar93], Ada [TD97], Haskell [Pey03], etc), oppure l’estensione di linguaggi sequenziali (Fortran [ANSI78], C [ANSI88]) congiuntamente all’utilizzo esplicito o meno di librerie di sistema per l’attivazione e la gestione di processi paralleli, e di costrutti linguistici paralleli detti annotazioni. In questo caso si dirà che il programma parallelo esibisce una forma di parallelismo esplicito. Un’altra metodologia, che sarà utilizzata come modello di riferimento in questo lavoro di tesi, prevede la traduzione di un programma sequenziale in un linguaggio eseguibile su una architettura parallela, con il vincolo che la trasformazione del

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: Giancarlo Zaccone
  Tipo: Tesi di Laurea
  Anno: 2004-05
  Università: Università degli Studi di Napoli - Federico II
  Facoltà: Scienze Matematiche, Fisiche e Naturali
  Corso: Fisica
  Relatore: Mario mango Furnari
  Lingua: Italiano
  Num. pagine: 234

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.
Per tradurre questa tesi clicca qui »
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

albero sintattico
analisi flusso di controllo
calcolo parallalo
ciclo do
compilatore parallelizzante
compilers
control dependence graph
control flow graph
data dependence
data dependence graph
dipendenza dati
fisica
grafo
grafo delle dipendenze
hierarchical task graph
intermediate representation
lisp
loop interchanging
modulo conversione
parafrase2
parallelizing compilers
rappresentazione intermedia
tabella simboli
test dipendenza

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