logo SBA

ETD

Archivio digitale delle tesi discusse presso l’Università di Pisa

Tesi etd-09272005-093542


Tipo di tesi
Tesi di laurea specialistica
Autore
Lombardelli, Fabio
Indirizzo email
lombarde_f@yahoo.it
URN
etd-09272005-093542
Titolo
Reflection in C++ tramite template metaprogramming
Dipartimento
SCIENZE MATEMATICHE, FISICHE E NATURALI
Corso di studi
INFORMATICA
Relatori
relatore Cisternino, Antonio
relatore Attardi, Giuseppe
Parole chiave
  • reflection
  • metaprogramming
  • metaobject
  • introspection
  • C++
  • template
Data inizio appello
14/10/2005
Consultabilità
Completa
Riassunto
La riflessione (reflection) è la capacità di un programma di ispezionare la propria struttura e il proprio stato durante l’esecuzione, possibilmente modificandolo, ed è una caratteristica importante dei sistemi software moderni.
Per introspezione si intende l’ispezione della struttura e dello stato del programma, ed è basata su oggetti contenenti le informazioni necessarie per descrivere classi. Programmi scritti in Java [3] o C# [13] hanno accesso a questo tipo di servizi mediante la Reflection API (un insieme di oggetti e metodi che rappresentano la struttura del programma consentendo l’analisi e la modifica, almeno in parte, del suo stato). Il C++ è invece molto limitato in questo senso.
Perché ciò possa avvenire il programma deve avere, durante la sua esecuzione, una rappresentazione di sé, nella forma di un insieme di informazioni che vanno sotto il nome di metadati.
Nell’ambito dei linguaggi che supportano il paradigma di programmazione orientata agli oggetti è naturale esporre i metadati sotto forma di oggetti, anche chiamati metaoggetti.
La tesi discute l'implementazione di due approcci per aggiungere il supporto della reflection al linguaggio C++ mediante la tecnica di template metaprogramming.
File