Σύγχρονες γλώσσες προγραμματισμού με δυνατότητες εκτέλ σης σε $ενϊρύη% περιβάλλον

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Σύγχρονες γλώσσες προγραμματισμού με δυνατότητες εκτέλ σης σε $ενϊρύη% περιβάλλον"

Transcript

1 Τ.Ε.Ι ΚΑΒΑΛΑΣ ΣΧΟΛΗ: ΔΙΟΙΚΗΣΗ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ: ΔΙΑΧΕΙΡΙΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Σύγχρονες γλώσσες προγραμματισμού με δυνατότητες εκτέλ σης σε $ενϊρύη% περιβάλλον Εισηγητής: κοςστ. Παπαδημητρίου Σπουδαστής: Βασίλειος Μπακάλης Α.Ε.Μ.: 1429 ΚΑΒΑΛΑ 2010

2 / / -τ r λ r r ^ r Σύγχρονες γλώσσες προγραμματισμού με δυνατότητες εκτέλεσης σε Scripting περιβάλλον - ι -

3 Ευχαριστώ τους καθηγητές για την βοήθεια τους, κατά την διάρκεια των σπουδών μου και ιδιαιτέρως τον Κο Παπαδημητρίου. Ευχαριστώ θερμά την Κα Ευμ. Πανουργιά για την ηθική και υλική συμπαράσταση που μου πρόσφερε απλόχειρα, χωρίς καμία φειδώ

4 ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΚΕΦΑΛΑΙΟ 1ο 1.1 Τι είναι μια γλώσσα προγραμματισμού; Κοινά χαρακτηριστηκά... 8 ΚΕΦΑΛΑΙΟ 2 ο 1.2 Περιοχές προβλήματος Γλώσσες κελύφους (Εντολή) Επεξεργασία κειμένων και αποτελέσματα εκθέσεων Μαθηματικά και στατιστικές Γλώσσες κόλλας και προγραμματισμός γενικού σκοπού Γλώσσες επέκτασης ΚΕΦΑΛΑΙΟ 3 ο 1.3 Προγραμματισμός World Wide Web Προγράμματα της CGI Ενσωματωμένα από πλευράς προγράμματα Προγράμματα πλευράς πελάτη Java Applets XML και XMHTML...50 ΚΕΦΑΛΑΙΟ 4 ο 1.4 Καινοτόμα χαρακτηριστικά γνωρίσματα Ονόματα και πεδία Χειρισμός συνόλου και σκεδίων Αριθμιτικοί τύποι Προσανατολισμός Αντικειμένου...81 ΚΕΦΑΛΑΙΟ 5 ο 1.5 Συνοπτικές και τελικές παρατηρήσεις ΒΙΒΛΙΟΓΡΑΦΙΑ

5 ΠΡΟΛΟΓΟΣ Οι παραδοσιακές γλώσσες προγραμματισμού προορίζονται πρώτιστα για την κατασκευή των ανεξάρτητων εφαρμογών: προγράμματα που δέχονται κάποιο είδος της εισαγωγής, τα χειρίζονται με κάποιο καλά κατανοητό τρόπο, και παράγουν το κατάλληλο αποτέλεσμα. Αλλά οι περισσότερες πραγματικές χρήσεις των υπολογιστών απαιτούν το συντονισμό πολλαπλών προγραμμάτων. Ένα μεγάλο θεσμικό σύστημα μισθοδοτικών καταστάσεων, παραδείγματος χάριν, πρέπει να επεξεργαστεί τα στοιχεία χρονικής υποβολής εκθέσεων από τους αναγνώστες καρτών, τα ανιχνευμένα έντυπα, και τη χειρωνακτική είσοδο (πληκτρολογίων), εκτελούν χιλιάδες ερωτήσεις βάσεων δεδομένων, επιβάλει τις εκατοντάδες των νομικών και θεσμικών κανόνων, δημιουργεί ένα εκτενές ίχνος χαρτιού για την τήρηση αρχείων, ελέγχει, προετοιμασία φορολογικών, τύπωση επιταγών πληρωμής και επικοινωνία με τους κεντρικούς υπολογιστές γύρω στον κόσμο για τη σε απευθείας σύνδεση άμεσης κατάθεσης, φορολογική παρακράτηση, συσσώρευση συντάξιμων, ιατρική ασφάλεια, και ούτω καθεξής. Αυτοί οι στόχοι είναι πιθανό να περιλάβουν τις δεκάδες ή τις εκατοντάδες των χωριστά εκτελέσιμων προγραμμάτων. Ο συντονισμός μεταξύ αυτών των προγραμμάτων θα απαιτήσει δοκιμές και παραδοχές, τους βρόχους, τις μεταβλητές και τους τύπους, τις υπορουτίνες και τα αυτοαφαιρούμενα είδη των λογικών εργαλείων που μια συμβατική γλώσσα παρέχει μέσα σε μια εφαρμογή. Σε μια πολύ μικρότερη κλίμακα, ένας γραφίστας ή ένας φωτορεπόρτερ μπορεί συνήθως να μεταφορτώσει τις εικόνες από μια ψηφιακή κάμερα να τις μετατρέψει σε μια αγαπημένη μορφή, να περιστρέψει τις εικόνες που γυρίστηκαν στον κάθετο προσανατολισμό, κάτω δείγματα αυτών να δημιουργήσουν εικονίδια αναζητήσημης έκδοσης, να τους συντάξει σε ευρετήριο κατά ημερομηνία, θέμα και ιστόγραμμο χρώματος, να τα κρατήσει εφεδρεία σε απόμακρο αρχείο και έπειτα να επανεκκινήσει την μνήμη της κάμερας. Η εκτέλεση αυτών των βημάτων με το χέρι είναι πιθανό να είναι και κουραστική και επιρρεπής σε λάθη. Σε παρόμοιο πνεύμα, η δημιουργία, μιας δυναμικής ιστοσελίδας μπορεί να απαιτήσει την επικύρωση και την έγκριση, τη συμβούλευση βάσεων δεδομένων, το χειρισμό εικόνας, τη απόμακρη επικοινωνία, και την ανάγνωση και το γράψιμο του κειμένου HTML. Όλα αυτά τα σενάρια προτείνουν μια ανάγκη για προγράμματα που συντονίζουν άλλα προγράμματα. Είναι φυσικά δυνατό να γραφτεί ο κώδικας συντονισμού στην Java, το C, ή κάποια άλλη συμβατική γλώσσα, αλλά είναι όχι πάντα εύκολο. Οι συμβατικές γλώσσες τείνουν να τονίσουν την αποδοτικότητα, τη συντηρησιμότητα, τη φορητότητα, και τη στατική ανίχνευση των λαθών. Τα συστήματα τύπων τους τείνουν να χτιστούν γύρω από τέτοιου επιπέδου hardware έννοιες όπως τους σταθερού μεγέθους ακέραιους αριθμούς, αιωρούμενου σημείου αριθμούς, χαρακτήρες, και σειρές. Σε αντίθεση οι γλώσσες προγραμματισμού τείνουν να τονίσουν την ευελιξία, τη γρήγορη ανάπτυξη, την τοπική προσαρμογή, και το δυναμικό (χρόνος εκτέλεσης) έλεγχο. Τα συστήματα τύπων τους, επιπλέον, τείνουν να αγκαλιάσουν τέτοιες υψηλού επιπέδου έννοιες όπως πίνακες, σχέδια, καταλόγους, και αρχεία. Οι γλώσσες προγραμματισμού γενικού σκοπού όπως το Perl και το Python καλούνται μερικές φορές γλώσσες κόλλας, επειδή είχαν ως αρχικό σκοπό να κολλήσουν τα υπάρχοντα προγράμματα να χτιστεί μαζί ένα μεγαλύτερο σύστημα. Με την αύξηση του World Wide Web, οι γλώσσες προγραμματισμού έχουν κερδίσει νέα διάκριση στην δημιουργία του δυναμικού περιεχομένου. Επίσης χρησιμοποιούνται ευρέως ως γλώσσες επέκτασης, οι οποίες επιτρέπουν στο χρήστη να προσαρμόσει ή να επεκτείνει τη λειτουργία των προγραμματιζόμενων εργαλείων. Εξετάζουμε την ιστορία και τη φύση του προγραμματισμού λεπτομερέστερα στην παράγραφο

6 Γυρίζουμε έπειτα στην παράγραφο 1.2 σε μερικές από τις περιοχές προβλήματος στις οποίες ο προγραμματισμός χρησιμοποιείται ευρέως. Αυτές περιλαμβάνουν την ερμηνεία εντολής (κέλυφος), την επεξεργασία κειμένων και την παραγωγή εκθέσεων, τα μαθηματικά και τις στατιστικές, το συντονισμό προγράμματος γενικού σκοπού, και διαμόρφωση και επέκταση. Στην παράγραφο 1.3 θεωρούμε διάφορες μορφές προγραμματισμού που χρησιμοποιούνται στο World Wide Web, συμπεριλαμβανομένων των προγραμμάτων της CGI, της επεξεργασίας από πλευρά παροχέα και την πλευρά του πελάτη των προγραμμάτων που ενσωματώνονται σε ιστοσελίδες, τα applets της Java, και XSLT. Τέλος, στην παράγραφο 1.4, εξετάζουμε μερικά από πιό ενδιαφέροντα γλωσσικά γνώρισμα, κοινά για πολλές γλώσσες προγραμματισμού, τα οποία τα διακρίνουν από τους παραδοσιακότερους επικρατόντες ξαδέρφους τους. Εξετάζουμε μερικώς την ονομασία, και τη δακτυλογράφηση τον χειρισμό σειράς και σχεδίων και υψηλού επιπέδου δομημένα στοιχεία. Δεν θα παράσχουμε μια λεπτομερή εισαγωγή σε οποιαδήποτε γλώσσα προγραμματισμού, αν και θα εξετάσουμε τα συγκεκριμένα παραδείγματα αρκετά.. Στο μεγαλύτερο μέρος αυτής της εργασίας, η έμφαση θα δοθεί από τις παρακάτω έννοιες

7 ΚΕΦΑΛΑΙΟ Τι είναι μια γλώσσα προγραμματισμού; Οι σύγχρονες γλώσσες προγραμματισμού έχουν δύο κύρια σύνολα προγόνων. Σε ένα σύνολο είναι οι διερμηνείς ή τα κέλυφος εντολής της παραδοσιακής batch και του τερματικού (γραμμής εντολών) υπολογισμού. Στο άλλο σύνολο είναι διάφορα εργαλεία για την επεξεργασία κειμένων και το αποτέλεσμα εκθέσεων. Τα παραδείγματα στο πρώτο σύνολο περιλαμβάνουν το JCL της IBM, το διερμηνέα εντολής MS-DOS, και τη Unix sh και csh τις οικογένειες κελύφους. Τα παραδείγματα στο δεύτερο σύνολο περιλαμβάνουν RPG της IBM, και της Unix sed και awk. Από αυτούς εξελιγμένο Rexx, αναδομημένος εκτεταμένος εκτελεστής της IBM, που χρονολογεί από το 1979, και Perl, που επινοήθηκε αρχικά από τον Larry Wall προς το τέλος της δεκαετίας του '80 και τώρα της ευρύτατα χρησιμοποιημένης γλώσσας προγραμματισμού γενικού σκοπού. Άλλες γλώσσες γενικού προγραμματισμού περιλαμβάνουν Tcl ( γαργάλημα ), Python, το Ruby, VBScript (για τα παράθυρα) και AppleScript (για τη Mac). Με την αύξηση του World Wide Web στα τέλη της δεκαετίας του '90,το Perl υιοθετήθηκε ευρέως για τη δευτερεύουσα προγραμματισμού Ιστού κεντρικών υπολογιστών, στην οποία ένας κεντρικός υπολογιστής δικτύου εκτελεί ένα πρόγραμμα (στη μηχανή του κεντρικού υπολογιστή) να παραχθεί το περιεχόμενο μιας σελίδας. Ένας πρώτος ενθουσιώδης του προγραμματισμού Ιστού ήταν ο Rasmus Lerdorf, ο οποίος δημιούργησε μια συλλογή προγραμμάτων για την πρόσβαση διαδρομής στην προσωπική αρχική σελίδα του. Αρχικά γραπτά σε Perl αλλά σύντομα ξανασχεδιασμένα ως ολοκληρωμένη και ανεξάρτητη γλώσσα, αυτά τα προγράμματα εξελίχθηκαν στα PHP, τώρα η δημοφιλέστερη πλατφόρμα για τον υπολογιστής-δευτερεύουσα προγραμματισμού Ιστού. Οι ανταγωνιστές της PHP περιλαμβάνουν JSP (σελίδες κεντρικών υπολογιστών της Java) και, στις πλατφόρμες της Microsoft, VBScript. Για τον προγραμματισμό στον υπολογιστή πελατών, όλες οι σημαντικές μηχανές αναζήτησης εφαρμόζουν JavaScript, μια γλώσσα που αναπτύχθηκε από την εταιρία Netscape στα μέσα της δεκαετία του '90 και που τυποποιήθηκε από το ECMA (το ευρωπαϊκό σώμα προτύπων) το 1999 [ECM99]. Στο κλασικό έγγραφό του για το προγραμματισμός [Ous98], ο John Ousterhout, ο δημιουργός του Tcl, σημειώνει ότι οι γλώσσες προγραμματισμού υποθέτουν ότι μια συλλογή των χρήσιμων συστατικών υπάρχει ήδη σε άλλες γλώσσες. Προορίζονται όχι για το γράψιμο των εφαρμογών από την αρχή αλλά μάλλον για το συνδυασμό των συστατικών

8 ΣΧΕΔΙΑΣΜΟΣ & ΕΦΑΡΜΟΓΗ Προγραμματισμού στις πλατφόρμες της Microsoft Όπως σε διάφορες άλλες πτυχές του υπολογισμού, η Microsoft τείνει να στηριχθεί στην εσωτερικά αναπτυγμένη τεχνολογία στον τομέα των γλωσσών προγραμματισμού. Οι περισσότερες από τις αιτήσεις προγραμματισμού της είναι βασισμένες σε VBScript, μια διάλεκτος Visual Basic. Συγχρόνως, η Microsoft έχει αναπτύξει μια πολύ γενική διεπαφή προγραμματισμού ( πρόγραμμα παραθύρων) που εφαρμόζεται ομοιόμορφα από το λειτουργικό σύστημα (οικοδεσπότης προγραμμάτων παραθύρων [WSH]), τον κεντρικό υπολογιστή δικτύου (ενεργές σελίδες κεντρικών υπολογιστών [ASP]), και τη μηχανή αναζήτησης του Internet Explorer. Μια εφαρμογή προγραμμάτων παραθύρων JScript, η έκδοση της επιχείρησης JavaScript, έρχεται στις μηχανές παραθύρων, αλλά οι γλώσσες όπως Perl και Python μπορούν να εγκατασταθούν επίσης και να χρησιμοποιηθούν να οδηγήσουν την ίδια διεπαφή. Πολλές άλλες εφαρμογές της Microsoft, συμπεριλαμβανομένου του ολόκληρου πακέτου προγραμμάτων Office, χρησιμοποιούν VBScript ως γλώσσα επέκτασης, αλλά για αυτές το πλαίσιο εφαρμογής (Visual Basic για τις εφαρμογές [VBA]) δεν τις καθιστά εύχρηστες προς άλλες γλώσσες αντ' αυτού. Λαμβάνοντας υπόψη το μερίδιο της Microsoft στην αγορά υπολογισμού υπολογιστών γραφείου, το VBScript είναι μια από τις ευρύτατα χρησιμοποιημένες γλώσσες προγραμματισμού. Δεν χρησιμοποιείται σχεδόν ποτέ σε άλλες πλατφόρμες, εντούτοις, ενώ οι Perl, Tcl, Python, και PHP, και άλλα βλέπουν σημαντική χρήση στα Windows. Για tov προγραμματισμό από πλευράς παροχέα, το PHP υπερισχύει αυτήν την περίοδο: από το Φεβρουάριο του 2005, περίπου 69% των ιστοχώρων 59 εκατομμυρίων δικτυακών τόπων που ερευνήθηκαν από την Netcraft LTD έτρεχαν τον ανοικτής πηγής κεντρικό υπολογιστή δικτύου Apache, και οι περισσότεροι από αυτούς, με ενεργό περιεχόμενο, χρησιμοποιούσαν το PHP. Ο κεντρικός υπολογιστής πληροφοριών Διαδικτύου της Microsoft (IIS) ήταν δεύτερος μετά το Apache, με 21% των περιοχών, και πολλές από εκείνες εγκατέστησαν το PHP επίσης από πλευράς πελατειακού προγραμματισμού, όπου το Internet Explorer ελέγχει περίπου 70% της αγοράς μηχανών αναζήτησης, οι περισσότεροι διαχειριστές ιστοχώρου χρειάζονται το περιεχόμενό τους να είναι ορατό στο άλλο 30%. Ο Explorer υποστηρίζει JavaScript (JScript), αλλά άλλες μηχανές αναζήτησης δεν υποστηρίζουν VBScript. Ο Ousterhout προβλέπει το μέλλον στο οποίο οι προγραμματιστές στηρίζονται όλο και περισσότερο στις γλώσσες προγραμματισμού για την κορυφαία δομή των συστημάτων τους, όπου η σαφήνεια, η ικανότητα επαναχρησιμοποίησης, και η ευκολία της ανάπτυξης είναι κρίσιμες. Οι παραδοσιακές γλώσσες συστημάτων όπως C, C++, ή Java, υποστηρίζει, θα χρησιμοποιηθούν για τα ανεξάρτητα, επαναχρησιμοποιήσιμα τμήματα συστημάτων, τα οποία υπογραμμίζουν τους σύνθε υς αλγορίθμους ή την ταχύτητα εκτέλεσης. Κατά γενικό κανόνα του αντίχειρα, προτείνει ότι ο κώδικας μπορεί να αναπτυχθεί 5 έως 10 φορές γρηγορότερα σε μια γλώσσα προγραμματισμού αλλά θα τρέξει 10 έως 20 χρόνους γρηγορότερα σε μια παραδοσιακή γλώσσα συστημάτων. Μερικοί συντάκτες διατηρούν τον όρο προγραμματισμού για τις γλώσσες κόλλας που χρησιμοποιούνται να συντονίσουν τα πολλαπλάσια προγράμματα. Στην κοινή χρήση, εντούτοις, ο προγραμματισμός είναι μια ευρύτερη και ασαφέστερη έννοια. Περιλαμβάνει σαφώς τον προγραμματισμό Ιστού. Για τους περισσότερους συντάκτες περιλαμβάνει επίσης τις γλώσσες επέκτασης

9 Πολλοί αναγνώστες θα εξοικειωθούν με τις Visual Basic μακροεντολές του Microsoft Office και των σχετικών εφαρμογών. Άλλοι μπορούν να εξοικειωθούν με την ψευδοβασισμένη γλώσσα επέκτασης του συντάκτη κειμένων emacs. Διάφορες γλώσσες, συμπεριλαμβανομένων των Tcl, Rexx, Python, και των διαλέκτων Guile και Elc του Scheme, σχεδιάζουν τις εφαρμογές κατά τέτοιο τρόπο ώστε μπορούν να ενσωματωθούν σε ένα μεγαλύτερο πρόγραμμα και να χρησιμοποιηθούν να επεκτείνουν τα χαρακτηριστικά γνωρίσματά τους. Η επέκταση ήταν στην πραγματικότητα ο αρχικός σκοπός του Tcl. Σε παρόμοιο πνεύμα, διάφορες ευρέως χρησιμοποιημένες εμπορικές εφαρμογές παρέχουν τις ιδιόκτητες γλώσσες επέκτασής τους. Για τον γραφικό προγραμματισμό (GUI) ενδιάμεσων με τον χρήστη, το κουτί εργαλείων Tk, που σχεδιάζεται αρχικά για τη χρήση με Tcl, έχει ενσωματωθεί σε διάφορες γλώσσες προγραμματισμού, συμπεριλαμβανομένου Perl, Python, και του Ruby. Κάποιος μπορεί να δει επίσης το XSLT (εκτατοί γλωσσικοί μετασχηματισμοί stylesheet) ως γλώσσα προγραμματισμού, αν και κάπως διαφορετική από τις άλλες που εξετάζονται σε αυτό το κεφάλαιο. Το XSLT είναι μέλος της αυξανόμενης οικογένειας (γλώσσα επεκτάσιμης σήμανσης) των εργαλείων XML. Το εξετάζουμε περαιτέρω στην παράγραφο της Κοινά χαρακτηριστικά Ενώ είναι δύσκολο να καθοριστούν ακριβώς οι γλώσσες προγραμματισμού, υπάρχουν διάφορα χαρακτηριστικά που τείνουν να έχουν από κοινού. Και ειδική και διαλογική χρήση. Μερικές γλώσσες προγραμματισμού (ειδικότερα το Perl) χρησιμοποιούν έναν επιτόπιο μεταγλωττιστή που επιμένει στην ανάγνωση ολόκληρου του προγράμματος πηγής προτού παραγάγει το οποιοδήποτε αποτέλεσμα. Οι περισσότερες άλλες γλώσσες, εντούτοις, είναι πρόθυμες να συντάξουν ή να ερμηνεύσουν την εισαγωγή τους, γραμμή προς γραμμή. Τα Rexx, Python, Tcl, Guile, το Ruby και (με ένα βραχύ πρόγραμμα αρωγών) θα δεχτούν όλες τις εντολές από το πληκτρολόγιο. Οικονομία της έκφρασης. Να υποστηρίξουν τη γρήγορη ανάπτυξη και τη διαλογική χρήση, οι γλώσσες προγραμματισμού τείνουν να απαιτήσουν ένα ελάχιστο boilerplate. Μερικοί κάνουν τη βαριά χρήση της στίξης και των πολύ κοντών προσδιοριστικών (το Perl είναι πασίγνωστο για αυτό), ενώ άλλοι (π.χ., Rexx, Tcl, και AppleScript) τείνουν να είναι περισσότερο όπως οι Άγγλοι, με πολλά μέρη τους σαν λέξεις και όχι πολλά σημεία στίξης. Όλη η προσπάθεια γίνεται να αποφευχθούν οι εκτενείς δηλώσεις και η κορυφαία δομή κοινή για τις συμβατικές γλώσσες. Όπου ένα τετριμμένο πρόγραμμα μοιάζει με αυτό στην Java: ΠΑΡΑΔΕΙΓΜΑ 1.1. Τετριμμένα προγράμματα στις συμβατικές και γλώσσες προγραμματισμού. class Hello { public static void main(string[] args) { System.out.println("Hello, world!"); } } και σαν αυτό στην Ada: - 8 -

10 with ada.text_io; use ada.text_io; procedure hello is begin put_line("hello, world!"); end hello; στις Perl, Python, η Ruby είναι απλό: print "Hello, world!\n" ΣΧΕΔΑΣΜΟΣ & ΕΦΑΡΜΟΓΗ Σύνταξη των ερμηνευμένων γλωσσών Αρκετές φορές σε αυτό το κεφάλαιο θα κάνουμε να παραπεμφθεί στον μεταγλωττιστή για μια γλώσσα προγραμματισμού. Όπως ότι είδαμε στα παραδείγματα 1.6 και 1.7, οι διερμηνείς δεν εργάζονται σχεδόν ποτέ με τον κωδικό πηγής, ένας προηγούμενος μεταφραστής αντικαθιστά αρχικά εκείνη την πηγή με κάποιο είδος ενδιάμεσης μορφής. Για τις περισσότερες εφαρμογές οι περισσότερες από τις γλώσσες που περιγράφονται σε αυτό το κεφάλαιο, είναι αρκετά σύνθετες στο μπροστινό τους μέρος να αξίζουν το όνομα μεταγλωττιστής. Οι ενδιάμεσες μορφές είναι χαρακτηριστικές αντιπροσωπεύσεις του κώδικα ψηφιολέξεων ενθυμίζουσες εκείνες της Java. ΣΧΕΔΑΣΜΟΣ & ΕΦΑΡΜΟΓΗ Κανονικές εφαρμογές Επειδή εφαρμόζονται με τους διερμηνείς, οι γλώσσες προγραμματισμού, τείνουν να είναι εύκολες στη μεταφορά από το ένα μηχάνημα στο άλλο, ουσιαστικά ευκολότερο από τους μεταγλωττιστές για τους οποίους κάποιος πρέπει να γράψει μια νέα γεννήτρια κώδικα. Λαμβάνοντας υπόψη έναν εγγενή μεταγλωττιστή για τη γλώσσα στην οποία ο διερμηνέας γράφεται, το μόνο δύσκολο μέρος (και μπορεί πράγματι να είναι δύσκολο) είναι να εφαρμοστούν οποιεσδήποτε απαραίτητες τροποποιήσεις στο μέρος του διερμηνέα που παρέχει τη διεπαφή στο λειτουργικό σύστημα. Συγχρόνως, η ευκολία μεταφοράς ενός διερμηνέα σημαίνει ότι διάφορες γλώσσες προγραμματισμού, συμπεριλαμβανομένων των Perl, Python, Tcl, και του Ruby, έχουν μια ενιαία ευρέως χρησιμοποιημένη εφαρμογή, η οποία χρησιμεύει ως ο de facto γλωσσικός καθορισμός. Διαβάζοντας ένα βιβλίο σε Perl, είναι δύσκολο να ειπωθεί πώς ένα λεπτό πρόγραμμα θα συμπεριφερθεί. Σε περίπτωση αμφιβολίας, κάποιος μπορεί να πρέπει να το δοκιμάσει. Το Rexx και JavaScript εμφανίζονται να είναι τα μοναδικά μεταξύ των ευρέως χρησιμοποιημένων γλωσσών προγραμματισμού που έχουν έναν επίσημο καθορισμό που κωδικοποιείται από ένα σώμα διεθνών προτύπων και έναν ανεξάρτητο από οποιαδήποτε εφαρμογή. (Τα sed, awk, και sh έχουν τυποποιηθεί επίσης από POSIX [Int03b], αλλά κανένας από αυτούς δεν έχει την πολυπλοκότητα των Perl, Python, Tcl, ή του Ruby.) - 9 -

11 Έλλειψη δηλώσεων απλοί κανόνες πεδίου. Οι περισσότερες γλώσσες προγραμματισμού διανέμουν με τις δηλώσεις, και παρέχουν απλούς κανόνες να κυβερνηθεί το πεδίο των ονομάτων. Σε μερικές γλώσσες (π.χ., Perl) όλα είναι σφαιρικά εξ ορισμού, οι προαιρετικές δηλώσεις μπορούν να χρησιμοποιηθούν να περιορίσουν μια μεταβλητή σε ένα τοποθετημένο πεδίο. Σε άλλες γλώσσες (π.χ., PHP και Tcl), όλα είναι τοπικά εξ ορισμού σφαιρικά πρέπει να εισαχθούν ρητά. Το Python υιοθετεί τον ενδιαφέροντα κανόνα ότι κάθε μεταβλητή που ορίζει μια αξία είναι τοπική στο φραγμό στον οποίο η ανάθεση εμφανίζεται. Η ειδική σύνταξη απαιτείται να ορίσει μια μεταβλητή σε ένα περιβάλλον πεδίο. Εύκαμπτη δυναμική δακτυλογράφηση. Για την τήρηση των ελλείψεων δηλώσεων, οι περισσότερες γλώσσες προγραμματισμού δακτυλογραφούνται δυναμικά. Σε μερικές (π.χ., PHP, Python, Ruby, και σχέδιο), ο τύπος μιας μεταβλητής ελέγχεται αμέσως πριν από τη χρήση. Σε άλλες (π.χ. Rexx, Perl, και Tcl ), μια μεταβλητή θα ερμηνευθεί διαφορετικά στα διαφορετικά πλαίσια. Παραδείγματος χάριν στο Perl $a = "4"; print $a. 3. "\n"; print $a + 3. "\n"; #. is concatenation # + is addition θα εκτυπώσει 43 7 ΠΑΡΑΔΕΙΓΜΑ 1.2. Εξαναγκασμός προγράμματος σε Perl Αυτή η βασισμένη στα συμφραζόμενα ερμηνεία είναι παρόμοια με τον εξαναγκασμό, εκτός από το ότι δεν υπάρχει απαραιτήτως μια έννοια του φυσικού τύπου από τον οποίο ένα objectmust μετατρέπεται οι διάφορες πιθανές ερμηνείες μπορούν όλες να είναι εξίσου φυσικές. Θα έχουμε περισσότερους που λένε για το πλαίσιο σε Perl στην παράγραφο της Εύκολη πρόσβαση σε άλλα προγράμματα. Οι περισσότερες γλώσσες προγραμματισμού παρέχουν έναν τρόπο να ζητηθεί από το ελλοχεύον λειτουργικό σύστημα να τρέξει ένα άλλο πρόγραμμα, ή να εκτελέσει κάποια λειτουργία άμεσα. Στις γλώσσες προγραμματισμού, εντούτοις, αυτά τα αιτήματα είναι πιο θεμελιώδη, και έχουν αμεσότερη υποστήριξη. Το Perl, είναι ένα, παρέχει καλά πάνω από 100 ενσωματωμένες εντολές που έχουν πρόσβαση στις λειτουργίες λειτουργικών συστημάτων για την εισαγωγή και το αποτέλεσμα, το χειρισμό αρχείων και καταλόγου, τη διαχείριση διαδικασιών, την πρόσβαση βάσεων δεδομένων, τις υποδοχές, την επικοινωνία εσωτερικής διεργασίας και το συγχρονισμό, την προστασία και την έγκριση, το ρολόι χρόνοημέρας, και την επικοινωνία δικτύων. Αυτές οι ενσωματωμένες εντολές είναι γενικά κομμάτι ευκολότερο να χρησιμοποιηθούν από τις αντίστοιχες κλήσεις βιβλιοθηκών στις γλώσσες όπως το C. Περίπλοκος χειρισμός ταιριάσματος σχεδίων και σειράς. Συνεχίζοντας με το κληροδότημα επεξεργασίας κειμένου και παραγωγής αναφορών και να διευκολύνουν το χειρισμό της κειμενικών εισαγωγής και του αποτελέσματος για τα εξωτερικά προγράμματα, οι γλώσσες προγραμματισμού τείνουν να έχουν εξαιρετικά πλούσιες λειτουργίες για το ταίριασμα σχεδίων, την αναζήτηση, και το χειρισμό σειράς. Χαρακτηριστικά αυτές είναι βασισμένες στις εκτεταμένες κανονικές εκφράσεις. Συζητάμε αυτές περαιτέρω στην παράγραφο της

12 Υψηλού επιπέδου τύποι στοιχείων. Οι υψηλού επιπέδου τύποι στοιχείων όπως τα σύνολα, τις τσάντες, τα λεξικά, τους καταλόγους και tuples είναι όλο και περισσότερο κοινοί στις τυποποιημένες συσκευασίες βιβλιοθηκών των συμβατικών γλωσσών προγραμματισμού. Μερικές γλώσσες (ειδικότερα C++) επιτρέπουν στους χρήστες να επαναπροσδιορίσουν τους τυποποιημένους χειριστές επενθημάτων να καταστήσουν αυτούς τους τύπους τόσο εύχρηστους όσο οι πιο πρωτόγονοι, υλικοκεντρικοί τύποι. Οι γλώσσες προγραμματισμού πηγαίνουν ένα βήμα περαιτέρω με την οικοδόμηση των υψηλού επιπέδου τύπων, στη σύνταξη και τη σημασιολογία της ίδιας της γλώσσας. Στις περισσότερες γλώσσες προγραμματισμού, παραδείγματος χάριν, είναι κοινό να υπάρχει μια σειρά που συντάσσεται από τις σειρές χαρακτήρα, με μια ελλοχεύουσα εφαρμογή βασισμένη σε πίνακες hash. Η αποθήκευση είναι αμετάβλητα απορρίμματα συλλεχθέντα. Ένα μεγάλο μέρος της ραγδαίας αλλαγής στις γλώσσες προγραμματισμού σήμερα εμφανίζεται στις γλώσσες προγραμματισμού. Αυτό μπορεί να αποδοθεί σε διάφορες αιτίες, συμπεριλαμβανομένης της συνεχούς αύξησης του Ιστού, του δυναμισμού της κοινότητας ανοικτής πηγής, και της συγκριτικά χαμηλής επένδυσης που απαιτείται να δημιουργήσει μια νέα γλώσσα προγραμματισμού. Όπου μια συνταγμένη, βιομηχανική ποιοτική γλώσσα όπως την Java ή C# απαιτεί μια πολυετή επένδυση από μια πολύ μεγάλης ομάδας προγραμματισμού, ένας μόνο ταλαντούχος σχεδιαστής, που εργάζεται μόνος, μπορεί να δημιουργήσει μια χρησιμοποιήσιμη εφαρμογή μιας νέας γλώσσας προγραμματισμού μόνο σε ένα ή δύο έτη. Οφειλόμενες εν μέρει σε αυτήν την γρήγορη αλλαγή, οι νεότερες γλώσσες προγραμματισμού ήταν σε θέση να ενσωματώσουν μερικές από τις πιο καινοτόμες έννοιες στο γλωσσικό σχέδιο. Το Ruby, παραδείγματος χάριν, έχει ένα ομοιόμορφο πρότυπο αντικειμένου (σαν Smalltalk), τα αληθινά iterators (όπως Clu), τις φέτες σειράς (όπως το FORTRAN 90), το δομημένο χειρισμό εξαίρεσης, τη πολλαπλή ανάθεση, και την αντανάκλαση. Το Python παρέχει επίσης αρκετά από αυτά τα χαρακτηριστικά γνωρίσματα, μαζί με τις ανώνυμες πρώτης τάξεως λειτουργίες, όπως τις κατανοήσεις καταλόγων Haskell. 1.2 Περιοχές προβλήματος ΚΕΦΑΛΑΙΟ 2 Μερικές γλώσσες γενικού σκοπού -Scheme και Visual Basic ιδιαιτέρως- χρησιμοποιούνται ευρέως για τον προγραμματισμό. Αντιθέτως, μερικές γλώσσες προγραμματισμού, συμπεριλαμβανομένου των Perl, Python, και του Ruby, προορίζονται από τους σχεδιαστές τους για χρήση γενικού σκοπού, με χαρακτηριστικά γνωρίσματα που προορίζονται να υποστηρίξουν ευρύτερο προγραμματισμό : ενότητες, χωριστή σύνταξη, αντανάκλαση, περιβάλλοντα ανάπτυξης προγράμματος, και ούτω καθεξής. Ως επί το πλείστον, οι γλώσσες προγραμματισμού τείνουν να δουν την κύρια χρήση τους στις καθορισμένες με σαφήνεια περιοχές προβλήματος. Εξετάζουμε μερικές από αυτούς στις ακόλουθες υποενότητες Γλώσσες Κελύφους (Εντολή) Στις ημέρες της διάτρητης κάρτας υπολογισμού, οι απλές γλώσσες εντολής επέτρεπαν στο χρήστη να πρόγραμματίσει την επεξεργασία μιας στίβας καρτών. Μια κάρτα ελέγχου στην αρχή της στίβας, παραδείγματος χάριν, έδειχνε ότι οι επερχόμενες κάρτες αντιπροσώπευσαν ένα πρόγραμμα που συντάσσεται, ή ίσως μια συμβολική γλώσσα (Assembly) για τον ίδιο τον μεταγλωττιστή, ή εισαγωγή

13 για ένα πρόγραμμα που συντάχθηκε ήδη, αποθηκεύτηκε στον δίσκο. Μια κάρτα ελέγχου που ενσωματώθηκε αργότερα στη στίβα, να εξετάσει τη θέση εξόδων του πρόσφατα εκτελεσμένου προγράμματος και να επιλέξει τι να κάνει έπειτα, βάσιζεται στο εάν εκείνο το πρόγραμμα ολοκληρώθηκε επιτυχώς. Λαμβάνοντας υπόψη τη γραμμική φύση μιας στίβας καρτών, εντούτοις (κάποιος δεν μπορεί σε γενική εφεδρία), οι γλώσσες εντολής για την επεξεργασία κατά δεσμίδες τείνουν να μην είναι πολύ περίπλοκες. Το JCL, παραδείγματος χάριν, δεν έχει καμία δομή επανάληψης Με την ανάπτυξη της διαλογικής κατανομής χρόνου στη δεκαετία του '60 αρχές της δεκαετίας του '70, οι γλώσσες εντολής έγιναν περιπλοκότερες. Ο Louis Pouzin έγραψε έναν απλό διερμηνέα εντολής για CTSS, το Συμβατό Σύστημα Κατανομής Χρόνου στο MIT, το 1963 και το Όταν η εργασία άρχισε στο εφαλτήριο σύστημα Multics το 1964,ο Pouzin σκιαγράφησε το σχέδιο μιας εκτεταμένης γλώσσας εντολής, με την αναφορά και την των μηχανισμών προσπέλασης δηλώσεων, για τους οποίους έπλασε τον όρο κέλυφος. Η επόμενη εφαρμογή που χρησιμεύει ως η έμπνευση για τον Ken Thompson στο σχέδιο του αρχικού κελύφους της Unix το Στα μέσα της δεκαετίας του '70 ο Stephen Bourne και ο John Mashey επέκτειναν ξεχωριστά το κέλυφος Thompson με τη ροή ελέγχου και τις μεταβλητές. Το σχέδιο του Bourne υιοθετήθηκε ως πρότυπο της Unix, που παίρνουν τη θέση (και το όνομα) του κελύφους Thompson, sh. Προς το τέλος της δεκαετίας του '70 ο Bill Joy ανέπτυξε το αποκαλούμενο κέλυφος C (csh), εμπνευσμένος τουλάχιστον εν μέρει με τη σύνταξη Mashey και την εισαγωγή των σημαντικών αυξήσεων για τη διαλογική χρήση, συμπεριλαμβανομένης της ιστορίας, τα ψευδώνυμα, και τον έλεγχο εργασίας. Η έκδοση tcsh του csh προσθέτει συντάκτη γραμμών εντολών και την ολοκλήρωση εντολής. Ο David Korn ενσωμάτωσε αυτούς τους μηχανισμούς σε έναν άμεσο απόγονο του κελύφους Bourne, ksh, το οποίο είναι πολύ παρόμοιο με το τυποποιημένο κέλυφος POSIX [Int03b]. Το δημοφιλές πάλι κέλυφος Bourne, bash, είναι μια ανοικτή έκδοση πηγής ksh. Ενώ το tcsh είναι ακόμα δημοφιλές σε μερικά τέταρτα, τα ksh/bash/posix SH είναι ουσιαστικά καλύτερα για το γράψιμο των προγραμμάτων κελύφους και συγκρίσιμα για τη διαλογική χρήση. Εκτός από τα χαρακτηριστικά γνωρίσματα που σχεδιάζονται για τη διαλογική χρήση, που δεν θα εξετάσουμε περαιτέρω εδώ, οι γλώσσες κελύφους παρέχουν έναν πλούτο μηχανισμών για τον χειρισμό, τα ονόματα αρχείων, τα επιχειρήματα, και τις εντολές, και να κολλήσουν μαζί με άλλα προγράμματα. Τα περισσότερα από αυτά τα χαρακτηριστικά γνωρίσματα διατηρούνται από τις γενικότερες γλώσσες προγραμματισμού. Εξετάζουμε μερικές από αύτες εδώ, χρησιμοποιώντας τη σύνταξη bash. Η συζήτηση αναγκαστικά απλοποιεί βαρέως τα πλήρη στοιχεία που μπορούν να βρεθούν στη σελίδα bash man, ή στις διάφορες απευθείας οδηγίες σύνδεσης. Όνομα αρχείου και μεταβλητή επέκταση Οι περισσότεροι χρήστες ενός κελύφους της Unix εξοικειώνονται με την επέκταση μπαλαντέρ των ονομάτων αρχείων. Η ακόλουθη εντολή θα απαριθμήσει όλα τα αρχεία στον τρέχοντα κατάλογο των οποίων τα ονόματα τελειώνουν σε.pdf. ΠΑΡΑΔΕΙΓΜΑ 1.3. Μπαλαντέρ και globbing ls *.pdf

14 Το κέλυφος επεκτείνει το σχέδιο *.pdf σε έναν κατάλογο όλων των ονομάτων που ταιριάζουν. Εάν υπάρχουν τρεις από τους (πείτε fig1.pdf, fig2.pdf, και fig3.pdf), το αποτέλεσμα είναι ισοδύναμο με ls fig1.pdf fig2.pdf fig3.pdf Η επέκταση ονομάτων αρχείου καλείται μερικές φορές globbing, μετά από την αρχική εντολή glob που την εφάρμοσε η Unix. Εκτός από τους μπαλαντέρ *, κάποιος μπορεί συνήθως να διευκρινίσει ότι αδιαφορώ ή εναλλακτικά χαρακτήρες ή υποσειρές. Το σχέδιο fig?.pdf θα ταιριάξει με (επεκταθεί σε) οποιοδήποτε αρχείο με έναν μονό χαρακτήρα μεταξύ τουg και της τελείας. Το σχέδιο fig?.pdf [0 9] θα απαιτήσει εκείνο τον χαρακτήρα ναείναι ένα ψηφίο. Το σχέδιο fig3. {eps, pdf} θα ταιριάξει και με fig3.eps και fig3.pdf. Η επέκταση ονομάτων αρχείου είναι ιδιαίτερα χρήσιμη στους βρόχους. Τέτοιοι βρόχοι μπορούν να δακτυλογραφηθούν άμεσα από το πληκτρολόγιο, ή να ενσωματωθούν στα προγράμματα προοριζόμενα για την πιό πρόσφατη εκτέλεση. Υποθέστε, παραδείγματος χάριν, ότι επιθυμούμε να δημιουργήσουμε τις εκδόσεις PDF όλων των EPS αριθμών μας: ΠΑΡΑΔΕΙΓΜΑ 1.4. Για τους βρόχους στο κέλυφος for fig in *.eps do ps2pdf $fig done Η δομή for κανονίζει για την μεταβλητή του κελύφους fig να αναλάβει τα ονόματα στην επέκταση *.eps, ένα κάθε φορά, στις διαδοχικές επαναλήψεις του βρόχου. Το σημάδι δολαρίων στη γραμμή 3 αναγκάζει την αξία του fig να επεκταθεί στην εντολή ps2pdf προτού να εκτελεσθεί. (Κατά τρόπο ενδιαφέροντα, ps2pdf είναι το ίδιο ένα πρόγραμμα κελύφους που καλεί το διερμηνέα PostScript gs.) Τα προαιρετικά στηρίγματα μπορούν να χρησιμοποιηθούν να χωρίσουν ένα μεταβλητό όνομα από την ακολουθία των χαρακτήρων, όπως σε $ CP $foo {foo} _backup. Οι πολλαπλάσιες εντολές μπορούν να εισαχθούν σε μια ενιαία γραμμή εάν χωρίζονται από τις άνω τελείες. Ο ακόλουθος, παραδείγματος χάριν, είναι ισοδύναμος με το βρόχο στο προηγούμενο παράδειγμα. ΠΑΡΑΔΕΙΓΜΑ 1.5. Ολόκληρος ένας βρόχος σε μια γραμμή for fig in *.eps; do ps2pdf $fig; done Δοκιμές, ερωτήσεις, και όροι Ο βρόχος του προηγούμενου παραδείγματος θα εκτελέσει ps2pdf για κάθε EPS αρχείο στον τρέχοντα κατάλογο. Υποθέστε, εντούτοις, ότι έχουμε ήδη μερικά αρχεία PDF, και μόνο θέλουμε να δημιουργήσουμε αυτα που λείπουν. for fig in *.eps do target=${fig%.eps}.pdf if [ $fig -nt $target ] then

15 ps2pdf $fig fi done ΠΑΡΑΔΕΙΓΜΑ 1.6. Υπό όρους δοκιμές στο κέλυφος Η τρίτη γραμμή αυτού του προγράμματος είναι μια μεταβλητή ανάθεση. Η έκφραση ${fig%.eps} μέσα στη δεξιά πλευρά επεκτείνει την αξία του fig με οποιοδήποτε ακολουθούμενο.eps να αφαιρείται. Οι παρόμοιες ειδικές επεκτάσεις μπορούν να χρησιμοποιηθούν να εξετάσουν ή να τροποποιήσουν την αξία μιάς μεταβλητής σε πολλούς διαφορετικούς τρόπους. Τις τετράγωνες αγκύλες στη γραμμή τέσσερα οριοθετούν μια υπό όρους δοκιμή. O χειριστής - nt ελέγχει να δει εάν το αρχείο που ονομάζεται από τον αριστερό τελεστή του είναι νεώτερο από το αρχείο που ονομάζεται από το δεξιό τελεστή του (ή εάν ο αριστερός τελεστής υπάρχει αλλά ο δεξιός όχι). Οι παρόμοιοι χειριστές ερώτησης αρχείων μπορούν να χρησιμοποιηθούν να ελέγξουν πολλές άλλες ιδιότητες των αρχείων. Οι πρόσθετοι χειριστές μπορούν να χρησιμοποιηθούν για τις συγκρίσεις αριθμητικής ή σειράς. 4 Το PostScript είναι μια γλώσσα προγραμματισμού που αναπτύχθηκε από την Adobe Systems, ΙΝΟ.για την περιγραφή των εικόνων και των εγγράφων (την εξετάζουμε πάλι στην πλαϊνή μπάρα ). Τοποθετημένο σε κάψα PostScript (EPS) είναι μια περιορισμένη μορφή PostScript προοριζόμενη για τους αριθμούς που πρόκειται να ενσωματωθούν σε άλλα έγγραφα. Η φορητή μορφή εγγράφου (PDF, επίσης από την Adobe) είναι μια ανεξάρτητη μορφή αρχείου που συνδυάζει ένα υποσύνολο PostScript με τους μηχανισμούς ενσωμάτωσης και συμπίεσης γραμματοσειρών. Είναι αυστηρά λιγότερο ισχυρό από το PostScript από μια υπολογιστική προοπτική, αλλά πιό φορητό, και γρηγορότερο και ευκολότερο να αποδώσει. Δίαυλοι και επαναπροσανατολισμός ΠΑΡΑΔΕΙΓΜΑ 1.7. Μια από τις κύριες καινοτομίες της Unix ήταν η δυνατότητα να αλυσοδεθούν οι εντολές μαζί, διοχετεύοντας με σωλήνες το αποτέλεσμα της μιας στην εισαγωγή των επόμενων. Όπως τα περισσότερα κελύφη, bash χρησιμοποιεί τον κάθετο ςχαρακτήρα φραγμών (I) ναδείξει έναν δίαυλο. Ναμετρήσουμε τον αριθμό αριθμών σωλήνων στον κατάλογό μας, χωρίς διάκριση μεταξύ των εκδόσεων EPS και PDF, θα δακτυλογραφήσουμε for fig in *; do echo ${fig%.*}; done Isort -u Iwc -l Εδώ η πρώτη εντολή, βρόχου for, τυπώνει τα ονόματα όλων των αρχείων με τις επεκτάσεις (σημειοεπιθηματικές ) να έχουν αφαιρεθεί. Η εντολή echo μέσα στο βρόχο τυπώνει απλά τα επιχειρήματά της. Η εντολή sort-u μετά από το βρόχο αφαιρεί τα αντίγραφα, και η εντολή wc -l μετρά τις γραμμές. Όπως τα περισσότερα κελύφη, η bash επίσης επιτρέπει στο αποτέλεσμα να κατευθυνθεί σε ένα αρχείο, ή την εισαγωγή που διαβάζεται από ένα αρχείο. Να δημιουργήσουμε έναν κατάλογο αριθμών, θα δακτυλογραφήσουμε for fig in *; do echo ${fig%.*}; done Isort -u > all_figs ΠΑΡΑΔΕΙΓΜΑ 1.8. Επαναπροσανατολισμός αποτέλεσματος

16 ΣΧΕΔΑΣΜΟΣ & ΕΦΑΡΜΟΓΗ Ενσωματωμένες εντολές στο κέλυφος Οι εντολές στο κέλυφος λαμβάνουν γενικά τη μορφή μιας ακολουθίας λέξεων, η πρώτη της οποίας είναι το όνομα της εντολής. Οι περισσότερες εντολές είναι εκτελέσιμα προγράμματα, που βρίσκονται στους καταλόγους για την πορεία αναζήτησης του κελύφους. Ένας μεγάλος αριθμός, εντούτοις (περίπου 50 στο bash) είναι εντολές ενσωματωμένες, που το κέλυφος αναγνωρίζει και εκτελεί το ίδιο, παρά την έναρξη ενός εξωτερικού προγράμματος. Κατά τρόπο ενδιαφέροντα, διάφορες εντολές που είναι διαθέσιμες ως χωριστά προγράμματα αναπαράγονται ως ενσωματωμένες, είτε χάριν της αποδοτικότητας είτε να παρέχουν την πρόσθετη σημασιολογία. Οι υπό όρους δοκιμές, παραδείγματος χάριν, υποστηρίχθηκαν αρχικά από την εξωτερική εντολή δοκιμής (για την οποία οι τετράγωνες αγκύλες είναι συντακτική ζάχαρη), αλλά αυτές εμφανίζονται αρκετά συχνά στα προγράμματα που η ταχύτητα εκτέλεσης βελτιώθηκε σημαντικά όταν προστέθηκε μια ενσωματωμένη έκδοση. Σε αντίθεση, η εντολή kill δεν χρησιμοποιείται πολύ συχνά, η ενσωματωμένη έκδοση επιτρέπει στην διαδικασία να προσδιοριστεί από τον μικρό ακέραιο αριθμό ή τα συμβολικά ονόματα από το μηχανισμό ελέγχου εργασίας του κελύφους. Η εξωτερική έκδοση υποστηρίζει μόνο τα μακρύτερα και συγκριτικά ασήμαντα προσδιοριστικά διαδικασίας που παρέχονται από το λειτουργικό σύστημα. Το σημάδι μεγαλύτερο από δείχνει τον επαναπροσανατολισμό αποτέλεσματος. Εάν διπλασιαστεί (είδος - u >> all_figs) αναγκάζει το αποτέλεσμαναεπισυναφθεί στο διευκρινισμένο αρχείο, παρά την επικάλυψη του προηγούμενου περιεχομένου. Σε παρόμοιο πνεύμα, το σημάδι λιγότερο από δείχνει επαναπροσανατολισμό εισαγωγής. Υποθέστε ότι θέλουμε να τυπώσουμε τον κατάλογο όλων των αριθμών μας σε μια γραμμή, που χωρίζονται από τα διαστήματα, αντί σε πολλαπλές γραμμές. Σε ένα σύστημα της Unix μπορούμε να δακτυλογραφήσουμε: tr \n < all_figs Αυτή η επίκληση της τυποποιημένης εντολής tr μετατρέπει όλους τους χαρακτήρες αλλαγών γραμμής σε διαστήματα. Επειδή το tr γράφτηκε ως απλό φίλτρο, δεν δέχεται έναν κατάλογο αρχείων στη γραμμή εντολής διαβάζει μόνο την τυποποιημένη εισαγωγή. Για οποιοδήποτε πρόγραμμα εκτέλεσης Unix, το λειτουργικό σύστημα παρακολουθεί έναν καταλόγο ανοικτών αρχείων. Από τη σύμβαση, η τυποποιημένη εισαγωγή και το τυποποιημένο αποτέλεσμα (stdin και stdout) είναι αριθμοί αρχείων 0 και 1. Το αρχείο αριθμόυ 2 είναι εκ παραδοχής τυποποιημένο λάθος (stderr), στο οποίο τα προγράμματα είναι υποτιθέμενα να τυπώσουν τα διαγνωστικά μηνύματα λάθους. Ένα από τα πλεονεκτήματα της οικογένειας των κελύφων sh πέρα από την οικογένεια csh είναι η δυνατότητα να επαναπροσανατολίσει stderr και άλλος ανοικτά ανεξάρτητα αρχεία του stdin και stdout. Εξετάστε, παραδείγματος χάριν, το πρόγραμμα ps2pdf. Κάτω από

17 κανονικές περιστάσεις αυτό το πρόγραμμα λειτουργεί σιωπηλά. Εάν αντιμετωπίσει ένα λάθος, εντούτοις, τυπώνει ένα μήνυμα στο stdout και εγκαταλείπει. Αυτή η παραβίαση της σύμβασης (το μήνυμα πρέπει να πάει στο stderr) είναι αβλαβής όταν επικαλείται η εντολή από το πληκτρολόγιο. Εάν ενσωματώνεται σε ένα πρόγραμμα, εντούτοις και το αποτέλεσμα του προγράμματος κατευθύνεται σε ένα αρχείο, το μήνυμα λάθους μπορεί να καταλήξει στο αρχείο αντί στην οθόνη, και να περάσει απαρατήρητο από το χρήστη. Με το bash μπορούμε να δακτυλογραφήσουμε: ps2pdf my_fig.eps 1>&2 ΠΑΡΑΔΕΙΓΜΑ 1.9. Επαναπροσανατολισμός του stderr και stdout Εδώ 1>&2 σημαίνουν κάνε το ps2pdf να στείλει το αρχείο 1 (stdout) στο ίδιο μέρος όπου το περιβάλλον πλαίσιο θα έστελνε κανονικά το αρχείο 2 (stderr). Τέλος, όπως τα περισσότερα κελύφη, bash επιτρέπουν στο χρήστη να παρέχει την εισαγωγή σε μια ευθύγραμμη εντολή: tr \n <<END list of input lines END ΠΑΡΑΔΕΙΓΜΑ 1.10 Heredocs (ευθύγραμμη εισαγωγή) Το <<END δείχνει ότι οι επόμενες γραμμές εισαγωγής, μέχρι μια γραμμή που περιέχει μόνο το END, πρόκειται να παρασχεθούν ως εισαγωγή στο tr. Τέτοια ευθύγραμμη εισαγωγή (παραδοσιακά αποκαλούμενη εδώ έγγραφο ) σπάνια χρησιμοποιείται αμφίδρομα, αλλά είναι ιδιαίτερα χρήσιμη στα προγράμματα κελύφους. Αναφορά και επέκταση Τα κελύφη παρέχουν χαρακτηριστικά αρκετών αναφέρομενων μηχανισμών στις ομάδες λέξεις μαζί στις σειρές. Τα μονά (προς τα εμπρός) αποσπάσματα εμποδίζουν το όνομα αρχείου και τη μεταβλητή επέκταση στο αναφερμένο κείμενο, και την αναγκάζουν να αντιμετωπιστούν ως μεμονωμένη λέξη, ακόμα κι αν περιέχει το άσπρο διάστημα. Τα διπλά αποσπάσματα αναγκάζουν επίσης το περιεχόμενο να αντιμετωπιστεί ως μεμονωμένη λέξη, αλλά δεν εμποδίζει την επέκταση. Κατά συνέπεια foo=bar single= $foo double="$foo" echo $single $double θα τυπώσει $foo bar. ΠΑΡΑΔΕΙΓΜΑ Ενιαία και διπλά αποσπάσματα

18 Διάφορες άλλες δομές αγκυλών στο bash ομαδοποιούν το μέσα κείμενο, για διάφορους λόγους. Οι κατάλογοι εντολής εσωκλειόμενοι σε παρένθεση περνούν σε ένα subshell για αξιολόγηση. Εάν η παρένθεση ανοίγματος προηγείται από ένα σημάδι δολαρίων, το αποτέλεσμα του τοποθετημένου καταλόγου εντολής επεκτείνεται στο περιβάλλον πλαίσιο for fig in $(cat my_figs); do ps2pdf ${fig}.eps; done ΠΑΡΑΔΕΙΓΜΑ Subshells Εδώ η cat είναι η τυποποιημένη εντολή τύπωσης του περιεχόμενου ενός αρχείου. Τα περισσότερα κελύφη χρησιμοποιούν προς τα πίσω τα ενιαία αποσπάσματα για τον ίδιο σκοπό (' cat my_figs '). Η bash υποστηρίζει αυτήν την σύνταξη επίσης, για οπίσθια συμβατότητα. Οι κατάλογοι εντολής που εσωκλείονται στις αγκύλες αντιμετωπίζονται από το bash ως ενιαία μονάδα. Μπορούν να χρησιμοποιηθούν, παραδείγματος χάριν, για να επαναπροσανατολίσουν το αποτέλεσμα μιας ακολουθίας εντολών: { date; ls; } >> file_list ΠΑΡΑΔΕΙΓΜΑ Αναφερόμενα στις αγκύλες πλαίσια μεσα στο κέλυφος Αντίθετα από τους κατάλογους, οι εντολές που εσωκλείονται στις αγκύλες εκτελούνται από το τρέχον κέλυφος. Από μια προοπτική γλωσσών προγραμματισμού, οι παρενθέσεις και οι αγκύλες συμπεριφέρονται ανάποδα από τον τρόπο που κάνουν στο C: οι παρενθέσεις εισάγουν ένα τοποθετημένο δυναμικό πεδίο στο bash, ενώ οι αγκύλες είναι καθαρά για την ομαδοποίηση. Εν μέρη, οι μεταβλητές που ορίζονται, οι νέες τιμές μέσα στο a, ο κατάλογος εντολής θα επανέλθουν στις προηγούμενες τιμές τους μόλις ολοκληρώσει ο κατάλογος την εκτέλεση. ΠΑΡΑΔΕΙΓΜΑ Όταν δεν περιβάλλονται από το άσπρο διάστημα, οι αγκύλες εκτελούν τον βασιζόμενο στο σχέδιο καταλόγο αποτελεσμάτων, κατά τρόπο παρόμοιο με την επέκταση ονομάτων αρχείου αλλά χωρίς τη σύνδεση στο σύστημα αρχείων. Παραδείγματος χάριν, τυπωμένες οι echo abc12xyz abc34xyz abc56xyz abc { } xyz. Επίσης, δεδομένου ότι έχουμε δει, οι αγκύλες χρησιμεύουν για να οριοθετήσουν τα μεταβλητά ονόματα όταν προηγείται η αγκύλη ανοίγματος από ένα σημάδι δολαρίων. Στο παράδειγμα 1.6 χρησιμοποιήσαμε τις τετράγωνες αγκύλες για να εσωκλείσουμε μια υπό όρους έκφραση.οι διπλές τετράγωνες αγκύλες εξυπηρετούν έναν παρόμοιο σκοπό, αλλά με περισσότερη, όπως στην C, σύνταξη έκφρασης, και χωρίς επέκταση ονομάτων αρχείου. Οι διπλές παρενθέσεις χρησιμοποιούνται για να εσωκλείσουν τους αριθμητικούς υπολογισμούς, πάλι με, όπως στην C, σύνταξη. Η παρεμβολή των εντολών στο $ () ή τα ανάποδα εισαγωγικά, τα σχέδια μέσα σε {}, και οι αριθμητικές εκφράσεις μέσα σε (()) είναι όλες οι εξεταζόμενες μορφές επέκτασης, ανάλογως με την επέκταση των ονομάτων αρχείου και τη μεταβλητή επέκταση. Ο διαχωρισμός των σειρών στις λέξεις θεωρείται επίσης μορφή επέκτασης, όπως είναι η αντικατάσταση, σε ορισμένα πλαίσια, των χαρακτήρων tilde (~) με το όνομα του εγχώριου καταλόγου του χρήστη. Όλοι που λέγονται, μας δίνουν επτά διαφορετικά είδη επέκτασης στο bash. Όλες οι διάφορες δομές αγκυλών έχουν κανόνες μέσα σ υς οποίους τα είδη επέκτασης εκτελούνται. Οι

19 κανόνες προορίζονται να είναι όσο το δυνατόν πιό διαισθητικοί, αλλά δεν είναι ομοιόμορφοι στα κατασκευάσματα. Η επέκταση ονομάτων αρχείου, παραδείγματος χάριν, δεν εμφανίζεται μέσα [[]] - βαλμένη σε παρένθεση όροι. Ομοίως, ένας διπλός χαρακτήρας αποσπάσματος μπορεί να εμφανιστεί μέσα σε μια διπλός-αναφερμένη σειρά εάν δραπετεύσει με μια αντίστροφη κάθετο, αλλά ένας ενιαίος χαρακτήρας αποσπάσματος μπορεί να μην εμφανιστεί μέσα σε μια ενιαία-αναφερμένη σειρά. Λειτουργίες Οι χρήστες μπορούν να καθορίσουν τις λειτουργίες στο bash εκείνο το έπειτα εργάζονται όπως τις ενσωματωμένες εντολές. Πολλοί χρήστες, παραδείγματος χάριν, καθορίζουν ll ως συντομότερος δρόμος για το LS - λ, το οποίο απαριθμεί τα αρχεία στον τρέχοντα κατάλογο με το μακροχρόνιο σχήμα: : function ll () { ls -l "$@" } ΠΑΡΑΔΕΙΓΜΑ Καθορισμένες από το χρήστη λειτουργίες κελύφους Μέσα στη λειτουργία, $1 αντιπροσωπεύουν την πρώτη παράμετρο, $2 αντιπροσωπεύουν τη δεύτερη, και ούτω καθεξής. Στον καθορισμό του ll, $@ αντιπροσωπεύει τον ολόκληρο κατάλογο παραμέτρου. Οι λειτουργίες μπορούν να είναι αυθαίρετα σύνθετες. In particular^ bash υποστηρίζει και τις τοπικές μεταβλητές και επαναδρομολογήσεις. Τα κελύφη στην οικογένεια csh παρέχουν έναν πιό πρωτόγονο ς μηχανισμό ψευδωνύμων που λειτουργεί μέσω της μακροεπέκτασης. Συνθήκη #! Όπως σημειώνεται ανωτέρω, οι εντολές κελύφους μπορούν να διαβαστούν από ένα αρχείο προγραμμάτων. Για να τους εκτελέσει στο τρέχον κέλυφος, κάποιος χρησιμοποιεί την εντολή τελεία :. my_script ΠΑΡΑΔΕΙΓΜΑ 1.16 Συνθήκη #! στα αρχεία προγραμμάτων. όπου my_script είναι το όνομα του αρχείου. Πολλά λειτουργικά συστήματα, συμπεριλαμβανομένων των περισσότερων εκδόσεων της Unix, επιτρέπουν σε κάποιον να κάνει ένα πρόγραμμα να λειτουργήσει ως εκτελέσιμο πρόγραμμα, έτσι ώστε οι χρήστες μπορούν απλά να δακτυλογραφήσουν ΣΧΕΔΑΣΜΟΣ & ΕΦΑΡΜΟΓΗ Μαγικοί αριθμοί

20 Όταν ο πυρήνας της Unix καλείται να εκτελέσει ένα αρχείο (μέσω της κλήσης συστημάτων execve), ελέγχει τις πρώτες πρώτες ψηφιολέξεις του αρχείου για έναν μαγικό αριθμό που δείχνει τον τύπο του αρχείου. Μερικές τιμές αντιστοιχούν στις άμεσα εκτελέσιμες μορφές αρχείου αντικειμένου. Κάτω από τα Linux, παραδείγματος χάριν, οι πρώτες τέσσερις ψηφιολέξεις ενός αρχείου αντικειμένου είναι 0x7f45_4c46 (delelf στο ASCII). Κάτω από το Mac OS Χ είναι 0xfeed_face. Εάν οι πρώτες δύο ψηφιολέξεις είναι 0x2321 (#! στο ASCII), ο πυρήνας υποθέτει ότι το αρχείο είναι ένα πρόγραμμα, και διαβάζει τους επόμενους χαρακτήρες για να βρεί το όνομα του διερμηνέα.. Η σύμβαση #! στη Unix είναι ο κύριος λόγος που η περισσότερη γλωσσική χρήση προγραμματισμού # ως οριοθετεί σχόλιο ανοίγματος. Οι πρόωρες εκδόσεις του sh χρησιμοποίησαν την εντολή κανένας-op (:) ως τρόπο να εισαγάγουν τα σχόλια. Το κέλυφος C του Joy εισήγαγε το #, όπου τροποποιήθηκαν μερικές εκδόσεις του sh για να προωθήσουν το csh, όταν ζητούμένο να εκτελέσει ένα πρόγραμμα που εμφανίστηκε να αρχίζει με ενα σχόλιο κελύφους C. Αυτός ο μηχανισμός εξελίχθηκε στο γενικότερο μηχανισμό που χρησιμοποιήθηκε σε πολλές (εν τούτοις όχι όλοι)τις σήμερινες παραλλαγές της Unix. Δύο βήματα απαιτούνται. Κατ' αρχάς, το αρχείο πρέπει να χαρακτηριστεί εκτελέσιμο στα μάτια του λειτουργικού συστήματος. Στη Unix κάποιος δακτυλογραφεί chmod +x my_script. Δεύτερον, το αρχείο πρέπει να είναι μονοπεριγραφικό με τέτοιο τρόπο ώστε να επιτρέπει στο λειτουργικό σύστημα να πει ποιο κέλυφος (ή άλλος διερμηνέας) θα καταλάβει το περιεχόμενο. Κάτω από τη Unix, το αρχείο πρέπει να αρχίσει με τους χαρακτήρες #!, ακολουθούμενος από το όνομα του κελύφους. Το χαρακτηριστικό πρόγραμμα bash αρχίζει έτσι με #!/bin/bash Η διευκρίνιση του πλήρους ονόματος πορειών είναι ένα χαρακτηριστικό γνώρισμα ασφάλειας: προσδοκά τη δυνατότητα ότι ο χρήστης μπορεί να έχει μια πορεία αναζήτησης, για τις εντολές στις οποίες κάποιο άλλο πρόγραμμα που ονομάζεται bash,εμφανίζεται πριν από το κέλυφος. (Δυστυχώς, η απαίτηση για τα πλήρη ονόματα πορειών κάνει τις γραμμές#! μη φορητές, δεδομένου ότι τα κέλυφος και άλλοι διερμηνείς μπορούν να εγκατασταθούν σε διαφορετικές θέσεις σε διαφορετικές μηχανές.) ΕΛΕΓΞΑΤΕ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΣΑΣ 1. Δώστε έναν εύλογο καθορισμό μιας πρότασης της γλώσσας προγραμματισμού. 2. Απαριθμήστε τους κύριους τρόπους με τους οποίους οι γλώσσες προγραμματισμού διαφέρουν από τις συμβατικές γλώσσες συστημάτων. 3. Από ποια δύο κύρια σύνολα προγόνων κατάγονται οι σύγχρονες γλώσσες προγραμματισμού ; 4. Ποια δημιουργία της ΙΒΜ θεωρείται γενικά ως πρώτη γλώσσα προγραμματισμού γενικού σκοπού; 5. Ποια είναι η δημοφιλέστερη γλώσσα για την από πλευρά παροχέα προγραμματισμού Ιστού; 6. Πώς η έννοια του πλαισίου σε Ρογ! διαφέρει από τον εξαναγκασμό;

21 7. Τι είναι σφαιροποίηση; Τι είναι ένας μπαλαντέρ; 8. Τι είναι ένας δίαυλος στη Unix; Τι είναι επαναπροσανατολισμός; 9. Περιγράψτε τα τρείς τυποποιημένες I/O ροές που παρέχονται σε κάθε διαδικασία της Unix. 10. Εξηγήστε τη σημασία της σύμβασης #! στα προγράμματα κελύφους της Unix Επεξεργασία κειμένων και αποτέλεσμα εκθέσεων Οι γλώσσες της Shell τείνουν να προσανατολιστούν βαριά στις σειρές. Οι εντολές είναι σειρές, που αναλύονται στους καταλόγους λέξεων. Οι μεταβλητές εκτιμούνται ανά σειρά. Οι μεταβλητοί μηχανισμοί επέκτασης επιτρέπουν στο χρήστη να εξαγάγουν τα προθέματα, τα επιθήματα, ή τις αυθαίρετες υποσειρές. Η αλληλουχία υποδεικνύεται από την απλή αντιπαράθεση. Υπάρχει επιμερισμός αναφερόμενος στις συμβάσεις. Λίγες συμβατικότερες γλώσσες έχουν παρόμοια υποστήριξη για τις σειρές. # label ( target for branch ): :top /<[hh] [ 123]>.*\[hH] [ 123]>/ { h sa(<v[hh] [123] >\) /\1/ s/ Λ.*\ (<[hh] [123] >\) Λ1/ p g s/<v[hh] [123] > // } b top ;# match whole heading ;# save copy of pattern space ;# delete text after closing tag ;# delete text before closing tag ;# print what remains ;# retrieve saved pattern space ;# delete closing tag ;# and branch to top of script /<[hh] [123]>/ { N b top } d ;# match opening tag (only) ;# extend search to next line ;# and branch to top of script ;# if no match at all, delete Σχήμα 1.1 Πρόγραμμα σε sed για να εξαγάγει τις επιγραφές από ένα αρχείο HTML. Το πρόγραμμα υποθέτει ότι οι ανοιγόμενες και κλείνουσες ετικέττες αντιστοιχούνται καταλλήλως και ότι οι επιγραφές δεν τοποθετούνται. Συγχρόνως, οι γλώσσες κελύφους δεν προορίζονται σαφώς για το είδος του χειρισμού κειμένων που εκτελείται συνήθως στους συντάκτες όπως ο emacs ή vi. Η αναζήτηση και η αντικατάσταση ιδιαίτερα, λείπει και πολλοί άλλοι στόχοι που οι συντάκτες ολοκληρώνουν με μια ενιαία πληκτρολόγηση - εισαγωγή, διαγραφή, αντικατάσταση, υποστήριγμα-που ταιριάζουν με, προς τα εμπρός και οπίσθια κίνηση - θα ήταν αδέξιοι να εφαρμόσουν, ή δεν έχουν απλά κανένα νόημα, στα πλαίσια του κελύφους. Για τον επαναλαμβανόμενο χειρισμό κειμένων είναι φυσικό να θελήσει να αυτοματοποιήσει τη διαδικασία έκδοσης. Τα εργαλεία για να ολοκληρώσουν αυτόν τον στόχο αποτελούν τη δεύτερη κύρια κατηγορία προγόνων για τις σύγχρονες γλώσσες προγραμματισμού

22 Sed Σαν ενα απλό παράδειγμα επεξεργασίας κειμένων, εξετάστε το πρόβλημα για όλες τις επιγραφές από μια ιστοσελίδαχ (ένα αρχείο HTML). Αυτές είναι σειρές που οριοθετούνται από <H1>... </H1>, <H2>... </H2>, και < H 3>. ετικέττες </H3>. ΠΑΡΑΔΕΙΓΜΑ Εξαγωγή των επιγραφών HTML με το sed Ολοκληρώνοντας αυτόν τον στόχο σε έναν συντάκτη όπως το emacs, vil, ή ακόμα και το Microsoft Word είναι απλό αλλά κουραστικό : κάποιος πρέπει να ψάξει για μια ετικέττα ανοίγματος, να διαγράψει το προηγούμενο κείμενο, να αναζητήσει μια κλεισίματος, να χαρακτηρίσει την τρέχουσα θέση (ως αφετηρία για την επόμενη διαγραφή), και να επαναλάβει. Ένα πρόγραμμα που θα εκτελέσει αυτούς τους στόχους σε sed, ο συντάκτης ρευμάτων της Unix, εμφανίζεται στο σχήμα 1. Ο κώδικας αποτελείται από μια κεφαλίδα και τρεις εντολές, από τις οποίες οι δύο είναι σύνθετες. Η πρώτη σύνθετη εντολή τυπώνει την πρώτη επιγραφή που βρίσκεται, ενδεχομένως, στη μερίδα της εισαγωγής που εξετάζεται αυτήν την περίοδο (το sed το καλεί διάστημα σχεδίων). Η δεύτερη σύνθετη εντολή επισυνάπτει μια καινούργια γραμμή στο διάστημα σχεδίων οπότε περιέχει ήδη μια ετικέττα επιγραφής ανοίγματος. Οι δύο σύνθετες εντολές και αρκετές από τις υποεντολές, χρησιμοποιούν τα κανονικά σχέδια έκφρασης, που οριοθετούνται από τις καθέτους. Θα συζητήσουμε για αυτά τα σχέδια περαιτέρω στην παράγραφο της Η τρίτη εντολή (το απομονωμένο d) απλά διαγράφει την τρέχουσα γραμμή. Επειδή κάθε σύνθετη εντολή τελειώνει με έναν κλάδο πίσω στην κορυφή του προγράμματος, ο δεύτερος θα εκτελέσει μόνο εάν ο πρώτος δεν εκτελεστεί, και η διαγραφή θα εκτελέσει μόνο εάν καμία σύνθετη δεν εκτελεστεί. Η κληρονομιά συντακτών του sed είναι σαφής σε αυτό το παράδειγμα. Οι εντολές είναι γενικά ένας χαρακτήρας μακροχρόνιος, και δεν υπάρχει καμία μεταβλητή - καμία κατάσταση οποιουδήποτε είδους πέρα από το μετρητή και το κείμενο προγράμματος που εκδίδεται. Αυτοί οι περιορισμοί κάνουν το sed καταλληλότερο στα προγράμματα μιας γραμμής, χαρακτηριστικά εισαγμένα κατά λέξη από το πληκτρολόγιο με διακόπτη γραμμής εντολών -e. Ο ακόλουθος, παραδείγματος χάριν, θα διαβάσει από την τυποποιημένη εισαγωγή, θα διαγράψει τις κενές γραμμές, και (σιωπηρά) θα τυπώσει τις γραμμές nonblank στο τυποποιημένο αποτέλεσμα. sed -e /A[[:space:]]*$/d ΠΑΡΑΔΕΙΓΜΑ Προγράμματα ένας-γραμμών στο sed Εδώ το Λαντιπροσωπεύει την αρχή της γραμμής και το $ αντιπροσωπεύει το τέλος. Η έκφραση [[: space:]] ταιριάζει με οποιοδήποτε χαρακτήρα άσπρου διαστήματος στον τοπικό χαρακτήρα - set, για να επαναληφθεί σε έναν αυθαίρετο αριθμό χρόνων, όπως υποδεικνύεται από το αστέρι Kleene (*). Το d δείχνει τη διαγραφή. Οι μη διαγραμμένες γραμμές είναι τυπωμένες εξ ορισμού. Awk Σε μία προσπάθεια να εξεταστούν οι περιορισμοί του sed, ο Alfred Aho, ο Peter Weinberger, και ο Brian Kernighan σχεδίασαν το awk το 1977 (το όνομα είναι βασισμένο στα αρχικά γράμματα των επωνύμων τους). Το Awk είναι υπό κάποια έννοια ένας εξελικτικός σύνδεσμος μεταξύ των συντακτών ρευμάτων όπως το sed και των ολοκληρωμένων γλωσσών προγραμματισμού. Διατηρεί γραμμή sed στο

23 πρότυπο φίλτρων του υπολογισμού, αλλά επιτρέπει στο χρήστη να δραπετεύσει αυτό το πρότυπο όταν επιδιώκεται και αντικαθιστά τις εντολές έκδοσης ενιαίου χαρακτήρα με τη σύνταξη ενθυμίζουσα την C. Το Awk παρέχει (τις χωρίς τύπο) μεταβλητές και ποικίλα δομών ροής ελέγχου, συμπεριλαμβανομένων των υπορουτινών. Ένα πρόγραμμα awk αποτελείται από μια ακολουθία σχεδίων, κάθε μια από τις οποίες έχει μια σχετική δράση. Για κάθε γραμμή εισαγωγής, ο διερμηνέας εκτελεί σε σειρά τις ενέργειες, των οποίων τα σχέδια αξιολογούν αληθινά. Ένα παράδειγμα με ένα ενιαίο ζευγάρι σχέδιου δράσης εμφανίζεται στο σχήμα 2. ΠΑΡΑΔΕΙΓΜΑ 1.19 που εξάγει τις επιγραφές HTML με το awk Εκτελεί ουσιαστικά τον ίδιο στόχο με το πρόγραμμα sed του σχήματος 1. Οι γραμμές που δεν περιέχουν καμία ετικέττα ανοίγματος αγνοούνται. Σε μια γραμμή με μια ετικέττα ανοίγματος, διαγράφουμε οποιοδήποτε κείμενο προηγείται της επιγραφής. Τυπώνουμε έπειτα τις γραμμές έως ότου βρίσκουμε την κλείνουσα ετικέττα και επαναλαμβάνουμε εάν υπάρχει μια άλλη ετικέττα ανοίγματος στην ίδια γραμμή. Πέφτουμε πίσω στον κύριο βρόχο του διερμηνέα όταν είμαστε καθαροί από οποιαδήποτε επιγραφή. Διάφορες συμβάσεις μπορούν να είναι φανερές σε αυτό το παράδειγμα. Η τρέχουσα γραμμή εισαγωγής είναι διαθέσιμη στην ψευδομεταβλητή $0. Η λειτουργία getline διαβάζει σε αυτήν την μεταβλητή εξ ορισμού. Η λειτουργία substr (s, α, β) εξάγει τη μερίδα της σειράς s που αρχίζει στη θέση a και με το μήκος b. Εάν το b παραλείπεται, τα αποσπασματικά τρεξίματα μερίδας στο τέλος των όρων του s., Οι συνθήκες, όπως τα σχέδια, μπορούν να χρησιμοποιήσουν τις κανονικές εκφράσεις. Μπορούμε να δούμε ένα παράδειγμα στον βρόχο do... while. Εξ ορισμού, οι κανονικές εκφράσεις ταιριάζουν έναντι του $0. Ίσως οι δύο σημαντικότερες καινοτομίες του awk είναι τομείς και συνειρμικές σειρές, καμία από τις οποες δεν εμφανίζεται στο σχήμα 1.2. Όπως στο κέλυφος,το awk αναλύει κάθε γραμμή εισαγωγής σε μια σειρά λέξεων (τομείς). Εξ ορισμού αυτοί οριοθετούνται από το άσπρο διάστημα, αν και ο χρήστης μπορεί να αλλάξει αυτήν την συμπεριφορά δυναμικά κοντά ορίζει ing μια κανονική έκφραση στο ενσωματωμένο μεταβλητό FS (διαχωριστής τομέων). /[hh] [123] >/ { # execute this block in line contains an opening tag Do { open_tag = match ($0, /<[hh] [123]>/) $0 = substr ($0, open tag) #delete texte before opening tag # $0 is the current input line While )!/<\/[hh] [123]>/) { # print interior lines print # in their entirety } close_tag = match ($0, /<\/[hh] [123]>/) +4 print substr ($0, 0, close_tag) #print through closing tag $0 = substr ($0, close_tag +1) #delete through closing tag } while (/<[hh] [123] >/) # repeat if more opening tags }

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

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς PERL Δήμος Παύλου Δημήτρης Κουζαπάς Perl Η Perl είναι μια διερμηνευομένη δυναμική γλώσσα προγραμματισμού. Συνδυάζει χαρακτηριστικά από διάφορες γλώσσες. (C/C++, Awk, Lisp κλπ) Διαδόθηκε λόγω της μεγάλης

Διαβάστε περισσότερα

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Τ.Ε.Ι ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Πτυχιακή εργασία του φοιτητή Γιαννακίδη Αποστόλη Επιβλέπων καθηγητής Τσούλος

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

Εισαγωγή στα Λειτουργικά Συστήματα

Εισαγωγή στα Λειτουργικά Συστήματα Εισαγωγή στα Λειτουργικά Συστήματα S E T Δ Ι Α Φ Α Ν Ε Ι Ω Ν 10 S C R I P T S Α Ν Τ Ω Ν Η Σ Σ Ι Δ Η Ρ Ο Π Ο Υ Λ Ο Σ Φλοιός (Shell) 2 Είναι το πρόγραμμα που διερμηνεύει (interpreter) τις εντολές που εισάγονται

Διαβάστε περισσότερα

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:03 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

Διαβάστε περισσότερα

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Εισαγωγή-Σκοπός. Τρόποι δημιουργίας δυναμικών ιστοσελίδων. Dynamic Web Pages. Dynamic Web Page Development Using Dreamweaver. Τρόποι δημιουργίας δυναμικών

Διαβάστε περισσότερα

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α : Α1. Να

Διαβάστε περισσότερα

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό Υπολογιστικά συστήματα: Στρώματα 1 ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗς ΠΛΗΡΟΦΟΡΙΚΗΣ επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό δεδομένα Εισαγωγή στο Unix Περιεχόμενα Εισαγωγή 2 Εισαγωγή

Διαβάστε περισσότερα

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access...9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 18 Άνοιγμα και κλείσιμο βάσης δεδομένων... 21 Ερωτήσεις ανακεφαλαίωσης... 22 Πρακτική εξάσκηση...

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

Διαβάστε περισσότερα

Συντάχθηκε απο τον/την Administrator Δευτέρα, 22 Φεβρουάριος :11 - Τελευταία Ενημέρωση Παρασκευή, 26 Φεβρουάριος :52

Συντάχθηκε απο τον/την Administrator Δευτέρα, 22 Φεβρουάριος :11 - Τελευταία Ενημέρωση Παρασκευή, 26 Φεβρουάριος :52 «Εκτέλεση Αλγορίθμων σε ψευδογλώσσα μέσα στο Word και στο Excel» (κατέβασμα του αρχείου algori8mos.zip ) ΠΕΡΙΛΗΨΗ Ενώ ο μαθητής μπορεί να μάθει την λειτουργία των εντολών της ψευδογλώσσας και να τις χρησιμοποιήσει

Διαβάστε περισσότερα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

Διαβάστε περισσότερα

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Εισαγωγή στο Unix Υπολογιστικά συστήματα: Στρώματα 1 επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό δεδομένα Περιεχόμενα 2 Εισαγωγή

Διαβάστε περισσότερα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

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

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

Διαβάστε περισσότερα

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

Διαβάστε περισσότερα

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

Διαβάστε περισσότερα

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

Διαβάστε περισσότερα

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

Διαβάστε περισσότερα

Μερικές άλλες χρήσιμες εντολές

Μερικές άλλες χρήσιμες εντολές 1 Μερικές άλλες χρήσιμες εντολές whoami (Εμφανίζει το όνομα του τρέχοντος χρήστη) pwd (Εμφανίζει το όνομα του τρέχοντος καταλόγου) cat text file name (Παρουσιάζει στην οθόνη το περιεχόμενο ενός αρχείου

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

Διαβάστε περισσότερα

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

Διαβάστε περισσότερα

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 ΙΣΤΟΡΙΚΑ Παρουσιάστηκε το 1970 από το Niklaus Wirth Προγενέστερη γλώσσα ήταν η Algol 60 Είναι δομημένη γλώσσα προγραμματισμού υψηλού

Διαβάστε περισσότερα

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

Διαβάστε περισσότερα

8 FORTRAN 77/90/95/2003

8 FORTRAN 77/90/95/2003 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1: Εισαγωγή... 17 1.1. Ανασκόπηση της ιστορίας των υπολογιστών... 18 1.2. Πληροφορία και δεδομένα... 24 1.3. Ο Υπολογιστής... 26 1.4. Δομή και λειτουργία του υπολογιστή... 28 1.5.

Διαβάστε περισσότερα

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη.

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη. ΘΕΜΑ 1 ο A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη. 1. Η συνθήκη Χ = Α_Μ (Χ) είναι πάντα αληθής, για

Διαβάστε περισσότερα

Κανονικές εκφράσεις ή παραστάσεις (Regular Expressions) 3 ο Εργαστήριο ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - ΕΡΓΑΣΤΗΡΙΟ

Κανονικές εκφράσεις ή παραστάσεις (Regular Expressions) 3 ο Εργαστήριο ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - ΕΡΓΑΣΤΗΡΙΟ Κανονικές εκφράσεις ή παραστάσεις (Regular Expressions) 3 ο Εργαστήριο ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - ΕΡΓΑΣΤΗΡΙΟ - 03 1 Μια κανονική έκφραση είναι ένας σύντομος και σαφής τρόπος έκφρασης οποιουδήποτε συνδυασμού

Διαβάστε περισσότερα

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ. ΤΡΙΤΗ ΔΙΑΛΕΞΗ Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.): Σύνταξη τύπος όνομαα; τύπος όνομαβ{όνομαα}; όνομαβ

Διαβάστε περισσότερα

Visual Flowchart Γενικά

Visual Flowchart Γενικά Visual Flowchart 3.020 -Γενικά Το Visual Flowchart ή «Data-Flow Visual Programming Language 3.020» (http://www. emu8086.com/fp) είναι ένα περιβάλλον ανάπτυξης και εκτέλεσης αλγορίθμων απευθείας σε μορφή

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Αρχείων Βασίλης Σακκάς 11/12/2013 1 Διαχείριση Αρχείων 1 Μακρόχρονη αποθήκευση πληροφοριών 1. Αποθήκευση μεγάλου όγκου δεδομένων 2. Οι αποθηκευμένες πληροφορίες πρέπει

Διαβάστε περισσότερα

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

Διαβάστε περισσότερα

Διαγραφή Επιλέγετε Διαγραφή για να διαγράψετε μία ήδη υπάρχουσα διαδικασία εισαγωγής ASCII

Διαγραφή Επιλέγετε Διαγραφή για να διαγράψετε μία ήδη υπάρχουσα διαδικασία εισαγωγής ASCII Published on PRISMA Win Help - Megasoft (http://docs.megasoft.gr) Home > Διαχείριση Βάσης Δεδομένων (dbadmin) > Αρχεία Αρχεία Εισαγωγή από αρχείο ASCII Με την εργασία αυτή έχετε την δυνατότητα να εισάγετε

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python 1η Ομάδα Ασκήσεων Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων IDLE - Διαδικασία ανάπτυξης προγραμμάτων Python - Εισαγωγικά προγράμματα / print / μεταβλητές / input

Διαβάστε περισσότερα

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Aντώνης Σπυρόπουλος v2_061015 Οροι που

Διαβάστε περισσότερα

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7 Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 Μέρος 1 1 Βασικοί όροι... 11 2 Βασική δομή κώδικα HTML... 25 3 Μορφοποίηση κειμένου... 39 4 Μορφοποίηση παραγράφων... 51 5 Εισαγωγή εικόνας... 63 6 Λίστες με

Διαβάστε περισσότερα

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Shell Scripting Εισαγωγή Ένα shell script είναι μια λίστα εντολών που εκτελούνται ακολουθιακά Εκτελούνται ανάλογα με το κέλυφος και για

Διαβάστε περισσότερα

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

Διαβάστε περισσότερα

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

Διαβάστε περισσότερα

(Regular Expressions) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ/ ΧΕΙΜ

(Regular Expressions) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ/ ΧΕΙΜ Κανονικές εκφράσεις (Regular Expressions) 1 Μια κανονική έκφραση είναι ένας σύντομος και σαφής τρόπος έκφρασης οποιουδήποτε συνδυασμού χαρακτήρων. Οι κανονικές εκφράσεις (RE) αποτελούνται από συνδυασμό

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

Διαβάστε περισσότερα

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα»

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα» ΚΡΕΜΑΛΑ Project 7 1 Εκφώνηση άσκησης Υλοποίηση του παιχνιδιού «Κρεμάλα» Το Project αυτό συνίσταται στην κατασκευή ενός προγράμματος σεναρίου κελύφους, που θα υλοποιεί το γνωστό παιχνίδι «Κρεμάλα» με δυνατότητα

Διαβάστε περισσότερα

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

Διαβάστε περισσότερα

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η εξοικείωση με κάποιες εφαρμογές που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό.

Διαβάστε περισσότερα

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY Mία γλώσσα προγραμματισμού συνίσταται από ένα περιορισμένο υποσύνολο της αγγλικής γλώσσας και το οποίο αποτελείται από εκφράσεις σαφώς ορισμένες, χωρίς παρερμηνεία.

Διαβάστε περισσότερα

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας, Μικροεπεξεργαστές Σημειώσεις Μαθήματος 2013-14 Υπεύθυνος: Δρ Άρης Παπακώστας, Η γλώσσα assembly είναι μια γλώσσα προγραμματισμού χαμηλού επιπέδου για συγκεκριμένους υπολογιστές ή άλλη προγραμματιζόμενη

Διαβάστε περισσότερα

Διαχείριση Βάσης Δεδομένων (dbadmin)

Διαχείριση Βάσης Δεδομένων (dbadmin) Published on PRISMA Win Help - Megasoft (http://docs.megasoft.gr) Home > Εμπορική Διαχείριση > Διαχείριση Βάσης Δεδομένων (dbadmin) Διαχείριση Βάσης Δεδομένων (dbadmin) Μέσα από τη διαχείριση βάσης δεδομένων

Διαβάστε περισσότερα

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Κεφάλαιο 2 Εισαγωγή Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Η Logo είναι μία από τις πολλές γλώσσες προγραμματισμού. Κάθε γλώσσα προγραμματισμού έχει σκοπό τη δημιουργία προγραμμάτων

Διαβάστε περισσότερα

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων...

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων... Μέρος 2 Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων... 211 Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων... 241 Kεφάλαιο 13 Ανάλυση δεδομένων... 257 Kεφάλαιο 14 Συναρτήσεις Μέρος Β... 285 Kεφάλαιο 15 Ευρετήριο

Διαβάστε περισσότερα

Βιωματικό εργαστήριο ηλεκτρονικών υπολογιστών. Οργάνωση εκπαιδευτικού υλικού με Η/Υ από δραστηριότητες στο Δημοτικό και στο Νηπιαγωγείο.

Βιωματικό εργαστήριο ηλεκτρονικών υπολογιστών. Οργάνωση εκπαιδευτικού υλικού με Η/Υ από δραστηριότητες στο Δημοτικό και στο Νηπιαγωγείο. Βιωματικό εργαστήριο ηλεκτρονικών υπολογιστών. Οργάνωση εκπαιδευτικού υλικού με Η/Υ από δραστηριότητες στο Δημοτικό και στο Νηπιαγωγείο. Εισηγητής : Χρήστος Μανώλης δάσκαλος Θεσσαλονίκη Οκτώβριος - Δεκέμβριος

Διαβάστε περισσότερα

Άνοιγμα (και κλείσιμο) της εφαρμογής Εγγράφου Κειμένου

Άνοιγμα (και κλείσιμο) της εφαρμογής Εγγράφου Κειμένου 3.1.1.1 Άνοιγμα (και κλείσιμο) της εφαρμογής Εγγράφου Κειμένου Ως επί το πλείστον δεν υπάρχουν διαφορές στη χρήση του Εγγράφου Κειμένου στα λειτουργικά Windows ή Linux. Η σημαντικότερη διαφορά παρουσιάζεται

Διαβάστε περισσότερα

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Διπλωματική Εργασία με θέμα: Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού Καραγιάννης Ιωάννης Α.Μ.

Διαβάστε περισσότερα

Μεταβλητές τύπου χαρακτήρα

Μεταβλητές τύπου χαρακτήρα Μεταβλητές τύπου χαρακτήρα 31 Μαρτίου 014 1 Μεταβλητές τύπου char Για χειρισμό χαρακτήρων η C διαθέτει τον τύπο char. Ο τύπος είναι βαθμωτός δηλαδή ακέραιης αναπαράστασης. Τυπικά έχει μέγεθος ενός byte

Διαβάστε περισσότερα

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει

Διαβάστε περισσότερα

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο) TEC610 (ΣΤ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Εαρινό εξάμηνο Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου 49 Διδακτικές ενότητες 6.1 Γλώσσες και εργαλεία προγραμματισμού 6.2 Σύγχρονα προγραμματιστικά περιβάλλοντα Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν την ανάγκη ύπαρξης τόσο

Διαβάστε περισσότερα

UTECO ABEE ΒΙΟΜΗΧΑΝΙΚΟΣ & ΝΑΥΤΙΛΙΑΚΟΣ ΑΥΤΟΜΑΤΙΣΜΟΣ

UTECO ABEE ΒΙΟΜΗΧΑΝΙΚΟΣ & ΝΑΥΤΙΛΙΑΚΟΣ ΑΥΤΟΜΑΤΙΣΜΟΣ IMAGO F3000 Συνοπτική περιγραφή Αυτοί οι ελεγκτές διαδικασίας χτίζονται σε ένα σχεδιασμό επεκτάσιμης μονάδας, και είναι κατάλληλοι για τον έλεγχο ρύθμιση λειτουργίας, ψησίματος, καπνίσματος και ελέγχου

Διαβάστε περισσότερα

Θεωρία Προγραμματισμού

Θεωρία Προγραμματισμού Θεωρία Προγραμματισμού 1) Τι ονομάζουμε Αλγόριθμο; Ονομάζεται μια ακολουθία από πεπερασμένο αριθμό εντολών, που αν εκτελεστούν με ακρίβεια, οδηγούν στη πραγματοποίηση μιας εργασίας. 2) Τι ονομάζουμε ανάλυση

Διαβάστε περισσότερα

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro Για να μπορέσουμε να εισάγουμε δεδομένα από το πληκτρολόγιο αλλά και για να εξάγουμε εμφανίσουμε αποτελέσματα στην οθόνη του υπολογιστή χρησιμοποιούμε τις εντολές Εισόδου και Εξόδου αντίστοιχα. Σύνταξη

Διαβάστε περισσότερα

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Μάθημα 4.5 Η Μνήμη - Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Όταν ολοκληρώσεις το μάθημα αυτό θα μπορείς: Να αναφέρεις τα κυριότερα είδη μνήμης

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές

ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η χρησιμοποίηση κάποιων εφαρμογών που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό.

Διαβάστε περισσότερα

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

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

Λειτουργικά Συστήµατα

Λειτουργικά Συστήµατα Λειτουργικά Συστήµατα UNIX Ιστορία του UNIX 1940-50 υπολογιστές για ένα άτοµο και µία εργασία για κάθε χρονική περίοδο επικράτηση batch systems 1960 ερευνητικά συστήµατα διαµοιρασµού χρόνου Dartmouth College:

Διαβάστε περισσότερα

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

Διαβάστε περισσότερα

Πρόλογος... xiii ΜΕΡΟΣ 1 1 Εισαγωγή στο Excel Βασικές λειτουργίες του Excel... 21

Πρόλογος... xiii ΜΕΡΟΣ 1 1 Εισαγωγή στο Excel Βασικές λειτουργίες του Excel... 21 Πρόλογος... xiii ΜΕΡΟΣ 1 1 Εισαγωγή στο Excel...3 1.1 Τι νέο υπάρχει στο Excel 2016...4 1.1.1 Νέες λειτουργίες του Excel 2016...4 1.2 Διάφοροι τρόποι εκκίνησης του Excel...6 1.3 Εξοικείωση με το περιβάλλον

Διαβάστε περισσότερα

Στο εργαστήριο θα μελετηθούν: Διδάσκων: Γιώργος Χατζηπολλάς. Εργαστήριο 2: Εργαλεία Συστήματος UNIX. Ομάδες για παρουσίαση

Στο εργαστήριο θα μελετηθούν: Διδάσκων: Γιώργος Χατζηπολλάς. Εργαστήριο 2: Εργαλεία Συστήματος UNIX. Ομάδες για παρουσίαση Εργαστήριο 2: Εργαλεία Συστήματος UNIX Στο εργαστήριο θα μελετηθούν: Ομάδες για παρουσίαση sed (Stream EDitor) Παραδείγματα χρήσης sed Διδάσκων: Γιώργος Χατζηπολλάς 2-1 Ομάδες Παρουσίασης Group Name Description

Διαβάστε περισσότερα

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο Το περιβάλλον εργασίας Ανοίγοντας την Ελληνική Έκδοση του FrontPage, για πρώτη φορά, η εικόνα που θα συναντήσουμε είναι αυτή της Εικόνας 1 με τα Μενού Εντολών και τη Γραμμή Εργαλείων, στο πάνω μέρος της

Διαβάστε περισσότερα

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας Περιεχόμενα Κεφάλαιο 1 Microsoft Excel 2010... 7 Κεφάλαιο 2 Η δομή ενός φύλλου εργασίας... 19 Κεφάλαιο 3 ημιουργία νέου βιβλίου εργασίας και καταχώριση δεδομένων... 24 Κεφάλαιο 4 Συμβουλές για την καταχώριση

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: ΕΙΑΓΩΓΗ ΣΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 9o ΕΡΓΑΣΤΗΡΙΟ

ΜΑΘΗΜΑ: ΕΙΑΓΩΓΗ ΣΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 9o ΕΡΓΑΣΤΗΡΙΟ 9o ΕΡΓΑΣΤΗΡΙΟ ΣΤΟΧΟΣ σενάρια φλοιού ΑΣΚΗΣΗ 1 Να γράψετε ένα σενάριο φλοιού (shell script) που : 1. θα δέχεται ως ορίσματα εισόδου : το όνομα ενός καταλόγου (να ελέγξετε την ύπαρξη του καταλόγου). μια επέκταση

Διαβάστε περισσότερα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

Διαβάστε περισσότερα

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Δοκιμή Έλεγχος Αλγορίθμου Για να

Διαβάστε περισσότερα

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

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

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Επισκόπηση Λ.Σ. Εργαστηριακές Ασκήσεις

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Επισκόπηση Λ.Σ. Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

Διαβάστε περισσότερα

Εγκατάσταση του Lazarus

Εγκατάσταση του Lazarus Εισαγωγή στο Προγραμματισμό με τη PASCAL ΠΕΡΙΕΧΟΜΕΝΑ: Πώς να κατεβάσετε και να εγκαταστήσετε το περιβάλλον προγραμματισμού Lazarus. Εισαγωγή στη PASCAL. Εγκατάσταση του Lazarus Γιατί η PASCAL? Έτσι, η

Διαβάστε περισσότερα

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Εργαστήριο 6 Εντολές Επανάληψης Η δομή Επιλογής στη PASCAL H δομή Επανάληψης στη PASCAL. Ρεύμα Εισόδου / Εξόδου.. Ρεύμα Εισόδου / Εξόδου. To πρόγραμμα γραφικών gnuplot. Γραφικά στη PASCAL. Σκοπός 6.1 ΕΠΙΔΙΩΞΗ

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ - ΓΛΩΣΣΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τεχνικές Σχεδίασης Αλγορίθμων Εισαγωγή στον Προγραμματισμό - ΓΛΩΣΣΑ Επιμέλεια: Ομάδα Διαγωνισμάτων από Το στέκι των πληροφορικών ο Θέμα 1 Α. α) Ποια είναι

Διαβάστε περισσότερα

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Εργαστήριο 4: 4.1 Η Δομή Ελέγχου if Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Γενική Μορφή: Παρατηρήσεις:

Διαβάστε περισσότερα

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Προγραμματισμός Διαχείρισης Συστημάτων Ι Προγραμματισμός Διαχείρισης Συστημάτων Ι Μάθημα 3ο Επεξεργαστές κειμένου Μιχαηλίδης Παναγιώτης Επεξεργαστές κειμένου Στα προηγούμενα μαθήματα είδαμε εντολές για τον χειρισμό αρχείων στο σύστημα αρχείων

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Κεφάλαιο 6 «Εισαγωγή στον Προγραμματισμό» Στέφανος Ουγιάρογλου Διαφάνειες από υλικό του Χ. Μουρατίδη Προγραμματισμός Η/Υ Ο προγραμματισμός είναι η διατύπωση

Διαβάστε περισσότερα

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Εισαγωγή Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Μεταγλωττιστής Αρχικό πρόγραμμα (source program) Μεταγλωττιστής Τελικό πρόγραμμα (object program) Διαγνωστικά μηνύματα Μεταγλωττιστής Παίρνει σαν

Διαβάστε περισσότερα

ΗΥ101: Εισαγωγή στην Πληροφορική

ΗΥ101: Εισαγωγή στην Πληροφορική Δρ. Χρήστος Ηλιούδης Τι είναι η ; Η διαδικασία του προγραμματισμού είναι μία πολύπλοκη διαδικασία που συχνά οδηγεί σε λάθη (πραγματοποιείται από ανθρώπους!!!). Τα προγραμματιστικά λάθη λέγονται bugs και

Διαβάστε περισσότερα

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

Διαβάστε περισσότερα

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Διαβάστε περισσότερα