Τι είναι; Ο Πίνακας Συμβόλων είναι όπως ένα λεξικό:

Σχετικά έγγραφα
procedure P ( < pars > ) < type> f( < pars > ) begin { < local vars > < local vars > < procedure body> < procedure body> end; }

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

{ int a = 5; { int b = 7; a = b + 3;

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

Βασίλειος Κοντογιάννης ΠΕ19

Αρχές Γλωσσών Προγραμματισμου Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2015 Χρήστος Νομικός ( Τμήμα Μηχανικών Αρχές

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Κεφάλαια 2,7,8

Εμβέλεια. Παραδείγματα. Παραδείγματα. Μπλοκ (blocks)

Ονόματα και Εμβέλεια 6

Πρόβλημα 37 / σελίδα 207

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην αναγκαιότητα ύπαρξης των μεταγλωττιστών

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

Μαλούτα Θεανώ Σελίδα 1

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ 7o Επαναληπτικό Διαγώνισμα

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α

Ονόματα και Εμβέλεια. Wassily Kandinsky, Black lines, 1913

ΕΞΕΤΑΣΕΙΣ ΠΡΟΣΟΜΟΙΩΣΗΣ Γ ΤΑΞΗΣ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: 7

Επιµέλεια Θοδωρής Πιερράτος

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τελικό επαναληπτικό διαγώνισμα Επιμέλεια: Δρεμούσης Παντελής

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Εισαγωγή στον Προγραμματισμό

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Σχεδίαση Γλωσσών Προγραμματισμού. Εαρινό Εξάμηνο Lec03 18/02/2019

Θέμα Α Α3.1 ΤΕΛΟΣ 1ΗΣ ΑΠΟ 9 ΣΕΛΙΔΕΣ

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Πληροφορική 2. Γλώσσες Προγραμματισμού

Βασικά Στοιχεία της Java

Προγραμματισμός Η/Υ. Δομές Δεδομένων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Περιεχόμενα. Πρόλογος... 21

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Ονόματα και Εμβέλεια 4

Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012

Ανάπτυξη και Σχεδίαση Λογισμικού

Μεταγλωττιστές. Ενότητα 7: Συντακτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Λειτουργικά Συστήματα (Λ/Σ)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ ΛΥΣΕΙΣ

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Εισαγωγή στον προγραμματισμό

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

Κεφάλαιο 1: Εισαγωγή. Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήμιο Πατρών

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Προγραμματισμός Ι (ΗΥ120)

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

διανύσματα - Πίνακες - Struct Στατικό διάνυσμα Είσοδος Έξοδος δεδομένων Συναρτήσεις Χειρισμός σφαλμάτων ΤΕΤΑΡΤΗ ΔΙΑΛΕΞΗ

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Μάριος Αγγελίδης

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ, Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ Κεφάλαια 2, 7, 8

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

Βασικά Στοιχεία της Java

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

Οι δομές δεδομένων στοίβα και ουρά

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

6. Εισαγωγή στον προγραµµατισµό

Ασκήσεις στους Γράφους. 2 ο Σετ Ασκήσεων. Δέντρα

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

Προγραμματισμός ΙI (Θ)

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

ΝΤΗΛ ΓΩΝΙΑ THΛ: ΤΜΗΜΑ:... 2 Ο ΔΙΑΓΩΝΙΣΜΑ

Για τις λύσεις των προβλημάτων υπάρχει τρόπος εκτίμησης της επίδοσης (performance) και της αποδοτικότητας (efficiency). Ερωτήματα για την επίδοση

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

Ενδεικτικές Ερωτήσεις Θεωρίας

Transcript:

ΠΙΝΑΚΑΣ ΣΥΜΒΟΛΩΝ

Τι είναι; Ο Πίνακας Συμβόλων είναι όπως ένα λεξικό: πρέπει να υποστηρίζει την εισαγωγή, αναζήτηση και εγγραφή ονομάτων με τις ιδιότητές τους να αναπαριστά τις συνδέσεις τους στις δηλώσεις. Ένα σύμβολο μπορεί να υλοποιείται από έναν οποιοδήποτε αριθμό δομών δεδμένων, για αποδοτική προσπέλαση, όπως π.χ. πίνακες hash, δυαδικά δέντρα αναζήτησης κλπ.

Πίνακας συμβόλων & εμβέλεια Σε γλώσσες με δομή block και στατική (λεξική) εμβέλεια απαιτείται η επεξεργασία των δηλώσεων να γίνεται όπως σε μία στοίβα.! με την είσοδο σ ένα block, γίνεται επεξεργασία όλων των δηλώσεων του block και προστίθενται στον πίνακα συμβόλων οι συνδέσεις τους.! με την έξοδο από το block, αφαιρούνται οι συνδέσεις των δηλώσεων και αποκαθιστώνται οι προηγούμενες συνδέσεις που μπορεί να υπήρχαν. Αυτή η διαδικασία λέγεται ανάλυση εμβέλειας.

Πίνακας συμβόλων & εμβέλεια Πίνακας συμβόλων στη γραμμή 5 Πίνακας συμβόλων στη γραμμή 7

Πίνακας συμβόλων & εμβέλεια Πίνακας συμβόλων στη γραμμή 10 Πίνακας συμβόλων στη γραμμή 13

Πίνακας συμβόλων & εμβέλεια Πίνακας συμβόλων στη γραμμή 14 Πίνακας συμβόλων στη γραμμή 17

Πίνακας συμβόλων & εμβέλεια Αυτή η διαδικασία διατηρεί την κατάλληλη πληροφορία εμβέλειας, συμπεριλαμβανομένων των τρυπών στην εμβέλεια των καθολικών μεταβλητών. Αυτή η αναπραστάση υποθέτει ότι ο πίνακας συμβόλων επεξεργάζεται τις δηλώσεις στατικά, δηλ. πριν από την εκτέλεση: η διαχείριση του πίνακα συμβόλων γίνεται κατά τη μεταγλώττιση και όλες οι συνδέσεις είναι στατικές. Αν η διαχείριση του πίνακα συμβόλων γίνεται δυναμικά, δηλ. Κατά την εκτέλεση, τότε η επεξεργασία των δηλώσεων γίνεται όταν τις προσεγγίζει το μονοπάτι εκτέλεσης του προγράμματος. Τότε έχουμε ένα διαφορετικό κανόνα εμβέλειας, που λέγεται δυναμική εμβέλεια σε αντίθεση με την προηγούμενη περίπτωση που λέγεται στατική εμβέλεια.

Πίνακας συμβόλων & δυναμική εμβέλεια Πίνακας συμβόλων στη γραμμή 17

Πίνακας συμβόλων & δυναμική εμβέλεια Πίνακας συμβόλων στη γραμμή 12

Πίνακας συμβόλων & δυναμική εμβέλεια Πίνακας συμβόλων στη γραμμή 6 Έξοδος προγράμματος με στατική εμβέλεια Έξοδος προγράμματος με δυναμική εμβέλεια

Δυναμική εμβέλεια Στη δυναμική εμβέλεια, όταν χρησιμοποιείται ένα μη τοπικό όνομα σε έκφραση ή εντολή, η δήλωση που ισχύει γι αυτό δε μπορεί να βρεθεί με απλή ανάγνωση του προγράμματος (όπως στη στατική εμβέλεια). Το πρόγραμμα πρέπει να εκτελεστεί ή πρέπει να ιχνηλατηθεί η εκτέλεσή του με το χέρι και μπορεί διαφορετικές εκτελέσεις να οδηγούν σε διαφορετικά αποτελέσματα. Στο παράδειγμα, η αναφορά στην y στην εντολή printf της γραμμής 6 δε μπορεί να είναι γνωστή μέχρι τη στιγμή της εκτέλεσης και θα μπορούσε να εξαρτάται από την είσοδο του χρήστη.

Δυναμική εμβέλεια Καθώς οι αναφορές σε μη τοπικές μεταβλητές δε μπορούν να προβλεφθούν πριν από την εκτέλεση, δε γίνεται επίσης να προβλεφθούν και οι τύποι των δεδομένων τους. Στο παράδειγμα, η αναφορά στην y στην εντολή printf της γραμμής 6 υποτίθεται ότι αντιστοιχεί σ ένα χαρακτήρα. Όμως με δυναμική εμβέλεια, η μεταβλητή y θα μπορούσε να έχει οποιονδήποτε τύπο κατά την εκτέλεση της p και άρα η φόρμα θα μπορούσε να αποδειψθεί λάθος. Η στατική σύνδεση των τύπων δεδομένων (στατικό σύστημα τύπων) και η δυναμική εμβέλεια είναι εγγενώς ασύμβατες.

Δυναμική εμβέλεια Η δυναμική εμβέλεια παραμένει πιθανή επιλογή σε διερμηνεύσιμες γλώσσες, όπου το μέγεθος των προγραμμάτων δεν αναμένεται μεγάλο. Ο λόγος είναι ότι το περιβάλλον εκτέλεσης είναι σημαντικά απλούστερο, όταν χρησιμοποιούμε σ ένα διερμηνευτή δυναμική εμβέλεια. Γλώσσες όπως οι APL, Snobol και Perl (όλες διερμηνεύσιμες) υλοποιούν παραδοσιακά δυναμική εμβέλεια. Οι πρώτες διάλεκτοι της Lisp στηρίζονται επίσης σε δυναμική εμβέλεια. Η δημοφιλής διάλεκτος Scheme χρησιμοποιήσε από την αρχή λεξική εμβέλεια, όπως είναι και η προκαθορισμένη επιλογή για την Common Lisp.

Πολλοί πίνακες συμβόλων Πίνακας συμβόλων στη γραμμή 12

Πολλοί πίνακες συμβόλων Πίνακας συμβόλων στη γραμμή 12