Γλώσσες Προγραμματισμού Μεταγλωττιστές. Λεκτική Ανάλυση
|
|
- Γαλήνη Αποστολίδης
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Γλώσσες Προγραμματισμού Μεταγλωττιστές Λεκτική Ανάλυση Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου
2 Δομή Λεκτική Ανάλυση Τυπικές Γλώσσες Κανονικές Εκφράσεις Υλοποίηση Λεκτικών Αναλυτών Γεννήτριες Λεκτικών Αναλυτών FLEX Παράδειγματα
3 Φάσεις Μεταγλώττισης Αρχικό Πρόγραμμα Λεκτική Ανάλυση λεκτικές μονάδες Πίνακας Συμβόλων Τελικό Πρόγραμμα Συντακτική Ανάλυση συντακτικό δένδρο Σημασιολογική Ανάλυση συντακτικό δένδρο Παραγωγή Ενδιάμεσου Κώδικα ενδιάμεσος κώδικας Βελτιστοποίηση Ενδιάμεσου Κώδικα ενδιάμεσος κώδικας Παραγωγή Τελικού Κώδικα τελικός κώδικας Βελτιστοποίηση Τελικού Κώδικα Χειριστής Σφαλμάτων
4 Λεκτική Ανάλυση Αποδοχή μιας συμβολοσειράς χαρακτήρων που αποτελούν το αρχικό πρόγραμμα και εξαγωγή των λεκτικών μονάδων (tokens). Οι λεκτικές μονάδες χρησιμοποιούνται σαν είσοδος στην φάση της συντακτικής ανάλυσης. Αποτελούν τερματικά σύμβολα της γλώσσας. Υλοποιείται από τον λεκτικό αναλυτή (lexical analyser, scanner). Αποθήκευση λεκτικών μονάδων στον πίνακα συμβόλων. Ανίχνευση σφαλμάτων Διαγραφή σχολίων, διαστημάτων, κενών γραμμών.
5 Αλληλεπιδράσεις ΛΑ και ΣΑ Πηγαίο Πρόγραμμα Λεκτικός Αναλυτής Πίνακας Συμβόλων Επόμενη Λεκτική Μονάδα Λεκτική Μονάδα Σφάλματα Συντακτικός Αναλυτής Έξοδος προς Σημασιολογική Ανάλυση
6 Ορισμοί Λεκτική Μονάδα (token) Ζεύγος αποτελούμενο από όνομα και τιμή ιδιότητας Πρότυπα ή περιγραφές (pattern) Περιγραφή της μορφής που θα έχει η λεκτική μονάδα. Λέξημα (lexeme) Η συγκεκριμένη ακολουθία χαρακτήρων που ικανοποιεί το πρότυπο και αποτελεί στιγμιότυπο της λεκτικής μονάδας.
7 Παράδειγμα Λεκτική Μονάδα Άτυπη περιγραφή Λέξηματα if χαρακτήρες i και f if then χαρακτήρες t,h,e και n then comparison > ή < ή <= ή => ή == ή!= <= id γράμμα ακολουθούμενο x, rate, από γράμματα ή αριθμούς position literal οτιδήποτε εκτός του που περιλαμβάνεται σε rate
8 Λεκτικές Μονάδες σε μια Γλώσσα Μια λεκτική μονάδα για κάθε λέξη κλειδί (keyword) Λεκτικές μονάδες για κάθε τελεστή ή μια ομάδα για κάθε τελεστή (operator) Μια λεκτική μονάδα για τα αναγνωριστικά (identifiers) Λεκτικές Μονάδες για σταθερές (αριθμητικές, συμβολοσειρές) Λεκτικές Μονάδες για συντακτικά σύμβολα (παρενθέσεις, κόμματα, κλπ)
9 Τιμές Ιδιοτήτων (Attribute values) Πως ξεχωρίζουν τα λεξήματα που αντιστοιχούν στην ίδια λεκτική μονάδα; πχ. id <- x, rate, position number < Τιμές ιδιοτήτων που περιγράφουν το λέξημα Ιδιαίτερα σημαντικό στα αναγνωριστικά (id), όπου συνήθως αποθηκεύεται ένας δείκτης στον πίνακα συμβόλων. Για τους αριθμούς μπορεί να είναι η τιμή που αντιστοιχεί στον αριθμό, ή ένας δείκτης στην συμβολοσειρά που αναπαριστά τον αριθμό.
10 Τιμές Ιδιοτήτων (Attribute values) II Ε = Μ * C ** 2 (id, δείκτης στον πίνακα για το Ε) (assign_op) (id, δείκτης στον πίνακα για το M) (mult_op) (id, δείκτης στον πίνακα για το C) (exp_op) (number,2) Τα ονόματα ιδιοτήτων χρησιμοποιούνται συνήθως στην φάση της συντακτικής ανάλυσης ενώ τα οι τιμές ιδιοτήτων σε μεταγενέστερες φάσεις.
11 Περιγραφές Σε μερικές περιπτώσεις η περιγραφή των λεκτικών μονάδων είναι σχετικά απλή. Σε άλλες η περιγραφή είναι περισσότερο πολύπλοκη. Πώς θα περιγραφούν τα patterns? Λεκτική Μονάδα Άτυπη περιγραφή Λέξηματα if χαρακτήρες i και f if then χαρακτήρες t,h,e και n then comparison > ή < ή <= ή => ή == ή!= <= id γράμμα ακολουθούμενο x, rate, από γράμματα ή αριθμούς position number ακολουθία ενός ή περισσοτέρων ψηφίων. 123, 234, 897
12 There is nothing more practical than a good theory. Τυπικές Γλώσσες (Formal Languages) (ή τυποκρατικές γλώσσες)
13 Αλφάβητο Μη κενό, πεπερασμένο σύνολο από σύμβολα Σ ονομάζεται αλφάβητο. {0,1} {α,β,γ,δ...ω} {2,3,7} σύνολο ASCII χαρακτήρων Συμβολοσειρά: πεπερασμένη παράθεση από σύμβολα , μεταγλωττιστές, κενή συμβολοσειρά ε Μήκος της συμβολοσειράς είναι ο αριθμός των συμβόλων που περιέχει = 6, =5
14 Συμβολοσειρές Σ n Σύνολο συμβολοσειρών μήκους n. Σ 0 ={ε}, Σ 2 ={00,01,10,11} Με Σ* συμβολίζεται η ένωση όλων των Σ n Σ * = n=0 Σ n Με Σ + η ένωση όλων των μη-κενών συνόλων. Σ + = n=1 Σ n
15 Παράθεση και Δυνάμεις Παράθεση δύο συμβολοσειρών α και β αποτελείται από τα σύμβολα της α ακολουθούμενα από όλα τα σύμβολα της β. α=011 β=000 αβ= Ύψωση σε δύναμη n είναι η παράθεση n μιας συμβολοσειράς n φορές με τον εαυτό της. α 0 = ε α n+1 = αα n
16 Συμβολοσειρές Πρόθεμα (prefix) Η συμβολοσειρά α είναι πρόθεμα της συμβολοσειράς β εάν υπάρχει συμβολοσειρά γ τέτοια ώστε β = αγ wh while Επίθεμα ή κατάληξη (suffix) Η συμβολοσειρά α είναι επίθεμα της συμβολοσειράς β εάν υπάρχει συμβολοσειρά γ τέτοια ώστε β = γα ile while Υποσυμβολοσειρά (substring) Η συμβολοσειρά α είναι υποσυμβολοσειρά της συμβολοσειράς β εάν υπάρχουν συμβολοσειρές γ και δ τέτοιες ώστε β = δαγ hil while
17 Γλώσσες Μια γλώσσα L ενός αλφαβήτου Σ είναι ένα υποσύνολο του Σ*, δηλαδή: Ένα απαριθμήσιμο σύνολο συμβολοσειρών ενός πεπερασμένου αλφάβητου. Έστω το αλφάβητο Σ={a,b,c,d,e...y,z}. Παραδείγματα γλωσσών είναι: L={if} L={if, then, else, while, repeat} L={a n b 2n n ακέραιος} H κενή γλώσσα L = {ε} Η πλήρης γλώσσα
18 Πράξεις στις Γλώσσες I Εφόσον οι γλώσσες είναι σύνολα, ορίζονται σε αυτές πράξεις συνόλων: ένωση, τομή, διαφορά. Ένωση δύο γλωσσών L1 και L2 L 1 L 2 ={ L 1 L 2 } Η παράθεση L δύο γλωσσών L1 και L2 είναι η γλώσσα που περιέχει συμβολοσειρές που είναι παραθέσεις μιας συμβολοσειράς της L1 και μιας συμβολοσειράς της L2. L 1 L 2 ={ L 1 L 2 }
19 Πράξεις στις Γλώσσες II Παράθεση μιας γλώσσας με τον εαυτό της n φορές. L 0 ={ε} Κλείσιμο Kleene (Kleene closure) μιας γλώσσας L, είναι η παράθεση με τον εαυτό της μηδέν η περισσότερες φορές. Θετικό κλείσιμο Kleene είναι η παράθεση μιας γλώσσας με τον εαυτό της, μια η περισσότερες φορές. L n =L L n 1 L * = n = 0 L + = n =1 L + =L L * L n L n
20 Περιγραφή Γλωσσών Έστω αλφάβητο Σ={a,b} και Σ* είναι το σύνολο των συμβολοσειρών που είναι δυνατό να παραχθούν. Πώς μπορώ να περιγράψω μια γλώσσα η οποία περιέχει συμβολοσειρές με: Έχει ίδιο αριθμό a και b ; Να ξεκινά με aa και να τελειώνει με bab, με όλες τις συμβολοσειρές να έχουν μήκος > 5; Να περιέχει μόνο τα {aa, bb, ab}; Πως μπορώ να υλοποιήσω ένα πρόγραμμα που να την αναγνωρίζει ;
21 Υπολογίσιμες Γλώσσες Γλώσσες για τις οποίες είναι δυνατό να κατασκευαστούν προγράμματα τα οποία να παίρνουν σαν είσοδο μια τυχαία συμβολοσειρά και να αποφαίνονται αν η συμβολοσειρά ανήκει στην γλώσσα. Τυπικές γλώσσες ορίζονται μέσω γραμματικών και κατατάσσονται ανάλογα με την πολυπλοκότητά τους σε μια ιεραρχία.
22 Γραμματική Σύστημα παραγωγής συμβολοσειρών G, που αποτελείται από μια τετράδα (T,N,P,S) T τερματικά σύμβολα (terminals) που αποτελούν το αλφάβητο της γλώσσας. N μη-τερματικά σύμβολα (non-terminals) P κανόνες παραγωγής (production rules) της μορφής α β, όπου α και β (Τ Ν)* S αρχικό σύνολο, το οποίο είναι στοιχείο το Ν (start symbol)
23 Πως παράγεται μια συμβολοσειρά; Η διαδικασία αρχίζει με το αρχικό σύμβολο. Αντικαθιστούμε μια υποσυμβολοσειρά α της τρέχουσας δ με την β εάν υπάρχει κανόνας παραγωγής α β Αν δ = γαγ' τότε από γαγ' -> γβγ' Όταν η συμβολοσειρά περιέχει μόνο τερματικά σύμβολα, λέμε ότι αυτή παράγεται από την γραμματική.
24 Παράδειγμα I Έστω η γραμματική Τ = {a,b} N = {I,S,U} P = {I asb, S ε S as, S bs} S = I Ι asb ab (παραγωγή) Ι asb absb abasb ababb
25 Παράδειγμα II Έστω η γραμματική Τ = {0,1-9,.,e} N = {Ν,D,Ds,E} P = {Ν DsE, D 0, D 1, D 2, D 3,...,D 9 Ds DDs, Ds D, E eds, E ε} S = Ν Ν 2DsE 24E 24 (παραγωγή) N 4DsE 45E 45eDs 45e6 45e6
26 Μερικοί Ορισμοί Συμβολοσειρά α Τ* παράγεται από την G όταν υπάρχει μια ακολουθία παραγωγών τέτοια ώστε α 1 = S α n = α και ισχύει α i α i+1 για κάθε i, 0 < i < n Μεταβατικό κλείσιμο α + β Ανακλαστικό Μεταβατικό κλείσιμο α β Η γραμματική G παράγει την γλώσσα L(G), για την οποία L(G) = {α T* S + α}
27 Ιεραρχία Chomsky Γραμματικές τύπου 0. Γραμματικές τύπου 1 (γραμματικές με συμφραζόμενα context sensitive grammars) Γραμματικές τύπου 2 (γραμματικές χωρίς συμφραζόμενα context free grammars) Γραμματικές τύπου 3 (κανονικές γραμματικές regular grammars)
28 Ιεραρχία Chomsky Γραμματικές τύπου 0. Όλες οι γραμματικές χωρίς περιορισμούς. Γραμματικές τύπου 1 (γραμματικές με συμφραζόμενα context sensitive grammars) Γραμματικές της μορφής α β, έτσι ώστε η συμβολοσειρά α να περιέχει τουλάχιστον ένα μητερματικό σύμβολο και α β.
29 Ιεραρχία Chomsky Γραμματικές τύπου 2 (γραμματικές χωρίς συμφραζόμενα context free grammars) Οι κανόνες παραγωγής έχουν μορφή α β, όπου η συμβολοσειρά α αποτελείται από ένα μη-τερματικό σύμβολο και η β είναι συμβολοσειρά. Γραμματικές τύπου 3 (κανονικές γραμματικές regular grammars) Οι κανόνες παραγωγής έχουν την μορφή Α aβ Α a Α ε A,B μη τερματικά και a τερματικό.
30 Αναγνωριστές Μια αφηρημένη μηχανή που δέχεται ως είσοδο μια συμβολοσειρά ενός αλφαβήτου και δίνει έξοδο ναι ή όχι. Αναφέρονται και ως αυτόματα. Μηχανή Turing πολυπλοκότερο υπολογιστικό μοντέλο Γραμμικά Περιορισμένη Μηχανή Turing ΜΤ με περιορισμό Μνήμης Αυτόματα Στοίβας Πεπερασμένα Αυτόματα.
31 Αντιστοιχία Μοντέλων Γεννητικά Μοντέλα Γραμματικές τύπου 0. Γραμματικές με συμφραζόμενα Γραμματικές χωρίς συμφραζόμενα Κανονικές γραμματικές Αναγνωριστικά Μοντέλα Μηχανή Turing Γραμμικά Περιορισμένη Μηχανή Turing Αυτόματα Στοίβας Πεπερασμένα Αυτόματα.
32 Κανονικές Εκφράσεις
33 Κανονικές Εκφράσεις Χρησιμοποιούνται για την περιγραφή κανονικών γλωσσών. Κομψότερος και λακωνικότερος φορμαλισμός. Αντιστοιχία μεταξύ κανονικών εκφράσεων και κανονικής γραμματικής και πεπερασμένων αυτομάτων. Χρήση από εργαλεία κατασκευής λεκτικών αναλυτών.
34 Κανονικές Εκφράσεις Έστω ένα αλφάβητο Σ, μια κανονική έκφραση (KE) r ορίζει μια γλώσσα L(r) πάνω στο Σ. Αναδρομικός ορισμός Κανονική έκφραση είναι H κενή συμβολοσειρά Κάθε σύμβολο a του Σ L(ε)={ε} L(a) = {a} Η διάζευξη r s L(r s) = L(r) L(s) H παράθεση rs L(rs)=L(r)L(s) Το κλείσιμο Kleene r* L(r*)=L(r)* όπου τα r και s είναι κανονικές εκφράσεις.
35 Παραδείγματα Έστω το Σ = {a,b}. Ποιες είναι οι γλώσσες που παράγουν οι ακόλουθες κανονικές εκφράσεις: (a b) (a b)(a b) (ab)* (a b)* a(a b)*b {a,b} {aa,ab,ba,bb} {ε,ab,abab,ababab} {ε,a,b,aa,ab,bb,ba,...} {ab,aab,abb,aaab,...}
36 Επέκταση Κανονικών Εκφράσεων Θετικό κλείσιμο Kleene r+ = rr* Έκφραση εμφανίζεται μία η περισσότερες φορές Μηδέν ή μια εμφανίσεις της r r? = r ε Κλάσεις χαρακτήρων [a,b,c]=a b c Διαστήματα χαρακτήρων [a-z]=a b... z Ειδικό σύμβολο για οποιονδήποτε χαρακτήρα Συνήθως είναι η τελεία Ειδικοί χαρακτήρες παριστάνονται με το σύμβολο \ να προηγείται. \) \( \[
37 Απαλοιφή Παρενθέσεων Προτεραιότητα τελεστών Κλείσιμο Kleene Παράθεση Διάζευξη Δηλαδή η έκφραση a b*c ισοδυναμεί με (a) ((b)*(c)). Μορφή των μη-προσημασμένων σταθερών κινητής υποσδιαστολής. πχ. 123, 1, 0.12, 1.2, 1.34Ε+23, 156e-34 ([1-9][0-9]* 0)(\.[0-9]+)?((E e)(+ -)?[0-9]+)?
38 Κανονικοί Ορισμοί Ακολουθία από κανόνες της μορφής d i r i όπου Κάθε d i είναι ένα νέο σύμβολο που δεν υπάρχει στο αρχικό αλφάβητο Σ Κάθε r i είναι μια κανονική έκφραση που ορίζεται στο αλφάβητο Σ r i-1 Για να χρησιμοποιηθεί ένας κανονικός ορισμός σε ένα άλλο θα πρέπει να έχει δηλωθεί πριν από αυτόν. (ΔΕΝ επιτρέπεται αναδρομή).
39 Αριθμοί Κινητής Υποδιαστολής nzdigit -> digits -> (nzdigit 0)+ optfr -> (\.digits)? optexp -> ((E e) (+ -)? digits)? number -> (nzdigit digits* 0) optfr optexp
40 Μη κανονικές Γλώσσες Υπάρχουν γλώσσες οι οποίες δεν είναι κανονικές, δηλαδή δεν υπάρχει κανονική έκφραση (ή πεπερασμένο αυτόματο) που να μπορεί να τις περιγράψει. Για παράδειγμα {( n ) n : n>=0} Περιγραφή και χειρισμός των γλωσσών χρησιμοποιώντας γραμματικές χωρίς συμφραζόμενα (context free grammars).
41 Μεταγλωττιστές Υλοποίηση Λεκτικών Αναλυτών
42 Υλοποίηση Λεκτικών Αναλυτών Υπάρχουν δύο προσεγγίσεις στην υλοποίηση λεκτικών αναλυτών Με την χρήση μιας γεννήτριας λεκτικών αναλυτών (π.χ. Flex) Χειρωνακτική υλοποίηση που περιλαμβάνει την χρήση ρουτινών Ι/Ο μιας γλώσσας (C,C++,JAVA) για την λεκτική ανάλυση. Σχεδίαση και Υλοποίηση Πεπερασμένων αυτομάτων που αντιστοιχούν στις κανονικές εκφράσεις της γλώσσας.
43 Γεννήτριες Λεκτικών Αναλυτών Ορισμός αναγνωριστικών με κανονικές εκφράσεις. Αυτόματη μετάφραση Κ.Ε. σε πεπερασμένα αυτόματα/διαγράμματα μετάβασης. Χρήση πεπερασμένων αυτόματων/διαγραμμάτων για τη δημιουργία κώδικα λεξικής ανάλυσης (αυτόματα).
44 Flex Ο Flex είναι μια γεννήτρια λεξικογραφικών αναλυτών για C/C++ Υλοποίηση του «κλασσικού» Lex του Unix Παράγει γρήγορους λεξικογραφικούς αναλυτές Flex := Fast Lexical Analyzer Generator Υπάρχουν εκδόσεις για όλα τα λειτουργικά συστήματα (link για download από την σελίδα του μαθήματος)
45 Κανονικές Εκφράσεις FLEX (ι) Οι κανονικές εκφράσεις (regular expressions) που υποστηρίζονται από το FLEX είναι: x : ο χαρακτήρας `x`. : οποιοσδήποτε χαρακτήρας εκτός του newline abc : η ακολουθία χαρακτήρων abc [xyz] : οποιοσδήποτε από τους χαρακτήρες x ή y ή z [a-z] : οποιοσδήποτε χαρακτήρας από a εως z [^a-z] : οποιοσδήποτε χαρακτήρας εκτός από a εως z
46 Κανονικές Εκφράσεις FLEX (ιι) r* : καμία ή περισσότερες επαναλήψεις της κανονικής έκφρασης r r+ : μία ή περισσότερες επαναλήψεις της r r? : μία ή καμία επανάληψη της r r{i,j} : (0<i<j) από i εως j επαναλήψεις της r π.χ. η.{3,4} περιγράφει λέξεις 3 ή 4 χαρακτήρων rs : ακολουθίες που προκύπτουν από την παράθεση των r και s (r) : οι παρενθέσεις ορίζουν την εφαρμογή των τελεστών r s : ακολουθίες που ικανοποιούν ή την r ή την s
47 Κανονικές Εκφράσεις FLEX (ιιι) ^r : ικανοποιείται μόνο αν η ακολουθία βρίσκεται στην αρχή της γραμμής r$ : ικανοποιείται μόνο αν η ακολουθία βρίσκεται στο τέλος της γραμμής \\, \, \(, \), \*, \+, \[, \], \$, \^, \{, \} : οι ίδιοι οι χαρακτήρες \,, (, ), *, +, [, ], $, ^, { και }
48 Δομή Προγράμματος Flex Ένα αρχείο flex αποτελείται από 3 μέρη που διαχωρίζονται από `%%` Κανονικοί Ορισμοί και δηλώσεις %% Κανόνες %% Κώδικας Χρήστη (Βοηθητικές Συναρτήσεις)
49 Κανονικοί Ορισμοί & Δηλώσεις Οι ορισμοί αποτελούνται από: κανονικούς ορισμούς που έχουν την μορφή: name regular expression digit [0-9] id [a-za-z][a-za-z_0-9]* κώδικα που θέλουμε να συμπεριληφθεί στον παραγώμενο λεξικό αναλυτή (συνήθως δηλώσεις μακροεντολών, μεταβλητών και τύπων δεδομένων) ανάμεσα σε %{ }% %{ #include <stdio.h> #define TK_IF 0 #define TK_ELSE 1 }%
50 Κανόνες Το τμήμα κανόνων είναι το κύριο τμήμα του προγράμματος και αποτελείται από κανόνες της μορφής: pattern1 {action1} pattern2 {action2} pattern3 {action3} pattern = κανονική έκφραση Για παράδειγμα: %% {id} {printf( Found id: %s\n,yytext) {digit} {printf( Found digit: %s\n, yytext); %%
51 Κώδικας Χρήστη και Βοηθητικές Συναρτήσεις Στο τελευταίο μέρος της περιγραφής του λεξικού αναλυτή περιλαμβάνονται οι όποιες συναρτήσεις καλούνται από το δεύτερο μέρος και δεν ορίζονται αλλού. Αν θέλουμε το αποτέλεσμα της επεξεργασίας της γεννήτριας να λειτουργεί ως αυτόνομο πρόγραμμα, τότε στο μέρος αυτό περιλαμβάνεται και η συνάρτηση main(). Διαφορετικά ο παραγόμενος κώδικας θα χρησιμοποιηθεί στο πλαίσιο ενός άλλου προγράμματος. Το τμήμα κώδικα χρήστη είναι προαιρετικό και ο κώδικας αντιγράφεται χωρίς αλλαγές στο παραγώμενο αρχείο.
52 Λειτουργία Όταν ικανοποιείται ένα pattern, ο κανόνας ενεργοποιείται και ο κώδικας που ακολουθεί εκτελείται. Όταν ικανοποιούνται περισσότεροι από ένας κανόνες τότε επιλέγεται αυτός που καταναλώνει περισσότερους χαρακτήρες. Εάν καταναλώνουν τον ίδιο αριθμό επιλέγεται αυτός που έχει δηλωθεί πρώτος.
53 Σημαντικές Μεταβλητές/Συναρτήσεις Flex (i) char *yytext: περιέχει το κομμάτι του κειμένου που έχει ικανοποιήσει την κανονική έκφραση (lexeme) int yyleng: ένας ακέραιος που δηλώνει το μέγεθος του yytext int yylex() : Η παραγόμενη συνάρτηση λεξικής ανάλυσης. Επιστρέφει το αναγνωριστικό της λεξικής μονάδας, που διαβάζει.
54 Σημαντικές Μεταβλητές/Συναρτήσεις Flex (ii) YYTYPE yylval :Η μεταβλητή μέσω της οποίας επικοινωνεί ο λεξικός αναλυτής με το συντακτικό αναλυτή. Ο προκαθορισμένος τύπος YYTYPE είναι int, αλλά ο χρήστης μπορεί να τον ορίσει σύμφωνα με τις ανάγκες του στο πρώτο μέρος της περιγραφής του λεξικού ή του συντακτικού αναλυτή. Η τιμή της μεταβλητής yylval, πρέπει να ενημερώνεται, όποτε αυτή χρειάζεται, στα τμήματα κώδικα action του δευτέρου μέρους της. Η εντολή return επιστρέφει στο συντακτικό αναλυτή το αναγνωριστικό της τελευταίας λεξικής μονάδας, που αναγνωρίσθηκε.
55 Ένα Απλό Παράδειγμα %{ #include <stdio.h> #include <string.h> int lineno = 1; %} line.*\n %% {line} {printf("%5d %s", lineno++, yytext);} %% int main() { yylex(); }
56 Διαδικασία Δημιουργίας ΛΑ Flex Source Program (test.l) F L e x c o m p ile r lex.yy.c (lexyy.c) lex.yy.c (lexyy.c) C c o m p ile r a.out Input Stream a.o u t Sequence of Tokens
57 Διαδικασία Δημιουργίας ΛΑ (ιι) Το αρχείο περιγραφής (test.l) διοχετεύεται ως είσοδος στη γεννήτρια κώδικα λεξικής ανάλυσης. flex test.l Ο κώδικας που προκύπτει ως αποτέλεσμα περιλαμβάνεται στο αρχείο lex.yy.c (lexyy.c)και περιλαμβάνει σίγουρα τη συνάρτηση λεξικής ανάλυσης yylex(). Αν το αρχείο περιγραφής περιλαμβάνει συνάρτηση main(), τότε το πρόγραμμα που παράχθηκε μπορεί να λειτουργήσει αυτόνομα και για να γίνει αυτό πρέπει να περάσει από ένα μεταγλωττιστή της C. gcc lex.yy.c -lfl Αν όχι, τότε για να χρησιμοποιηθεί ο παραγόμενος κώδικας στο πλαίσιο ενός άλλου προγράμματος (μεταγλωττιστής) χρειάζεται να συμπεριληφθεί με την οδηγία #include lex.yy.c
58 Παράδειγμα 2 - #define %{ #define T_IF 250 #define T_THEN #define GTE 1100 #include <stdio.h>... int idnum=0;... %}
59 Παράδειγμα 2 Κανονικοί Ορισμοί ws [ \n\t]+ nzdigit [1-9] digit (0 {nzdigit}) digits {digit}+ optfr (\.{digits})? optexp ((E e)(\+ -)?{digits})? number ({nzdigit}{digits}* 0){optFr}{optExp} letter [A-Za-z] id {letter}({letter} {digit})* %%
60 Παράδειγμα 2 Κανόνες %% {ws} {/* do nothing */} if {attr=0;return(t_if);} then {attr=0;return(t_then);} else {attr=0;return(t_else);} {number} {attr=atoi(yytext); return(t_num);} {id} {attr=idnum++; return(t_id);} ">=" {attr=gte;return(t_relop);} "=" {attr=eq;return(t_relop);} "=<" {attr=lte;return(t_relop);}. {printf("error in %s \n",yytext);return(error);} %%
61 Παράδειγμα 2 Κώδικας Χρήστη %% int main() { int token; while ((token=yylex())!= 0) {printf("%s <%d,%d> \n",yytext,token,attr);} }
62 Σύνοψη Λεκτική Ανάλυση Τυπικές Γλώσσες Κανονικές Εκφράσεις Υλοποίηση Λεκτικών Αναλυτών Γεννήτριες Λεκτικών Αναλυτών FLEX Παράδειγματα Επόμενο Μάθημα: Κανονικές εκφράσεις και Πεπερασμένα Αυτόματα. Διαγράμματα Μετάβασης.
Σχεδίαση Γλωσσών Προγραμματισμού Λεξική Ανάλυση Ι. Εαρινό Εξάμηνο Lec 05 & & 26 /02/2019 Διδάσκων: Γεώργιος Χρ.
Σχεδίαση Γλωσσών Προγραμματισμού Λεξική Ανάλυση Ι Εαρινό Εξάμηνο 2018-2019 Lec 05 & 06 25 & 26 /02/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Φάσεις μεταγλώττισης Αρχικό Πρόγραμμα Λεκτική Ανάλυση λεκτικές μονάδες
Διαβάστε περισσότεραΣχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση Ι. Εαρινό Εξάμηνο Lec /03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής
Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση Ι Εαρινό Εξάμηνο 2018-2019 Lec 09 18 /03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Φάσεις μεταγλώττισης Αρχικό Πρόγραμμα Λεκτική Ανάλυση λεκτικές μονάδες Πίνακας
Διαβάστε περισσότεραΜεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Μεταγλωττιστές Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΜεταγλωττιστές. Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Μεταγλωττιστές Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΚεφάλαιο 2: Τυπικές γλώσσες. Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος / 216
Κεφάλαιο 2: Τυπικές γλώσσες Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 13 / 216 Τυπικές γλώσσες (i) Βασικές έννοιες Αλφάβητο Σύμβολο Συμβολοσειρά Μήκος συμβολοσειράς Σύνολο συμβολοσειρών
Διαβάστε περισσότεραΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην εξοικείωση με τη διαδικασία κατασκευής ενός Λεξικού Αναλυτή κάνοντας χρήση του lex.
ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ 5 Ο Εργαστηριακό Μάθημα Δημιουργία Νέων Λεξικών Αναλυτών Σκοπός: Το μάθημα αυτό αναφέρεται: Στην εξοικείωση με τη διαδικασία κατασκευής ενός Λεξικού Αναλυτή κάνοντας χρήση του lex. Στην
Διαβάστε περισσότεραMεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία
Mεταγλωττιστές 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex Σκοπός: Το μάθημα αυτό αναφέρεται: στις κανονικές εκφράσεις στην δομή και το περιεχόμενο του αρχείου-εισόδου του flex Γενικά Θεωρία Κατά την
Διαβάστε περισσότεραΜεταγλωττιστές. Εργαστήριο 5. Εισαγωγή στο BISON. Γεννήτρια Συντακτικών Αναλυτών. 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση
Μεταγλωττιστές Εργαστήριο 5 Εισαγωγή στο BISON Γεννήτρια Συντακτικών Αναλυτών 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2015-1016 Φάσεις Μεταγλώττισης
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Γιώργος Δημητρίου Μάθημα 2 ο Αλφάβητα και Γλώσσες Αλφάβητο: Ένα μη κενό και πεπερασμένο σύνολο συμβόλων Γλώσσα: Ένα οποιοδήποτε υποσύνολο των συμβολοσειρών ενός αλφαβήτου (οι προτάσεις της γλώσσας, πχ.
Διαβάστε περισσότεραΕισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο
Εισαγωγή στο Bison Μεταγλωττιστές, Χειμερινό εξάμηνο 2016-2017 Συντακτική Ανάλυση Αποτελεί την δεύτερη φάση της μετάφρασης. Εύρεση της σχέσης που υπάρχει των λεκτικών μονάδων ενός προγράμματος. Παράδειγμα
Διαβάστε περισσότεραΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση. Στη δήλωση ορισμό κανονικών εκφράσεων
ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ 2 Ο Εργαστηριακό Μάθημα Λεξική Ανάλυση Σκοπός: Το μάθημα αυτό αναφέρεται: Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση Στη δήλωση ορισμό κανονικών εκφράσεων Θεωρία Πρόλογος
Διαβάστε περισσότεραΠαρουσίαση του εργαλείου FLEX
Παρουσίαση του εργαλείου FLEX Γεννήτρια Λεκτικών Αναλυτών Α Φάση Λεκτική Ανάλυση Χαρακτηριστικά του flex Γεννήτρια λεκτικών αναλυτών σε C/C++ (fast lexical analyzer generator). Βασισµένο στο εργαλείο του
Διαβάστε περισσότεραΜΑΘΗΜΑ: Μεταγλωττιστές
Comment [h1]: Παράδειγμ α: https://ocp.teiath.gr/modules/ exercise/exercise_result.php?course=pey101&eurid=16 9 ΜΑΘΗΜΑ: Μεταγλωττιστές ΔΙΔΑΣΚΩΝ: Άγγελος Μιχάλας ΤΜΗΜΑ: Τμήμα Μηχανικών Πληροφορικής ΤΕ 1
Διαβάστε περισσότεραΥλοποίηση ΛΑ με το flex
(i) Μεταεργαλείο flex: γεννήτορας ΛΑ Είσοδος: μεταπρόγραμμα που περιγράφει τις λεκτικές μονάδες Έξοδος: πρόγραμμα σε C Η συνάρτηση yylex υλοποιεί το ΛΑ Επιστρέφει τον κωδικό της λεκτικής μονάδας που αναγνωρίστηκε,
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές. Συντακτική Ανάλυση με το Εργαλείο BISON
Γλώσσες Προγραμματισμού Μεταγλωττιστές Συντακτική Ανάλυση με το Εργαλείο BISON Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Γεννήτριες Συντακτικών Αναλυτών Bison/yacc
Διαβάστε περισσότεραΦροντιστήριο 1ο Εισαγωγή στο FLEX. Flex. Regular Expressions (1/4)
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ Φροντιστήριο 1ο Εισαγωγή στο FLEX Ι ΑΣΚΩΝ Αντώνιος Σαββίδης Slide
Διαβάστε περισσότεραΛεκτικός Αναλυτής. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής
Λεκτικός Αναλυτής Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Οι Φάσεις της Μεταγλώττισης λεκτική ανάλυση συντακτική ανάλυση Πίνακας Συμβόλων σημασιολογική ανάλυση παραγωγή ενδιάμεσου κώδικα Διαχείριση
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 3 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής
Γιώργος Δημητρίου Μάθημα 3 ο Λεκτική Ανάλυση και Λεκτικοί Αναλυτές Γενικά για τη λεκτική ανάλυση Έννοιες που χρειαζόμαστε Τεχνικές λεκτικής ανάλυσης Πίνακας συμβόλων και διαχείριση λαθών Σχεδίαση λεκτικού
Διαβάστε περισσότεραΕισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο
Εισαγωγή στο Bison Μεταγλωττιστές, Χειμερινό εξάμηνο 2014-2015 Συντακτική Ανάλυση Αποτελεί την δεύτερη φάση της μετάφρασης. Εύρεση της σχέσης που υπάρχει των λεκτικών μονάδων ενός προγράμματος. Παράδειγμα
Διαβάστε περισσότεραΠαρουσίαση του εργαλείου BISON
Παρουσίαση του εργαλείου BISON Γεννήτρια Συντακτικών Αναλυτών Β Φάση Συντακτική Ανάλυση Χαρακτηριστικά του bison Γεννήτρια συντακτικών αναλυτών σε C/C++. Συµβατό µε το εργαλείο του Unixyacc. Σχετικά εύκολο
Διαβάστε περισσότεραHY340, 2009 Α. Σαββίδης Slide 2 / 26. HY340, 2009 Α. Σαββίδης Slide 3 / 26. HY340, 2009 Α. Σαββίδης Slide 4 / 26
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ Φροντιστήριο 1ο Εισαγωγή στο FLEX ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης Slide
Διαβάστε περισσότεραΕισαγωγή στο Flex. Μεταγλωττιστές, Χειμερινό εξάμηνο
Εισαγωγή στο Flex Μεταγλωττιστές, Χειμερινό εξάμηνο 2014-2015 Ημερομηνίες Διαδικαστικά Παρουσίαση Flex 7 Νοεμβρίου 15:00 17:00 Παρουσίαση Bison 28 Νοεμβρίου 15:00 17:00 Στοιχεία επικοινωνίας Λίστα μαθήματος
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μεταφραστές Λεκτικός αναλυτής Διδάσκων: Επικ. Καθ. Γεώργιος Μανής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΕργαστήριο 08 Εισαγωγή στo Yacc
Εργαστήριο 08 Εισαγωγή στo Yacc Θεωρία Σκοπός: Το μάθημα αυτό αναφέρεται: Στο εργαλείο κατασκευής συντακτικών αναλυτών, Yacc, στις δομές και συναρτήσεις που προσφέρει. Στη σύνταξη των αρχείων περιγραφής
Διαβάστε περισσότεραΑυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών 6
Εισαγωγή στην Επιστήμη των Υπολογιστών 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές http://www.corelab.ece.ntua.gr/courses/ Αυτόματα Τρόπος κωδικοποίησης αλγορίθμων. Τρόπος περιγραφής συστημάτων πεπερασμένων
Διαβάστε περισσότεραΕισαγωγή στην Επιστήμη των Υπολογιστών
Εισαγωγή στην Επιστήμη των Υπολογιστών 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές http://www.corelab.ece.ntua.gr/courses/ Αυτόματα Τρόπος κωδικοποίησης αλγορίθμων. Τρόπος περιγραφής συστημάτων πεπερασμένων
Διαβάστε περισσότεραΠαρουσίαση του εργαλείου. flex. γεννήτρια λεκτικών αναλυτών. για το µάθηµα: Μεταγλωττιστές. Χανιά, 2005. flex 1
Παρουσίαση του εργαλείου flex γεννήτρια λεκτικών αναλυτών για το µάθηµα: Μεταγλωττιστές Χανιά, 2005 flex 1 Χαρακτηριστικά του flex Γεννήτρια λεκτικών αναλυτών σε C/C++ (fast lexical analyzer generator).
Διαβάστε περισσότεραΥλοποίηση ΣΑ με το bison
(i) 69 / 216 Μεταεργαλείο bison: γεννήτορας ΣΑ LALR(1) Είσοδος: μεταπρόγραμμα που περιγράφει τη σύνταξη και τις σημασιολογικές ρουτίνες Έξοδος: πρόγραμμα σε C Η συνάρτηση yyparse υλοποιεί το ΣΑ Επιστρέφει
Διαβάστε περισσότεραΜεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Μεταγλωττιστές Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανοδική Κατασκευή Συντακτικού Δέντρου κατασκευή δέντρου
Διαβάστε περισσότεραΥλοποίηση ΣΑ με το bison
(i) Μεταεργαλείο bison: γεννήτορας ΣΑ LALR(1) Είσοδος: μεταπρόγραμμα που περιγράφει τη σύνταξη και τις σημασιολογικές ρουτίνες Έξοδος: πρόγραμμα σε C Η συνάρτηση yyparse υλοποιεί το ΣΑ Επιστρέφει 0 αν
Διαβάστε περισσότεραΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ
ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 1: Εισαγωγή Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότεραΑπάντηση: (func endfunc)-([a-za-z])+
Γλώσσες Προγραμματισμού Μεταγλωττιστές Ασκήσεις Επανάληψης ) Περιγράψτε τις κανονικές εκφράσεις που υποστηρίζουν (i) συμβολοσειρές που ξεκινούν με το πρόθεμα "func" ή "endfunc" ακολουθούμενο το σύμβολο
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Θεωρία Υπολογισμού Ενότητα 14: Γραμματικές Χωρίς Συμφραζόμενα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 7: Ασυμφραστικές Γλώσσες (Γλώσσες Ελεύθερες Συμφραζομένων)
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 7: Ασυμφραστικές Γλώσσες (Γλώσσες Ελεύθερες Συμφραζομένων) Τι θα κάνουμε σήμερα Εισαγωγικά Ασυμφραστικές Γραμματικές (2.1) Τυπικός Ορισμός Της Ασυμφραστικής
Διαβάστε περισσότεραΜοντελοποίηση Υπολογισμού. Γραμματικές Πεπερασμένα Αυτόματα Κανονικές Εκφράσεις
Μοντελοποίηση Υπολογισμού Γραμματικές Πεπερασμένα Αυτόματα Κανονικές Εκφράσεις Προβλήματα - Υπολογιστές Δεδομένου ενός προβλήματος υπάρχουν 2 σημαντικά ερωτήματα: Μπορεί να επιλυθεί με χρήση υπολογιστή;
Διαβάστε περισσότεραΕργαστήριο 4_1 Λεκτική Ανάλυση - Flex Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι
Μεταγλωττιστές Εργαστήριο 4_1 Λεκτική Ανάλυση - Flex Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2015-1016 Start Condition Μόλις βρεί τα (quotation mark), αφαιρεί όλα τα text μέχρι να βρεί το
Διαβάστε περισσότεραΠαρουσίαση του εργαλείου BISON
Παρουσίαση του εργαλείου BISON Γεννήτρια Συντακτικών Αναλυτών Β Φάση Συντακτική Ανάλυση Χαρακτηριστικά του bison Γεννήτρια συντακτικών αναλυτών σε C/C++. Συµβατό µε το εργαλείο του Unix yacc. Σχετικά εύκολο
Διαβάστε περισσότεραΚατηγορικές Γραµµατικές
Κατηγορικές Γραµµατικές Γραµµατικές Χωρίς περιορισµούς Με συµφραζόµενα Χωρίς συµφραζόµενα Κανονικές Πεπερασµένων επιλογών Κατηγορικές Ενεργοποίησης Γραµµατικές G = { T, N, P, S } Τ: αλφάβητο τερµατικών
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές. Σημασιολογική Ανάλυση
Γλώσσες Προγραμματισμού Μεταγλωττιστές Σημασιολογική Ανάλυση Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Σημασιολογικής Ανάλυσης Στατική και Δυναμική Σημασιολογία Σημασιολογικοί
Διαβάστε περισσότεραΣτοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές
Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 1 /
Διαβάστε περισσότεραΠοιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί);
Μοντελοποίηση του Υπολογισµού Στοιχεία Θεωρίας Υπολογισµού (): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ποιές οι θεµελιώδεις δυνατότητες
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Γιώργος Δημητρίου Μάθημα 1 ο Γλώσσα - Μετάφραση Γλώσσα προγραμματισμού = Αναπαράσταση αλγορίθμων Ευκολία χρήσης Ακρίβεια και πληρότητα περιγραφής, όχι διφορούμενη! Μία περιγραφή για όλες τις μηχανές Μετάφραση
Διαβάστε περισσότεραΜεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Λεκτική Ανάλυση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Μεταγλωττιστές Λεκτική Ανάλυση Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Λεκτικός Αναλυτής Ο λεκτικός αναλυτής είναι η πρώτη φάση της μεταγλώττισης.
Διαβάστε περισσότεραΕργαστήριο 3 Εισαγωγή στο Flex Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι
Μεταγλωττιστές Εργαστήριο 3 Εισαγωγή στο Flex Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2015-1016 Μεταγλωττιστής (compiler - μεταφραστής) είναι ένα πρόγραμμα που μεταφράζει άλλα προγράμματα,
Διαβάστε περισσότεραΘεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1)
Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ασυμφραστικές Γραμματικές (2.1) Τυπικός Ορισμός Σχεδιασμός Ασυμφραστικών Γραμματικών
Διαβάστε περισσότεραΑνάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο
Διαβάστε περισσότεραΑυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών. Προδιαγραφές
Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσ.h.m.μ.y. & Σ.Ε.Μ.Φ.Ε. http://www.corelab.ece.ntua.gr/courses/ 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές Στάθης Ζάχος Συνεργασία: Κωστής Σαγώνας Επιμέλεια:
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Σχεδίαση Γλωσσών & Μεταγλωττιστές Ενότητα 3: Λεξική Ανάλυση Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ
ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 8: Ιδιότητες Γραμματικών χωρίς Συμφραζόμενα Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αλφαριθμητικά Αλφαριθμητικά (strings) Ένα αλφαριθμητικό είναι μια ακολουθία αλφαβητικών
Διαβάστε περισσότεραΑρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση
Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2011-2012 Γιάννης Γαροφαλάκης, Καθηγητής Αθανάσιος Ν.Νικολακόπουλος, Υποψήφιος Διδάκτορας 28 Μαρτίου 2012 Περίληψη Σκοπός της παρούσας
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Λογισμικό Συστήματος. Κλειώ Σγουροπούλου
Λογισμικό Συστήματος Κλειώ Σγουροπούλου Λογισμικό συστήματος Λειτουργικό σύστημα Μεταφραστές γλώσσας (translators) Διερμηνείς (interpreters) Μεταγλωττιστές (compilers) Εκδότες (editors) Φορτωτές (loaders)
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Θεωρία Υπολογισμού Ενότητα 7: Πεπερασμένη αναπαράσταση γλωσσών Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΜεταγλωττιστές. Ενότητα 7: Συντακτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Μεταγλωττιστές Ενότητα 7: Συντακτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Διαβάστε περισσότεραΟρισµοί. Τυπικές Γλώσσες Γραµµατικές και Μεταφραστές. Αλφάβητο: ένα οποιδήποτε µη κενό και πεπερασµένο σύνολο Σ αποτελούµενο από σύµβολα
Ορισµοί Τυπικές Γλώσσες Γραµµατικές και Μεταφραστές Αλφάβητο: ένα οποιδήποτε µη κενό και πεπερασµένο σύνολο Σ αποτελούµενο από σύµβολα { 0, } δυαδικό αλφάβητο { Α, Β, Γ,, Ω } κεφαλαία ελληνικά γράµµατα
Διαβάστε περισσότεραΓλώσσα Προγραμματισμού C
Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Τελικές εξετάσεις 3 Ιανουαρίου 27 Διάρκεια εξέτασης: 3 ώρες (2:-5:) ΘΕΜΑ ο
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές
Γλώσσες Προγραμματισμού Μεταγλωττιστές Παραγωγή Ενδιάμεσου Κώδικα Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Παραγωγή ενδιάμεσου κώδικα. Ενδιάμεσες γλώσσες. Αφηρημένα
Διαβάστε περισσότεραΘα χρησιμοποιήσουμε το bison, μια βελτιωμένη έκδοση του yacc. Φροντιστήριο 2ο Εισαγωγή στο YACC. Yacc. Δομή Προγράμματος Yacc
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ Φροντιστήριο 2ο Εισαγωγή στο YACC Ι ΑΣΚΩΝ Αντώνιος Σαββίδης Slide
Διαβάστε περισσότεραΑρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013
Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 27 Μαρτίου 2013 Περίληψη Σκοπός της παρούσας εργασίας είναι η εξοικείωσή σας με τις θεμελιώδεις θεωρητικές και πρακτικές πτυχές
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Θεωρία Υπολογισμού Ενότητα 25: Γραμματικές Χωρίς Περιορισμούς Τμήμα Πληροφορικής ΘΥ 25: Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως
Διαβάστε περισσότεραΠίνακας Περιεχοµένων Πρόλογος Κεφάλαιο Βασικές εισαγωγικές έννοιες
Πίνακας Περιεχοµένων Πρόλογος...vii Κεφάλαιο 1:Βασικές εισαγωγικές έννοιες...1 1.1 Η δοµή του µεταγλωττιστή...2 1.2 Η διαδικασία µεταγλώττισης...3 1.2.1 Η Λεξική Ανάλυση...6 1.2.2 Η Συντακτική Ανάλυση...6
Διαβάστε περισσότεραHY340, 2010 Α. Σαββίδης. Slide 3 / 43. Slide 4 / 43
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ Φροντιστήριο 2ο Εισαγωγή στο YACC Ι ΑΣΚΩΝ Αντώνιος Σαββίδης Slide
Διαβάστε περισσότεραΚανονικές Γλώσσες. Κανονικές Γλώσσες. Κανονικές Γλώσσες και Αυτόματα. Κανονικές Γλώσσες και Αυτόματα
Κανονικές Γλώσσες Κανονικές Γλώσσες Διδάσκοντες: Φ. Αφράτη, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Κανονική γλώσσα αν παράγεται από κανονική γραμματική. Παραγωγές P (V Σ) Σ * ((V Σ) ε) Παραγωγές μορφής:
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Διαβάστε περισσότεραΕισαγωγή στην Επιστήμη των Υπολογιστών
Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσhmμy 6η ενότητα: Αυτόματα, τυπικές γλώσσες, γραμματικές Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής http://www.corelab.ece.ntua.gr/courses/introcs
Διαβάστε περισσότεραΘέματα υπολογισμού στον πολιτισμό
Θέματα υπολογισμού στον πολιτισμό Ενότητα 4: Μοντελοποίηση υπολογισμού: Γραμματικές Εύη Παπαϊωάννου Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΠρογραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a
Διαβάστε περισσότεραΠεριεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ
Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,
Διαβάστε περισσότεραΚεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 6: Γλώσσες. 6.1 Ιστορική εξέλιξη 6.4 Υλοποίηση γλώσσας. Κεφάλαιο 6: «Γλώσσες Προγραµµατισµού»
ΚΕΦΑΛΑΙΟ 6: Γλώσσες Προγραµµατισµού 6.1 Ιστορική εξέλιξη 6.4 Υλοποίηση γλώσσας 1 6.1 Γενιές γλωσσών προγραµµατισµού 2 Δεύτερη γενιά: γλώσσα assembly Ένα µνηµονικό σύστηµα για την αναπαράσταση προγραµµάτων
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ Τελικές Εξετάσεις Απαντήστε όλα τα θέματα του Μέρους Α και ένα θέμα από
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΚανονικές Γλώσσες. ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Κανονικές Γλώσσες ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Κανονικές Γλώσσες Κανονική γλώσσα αν
Διαβάστε περισσότεραΕισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής
Εισαγωγή Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Μεταγλωττιστής Αρχικό πρόγραμμα (source program) Μεταγλωττιστής Τελικό πρόγραμμα (object program) Διαγνωστικά μηνύματα Μεταγλωττιστής Παίρνει σαν
Διαβάστε περισσότεραΠανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 8: Υπολογισιμότητα & Γλώσσες
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 8: Υπολογισιμότητα & Γλώσσες Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΘεωρία Υπολογισμού και Πολυπλοκότητα
Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 7. Κατηγορηματικές Γραμματικές 27,2 Φεβρουαρίου, 9 Μαρτίου 2007 Δρ. Παπαδοπούλου Βίκη 1 Κατηγορηματικές Γραμματικές Ή Γραμματικές Χωρίς Συμφραζόμενα Παράδειγμα.
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ100) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΗ-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr
Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Γιώργος Δημητρίου Μάθημα 8 ο Μετάφραση Οδηγούμενη από τη Σύνταξη Ο ΣΑ καλεί τις ρουτίνες που εκτελούν τη σημασιολογική ανάλυση και παράγουν τον ενδιάμεσο κώδικα Σημασιολογικές πληροφορίες μπορούν να μεταφέρονται
Διαβάστε περισσότεραΘεωρία Υπολογισμού Αλφάβητα, Γλώσσες, Κανονικές Εκφράσεις
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Θεωρία Υπολογισμού Ενότητα 6 : Αλφάβητα, Γλώσσες, Κανονικές Εκφράσεις Αλέξανδρος Τζάλλας 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο Τμήμα Μηχανικών
Διαβάστε περισσότεραΕργαστήριο 08 Δημιουργία 1 ου Συντακτικού Αναλυτή
Εργαστήριο 08 Δημιουργία 1 ου Συντακτικού Αναλυτή Σκοπός: Θεωρία Το μάθημα αυτό αναφέρεται: Στη διαδικασία κατασκευής ενός Συντακτικού Αναλυτή κάνοντας χρήση του Yacc. Στην υλοποίησή του. Θεωρία Πρόλογος
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Σύνολο χαρακτήρων της Pascal Για
Διαβάστε περισσότεραΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ
ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 5: Μη κανονικές γλώσσες Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΠρογραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 18: Ο προεπεξεργαστής της C. Βασική ιδέα Ο προεπεξεργαστής (pre-proccesor) της C είναι ένα πρόγραμμα που εκτελείται και μετασχηματίζει τον πηγαίο κώδικα πριν αυτός δοθεί
Διαβάστε περισσότεραΠεριεχόμενα. 1 Υπολογισιμότητα. Ιστορία - Εισαγωγή. Μαθηματικό Υπόβαθρο. LOOP: Μια απλή γλώσσα προγραμματισμού
Αυτόματα και Τυπικές Γλώσσες Περιεχόμενα 1 Υπολογισιμότητα Ιστορία - Εισαγωγή Μαθηματικό Υπόβαθρο LOOP: Μια απλή γλώσσα προγραμματισμού LOOP-υπολογίσιμες και πρωταρχικές αναδρομικές συναρτήσεις Σταθερά
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μεταφραστές Εισαγωγή Διδάσκων: Επικ. Καθ. Γεώργιος Μανής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές. Συντακτική Ανάλυση II
Γλώσσες Προγραμματισμού Μεταγλωττιστές Συντακτική Ανάλυση II Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Εισαγωγή στην ανάλυση από κάτω προς τα πάνω. Οι έννοιες της ελάττωσης
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΒασικές Αρχές Προγραμματισμού
Βασικές Αρχές Προγραμματισμού Κεφάλαιο 2 ΗγλώσσαC Ιστορική Αναδρομή ΗανάπτυξητηςC ξεκίνησε το 1972 στα εργαστήρια Bell από τον Dennis Ritchie με σκοπό την ανάπτυξη ενός λειτουργικού συστήματος για τον
Διαβάστε περισσότεραΠεριεχόμενα Συμβολοσειρές Γλώσσες ΘΥ 6: Συμβολοσειρές & γλώσσες Επ. Καθ. Π. Κατσαρός 24/07/2014 Επ. Καθ. Π. Κατσαρός ΘΥ 6: Συμβολοσειρές & γλώσσες
ΘΥ 6: Συμβολοσειρές & γλώσσες 24/07/2014 Θεωρία Υπολογισμού Ενότητα 6: Συμβολοσειρές & γλώσσες Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΑνάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)
Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Επανάληψη Μαθήματος
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Επανάληψη Μαθήματος Το Μάθημα σε μια Διαφάνεια Υπολογιστικά μοντέλα Κανονικές Γλώσσες Ντετερμινιστικά Αυτόματα Μη Ντετερμινιστικά Αυτόματα Κανονικές Εκφράσεις
Διαβάστε περισσότεραΚεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C
Κεφάλαιο 9.1-9.2 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Ένα string είναι μία ακολουθία αλφαριθμητικών χαρακτήρων, σημείων στίξης κτλ. Π.χ. Hello How are you? 121212 *Apple#123*%
Διαβάστε περισσότεραΚεφάλαιο 2: Τυπικές γλώσσες
Κεφάλαιο 2: Τυπικές γλώσσες (μέρος 2ο) Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 47 / 216 Γλώσσες χωρίς συμφραζόμενα (i) Γραμματικές χωρίς συμφραζόμενα: Σε κάθε παραγωγή ένα μη τερματικό
Διαβάστε περισσότερα