Copyright © 2005 Elsevier Κεφάλαιο 2 :: Σύνταξη των γλωσσών προγραμματισμού Πραγματολογία των Γλωσσών Προγραμματισμού Michael L. Scott.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Βασικές έννοιες αλγορίθμων
Advertisements

ΓΡΑΜΜΑΤΙΚΕΣ ΧΩΡΙΣ ΣΥΜΦΡΑΖΟΜΕΝΑ I
Λογισμικό Συστήματος Κλειώ Σγουροπούλου.
Ένα απλό πρόγραμμα σε C /* ********************************************* * This program prints out the sentence “This is a test.” * *********************************************
Λεκτική Ανάλυση (lexical analysis)
Ιστορία και Δομή της Ελληνικής
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ
Οι διαφάνειες αυτού του μαθήματος βασίζονται
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
ΤΕΛΕΣΤΕΣ - ΕΚΦΡΑΣΕΙΣ ΜΑΘΗΜΑ 4.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών Εαρινό Εξάμηνο 2002 Κ. Μουρλάς, Λέκτορας Σημείωση: Οι διαφάνειες αυτές βασίζονται κατά το μεγαλύτερο μέρος τους.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
ΕΠΛ Θεωρία και Πρακτική Μεταγλωττιστών5-1 Επίλυσης ασάφειας με εισαγωγή μη-τερματικών Π.χ. stmt = “if”, expr, “then”, stmt | “if”, expr, “then”,
Κεφ.1 Εισαγωγη στην εννοια του Αλγοριθμου και στον Προγραμματισμο
Συνάρτηση SEARCH Σύνταξη SΕΑRCΗ(Κείμενο προς εύρεση; Μέσα στο κείμενο; Θέση έναρξης) Κείμενο προς εύρεσηΕίναι το μέρος του κειμένου που θέλουμε να βρούμε.
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση και Αρχιτεκτονική.
ΘΠ06 - Μεταγλωττιστές Εισαγωγή στον Bison Φροντιστήριο - 30/03/2009.
Ενότητα Α.4. Δομημένος Προγραμματισμός
ΘΠ06 - Μεταγλωττιστές Συντακτική Ανάλυση, Bison 1.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
ΝΤΕΝΤΕΡΜΙΝΙΣΤΙΚΑ ΠΕΠΕΡΑΣΜΕΝΑ ΑΥΤΟΜΑΤΑ Ι
1.5 Γλώσσες Προγραμματισμού
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
Δηλαδή οι σημαντικοί δεν ασχολούνται με μικροπράγματα.
ΘΠ06 - Μεταγλωττιστές Εισαγωγή στον Bison Φροντιστήριο - 23/03/2010.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Κ. ΛΑΖΟΣ - Π. ΚΑΤΣΑΡΟΣ Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τμ.
Περιεχόμενα Μαθήματος
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 13: Επαναληπτικό μάθημα Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Το περιεχόμενο του μαθήματος διατίθεται.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 8: Πίνακας Συμβόλων Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας.
Περιεχόμενα Μαθήματος
Συνάρτηση MID Σύνταξη ΜΙD(Κείμενο; Αρχική Θέση; Αριθμός χαρακτήρων)
1Κεφάλαιο 4 Κανόνες Σύνταξης HTML Όλες οι ετικέτες εσωκλείονται μεταξύ των χαρακτήρων “ “. Κάθε τι που βρίσκεται μεταξύ των χαρακτήρων “ ”, αποτελεί σχόλιο.
Βασικά στοιχεία της Java
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Κ. ΛΑΖΟΣ - Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 30 Ιουλίου 2015Πέμπτη, 30 Ιουλίου 2015Πέμπτη, 30 Ιουλίου 2015Πέμπτη, 30 Ιουλίου 2015Τμ.
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Γλώσσες προγραμματισμού Ένας αλγόριθμος όταν περιγραφεί με μια μορφή που τη δέχεται ένας υπολογιστής, λέγεται πρόγραμμα (prοgram, prοgramme)
Γλώσσες Προγραμματισμού Μεταγλωττιστές Λεκτική Ανάλυση Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Συντακτική Ανάλυση II Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Λεκτική Ανάλυση II Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Συντακτική Ανάλυση Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Βασικές έννοιες προγραμματισμού Κεφάλαιο 7 ο. Βασικές έννοιες προγραμματισμού Αλφάβητο και τύποι δεδομένων Σταθερές και μεταβλητές Τελεστές, συναρτήσεις.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Συντακτική Ανάλυση με το Εργαλείο BISON Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Πληροφορική 2 Γλώσσες Προγραμματισμού 1. Γλώσσες προγραμματσιμού  Επιτρέπουν την κωδικοποίηση των αλγορίθμων  Η εκτέλεση ενός προγράμματος θα πρέπει.
Θεωρία υπολογισμού1 Μη αιτιοκρατικό αυτόματο Σ={0}, L = { 0 k : k=2m, k=3m}, μαντεύουμε το μήκος.
Εισαγωγή στην Python.
Κεφάλαιο 2 :: Σύνταξη των γλωσσών προγραμματισμού
ΚΕΦΑΛΑΙΟ 2ο - ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Μοντελοποίηση υπολογισμού
Κεφάλαιο 4 :: Σημασιολογική Ανάλυση
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Ισοδυναμία ΠΑ - ΚΕ Για να δείξουμε ότι οι κανονικές γλώσσες - εκφράσεις και τα πεπερασμένα αυτόματα είναι ισοδύναμα σε εκφραστική δυνατότητα έχουμε να.
Prolog Επεξεργασία και Αναπαράσταση Γνώσης
Μορφές κατανομών Αθανάσιος Βέρδης.
Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος
Διαδικασίεσ εισόδου/εξόδου
Η χιονονιφάδα και το τρίγωνο του Pascal
Εντολές και δομές αλγορίθμου
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
της ενότητας « Ταξιδεύω με πυξίδα το “Χρόνο” »
Β.ΕΠΑΛ-Γενικής Παιδείας  ΜΑΘΗΜΑ: Εισαγωγή στης αρχές Επιστήμης των Η/Υ  ΚΕΦΑΛΑΙΟ 4: Γλώσσες Αναπαράστασης Αλγορίθμων  ΕΝΟΤΗΤΑ 4.2: Δομή Ακολουθίας 
ΠΛΗΡΟΦΟΡΙΚΗ Γ΄ Γυμνασίου Α΄ Τρίμηνο
Γ' ΤΑΞΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Μεταγράφημα παρουσίασης:

Copyright © 2005 Elsevier Κεφάλαιο 2 :: Σύνταξη των γλωσσών προγραμματισμού Πραγματολογία των Γλωσσών Προγραμματισμού Michael L. Scott

Copyright © 2005 Elsevier Κανονικές Εκφράσεις •Μια κανονική έκφραση είναι ένα από τα εξής: –Ένας χαρακτήρας –Η κενή συμβολοσειρά, που συμβολίζεται με  –Δύο κανονικές εκφράσεις η μια δίπλα στην άλλη –Δυο κανονικές εκφράσεις διαχωρισμένες με μια κατακόρυφη γραμμή, | (“ή”) –Μια κανονική έκφραση ακολουθούμενη από το άστρο του Kleene (συνένωση καμίας ή περισσότερων συμβολοσειρών)

Copyright © 2005 Elsevier Κανονικές Εκφράσεις •Οι αριθμητικές σταθερές στην Pascal μπορούν να παραχθούν από τις εξής κανονικές εκφράσεις:

Copyright © 2005 Elsevier Γραμματικές χωρίς συμφραζόμενα •Η σημειογραφία των γραμματικών χωρίς συμφραζόμενα ονομάζεται συχνά μορφή Backus-Naur (Backus-Naur Form, BNF) •Μια γραμματική χωρίς συμφραζόμενα αποτελείται από –Ένα σύνολο τερματικών συμβόλων T –Ένα σύνολο μη τερματικών συμβόλων N –Ένα αρχικό σύμβολο S (μη τερματικό) –Ένα σύνολο συντακτικών κανόνων

Copyright © 2005 Elsevier Γραμματικές χωρίς συμφραζόμενα •Γραμματική εκφράσεων με προτεραιότητα και προσεταιριστικότητα

Copyright © 2005 Elsevier Γραμματικές χωρίς συμφραζόμενα •Συντακτικό δένδρο για τη γραμματική των εκφράσεων (με προτεραιότητα) για το * 5

Copyright © 2005 Elsevier Γραμματικές χωρίς συμφραζόμενα •Συντακτικό δένδρο για τη γραμματική των εκφράσεων (με αριστερή προσεταιριστικότητα) για το

Copyright © 2005 Elsevier Λεκτική ανάλυση •Θυμηθείτε ότι η λεκτική ανάλυση –ομαδοποιεί τους χαρακτήρες εισόδου σε λεκτικές μονάδες –αφαιρεί τα σχόλια –(συνήθως) χειρίζεται τις οδηγίες (σημαντικά σχόλια) –αποθηκεύει το κείμενο των αναγνωριστικών, των αριθμητικών σταθερών και των συμβολοσειρών –αποθηκεύει τα σημεία του αρχικού κώδικα (αρχείο, γραμμή, στήλη) για την παραγωγή μηνυμάτων σφάλματος

Copyright © 2005 Elsevier Λεκτική ανάλυση •Θεωρήστε ότι κατασκευάζουμε έναν αυτοσχέδιο λεκτικό αναλυτή για την Pascal: –Διαβάζουμε τους χαρακτήρες έναν-έναν (διαβάζουμε μπροστά τον επόμενο χαρακτήρα όταν χρειάζεται) •Αν είναι κάποια από τις λεκτικές μονάδες του ενός χαρακτήρα { ( ) [ ], ; = + - κλπ } την επιστρέφουμε •Αν είναι. κοιτάζουμε τον επόμενο χαρακτήρα –Αν είναι. επιστρέφουμε.. –Διαφορετικά επιστρέφουμε. και ξαναχρησιμοποιούμε την προανάγνωση

Copyright © 2005 Elsevier Λεκτική Ανάλυση •Αν είναι < κοιτάζουμε τον επόμενο χαρακτήρα –αν είναι = επιστρέφουμε <= –διαφορετικά επιστρέφουμε < και ξαναχρησιμοποιούμε την προανάγνωση, κλπ. •Αν είναι γράμμα διαβάζουμε οσαδήποτε επόμενα γράμματα, αριθμούς ή και “_” μέχρι να μην υπάρχει επόμενο –στη συνέχεια ελέγχουμε αν είναι λέξη κλειδί

Copyright © 2005 Elsevier Λεκτική Ανάλυση •Αν είναι ψηφίο, συνεχίζουμε την ανάγνωση μέχρι να βρούμε κάτι που δεν είναι ψηφίο –αν δεν είναι. επιστρέφουμε μια ακέραια σταθερά –διαφορετικά συνεχίζουμε να διαβάζουμε μια πραγματική σταθερά –αν ο χαρακτήρας μετά το. δεν είναι ψηφίο επιστρέφουμε μια ακέραια σταθερά και ξαναχρησιμοποιούμε το. και την πρόγνωση

Copyright © 2005 Elsevier Λεκτική Ανάλυση •Σχηματική αναπαράσταση ενός λεκτικού αναλυτή για την Pascal ως πεπερασμένου αυτομάτου

Copyright © 2005 Elsevier Λεκτική Ανάλυση •Είναι ένα Ντετερμινιστικό Πεπερασμένο Αυτόματο (ΝΠΑ) –Τα εργαλεία lex, scangen, κλπ. τα παράγουν αυτόματα από ένα σύνολο κανονικών εκφράσεων –Ειδικότερα, κατασκευάζουν μια μηχανή που αποδέχεται τη γλώσσα identifier | int const | real const | comment | symbol |...

Copyright © 2005 Elsevier Λεκτική Ανάλυση •Εκτελούμε συνεχώς τη μηχανή για να παράγουμε συνεχόμενες λεκτικές μονάδες –Σχεδόν καθολικός κανόνας: •πάντα διάβαζε τη μεγαλύτερη πιθανή λεκτική μονάδα από την είσοδο δηλαδή το foobar είναι foobar, ποτέ f ή foo ή foob •ειδικότερα, το είναι πραγματική σταθερά και ποτέ 3,., και •Οι κανονικές εκφράσεις “παράγουν” μια κανονική γλώσσα· τα ΝΠΑ την “αναγνωρίζουν”

Copyright © 2005 Elsevier Λεκτική Ανάλυση •Οι λεκτικοί αναλυτές συνήθως κατασκευάζονται με τρείς τρόπους –αυτοσχέδιοι –ημι-αυτόματα αμιγή ΝΠΑ (συνήθως υλοποιημένα με ένθετες εντολές case) –ΝΠΑ που κάνουν χρήση πινάκων •Οι αυτοσχέδιοι είναι πιο γρήγοροι και μικροί σε μέγεθος κώδικα και με ειδικές λειτουργίες· όμως, καλοί λεκτικοί αναλυτές που έχουν παραχθεί αυτόματα τους πλησιάζουν