HEAL DSpace

Μεταγλώττιση σε WebAssembly ως Υπηρεσία

Αποθετήριο DSpace/Manakin

Εμφάνιση απλής εγγραφής

dc.contributor.author Γαδ, Νικόλαος el
dc.contributor.author Gad, Nikolaos en
dc.date.accessioned 2020-10-16T11:21:30Z
dc.date.available 2020-10-16T11:21:30Z
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/51480
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.19178
dc.rights Default License
dc.subject Μεταγλωττιστές el
dc.subject Εξυπηρετητής el
dc.subject Φυλλομετρητής el
dc.subject Συλλογή μεταγλωττιστών el
dc.subject Βάση δεδομένων el
dc.subject Γλώσσα φυλλομετρητή el
dc.subject Webassembly en
dc.subject Compilers en
dc.subject Compiler collection en
dc.subject Browser en
dc.subject Browser language en
dc.subject Server en
dc.subject Database en
dc.subject Docker Containers en
dc.subject Backend en
dc.subject Frontend en
dc.subject Angular en
dc.subject Python en
dc.subject PostgreSQL en
dc.subject Scalability en
dc.subject Proof of Concept en
dc.subject PoC en
dc.subject Κλιμακωσιμότητα el
dc.title Μεταγλώττιση σε WebAssembly ως Υπηρεσία el
heal.type bachelorThesis
heal.classification Τεχνολογία Λογισμικού el
heal.language el
heal.access free
heal.recordProvider ntua el
heal.publicationDate 2020-10-06
heal.abstract Σκοπός της παρούσας διπλωματικής εργασίας είναι η σχεδίαση ενός συστήματος το οποίο δίνει τη δυνατότητα σε ένα χρήστη να μεταγλωττίσει πηγαίο κώδικα μιας γλώσσας υψηλού επιπέδου σε Webassembly, χωρίς να γνωρίζει ο ίδιος τις εξαρτήσεις που χρειάζεται ο εκάστοτε μεταγλωττιστής ώστε να λειτουργήσει. Τις τελευταίες δεκαετίες, οι άνθρωποι χρησιμοποιούν καθημερινά ένα μεγάλο σύνολο εφαρμογών, οι οποίες επηρεάζουν διάφορους τομείς της ζωή τους. Το είδος των εφαρμογών αυτών εκτείνεται από απλά παιχνίδια έως σύνθετα νευρωνικά δίκτυα και συστήματα τεχνητής νοημοσύνης για ιατρική υποβοήθηση. Συστηματικά, γίνεται προσπάθεια ώστε οι εφαρμογές αυτές να αξιοποιηθούν και σε άλλους τομείς ή να τροποποιηθούν ώστε να ικανοποιήσουν άλλες ανάγκες. Ωστόσο, αυτό δεν είναι πάντοτε εφικτό καθώς πολλές εφαρμογές χρειάζεται να είναι γρήγορες και αποδοτικές αλλά οι τροποποιήσεις που απαιτούνται ώστε να χρησιμοποιηθούν σε άλλους τομείς είτε είναι αδύνατες, είτε είναι δύσκολες, είτε εισάγουν καθυστέρηση στη λειτουργία τους, καθιστώντας τες δύσχρηστες και πιθανώς επικίνδυνες. Η Webassembly αποτελεί μία γρήγορη γλώσσα χαμηλού επιπέδου, η οποία μπορεί να τρέξει σε φυλλομετρητές και, συγχρόνως, να λειτουργήσει ως γλώσσα-στόχος κατά τη μεταγλώττιση γλωσσών υψηλού επιπέδου. Με αυτόν τον τρόπο, επιτρέπεται σε εφαρμογές γραμμένες σε γλώσσες υψηλού επιπέδου που παραδοσιακά δε μπορούσαν να τρέξουν σε φυλλομετρητές, να αξιοποιηθούν από όλες τις συσκευές που διαθέτουν φυλλομετρητή, δίχως να προκαλείται μεγάλη μεταβολή στην απόδοσή τους. Δεδομένου πως υπάρχουν διαφορετικοί μεταγλωττιστές για τις διάφορες γλώσσες, ένας προγραμματιστής χρειάζεται να χρησιμοποιήσει και να μάθει ένα μεγάλο σύνολο εργαλείων προτού μπορέσει να μετατρέψει τους υπάρχοντες κώδικές τους σε Webassembly. Το σύστημα που μελετάται και σχεδιάζεται στην παρούσα διπλωματική εργασία, χρησιμοποιώντας εξυπηρετητές, βάση δεδομένων και containers, αποτελεί μία απόδειξη πως μπορεί να σχεδιαστεί ένα σύστημα το οποίο να κρύβει από τους χρήστες του την πολυπλοκότητα των μεταγλωττιστών, δίνοντάς τους τη δυνατότητα να μεταγλωττίσουν εύκολα γλώσσες υψηλού επιπέδου σε Webassembly μέσω μίας γενικευμένης ”Διεπαφής Προγραμματισμού Εφαρμογής” (API) ή μίας ”Διεπαφής Χρήστη” (UI), επιστρέφοντας τα αποτελέσματα της μεταγλώττισης μέσα σε ένα συμπιεσμένο ZIP αρχείο. el
heal.abstract The purpose of this diploma thesis is the design of a system that gives user the ability to compile highlevel language source code to Webassembly, without demanding from him/her to know the software dependencies that are needed from each distinct compiler to work. During the last decades, people are using a large set of applications on a daily base that influence various areas of their lives. The type of applications ranges from simple games to complex neural networks and artificial intelligence systems for medical support. Systematically, efforts are made in order for the applications to be used in other areas or to be modified in order to satisfy other needs. However, this is not always feasible because many applications need to be fast and efficient but the necessary modifications, in order to be applied in other areas, are impossible, difficult or they introduce a latency during their usage, thus making them difficult to use and possibly dangerous. Webassembly is a fast low-level language, capable of running in browsers and, simultaneously, of being used as a target language during high-level language compilation. This way, applications written in high-level languages that couldn’t traditionally run in browsers, are able to be used by every device that has a browser, without a noticeable change in their efficiency. Given the fact that different compilers exist for the various languages, a programmer needs to use and learn a big set of tools before being able to change the existing code to Webassembly. The system that is studied and designed in this diploma thesis, using servers, database and containers, is a proof of concept that it is possible to design a system that can hide the compiler complexity from the user, by giving the user the ability to easily compile high-level languages to Webassembly via a generic Application Programming Interface (API) or a User Interface (UI), returning the compilation results inside a compressed ZIP file. en
heal.advisorName Παπασπύρου, Νικόλαος el
heal.committeeMemberName Παπασπύρου, Νικόλαος el
heal.committeeMemberName Γκούμας, Γεώργιος el
heal.committeeMemberName Στάμου, Γεώργιος el
heal.academicPublisher Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών el
heal.academicPublisherID ntua
heal.numberOfPages 54 σ. el
heal.fullTextAvailability false


Αρχεία σε αυτό το τεκμήριο

Αυτό το τεκμήριο εμφανίζεται στην ακόλουθη συλλογή(ές)

Εμφάνιση απλής εγγραφής