Ο σκοπός αυτής της διπλωματικής εργασίας είναι η μελέτη των κβαντικών
υπολογισμών υπό το πρίσμα των κβαντικών γλωσσών προγραμματισμού.
Στα πλαίσια αυτά εξετάσαμε την γλώσσα κβαντικού προγραμματισμού
nQML και προχωρήσαμε στην προσθήκη ενός νέου τελεστή ο οποίος
αντλεί στοιχεία από τον παράλληλο προγραμματισμό και τις κλασικές συναρτήσεις
και προσπαθεί να τα προσαρμόσει στο κβαντικό μοντέλο υπολογισμού και
την κβαντική εκδοχή του παραλληλισμού. Ο τελεστής αυτός εντάχθηκε ομαλά
στην ήδη υπάρχουσα γλώσσα επεκτείνοντας το συντακτικό, το σύστημα τύπων και
την σημασιολογία της. Επιπλέον, ορίσαμε μία νέα σημασιολογία για την
γλώσσα η οποία βρίσκεται πολύ κοντά στο μαθηματικό μοντέλο των κβαντικών υπολογισμών,
βοηθώντας έτσι στην κατανόηση της λειτουργίας της nQML αλλά και των
κβαντικών υπολογισμών αυτών καθ αυτών. Η συνάρτηση που αποδίδει
σημασία στις εκφράσεις της nQML υλοποιήθηκε σε Haskell και αυτή
η υλοποίηση μας χρησίμευσε στο να υπολογίζουμε εύκολα και γρήγορα
τις σημασίες εκφράσεων της nQML και να ελέγχουμε αν όντως ταιριάζουν
με τα θεωρητικά αποτελέσματα. Τέλος, διατυπώσαμε τον αλγόριθμο του
Shor σε nQML και παίρνοντας την σημασία του οδηγηθήκαμε στην σωστή παραγοντοποίηση του αριθμού 15.
The purpose of this diploma dissertation, is to study the quantum computations under
the framework of quantum programming languages. Thus, we studied
the quantum programming language nQML and we proceeded by adding a new operator,
which incorporates elements from parallel programming and classical functions
by adjusting them to the quantum computations model and the quantum version of parallelism.
This operator was integrated normally in the pre-existing language by expanding its syntax,
type system and semantics. Moreover, we defined a new semantics for this language which is very
close to the mathematical model of quantum computations, thus helping comprehension of
nQML functionality along with quantum computations by themselves.
The function which interprets nQML’s expressions was implemented in Haskell and this was useful
in order to easily and rapidly calculate the meanings of different nQML expressions and to check
whether they actually correspond to the theoretical results.
Finally, we formulated Shor’s algorithm in nQML and by computing its meaning we managed to correctly
factor the number 15.