<rdf:RDF xmlns:crm='http://www.cidoc-crm.org/rdfs/cidoc_crm_v5.0.2_english_label.rdfs#' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:dcterms='http://purl.org/dc/terms/' xmlns:doap='http://usefulinc.com/ns/doap#' xmlns:edm='http://www.europeana.eu/schemas/edm/' xmlns:ekt='https://www.semantics.gr/authorities/schemanamespaces/ekt#' xmlns:foaf='http://xmlns.com/foaf/0.1/' xmlns:ore='http://www.openarchives.org/ore/terms/' xmlns:owl='http://www.w3.org/2002/07/owl#' xmlns:rdaGr2='http://rdvocab.info/ElementsGr2/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#' xmlns:skos='http://www.w3.org/2004/02/skos/core#' xmlns:svcs='http://rdfs.org/sioc/services#' xmlns:wgs84_pos='http://www.w3.org/2003/01/geo/wgs84_pos#' xmlns:xalan='http://xml.apache.org/xalan'><edm:ProvidedCHO rdf:about='https://www.openarchives.gr/aggregator-openarchives/edm/ntua/000011-123456789_53919'><dc:contributor xml:lang='el'>ntua</dc:contributor><dc:contributor xml:lang='el'>Σαγώνας, Κωνσταντίνος</dc:contributor><dc:contributor xml:lang='el'>Γκούμας, Γεώργιος</dc:contributor><dc:contributor xml:lang='el'>Παπασπύρου, Νικόλαος</dc:contributor><dc:contributor xml:lang='en'>Papaspyrou, Nikolaos</dc:contributor><dc:creator xml:lang='el'>Ιωακειμίδη, Αθηνά</dc:creator><dc:creator xml:lang='en'>Ioakeimidi, Athina</dc:creator><dc:description xml:lang='el'>Σκοπός της παρούσας διπλωματικής εργασίας είναι η δημιουργία ενός εργαλείου που ελέγχει την ορθότητα μεταγλωττιστών και, πιο συγκεκριμένα, των λεκτικών αναλυτών.
Οι μεταγλωττιστές είναι από τα πιο σημαντικά εργαλεία στην επιστήμη των υπολογιστών. Κάθε πρόγραμμα, για να καταλήξει σε μορφή που να εκτελείται από τον υπολογιστή, πρέπει πρώτα να έχει δεχτεί επεξεργασία από κάποιο μεταγλωττιστή. Αυτός ο μεταγλωττιστής είναι η μοναδική σύνδεση μεταξύ του κώδικα, που διαβάζει και γράφει εύκολα ένας προγραμματιστής, και του προγράμματος, που αναγνωρίζει και μπορεί να τρέξει ο υπολογιστής. Συνεπώς, οι μεταγλωττιστές είναι αναγκαίο και αναπόσπαστο κομμάτι του προγραμματισμού, γι’ αυτό και η εξασφάλιση της σωστής λειτουργίας τους είναι υψίστης σημασίας.
Στην παρούσα διπλωματική εργασία ασχολούμαστε με το πρώτο μέρος ενός μεταγλωττιστή, το λεκτικό αναλυτή, και υλοποιούμε ένα εργαλείο για τον έλεγχό του. Ο έλεγχος αυτός θα γίνεται με τυχαία παραγωγή δοκιμαστικών εισόδων, «θετικών» και «αρνητικών», οι οποίες θα τροφοδοτούνται στο υπό έλεγχο πρόγραμμα για να μελετηθεί η ανταπόκρισή του. Η υλοποίηση θα γίνει στη γλώσσα Python, με τη χρήση κανονικών εκφράσεων, πεπερασμένων αυτομάτων και property-based testing.</dc:description><dc:description xml:lang='en'>The purpose of this diploma thesis is the implementation of a testing tool for compilers and, specifically, for lexical analysers.
Compilers are some of the most important tools in computer science. Every program, in order to become executable by a computer, needs to be processed by a compiler at first. This compiler is the only connection between the code, that a programmer can easily read and write, and the program, that a computer can recognise and run. As a result, compilers are an essential and integral part of programming. This is why the assurance of their correctness is of utmost importance.
In this diploma thesis, we focus on the first part of a compiler, the lexical analyser, and build a testing tool for that. This testing will occur by generating random test-cases, positive and negative, which will then be inputted in the program under test, in order to check its response. The implementation will be in Python and will use regular expressions, finite automata and property-based testing.</dc:description><dc:identifier>https://dspace.lib.ntua.gr/xmlui/handle/123456789/53919</dc:identifier><dc:identifier>http://dx.doi.org/10.26240/heal.ntua.21617</dc:identifier><dc:language>gre</dc:language><dc:rights>Default License</dc:rights><dc:subject rdf:resource='http://semantics.gr/authorities/EKT-voc-classifier/1817988741'></dc:subject><dc:subject xml:lang='el'>Έλεγχος ορθότητας</dc:subject><dc:subject xml:lang='el'>Πεπερασμένα αυτόματα</dc:subject><dc:subject xml:lang='el'>Κανονικές εκφράσεις</dc:subject><dc:subject xml:lang='el'>Λεκτικός αναλυτής</dc:subject><dc:subject xml:lang='en'>Test-case generation</dc:subject><dc:subject xml:lang='en'>Finite automata</dc:subject><dc:subject xml:lang='en'>Regular expressions</dc:subject><dc:subject xml:lang='en'>Lexical analyser</dc:subject><dc:subject xml:lang='en'>Testing</dc:subject><dc:title xml:lang='el'>Αυτόματος έλεγχος λεκτικών αναλυτών</dc:title><dc:title xml:lang='en'>Automated Testing for Lexical Analysers</dc:title><dc:type rdf:resource='http://semantics.gr/authorities/openarchives-item-types/ptyxiakh-ergasia'></dc:type><dc:type>bachelorThesis</dc:type><dcterms:created>2021-07-14</dcterms:created></edm:ProvidedCHO><skos:Concept rdf:about='http://semantics.gr/authorities/openarchives-item-types/ptyxiakh-ergasia'><skos:prefLabel xml:lang='el'>Πτυχιακή εργασία</skos:prefLabel><skos:prefLabel xml:lang='en'>Bachelor thesis</skos:prefLabel><skos:broader rdf:resource='http://semantics.gr/authorities/openarchives-item-types/Research-Paper-'></skos:broader><skos:broadMatch rdf:resource='http://vocab.getty.edu/aat/300028029'></skos:broadMatch></skos:Concept><skos:Concept rdf:about='http://semantics.gr/authorities/EKT-voc-classifier/1817988741'><skos:prefLabel xml:lang='el'>Λογισμικό (software)</skos:prefLabel><skos:prefLabel xml:lang='en'>Software</skos:prefLabel><skos:broader rdf:resource='http://semantics.gr/authorities/EKT-voc-classifier/1532468312'></skos:broader><skos:exactMatch rdf:resource='http://semantics.gr/authorities/EKT-voc/1817988741'></skos:exactMatch><skos:exactMatch rdf:resource='http://id.loc.gov/authorities/subjects/sh85029534'></skos:exactMatch><skos:exactMatch rdf:resource='http://vocabularies.unesco.org/thesaurus/concept6081'></skos:exactMatch><skos:exactMatch rdf:resource='http://id.loc.gov/authorities/subjects/sh99001417'></skos:exactMatch><skos:closeMatch rdf:resource='http://vocabularies.unesco.org/thesaurus/mt5.40'></skos:closeMatch><skos:closeMatch rdf:resource='http://semantics.gr/authorities/ekt-unesco/1693897658'></skos:closeMatch><skos:note xml:lang='en'>isi - Computer Science, Software Engineering includes resources that are concerned with the programs, routines, and symbolic languages that control the functioning of the hardware and direct its operation. Also covered in this category are computer graphics, digital signal processing, and programming languages.</skos:note></skos:Concept><ore:Aggregation rdf:about='https://www.openarchives.gr/aggregator-openarchives/edm/aggregation/provider/000011-123456789_53919%231'><edm:aggregatedCHO rdf:resource='https://www.openarchives.gr/aggregator-openarchives/edm/ntua/000011-123456789_53919'></edm:aggregatedCHO><edm:dataProvider>Εθνικό Μετσόβιο Πολυτεχνείο</edm:dataProvider><edm:isShownAt rdf:resource='https://dspace.lib.ntua.gr/xmlui/handle/123456789/53919'></edm:isShownAt><edm:provider>Greek Aggregator OpenArchives.gr | National Documentation Centre (EKT)</edm:provider><edm:rights>other</edm:rights></ore:Aggregation></rdf:RDF>