Σχεδίαση Γλωσσών Προγραμματισμού. Εαρινό Εξάμηνο Lec04 19/02/2019
|
|
- Νίκων Βλαστός
- 5 χρόνια πριν
- Προβολές:
Transcript
1 Σχεδίαση Γλωσσών Προγραμματισμού Εαρινό Εξάμηνο Lec04 19/02/2019
2 Μεταγλωττιστής (compiler - μεταφραστής) είναι ένα πρόγραμμα που μεταφράζει άλλα προγράμματα, που είναι γραμμένα σε μια γλώσσα πηγής (source language), σε μια ισοδύναμη γλώσσα στόχο (object language). Μεταγλωττιστής (compiler): Η γλώσσα πηγής είναι συνήθως μια γλώσσα προγραμματισμού υψηλού επιπέδου ενώ η γλώσσα στόχος είναι συχνότερα η γλώσσα μηχανής ενός υπολογιστή. Πιο συγκεκριμένα ο μεταφραστής (translator) προσδιορίζει την σημασιολογία της γλώσσας προγραμματισμού, μετατρέπει τις λειτουργίες που είναι καθορισμένες από την σύνταξη σε λειτουργίες του υπολογιστικού μοντέλου κάποιας πραγματικής ή εικονικής μηχανής.
3 Φάσεις Μεταγλώττισης Ένας τυπικός μεταγλωττιστής συνίσταται από αρκετές φάσεις η καθεμία από τις οποίες περνά την έξοδό (output) της στην επόμενή της φάση : Η Λεξική Ανάλυση (lexical analysis) ομαδοποιεί τους χαρακτήρες σε λεξικές μονάδες (lexical units) ή αναγνωριστικά (tokens). Η είσοδος (input) σε αυτήν την φάση είναι ένα ρεύμα χαρακτήρων (character stream). Η έξοδος είναι ένα ρεύμα αναγνωριστικών (stream of tokens). Οι κανονικές εκφράσεις (regular expressions) χρησιμοποιούνται για να προσδιορίσουν τα αναγνωριστικά που προέκυψαν από τον λεξικό αναλυτή. Ο λεξικός αναλυτής ή αλλιώς σαρωτής (scanner) λειτουργεί ως μηχανή πεπερασμένων καταστάσεων. Παράδειγμα εργαλείων για την δημιουργία λεξικών αναλυτών είναι τα Lex και Flex. Τα προγράμματα αυτά αναγνωρίζουν λεξικά πρότυπα (ή δείγματα) μέσα σε κείμενο. Στην Συντακτική Ανάλυση (syntax analysis or parse) ομαδοποιούνται τα αναγνωριστικά σε συντακτικές μονάδες (syntactical units). Η έξοδος σε αυτή την φάση είναι μια δενδρική αναπαράσταση της σύνταξης του προγράμματος. Το δένδρο χρησιμοποιεί φυσική γλώσσα και καθορίζει την δομή του προγράμματος που αναγνωρίστηκε απ τον συντακτικό αναλυτή. Κατά την Σημασιολογική Ανάλυση (semantic analysis) αναλύεται το συντακτικό δένδρο έτσι ώστε να εντοπιστούν οι πληροφορίες που δεν μπορούν να καθοριστούν πλήρως απ την συντακτική ανάλυση. Οι πληροφορίες αυτές συγκροτούν την στατική σημασία (static semantics) του προγράμματος. Η έξοδος της φάσης αυτής είναι ένα συντακτικό δένδρο με σχόλια. Χαρακτηριστική γραμματική χρησιμοποιείται για να γίνει κατανοητή η στατική σημασία του προγράμματος.
4 Φάσεις Μεταγλώττισης Κατά την Βελτιστοποίηση (optimizing) εφαρμόζονται σημασιολογικές μετατροπές στο προαναφερθέν σχολιασμένο δένδρο για να απλοποιηθεί η δομή του και για να διευκολυνθεί η παραγωγή πιο αποδοτικού κώδικα. Στην φάση της Δημιουργίας του Κώδικα (code generating) μετατρέπεται το απλοποιημένο πλέον δένδρο σε κώδικα γραμμένο στην γλώσσα στόχο χρησιμοποιώντας κανόνες που υποδηλώνουν την σημασία της γλώσσας πηγής. Κατά την Βελτιστοποίηση του Τελικού Προγράμματος (peer-hole optimizing) εξετάζεται ο κώδικας (της γλώσσας στόχου) και επιχειρούνται βελτιώσεις πάνω στον εξαρτώμενο από την μηχανή κώδικα.
5 FLEX/BISON στο flowchart ενός compiler Lexer/Scanner Flex (αρχείο.l ) Parser Bison (αρχείο.y ) Frontend Semantic Analyzer Optimizers Middle-end Code Generator Backend
6 Τι είναι το Flex Μετα-εργαλείο παραγωγής λεκτικών αναλυτών. Μία γεννήτρια λεξικογραφικών αναλυτών Open source: Υπάρχει για όλα τα διαδεδομένα λειτουργικά συστήματα (πχ. GNU/Linux, Solaris, Mac OS- X, Win32) Παράγει πολύ γρήγορους λεξικογραφικούς αναλυτές Παράγει λεξικογραφικούς αναλυτές για γλώσσες C/C++ (target language) Manual: Flex σημαίνει Fast - Lexical Analyzer
7 Λεκτική Ανάλυση Αποτελεί την πρώτη φάση της μετάφρασης. Αναγνώριση λεκτικών μονάδων ενός προγράμματος. Απόκρυψη των περιττών λεπτομερειών από τον συντακτικό αναλυτή. Που βοηθάει το Flex? Εργαλείο κατασκευής λεκτικού αναλυτή. Αναγνωρίζει λεκτικές μονάδες από ένα αρχείο. Δυνατότητα επιστροφής τιμών για κάθε λεκτική μονάδα.
8 Παράδειγμα Λεκτικής Ανάλυσης Μετατροπής μιας έκφρασης από χαρακτήρες σε μια σειρά από tokens. foo = 1-3**2 Lex Token type Foo Variable = Assignment operator 1 Number - Subtraction operator 3 Number ** Power operator 2 Number
9 Περιγραφή ενός λεξικογραφικού αναλυτή στη γλώσσα του lex/flex (Λειτουργία του Flex) Για την περιγραφή ενός λεξικογραφικού αναλυτή στο flex/lex, χρησιμοποιούνται Κανονικές εκφράσεις (regular expressions ή regex): που περιγράφουν τα λεξικογραφικά πρότυπα μιας γλώσσας Ενέργειες (Actions): δηλαδή κώδικας σε μία γλώσσα προγραμματισμού που εκτελείται όταν αναγνωριστεί μια κανονική έκφραση (στην οποία αντιστοιχεί το action)
10 Δομή Αρχείου Εισόδου (αρχείο.l) Το αρχείο εισόδου στο Flex αποτελείται από 3 μέρη. Ορισμοί. Κανόνες. Συναρτήσεις. /*(τμήμα ορισμών) Statements block*/ %% /*(τμήμα κανόνων) Rules block*/ %% /*(συναρτήσεις χρήστη) User Functions*/ (Προαιρετικό)
11 Τμήμα Ορισμών Το τμήμα ορισμών περιλαμβάνει: Επιλογές του εργαλείου: %option option_name ή %option option_name=value %option noyywrap //tells Flex to read only one input file %option case-insensitive //distinguish between uppercase (capital) and lowercase (small) letters Δηλώσεις αρχικών καταστάσεων για Κανονικές Εκφράσεις (Κ.Ε.). %x STATE_COMMENT Ορισμός αναγνωριστικών Ανάθεση ονομάτων σε σύνολα από αναγνωριστικά Letterdigit [A-Za-z0-9] Whitechar [\t\n] Literal blocks περικλείεται μέσα σε %{ code %} και περιέχει κώδικα C. Header file inclusion. Define constants and global variables
12 Τμήμα Κανόνων Περιλαμβάνει τις κανονικές εκφράσεις και τους διάφορους κανόνες. Μορφή κανόνων: Κανονική έκφραση {C code} 0 ( -?[1-9][0-9]*) {return (INTEGER);} Κώδικας εντός των %{..%} αντιγράφεται αυτούσιος. ΠΡΟΣΟΧΗ!!! To Flex θα χρησιμοποιήσει το πρώτο κανόνα που κάνει match σε περίπτωση σύγκρουσης.
13 Παραδείγματα [0-9]+ { printf( An integer %s \n, yytext); } [a-z][a-z0-9]* { printf( An identifier %s \n, yytext);} if then begin end function { printf( A Keyword %s \n, yytext); }
14 Τμήμα Συναρτήσεων Χρήστη Περιλαμβάνει τις οριζόμενες από τον χρήστη συναρτήσεις. Παραδείγματα: main() yyerror() yywrap() Ουσιαστικά δημιουργούμε όποια συνάρτηση θέλουμε εμείς για να επεξεργαστούμε τυχόν δεδομένα.
15 Ειδικοί Χαρακτήρες Χαρακτήρας Λειτουργία - Περιγραφή. Οποιοσδήποτε χαρακτήρας εκτός του \n [ ] Κλάσεις χαρακτήρων, π.χ. [a-z],[0-9] ^ Αναγνώριση της αρχής μίας γραμμής $ Αναγνώριση του τέλους μια γραμμής { } Πλήθος εμφανίσεων ή αναφορά σε ένα pattern \ Escape sequence όπως στη C * Μηδέν ή περισσότερες εμφανίσεις της Κ.Ε. που προηγείται + Μία ή περισσότερες εμφανίσεις της Κ.Ε. που προηγείται? Μηδέν ή μία εμφάνιση της Κ.Ε. που προηγείται Τελεστής διάζευξης Αναγνώριση κυριολεκτικών ( ) Ομαδοποίηση Κ.Ε. / Αναγνώριση βασισμένη σε συμφραζόμενα π.χ. (ab/cd Αναγνωρίζει το ab στο abcd) <<EOF>> Αναγνώριση τέλους αρχείου
16 Χρήσιμες Μεταβλητές YYSTYPE yylval: Είναι ίσως η σημαντικότερη μεταβλητή, καθώς χρησιμοποιείται για επικοινωνία του λεκτικού με τον συντακτικό αναλυτή. Περιέχει την τιμή που θα περαστεί στον συντακτικό αναλυτή. Μπορεί να περιέχει πολλαπλά πεδία αν ξαναοριστεί ως union τύπου YYSTYPE στο τμήμα ορισμών του αρχείου. int yyleng: Περιέχει το μήκος της αναγνωρισθείσας λεκτικής μονάδας. char *yytext: Περιέχει την αναγνωρισθείσα λεκτική μονάδα.
17 Χρήσιμες Συναρτήσεις yylex(): yymore(): yyless(int n): yywrap(): Yytext: Yyleng: Καλείται για την αναγνώριση της επόμενης λεκτικής μονάδας. Ενσωματώνει την επόμενη λεκτική μονάδα στην τρέχουσα Κρατάει τους n χαρακτήρες του λεκτικού και επιστρέφει τους υπόλοιπους Καθορίζει την λειτουργία του λεκτικού αναλυτή. Καλείται αυτόματα και μπορεί να επιστρέψει την αναγνώριση πολλαπλών αρχείων. Η συμβολοσειρά που έχει αναγνωριστεί Το μήκος της συμβολοσειράς
18 %{ int linecount = 0; %} Digit [0-9] Identifier [a-za-z]{a-za-z0-9}* %% {Identifier} { printf( %s: This is an identifier\n, yytext); } \n { printf( The line number is %d\n, ++linecount); } [\t ]+ ; /*Ignore spaces */. { printf( Unrecognized character\n ); } %% main() { yylex(); } Ορισμοί Συναρτήσεις Χρήστη Κανόνες Παράδειγμα: count lines CountLine.l
19 Παράδειγμα: Line/word counter int lines=0, chars=0; %% \n ++lines; ++chars;. ++chars; %% main() { yylex(); printf( lines: %d chars: %d\n, lines, chars); }
20 Παράδειγμα: remove comments %x comment %% "/*" BEGIN(comment); <comment>[^*\n]* /* eat anything that's not a '*' */ <comment>"*"+[^*/\n]* /* eat up '*'s not followed by '/'s */ <comment>\n ; <comment>"*"+"/" BEGIN(0); %%
21 Εκτέλεση Flex Όνομα αρχείου file_name.l Εντολή flex file_name.l Compile του παραγόμενου αρχείου για παραγωγή εκτελέσιμου: Παράγεται το αρχείο lex.yy.c Override με o Output_File Με gcc (CodeBlocks) Mε gcc και σύνδεση με την βιβλιοθήλη libfl: gcc lex.yy.c o lexer_name -lfl Εκτέλεση λεκτικού αναλυτή:./lexer_name input_file_name Debugging: Χρήση της printf για να επιστρέψει τη αναγνωρίζει το Flex.
22 Flex Source File (sample.l) Flex Compiler (Flex) Lexical Analyzer Code (lex.yy.c) C Compiler Input Text File Lexical Analyzer executable Output: Tokens Parser
23 Κανονικές Εκφράσεις (1) x αναγνωρίζει τον χαρακτήρα x και μόνο αυτόν abcd... αναγνωρίζει την ακολουθία χαρακτήρων abcd.... (τελεία) αναγνωρίζει οποιονδήποτε χαρακτήρα ή σύμβολο πλην του newline [xyz] αναγνωρίζει ένα οποιονδήποτε από τους χαρακτήρες που βρίσκονται μέσα στο σύνολο. Δηλαδή ή το x ή το y ή το z
24 Κανονικές Εκφράσεις (2) [ab-e] αναγνωρίζει τους χαρακτήρες a ή b ή c ή d ή e. [^ab-e] Όταν το σύμβολο ^ εμφανίζεται στην αρχή του συνόλου σημαίνει την ΑΡΝΗΣΗ του συνόλου. Δηλαδή ο συμβολισμός ab-e δημιουργεί μία ακολουθία χαρακτήρων που ξεκινούν από το b και καταλήγουν στο e σύμφωνα με το ascii char set. Δηλαδή το παραπάνω αναγνωρίζει ΟΛΟΥΣ τους χαρακτήρες, εκτός από τους a, b, c, d, e.
25 Κανονικές Εκφράσεις (3) r* kleen star, αναγνωρίζει καμία ή περισσότερες επαναλήψεις της κανονικής έκφρασης r r+ αναγνωρίζει μία ή περισσότερες επαναλήψεις της κανονικής έκφρασης r Παράδειγμα η a* περιγράφει τα ε, a, aa, aaaa, aaaaaaaa,... η [ab-e]* περιγράφει τα ε, a, c, ac, cab, bbbe, cbaead παράδειγμα η a+ περιγράφει τα a, aa, aaaa, αλλά όχι το ε η [ab-e]+ περιγράφει τα a, c, ac, cab, bbbe, cbaead
26 Κανονικές Εκφράσεις (4) r? αναγνωρίζει μία ή καμία επανάληψη της κανονικής έκφρασης r (διαβάζεται ως προαιρετικό r) r{i, j} όπου 0 < i < j αναγνωρίζει i, i+1, i+2,..., j-1, j επαναλήψεις της κανονικής έκφρασης r r{i,} όπου 0 < i αναγνωρίζει i ή περισσότερες επαναλήψεις της κανονικής έκφρασης r παράδειγμα η.{2, 3} περιγράφει τις λέξεις που αποτελούνται από 2 ή 3 χαρακτήρες, πχ. ant, ///,..., 3/2, 23, 2b, or, not,...
27 Κανονικές Εκφράσεις (5) r{i} όπου 0 < i αναγνωρίζει i ακριβώς επαναλήψεις της κανονικής έκφρασης r rs αναγνωρίζει τις ακολουθίες που αναγνωρίζει η συνένωση των κανονικών εκφράσεων r και s (concatenation) παράδειγμα Η abc αναγνωρίζει την abc H [a-z] foo [1-3] αναγνωρίζει όλες τις λέξεις 5 χαρακτήρων που ξεκινούν με πεζό γράμμα, περιέχουν το string foo και τελειώνουν με έναν αριθμό από το 1 μέχρι το 3, πχ. afoo1, lfoo3,...
28 Κανονικές Εκφράσεις (6) (r) οι παρενθέσεις γύρω από μία κανονική έκφραση r, απλώς αλλάζουν την προτεραιότητα εφαρμογής των τελεστών r s ικανοποιείται από τις ακολουθίες συμβόλων που ικανοποιούν την r ή τις ακολουθίες που ικανοποιούν την s όχι και τις δύο (xor). παράδειγμα Η abc+ αναγνωρίζει τις abc, abcc, abcccccc,... Ενώ η (abc)+ αναγνωρίζει τις abc, abcabc,... Επίσης η abc + αναγνωρίζει τις ίδιες ακολουθίες χαρακτήρων που αναγνωρίζει και η (abc)+ παράδειγμα Η ( abc ABC ){2,3} αναγνωρίζει τις abcabc, abcabc, ABCABC, abcabcabc,...
29 Κανονικές Εκφράσεις (7) ^r ικανοποιείται όταν ικανοποιείται η r και η ακολουθία που την ικανοποιεί βρίσκεται στην αρχή της γραμμής r$ ικανοποιείται όταν ικανοποιείται η r και η ακολουθία που την ικανοποιεί βρίσκεται στο τέλος της γραμμής
30 Κανονικές Εκφράσεις (8) \\, \, \(, \), \*, \+, \[, \], \$, \^, \{, \},... οι ίδιοι οι χαρακτήρες \,, (, ), *,... Οι κανονικές εκφράσεις παρατέθηκαν σύμφωνα με την προτεραιότητά τους (από την υψηλότερη προς την χαμηλότερη). Παράδειγμα: Η foo bar* είναι ισοδύναμη με την (foo) (ba(r*)), επειδή ο τελεστής '*' έχει μεγαλύτερη προτεραιότητα από την παράθεση και αυτή από το τελεστή ' (alternation).
31 Προκαθορισμένες κλάσεις χαρακτήρων Το flex υποστηρίζει κάποιες προκαθορισμένες κλάσεις χαρακτήρων που μπορούν να χρησιμοποιηθούν σε κανονικές εκφράσεις. Ο συμβολισμός των κλάσεων αυτών έχει τη μορφή [:Χ:], όπου 'Χ' το όνομα της κλάσης. Συγκεκριμένα οι χαρακτήρες της κάθε κλάσης, ικανοποιούν τις συναρτήσεις 'isx(int c)' της επικεφαλίδας ctype.h. Οι κυριότερες από αυτές είναι: [:alnum:] - όλα τα αλφαριθμητικά: [a-za-z0-9] στο c (default) locale [:alpha:] - όλα τα γράμματα του αλφαβήτου: [a-za-z] στο c locale [:digit:] - όλα τα ψηφία του δεκαδικού συστήματος: [0-9] [:lower:] - όλα τα πεζά γράμματα του αλφαβήτου: [a-z] [:upper:] - όλα τα κεφαλαία γράμματα του αλφαβήτου: [A-Z] [:print:] - όλοι οι εκτυπώσιμοι χαρακτήρες [:space:] - όλοι οι χαρακτήρες whitespace [:xdigit:] - όλα τα ψηφία του δεκαεξαδικού συστήματος: [0-9a-eA-E]
32 %{ #define T_IDENTIFIER 300 #define T_INTEGER 301 #define T_REAL 302 #define T_STRING 303 #define T_ASSIGN 304 #define T_ELSE 305 #define T_IF 306 #define T_THEN 307 #define T_EQ 308 #define T_LT 309 #define T_NE 310 #define T_GE 311 #define T_GT 312 %} Λεκτικός Αναλυτής - Παράδειγμα letter [a-za-z] digit [0-9] ws [ \t\n]+ id [A-Za-z][A-Za-z0-9]* comment "(*"([^*] \n "*"+[^)])*"*"+")" integer [0-9]+/([^0-9] "..") real [0-9]+"."[0-9]*([0-9] "E"[+-]?[0-9]+) string \'([^'] \'\')*\' %% User Defined Values to Each Token (else lex will assign) ":=" {printf(" %s ", yytext);return(t_assign);} "else" {printf(" %s ", yytext);return(t_else);} Regular Expression Rules for later token definitions Token Definitions
33 Conditional compilation action "then" { #ifdef PRNTFLG printf(" %s ", yytext); #endif return(t_then); } "<=" {printf(" %s ", yytext);return(t_eq);} "<" {printf(" %s ", yytext);return(t_lt);} "<>" {printf(" %s ", yytext);return(t_ne);} ">=" {printf(" %s ", yytext);return(t_ge);} ">" {printf(" %s ", yytext);return(t_gt);} Token Definitions {id} {printf(" %s ", yytext);return(t_identifier);} {integer} {printf(" %s ", yytext);return(t_integer);} {real} {printf(" %s ", yytext);return(t_real);} {string} {printf(" %s ", yytext);return(t_string);} {comment} {/* T_COMMENT */} {ws} {/* spaces, tabs, newlines */} Discard %%
34 Άλλες Ενέργεις- Παράδειγμα %% ":=" {return(t_assign);} "else" {return(t_else);} "then" {return(t_then);} "<=" {yylval = T_EQ; return(t_eq);}... Etc... ">" {yylval = T_GT; return(t_gt);} [0-9]+ { yylval = atoi(yytext); return INTEGER; } {id} {yylval = install_id(); return(t_identifier);} {integer} {yylval = install_int(); return(t_integer);} {real} {yylval = install_real(); return(t_real);} {comment} {/* T_COMMENT */} {ws} {/* spaces, tabs, newlines */} %% install_id() { /* A procedure to install the lexeme whose first character is pointed to by yytext and whose length is yylen into symbol table and return a pointer */ } Επιστρέφει την τιμή και το token install_int() { /* Similar but installs an integer lexeme into symbol table */ } install_real() { /* Similar but installs a real lexeme into symbol table */ }
35 %{ #include "y.tab.h" %} letter [a-za-z] digit [0-9] ws id comment integer real string %% [ \t\n]+ [A-Za-z][A-Za-z0-9]* "(*"([^*] \n "*"+[^)])*"*"+")" [0-9]+/([^0-9] "..") [0-9]+"."[0-9]*([0-9] "E"[+-]?[0-9]+) \'([^'] \'\')*\' ":=" {return(t_assign);} ":" {return(t_colon);} "array" {return(t_array);} "begin" {return(t_begin);} "case" {return(t_case);} "const" {return(t_const);} "downto" {return(t_downto);} "do" {return(t_do);} "else" {return(t_else);} "end" {return(t_end);} "file" {return(t_file);} "for" {return(t_for);} Pas_lex.l "function" {return(t_function);} /* "goto" {return(t_goto);} */ "if" {return(t_if);} "label" {return(t_label);} "nil" {return(t_nil);} "not" {return(t_not);} "of" {return(t_of);} /* "packed" {return(t_packed);} */ "procedure" {return(t_procedure);} "end" {return(t_end);} "program" {return(t_program);} "record" {return(t_record);} "repeat" {return(t_repeat);} "set" {return(t_set);} "then" {return(t_then);} "to" {return(t_to);} "type" {return(t_type);} "until" {return(t_until);} "var" {return(t_var);} "while" {return(t_while);} /* "with" {return(t_with);} */ "+" {return(t_plus);} "-" {return(t_minus);} "or" {return(t_or);} "and" {return(t_and);} "div" {return(t_div);} "mod" {return(t_mod);} "/" {return(t_rdiv);} "*" {return(t_mult);} "(" {return(t_lparen);} ")" {return(t_rparen);} "=" {return(t_eq);} "," {return(t_comma);} ".." {return(t_range);} "." {return(t_period);} "[" {return(t_lbrack);} "]" {return(t_rbrack);} "<=" {return(t_eq);} "<" {return(t_lt);} "<>" {return(t_ne);} ">=" {return(t_ge);} ">" {return(t_gt);} "in" {return(t_in);} "^" {return(t_uparrow);} ";" {return(t_semi);} {id} {return(t_identifier);} {integer} {return(t_integer);} {real} {return(t_real);} {string} {return(t_string);} {comment} {/* T_COMMENT */} {ws} {/* spaces, tabs, newlines */}
Εργαστήριο 4_1 Λεκτική Ανάλυση - Flex Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι
Μεταγλωττιστές Εργαστήριο 4_1 Λεκτική Ανάλυση - Flex Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2015-1016 Start Condition Μόλις βρεί τα (quotation mark), αφαιρεί όλα τα text μέχρι να βρεί το
Διαβάστε περισσότεραΕργαστήριο 3 Εισαγωγή στο Flex Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι
Μεταγλωττιστές Εργαστήριο 3 Εισαγωγή στο Flex Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2015-1016 Μεταγλωττιστής (compiler - μεταφραστής) είναι ένα πρόγραμμα που μεταφράζει άλλα προγράμματα,
Διαβάστε περισσότεραΕισαγωγή στο Flex. Μεταγλωττιστές, Χειμερινό εξάμηνο
Εισαγωγή στο Flex Μεταγλωττιστές, Χειμερινό εξάμηνο 2014-2015 Ημερομηνίες Διαδικαστικά Παρουσίαση Flex 7 Νοεμβρίου 15:00 17:00 Παρουσίαση Bison 28 Νοεμβρίου 15:00 17:00 Στοιχεία επικοινωνίας Λίστα μαθήματος
Διαβάστε περισσότεραΤι είναι το Flex. Περιγραφή ενός λεξικογραφικού αναλυτή στη γλώσσα του lex/flex. Γενικά Χαρακτηριστικά του Flex
ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο Τι είναι το Flex Μία γεννήτρια λεξικογραφικών αναλυτών Παράγει λεξικογραφικούς αναλυτές στις γλώσσες C/C++ (target language) Εισαγωγή στο Flex 1/42 2/42 Γενικά
Διαβάστε περισσότεραHY340, 2009 Α. Σαββίδης Slide 2 / 26. HY340, 2009 Α. Σαββίδης Slide 3 / 26. HY340, 2009 Α. Σαββίδης Slide 4 / 26
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ Φροντιστήριο 1ο Εισαγωγή στο FLEX ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης Slide
Διαβάστε περισσότεραΦροντιστήριο 1ο Εισαγωγή στο FLEX. Flex. Regular Expressions (1/4)
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ Φροντιστήριο 1ο Εισαγωγή στο FLEX Ι ΑΣΚΩΝ Αντώνιος Σαββίδης Slide
Διαβάστε περισσότεραΕισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο
Εισαγωγή στο Bison Μεταγλωττιστές, Χειμερινό εξάμηνο 2016-2017 Συντακτική Ανάλυση Αποτελεί την δεύτερη φάση της μετάφρασης. Εύρεση της σχέσης που υπάρχει των λεκτικών μονάδων ενός προγράμματος. Παράδειγμα
Διαβάστε περισσότεραΕισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο
Εισαγωγή στο Bison Μεταγλωττιστές, Χειμερινό εξάμηνο 2014-2015 Συντακτική Ανάλυση Αποτελεί την δεύτερη φάση της μετάφρασης. Εύρεση της σχέσης που υπάρχει των λεκτικών μονάδων ενός προγράμματος. Παράδειγμα
Διαβάστε περισσότεραΜεταγλωττιστές. Εργαστήριο 5. Εισαγωγή στο BISON. Γεννήτρια Συντακτικών Αναλυτών. 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση
Μεταγλωττιστές Εργαστήριο 5 Εισαγωγή στο BISON Γεννήτρια Συντακτικών Αναλυτών 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2015-1016 Φάσεις Μεταγλώττισης
Διαβάστε περισσότεραΠαρουσίαση του εργαλείου FLEX
Παρουσίαση του εργαλείου FLEX Γεννήτρια Λεκτικών Αναλυτών Α Φάση Λεκτική Ανάλυση Χαρακτηριστικά του flex Γεννήτρια λεκτικών αναλυτών σε C/C++ (fast lexical analyzer generator). Βασισµένο στο εργαλείο του
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές. Λεκτική Ανάλυση
Γλώσσες Προγραμματισμού Μεταγλωττιστές Λεκτική Ανάλυση Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Λεκτική Ανάλυση Τυπικές Γλώσσες Κανονικές Εκφράσεις Υλοποίηση Λεκτικών
Διαβάστε περισσότεραΥλοποίηση ΣΑ με το bison
(i) 69 / 216 Μεταεργαλείο bison: γεννήτορας ΣΑ LALR(1) Είσοδος: μεταπρόγραμμα που περιγράφει τη σύνταξη και τις σημασιολογικές ρουτίνες Έξοδος: πρόγραμμα σε C Η συνάρτηση yyparse υλοποιεί το ΣΑ Επιστρέφει
Διαβάστε περισσότεραΥλοποίηση ΛΑ με το flex
(i) Μεταεργαλείο flex: γεννήτορας ΛΑ Είσοδος: μεταπρόγραμμα που περιγράφει τις λεκτικές μονάδες Έξοδος: πρόγραμμα σε C Η συνάρτηση yylex υλοποιεί το ΛΑ Επιστρέφει τον κωδικό της λεκτικής μονάδας που αναγνωρίστηκε,
Διαβάστε περισσότεραΥλοποίηση ΣΑ με το bison
(i) Μεταεργαλείο bison: γεννήτορας ΣΑ LALR(1) Είσοδος: μεταπρόγραμμα που περιγράφει τη σύνταξη και τις σημασιολογικές ρουτίνες Έξοδος: πρόγραμμα σε C Η συνάρτηση yyparse υλοποιεί το ΣΑ Επιστρέφει 0 αν
Διαβάστε περισσότεραΜεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Μεταγλωττιστές Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραMεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία
Mεταγλωττιστές 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex Σκοπός: Το μάθημα αυτό αναφέρεται: στις κανονικές εκφράσεις στην δομή και το περιεχόμενο του αρχείου-εισόδου του flex Γενικά Θεωρία Κατά την
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Γιώργος Δημητρίου Μάθημα 8 ο Μετάφραση Οδηγούμενη από τη Σύνταξη Ο ΣΑ καλεί τις ρουτίνες που εκτελούν τη σημασιολογική ανάλυση και παράγουν τον ενδιάμεσο κώδικα Σημασιολογικές πληροφορίες μπορούν να μεταφέρονται
Διαβάστε περισσότεραΠαρουσίαση του εργαλείου. flex. γεννήτρια λεκτικών αναλυτών. για το µάθηµα: Μεταγλωττιστές. Χανιά, 2005. flex 1
Παρουσίαση του εργαλείου flex γεννήτρια λεκτικών αναλυτών για το µάθηµα: Μεταγλωττιστές Χανιά, 2005 flex 1 Χαρακτηριστικά του flex Γεννήτρια λεκτικών αναλυτών σε C/C++ (fast lexical analyzer generator).
Διαβάστε περισσότεραΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην εξοικείωση με τη διαδικασία κατασκευής ενός Λεξικού Αναλυτή κάνοντας χρήση του lex.
ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ 5 Ο Εργαστηριακό Μάθημα Δημιουργία Νέων Λεξικών Αναλυτών Σκοπός: Το μάθημα αυτό αναφέρεται: Στην εξοικείωση με τη διαδικασία κατασκευής ενός Λεξικού Αναλυτή κάνοντας χρήση του lex. Στην
Διαβάστε περισσότεραΠαρουσίαση του εργαλείου BISON
Παρουσίαση του εργαλείου BISON Γεννήτρια Συντακτικών Αναλυτών Β Φάση Συντακτική Ανάλυση Χαρακτηριστικά του bison Γεννήτρια συντακτικών αναλυτών σε C/C++. Συµβατό µε το εργαλείο του Unixyacc. Σχετικά εύκολο
Διαβάστε περισσότεραΕργαστήριο 08 Εισαγωγή στo Yacc
Εργαστήριο 08 Εισαγωγή στo Yacc Θεωρία Σκοπός: Το μάθημα αυτό αναφέρεται: Στο εργαλείο κατασκευής συντακτικών αναλυτών, Yacc, στις δομές και συναρτήσεις που προσφέρει. Στη σύνταξη των αρχείων περιγραφής
Διαβάστε περισσότεραΚεφάλαιο 2: Τυπικές γλώσσες. Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος / 216
Κεφάλαιο 2: Τυπικές γλώσσες Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 13 / 216 Τυπικές γλώσσες (i) Βασικές έννοιες Αλφάβητο Σύμβολο Συμβολοσειρά Μήκος συμβολοσειράς Σύνολο συμβολοσειρών
Διαβάστε περισσότερα- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)
Η Γλώσσα Pascal Χαρακτηριστικά Τύποι Δεδοµένων Δοµή προγράµµατος 1. Βασικές έννοιες Χαρακτηριστικά της γλώσσας Pascal Γλώσσα προγραµµατισµού Συντακτικό Σηµασιολογία Αλφάβητο της γλώσσας Pascal (Σύνολο
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές. Συντακτική Ανάλυση με το Εργαλείο BISON
Γλώσσες Προγραμματισμού Μεταγλωττιστές Συντακτική Ανάλυση με το Εργαλείο BISON Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Γεννήτριες Συντακτικών Αναλυτών Bison/yacc
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 3 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής
Γιώργος Δημητρίου Μάθημα 3 ο Λεκτική Ανάλυση και Λεκτικοί Αναλυτές Γενικά για τη λεκτική ανάλυση Έννοιες που χρειαζόμαστε Τεχνικές λεκτικής ανάλυσης Πίνακας συμβόλων και διαχείριση λαθών Σχεδίαση λεκτικού
Διαβάστε περισσότεραΑρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση
Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2011-2012 Γιάννης Γαροφαλάκης, Καθηγητής Αθανάσιος Ν.Νικολακόπουλος, Υποψήφιος Διδάκτορας 28 Μαρτίου 2012 Περίληψη Σκοπός της παρούσας
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 6: Γλώσσες. 6.1 Ιστορική εξέλιξη 6.4 Υλοποίηση γλώσσας. Κεφάλαιο 6: «Γλώσσες Προγραµµατισµού»
ΚΕΦΑΛΑΙΟ 6: Γλώσσες Προγραµµατισµού 6.1 Ιστορική εξέλιξη 6.4 Υλοποίηση γλώσσας 1 6.1 Γενιές γλωσσών προγραµµατισµού 2 Δεύτερη γενιά: γλώσσα assembly Ένα µνηµονικό σύστηµα για την αναπαράσταση προγραµµάτων
Διαβάστε περισσότεραΠρογραμματισμός PASCAL
Προγραμματισμός PASCAL 1 PASCAL Η PASCAL σχεδιάστηκε από τον Worth το 1968 στη Ζυρίχη, αρχικά σαν εργαλείο για τη διδασκαλία προγραμματισμού. Είναι γλώσσα για σειριακό προγραμματισμό. 2 Απλή και εύκολη
Διαβάστε περισσότεραΛεκτικός Αναλυτής. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής
Λεκτικός Αναλυτής Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Οι Φάσεις της Μεταγλώττισης λεκτική ανάλυση συντακτική ανάλυση Πίνακας Συμβόλων σημασιολογική ανάλυση παραγωγή ενδιάμεσου κώδικα Διαχείριση
Διαβάστε περισσότεραΣχεδίαση Γλωσσών Προγραμματισμού Λεξική Ανάλυση Ι. Εαρινό Εξάμηνο Lec 05 & & 26 /02/2019 Διδάσκων: Γεώργιος Χρ.
Σχεδίαση Γλωσσών Προγραμματισμού Λεξική Ανάλυση Ι Εαρινό Εξάμηνο 2018-2019 Lec 05 & 06 25 & 26 /02/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Φάσεις μεταγλώττισης Αρχικό Πρόγραμμα Λεκτική Ανάλυση λεκτικές μονάδες
Διαβάστε περισσότεραΠαρουσίαση του εργαλείου BISON
Παρουσίαση του εργαλείου BISON Γεννήτρια Συντακτικών Αναλυτών Β Φάση Συντακτική Ανάλυση Χαρακτηριστικά του bison Γεννήτρια συντακτικών αναλυτών σε C/C++. Συµβατό µε το εργαλείο του Unix yacc. Σχετικά εύκολο
Διαβάστε περισσότεραΒ. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript
Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β.1 Τύποι Δεδομένων Όλες οι γλώσσες προγραμματισμού (πρέπει να) υποστηρίζουν πέντε (5) πρωταρχικούς τύπους δεδομένων: char (character) int (integer)
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Λογισμικό Συστήματος. Κλειώ Σγουροπούλου
Λογισμικό Συστήματος Κλειώ Σγουροπούλου Λογισμικό συστήματος Λειτουργικό σύστημα Μεταφραστές γλώσσας (translators) Διερμηνείς (interpreters) Μεταγλωττιστές (compilers) Εκδότες (editors) Φορτωτές (loaders)
Διαβάστε περισσότεραΠρογραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 18: Ο προεπεξεργαστής της C. Βασική ιδέα Ο προεπεξεργαστής (pre-proccesor) της C είναι ένα πρόγραμμα που εκτελείται και μετασχηματίζει τον πηγαίο κώδικα πριν αυτός δοθεί
Διαβάστε περισσότεραΘα χρησιμοποιήσουμε το bison, μια βελτιωμένη έκδοση του yacc. Φροντιστήριο 2ο Εισαγωγή στο YACC. Yacc. Δομή Προγράμματος Yacc
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ Φροντιστήριο 2ο Εισαγωγή στο YACC Ι ΑΣΚΩΝ Αντώνιος Σαββίδης Slide
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL
8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to
Διαβάστε περισσότεραΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση. Στη δήλωση ορισμό κανονικών εκφράσεων
ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ 2 Ο Εργαστηριακό Μάθημα Λεξική Ανάλυση Σκοπός: Το μάθημα αυτό αναφέρεται: Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση Στη δήλωση ορισμό κανονικών εκφράσεων Θεωρία Πρόλογος
Διαβάστε περισσότεραHY340, 2010 Α. Σαββίδης. Slide 3 / 43. Slide 4 / 43
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ Φροντιστήριο 2ο Εισαγωγή στο YACC Ι ΑΣΚΩΝ Αντώνιος Σαββίδης Slide
Διαβάστε περισσότεραΜέρος 2 Κατασκευή Συντακτικού Αναλυτή
Αντίρριο, 05/04/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» To δεύτερο μέρος της εργασίας έχει ως στόχο την ανάπτυξη του συντακτικού αναλυτή με χρήση του bison / byacc. Στο
Διαβάστε περισσότεραΑντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»
Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» Η εργασία έχει ως στόχο τον σχεδιασμό και την υλοποίηση ενός μεταγλωττιστή για την γλώσσα Ciscal, χρησιμοποιώντας
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Σχεδίαση Γλωσσών & Μεταγλωττιστές Ενότητα 3: Λεξική Ανάλυση Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΑλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)
Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου
Διαβάστε περισσότεραΠροεπεξεργαστής της C. C Preprocessor. Προγραμματισμός II 1
Προεπεξεργαστής της C C Preprocessor Προγραμματισμός II 1 lalis@inf.uth.gr Τι κάνει ο προεπεξεργαστής; Ο προεπεξεργαστής (pre-proccesor) της C είναι ένα πρόγραμμα που μετασχηματίζει τον πηγαίο κώδικα προτού
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές. Σημασιολογική Ανάλυση
Γλώσσες Προγραμματισμού Μεταγλωττιστές Σημασιολογική Ανάλυση Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Σημασιολογικής Ανάλυσης Στατική και Δυναμική Σημασιολογία Σημασιολογικοί
Διαβάστε περισσότεραΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Τμήμα Ηλεκτρονικών Μηχανικών & Μηχανικών Υπολογιστών Τομέας Πληροφορικής
ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Τμήμα Ηλεκτρονικών Μηχανικών & Μηχανικών Υπολογιστών Τομέας Πληροφορικής ΠΛΗ 401 ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΟΥ Χειμερινό Εξάμηνο 2005-2006 Διδάσκων: Μιχαήλ Γ. Λαγουδάκης Προγραμματιστική Εργασία
Διαβάστε περισσότεραΕργασία Προγραµµατισµού
ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών ΠΛΗ 401 ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΟΥ Εργασία Προγραµµατισµού ιδάσκων Μιχαήλ Γ. Λαγουδάκης Επιµέλεια εργασίας Σπύρος Αργυρόπουλος Χειµερινό
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2008 ΔΙΔΑΣΚΩΝ: ΑΝΤΩΝΙΟΣ ΣΑΒΒΙΔΗΣ ΒΑΣΙΚΗ ΕΡΓΑΣΙΑ ΦΑΣΗ 2η από 5 Παράδοση: Πέμπτη 10 Απριλίου 2008, 24:00 (μεσάνυχτα)
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μεταφραστές Λεκτικός αναλυτής Διδάσκων: Επικ. Καθ. Γεώργιος Μανής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΕισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011
Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2010 Ι ΑΣΚΩΝ: ΑΝΤΩΝΙΟΣ ΣΑΒΒΙ ΗΣ ΒΑΣΙΚΗ ΕΡΓΑΣΙΑ ΦΑΣΗ 2η από 5 Ανάθεση: Πέµπτη 15 Απριλίου 2010, 11:00 (πρωί)
Διαβάστε περισσότεραΚεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει
Διαβάστε περισσότεραΠρογραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a
Διαβάστε περισσότεραΕργασία Προγραµµατισµού
ΠΛΗ 401 ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΟΥ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2006-2007 Τµήµα Ηλεκτρονικών ΠΟΛΥΤΕΧΝΕΙΟ Μηχανικών και ΚΡΗΤΗΣ Μηχανικών Υπολογιστών ΘΕΩΡΙΑ ΠΛΗ ΥΠΟΛΟΓΙΣΜΟΥ 401 Μιχαήλ ιδάσκων Γ. Λαγουδάκης Εργασία Προγραµµατισµού
Διαβάστε περισσότεραΤι είναι το yacc. Δομή ενός αρχείου yacc. Πρόλογος. ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο. Ο yacc είναι ένας γενικού σκοπού parser generator.
ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο Yacc slide 1/52 Τι είναι το yacc Ο yacc είναι ένας γενικού σκοπού parser generator. μετατρέπει την περιγραφή ργρ φήμίας contt- free γραμματικής σε C/C++ πρόγραμμα.
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού C
Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΜεταγλωττιστές. Σημασιολογική Ανάλυση. Εργαστήριο 9. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι
Μεταγλωττιστές Εργαστήριο 9 Σημασιολογική Ανάλυση Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2016-2017 Σύνταξη και Σημασιολογία Σε οποιαδήποτε γλώσσα (προγραμματισμού ή μη) υπάρχουν δύο βασικές
Διαβάστε περισσότεραΑρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013
Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 27 Μαρτίου 2013 Περίληψη Σκοπός της παρούσας εργασίας είναι η εξοικείωσή σας με τις θεμελιώδεις θεωρητικές και πρακτικές πτυχές
Διαβάστε περισσότεραΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ
ii ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. Εισαγωγή - Βασικές έννοιες....1 1.1 Εσωτερική παράσταση δεδομένων....2 1.1.1 Παράσταση θέσης....3 1.1.2 Μετατροπές μεταξύ συστημάτων διαφορετικών βάσεων....5 1.1.3 Οι αριθμητικές
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στην FORTRAN Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Fortran FORmula TRANslation: (Μία από τις πρώτες γλώσσες τρίτης γενιάς) Εκδόσεις FORTRAN (1957) FORTRAN II (1958) FORTRAN III
Διαβάστε περισσότεραalpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and
alpha Language (1/5) ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language Στην alpha δεν υπάρχει main() συνάρτηση, ο κώδικας ξεκινάει την εκτέλεση από την αρχή του
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού Strange
Προγραμματιστική άσκηση: Η γλώσσα προγραμματισμού Strange Η Strange είναι μια μικρή γλώσσα προγραμματισμού. Παρόλο που οι προγραμματιστικές της ικανότητες είναι μικρές, η εκπαιδευτική αυτή γλώσσα περιέχει
Διαβάστε περισσότεραΚεφάλαιο 2.1-2.4: Εισαγωγή στην C: (Διαλέξεις 3-4)
Κεφάλαιο 2.1-2.4: Εισαγωγή στην C (Διαλέξεις 3-4) Περιεχόμενα Εισαγωγή στην C: Σύνταξη και Σημασιολογία σχόλια μεταβλητές και σταθερές τύποι δεδομένων Μετά αυτές τις δυο διαλέξεις θα μπορείτε να γράψετε
Διαβάστε περισσότεραΕισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής
Εισαγωγή Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Μεταγλωττιστής Αρχικό πρόγραμμα (source program) Μεταγλωττιστής Τελικό πρόγραμμα (object program) Διαγνωστικά μηνύματα Μεταγλωττιστής Παίρνει σαν
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Πέμπτη (5 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15
Διαβάστε περισσότεραΚανονικές εκφράσεις ή παραστάσεις (Regular Expressions) 3 ο Εργαστήριο ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - ΕΡΓΑΣΤΗΡΙΟ
Κανονικές εκφράσεις ή παραστάσεις (Regular Expressions) 3 ο Εργαστήριο ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - ΕΡΓΑΣΤΗΡΙΟ - 03 1 Μια κανονική έκφραση είναι ένας σύντομος και σαφής τρόπος έκφρασης οποιουδήποτε συνδυασμού
Διαβάστε περισσότεραΓλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά
Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Βασικά χαρακτηριστικά αναπτύχθηκε ως επέκταση της C το 1979 υπερσύνολο της C γλώσσα γενικού σκοπού, γρήγορη, Αντικειμενοστραφής προγραμματισμός (Object
Διαβάστε περισσότεραΠρογραμματισμό για ΗΜΥ
ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 3 Εισαγωγή στην C Θέματα ιάλεξης Σύνταξη και Σημασιολογία
Διαβάστε περισσότεραΘΠ06 Μεταγλωττιστές. Εργασία Εξαμήνου: Υλοποίηση ενός Μεταγλωττιστή για τη Γλώσσα Floop2009
ΕΘΝΙΚΟ & ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΘΠ06 Μεταγλωττιστές Εργασία Εξαμήνου: Υλοποίηση ενός Μεταγλωττιστή για τη Γλώσσα Floop2009 Βοηθοί: Χαράλαμπος Νικολάου(charnik)
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων
Διαβάστε περισσότεραΜεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Λεκτική Ανάλυση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Μεταγλωττιστές Λεκτική Ανάλυση Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Λεκτικός Αναλυτής Ο λεκτικός αναλυτής είναι η πρώτη φάση της μεταγλώττισης.
Διαβάστε περισσότεραΔιάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους
Διαβάστε περισσότεραΕργαστήριο 08 Δημιουργία 1 ου Συντακτικού Αναλυτή
Εργαστήριο 08 Δημιουργία 1 ου Συντακτικού Αναλυτή Σκοπός: Θεωρία Το μάθημα αυτό αναφέρεται: Στη διαδικασία κατασκευής ενός Συντακτικού Αναλυτή κάνοντας χρήση του Yacc. Στην υλοποίησή του. Θεωρία Πρόλογος
Διαβάστε περισσότεραΑνάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)
Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού
Διαβάστε περισσότεραΣχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13
Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 ΙΣΤΟΡΙΚΑ Παρουσιάστηκε το 1970 από το Niklaus Wirth Προγενέστερη γλώσσα ήταν η Algol 60 Είναι δομημένη γλώσσα προγραμματισμού υψηλού
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού EEL
Προγραμματιστική άσκηση: Η γλώσσα προγραμματισμού EEL Η EEL (Early Experimental Language) είναι μια μικρή γλώσσα προγραμματισμού. Παρόλο που οι προγραμματιστικές της ικανότητες είναι μικρές, η εκπαιδευτική
Διαβάστε περισσότεραΥπολογισμός - Εντολές Ελέγχου
Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Ελέγχου ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο
Διαβάστε περισσότεραΣτην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2
Εισαγωγή στην C Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Σύνταξη και Σηµασιολογία της C Σχολιασµός Μεταβλητές / Σταθερές Τύποι εδοµένων και Τελεστές Βιβλίο µαθήµατος: Chapter 2,, Sec.
Διαβάστε περισσότεραΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ
Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση
Διαβάστε περισσότεραΑποτελέσματα προόδου
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://courses.softlab.ntua.gr/progintro/ Διδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) Δημήτρης Φωτάκης (fotakis@cs.ntua.gr)
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Γιώργος Δημητρίου Μάθημα 1 ο Γλώσσα - Μετάφραση Γλώσσα προγραμματισμού = Αναπαράσταση αλγορίθμων Ευκολία χρήσης Ακρίβεια και πληρότητα περιγραφής, όχι διφορούμενη! Μία περιγραφή για όλες τις μηχανές Μετάφραση
Διαβάστε περισσότεραΕισαγωγή στα Λειτουργικά Συστήματα
Εισαγωγή στα Λειτουργικά Συστήματα S E T Δ Ι Α Φ Α Ν Ε Ι Ω Ν 6 Κ Α Ν Ο Ν Ι Κ Έ ς Ε Κ Φ Ρ Ά Σ Ε Ι ς Α Ν Τ Ω Ν Η ς Σ Ι Δ Η Ρ Ο Π Ο Υ Λ Ο ς Κανονικές Εκφράσεις (Regular Expressions) Μια κανονική έκφραση είναι
Διαβάστε περισσότεραΠ. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7
Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ ΜΑΘΗΜΑΤΟΣ Αρχές
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15
Διαβάστε περισσότερα(Regular Expressions) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ/ ΧΕΙΜ
Κανονικές εκφράσεις (Regular Expressions) 1 Μια κανονική έκφραση είναι ένας σύντομος και σαφής τρόπος έκφρασης οποιουδήποτε συνδυασμού χαρακτήρων. Οι κανονικές εκφράσεις (RE) αποτελούνται από συνδυασμό
Διαβάστε περισσότεραΕισαγωγή στην γλώσσα προγραμματισμού C
Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μεταφραστές Εισαγωγή Διδάσκων: Επικ. Καθ. Γεώργιος Μανής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ-ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΚΑΔΗΜΑΪΚΟ ΕΠΑΛ- ΚΑΝΙΓΓΟΣ 13- ΤΗΛ
ΘΕΜ 1.. Χαρακτηρίστε τις προτάσεις που ακολουθούν ως Σωστό, αν οι προτάσεις είναι σωστές και ως Λάθος αν οι προτάσεις είναι λάθος. 1.Είναι πάντα δυνατή η μετατροπή της εντολής WHILE DO σε FOR DO. 2. Στην
Διαβάστε περισσότεραΔιάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος
Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Διαβάστε περισσότεραΕντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) 133 244 355 a= b= c= 3 read(d,e) 166 277 3888
ΕΡΩΤΗΣΕΙΣ 1. Να αναφέρετε μερικά από τα ιδιαίτερα χαρακτηριστικά της Pascal. 2. Ποιο είναι το αλφάβητο της Pascal; 3. Ποια είναι τα ονόματα-ταυτότητες και σε τι χρησιμεύουν; 4. Σε τι χρησιμεύει το συντακτικό
Διαβάστε περισσότεραΣε γενικές γραμμές, είναι καλή πρακτική να γράϕουμε προγράμματα C που αποτελούνται από πολλές και μικρές συναρτήσεις, παρά από λίγες και μεγάλες.
58 Δομή ενός προγράμματος C Συναρτήσεις Μία συνάρτηση C είναι ένα αυτόνομο, πακεταρισμένο τμήμα προγράμματος που ϕέρει σε πέρας μία διαδικασία η οποία έχει σαϕείς προδιαγραϕές εισόδου και εξόδου και συγκεκριμένο
Διαβάστε περισσότεραΗΥ-150. Προγραμματισμός
ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει
Διαβάστε περισσότεραΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού
Διαβάστε περισσότεραΓλώσσα Προγραμματισμού C
Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas
Διαβάστε περισσότερα