Please use this identifier to cite or link to this item: http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/17698
Title: Μεταγλώττιση σε WebAssembly ως Υπηρεσία
Authors: Γαδ, Νικόλαος
Παπασπύρου Νικόλαος
Keywords: Μεταγλωττιστές
Εξυπηρετητής
Φυλλομετρητής
Συλλογή Μεταγλωττιστών
Βάση Δεδομένων
Γλώσσα Φυλλομετρητή
Webassembly
Compilers
Compiler Collection
Browser
Browser Language
Server
Database
Docker Containers
Backend
Frontend
Angular
Python
PostgreSQL
Scalability
Proof of Concept
PoC
Κλιμακωσιμότητα
Issue Date: 6-Oct-2020
Abstract: Σκοπός της παρούσας διπλωματικής εργασίας είναι η σχεδίαση ενός συστήματος το οποίο δίνει τη δυνατότητα σε ένα χρήστη να μεταγλωττίσει πηγαίο κώδικα μιας γλώσσας υψηλού επιπέδου σε Webassembly, χωρίς να γνωρίζει ο ίδιος τις εξαρτήσεις που χρειάζεται ο εκάστοτε μεταγλωττιστής ώστε να λειτουργήσει. Τις τελευταίες δεκαετίες, οι άνθρωποι χρησιμοποιούν καθημερινά ένα μεγάλο σύνολο εφαρμογών, οι οποίες επηρεάζουν διάφορους τομείς της ζωή τους. Το είδος των εφαρμογών αυτών εκτείνεται από απλά παιχνίδια έως σύνθετα νευρωνικά δίκτυα και συστήματα τεχνητής νοημοσύνης για ιατρική υποβοήθηση. Συστηματικά, γίνεται προσπάθεια ώστε οι εφαρμογές αυτές να αξιοποιηθούν και σε άλλους τομείς ή να τροποποιηθούν ώστε να ικανοποιήσουν άλλες ανάγκες. Ωστόσο, αυτό δεν είναι πάντοτε εφικτό καθώς πολλές εφαρμογές χρειάζεται να είναι γρήγορες και αποδοτικές αλλά οι τροποποιήσεις που απαιτούνται ώστε να χρησιμοποιηθούν σε άλλους τομείς είτε είναι αδύνατες, είτε είναι δύσκολες, είτε εισάγουν καθυστέρηση στη λειτουργία τους, καθιστώντας τες δύσχρηστες και πιθανώς επικίνδυνες. Η Webassembly αποτελεί μία γρήγορη γλώσσα χαμηλού επιπέδου, η οποία μπορεί να τρέξει σε φυλλομετρητές και, συγχρόνως, να λειτουργήσει ως γλώσσα-στόχος κατά τη μεταγλώττιση γλωσσών υψηλού επιπέδου. Με αυτόν τον τρόπο, επιτρέπεται σε εφαρμογές γραμμένες σε γλώσσες υψηλού επιπέδου που παραδοσιακά δε μπορούσαν να τρέξουν σε φυλλομετρητές, να αξιοποιηθούν από όλες τις συσκευές που διαθέτουν φυλλομετρητή, δίχως να προκαλείται μεγάλη μεταβολή στην απόδοσή τους. Δεδομένου πως υπάρχουν διαφορετικοί μεταγλωττιστές για τις διάφορες γλώσσες, ένας προγραμματιστής χρειάζεται να χρησιμοποιήσει και να μάθει ένα μεγάλο σύνολο εργαλείων προτού μπορέσει να μετατρέψει τους υπάρχοντες κώδικές τους σε Webassembly. Το σύστημα που μελετάται και σχεδιάζεται στην παρούσα διπλωματική εργασία, χρησιμοποιώντας εξυπηρετητές, βάση δεδομένων και containers, αποτελεί μία απόδειξη πως μπορεί να σχεδιαστεί ένα σύστημα το οποίο να κρύβει από τους χρήστες του την πολυπλοκότητα των μεταγλωττιστών, δίνοντάς τους τη δυνατότητα να μεταγλωττίσουν εύκολα γλώσσες υψηλού επιπέδου σε Webassembly μέσω μίας γενικευμένης ”Διεπαφής Προγραμματισμού Εφαρμογής” (API) ή μίας ”Διεπαφής Χρήστη” (UI), επιστρέφοντας τα αποτελέσματα της μεταγλώττισης μέσα σε ένα συμπιεσμένο ZIP αρχείο.
URI: http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/17698
Appears in Collections:Διπλωματικές Εργασίες - Theses

Files in This Item:
File Description SizeFormat 
Webassembly_Compilation_as_a_Service.pdf1.04 MBAdobe PDFView/Open


Items in Artemis are protected by copyright, with all rights reserved, unless otherwise indicated.