ΤΙ ΕΙΝΑΙ Ο ΥΠΟΛΟΓΙΣΤΗΣ Ο όρος είναι συντομογραφία του όρου «Αυτόματος, Ηλεκτρονικός Ψηφιακός Υπολογιστής Γενικού Σκοπού» [1]. Αυτόματος Μετά την έναρξη της λειτουργίας του εργάζεται μόνος του εκτελώντας μια διαδικασία σειράς εντολών που λέγεται πρόγραμμα. Ηλεκτρονικός Είναι κατασκευασμένος απο ηλεκτρονικά στοιχεία (κυρίως ολοκληρωμενα κυκλωματα). Ψηφιακός Επεξεργάζεται διακριτές πληροφορίες που μοντελοποιούνται με τη μορφή δυαδικων ψηφίων. Γενικού σκοπού Μπορεί να δεχθεί και να εκτελέσει διαφορετικά προγράμματα (σειρές εντολών) και να διεκπεραιωσει πολλές διαφορετικές λειτουργίες. ΤΙ ΔΕΝ ΕΙΝΑΙ Ο ΥΠΟΛΟΓΙΣΤΗΣ Δεν είναι Ηλεκτρονικός Εγκέφαλος. Δεν είναι αριθμομηχανή. Δεν είναι αυτόνομη λογικά σκεπτόμενη μονάδα. Δεν έχει ανεξάρτητη λειτουργία πέρα από το πρόγραμμα πού έχει ορισθεί να εκτελέσει πιστά. Δεν είναι σε θέση να εκτελέσει λειτουργίες οι οποίες δεν έχουν ορισθεί καί μοντελοποιηθεί με ακρίβεια. ΟΙ Η/Υ ΜΠΟΡΟΥΝ Να επεξεργασθούν τεράστιους όγκους μοντελοποιημένων δεδομένων (data modelling and data representation). Να εκτελέσουν πιστά επαναληπτικές, πολύπλοκες, και μακρές διαδικασίες (algorithms and processes). Να επιλύσουν παραμετρικά, μοντελοποιημένα προβλήματα με υψηλή απόδοση, και αξιοπιστία (performance time/space, reliability/robustness). ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ Άβακας Ραβδοι του Napier (Λογαριθμικός Κανόνας) 1600 Αριθμητική Μηχανή του Pascal 1642 Μηχανοποίηση του Πολ/σμού Leibnitz 1694 Υφαντουργική Μηχανή με κάρτες Jacquard - 1745 Διαφορική Μηχανή Babbage 1822 Αναλυτική Μηχανή (Μνήμη, ελεγχος ροής, αριθμητική υπολογιστική μονάδα, μονάδες εισόδου/εξόδου Parmalee, Webb, Babbage 1868 Ηλεκτομηχανική μηχανή με διάτρητα δελτία Hollerith 1891 Πρώτη αυτόματη υπολογιστική μηχανή ΙΒΜ 1929 Υπολογιστής με Ηλεκτονόμους από την Bell Telephone Labs - 1938
Ψηφιακός Η/Υ ENIAC 1946 UNIVAC 1951 Υπολογιστές με Μαγνητικό Τύμπανο 1953 Υπολογιστές με δίσκους 1970 s micro computers Personal Computers 80 s Super Computers 80 s 90 s Ubiquitous Computing and Devices 1990 και μετά ΟΡΓΑΝΩΣΗ ΚΑΙ ΔΟΜΗ ΤΟΥ Η/Υ Ο Η/Υ είναι μια επαναπρογραμματιζόμενη συσκευή επεξεργασίας πληροφοριών. Ο τυπικός Η/Υ αποτελείται από: Τήν Εισόδου Τήν Κεντρική Μνήμη Τήν Αριθμητική/Λογική Τήν Ελέγχου Τήν Εξόδου Τυπικό Διάγραμμα Οργάνωσης Η/Υ Εισόδου Εξόδου Κεντρική Μνήμη Ελεγχου Αριθμητική/Λογική
ΔΙΑΓΡΑΜΜΑ Η/Υ (Συγκεκριμένο) Κεντρική Μνήμη Καταχωρητής Διευθύνσεων Μνήμης Αποκωδικοποιητής Διευθύνσεων Ελέγχου... Καταχωρητής Λέξεων Α/Λ Ι/Ο Κώδικας Λειτουργίας Διεύθυνση Συσσωρευτής Καταχωρητής Αποκωδικοποιητ ής Διευθύνσεων Απαριθμητής Εντολών Κυκλώματα Πράξεων ΜΟΝΑΔΑ ΕΙΣΟΔΟΥ Το υποσύστημα το οποίο κωδικοποιεί τις πληροφορίες που προέρχονται από το εξωτερικό περιβάλλον. Πληκτρολόγιο (keyboard) Ευαίσθητες επιφάνειες (smart panels) Συσκευές ανάγνωσης μαγνητικών καρτών (magnetic card readers) Συσκευές ανάγνωσης ήχου και εικόνας (sound and image acquisition) Συσκευές μετρήσεων (sensors) Κ.λ.π. ΚΕΝΤΡΙΚΗ ΜΝΗΜΗ Το υποσύστημα το οποίο είναι υπεύθυνο για την προσωρινή αποθήκευση όλων των πληροφοριών (εντολές καί δεδομένα) που είναι απαραίτητες για την λειτουργία του Η/Υ και την εκτέλεση ενός προγράμματος. Η Κεντρική Μνήμη επικοινωνεί με τις Μονάδες Εισόδου/Εξόδου, την Α/Λ, καί την Ελεγχου. Τα τεχνικά χαρακτηριστικά της Κεντρικής Μνήμης είναι Χωρητικότητα Ταχύτητα Μονιμότητα αποθηκεύσεως
ΜΟΝΑΔΑ ΕΛΕΓΧΟΥ Το υποσύστημα το οποίο είναι υπεύθυνο γιά τον συντονισμό της διαδοχής των πράξεων στην Α/Λ, και των υπολοίπων μονάδων του Η/Υ. Κατά τη διάρκεια εκτέλεσης ενός προγράμματος η Ελέγχου λαμβάνει εντολές (ηλεκτρικά σήματα) και σε καθορισμένες χρονικές στιγμές (περιοδικά) στέλνει σήματα ελέγχου πρός την Κεντρική Μνήμη, την Α/Λ, τις Μονάδες Εισόδου/Εξόδου. ΜΟΝΑΔΑ ΕΞΟΔΟΥ Το υποσύστημα το οποίο απο-κωδικοποιεί τις πληροφορίες που προέρχονται από τον Η/Υ και τις διανέμει πρός το εξωτερικό περιβάλλον. Οθόνη (display) Εκτυπωτή (printer) Συσκευές ήχου (audio) Ηλεκτρομηχανικές συσκευές (actuators) Κ.λ.π. ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ Η/Υ (1) Ο Η/Υ έχει κατασκευασθεί να εκτελεί μια προκαθορισμένη αλληλουχία εντολών (προγράμματα). Υπάρχουν δύο βασικές κατηγορίες προγραμμάτων: Τά προγράμματα που καθορίζουν την εσωτερική λειτουργία του υπολογιστή (Λειτουργικό Σύστημα Operating System) Τα προγράμματα που ορίζει ο χρήστης (Προγράμματα εφαρμογών, Application Software) ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ Η/Υ (2) Οι αλληλουχίες εντολών (προγράμματα) εκτελούνται σάν μονάδες διαδικασιών (processes) σε συγκεκριμένες περιοχές μνήμης του υπολογιστή. Σε μια αλληλουχία εντολών (δηλαδή μέσα σ ένα πρόγραμμα), ή μεταξύ διαφορετικών αλληλουχιών (δηλαδή σε διαφορετικά προγράμματα οι περιπτώσεις διαδοχής εντολών είναι Διαδοχική εκτέλεση (μία εντολή εκτελέιται μετά την άλλη) Η αλληλουχία Α διατηρεί τον έλεγχο Διακλάδωση Η αλληλουχία Α μεταφέρει τον έλεγχο στη Β, με, ή χωρίς κάποια συνθήκη) Διακοπή Η Β αποσπά τον έλεγχο από την Α Δανεισμός ελέγχου Η Α δανείζει τον έλεγχο στη Β
ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ Η/Υ (3) Η εκτέλεση ενός προγράμματος επιτυγχάνεται με τήν επαναληπτική χρησιμοποίηση βασικών διαδικασιών του υπολογιστή. Οι πιο κύριες είναι Ανάκληση απο τη μνήμη της επόμενης εντολής Αποκωδικοποίηση Ερμηνεία της εντολής Ανάκληση των δεδομένων (όταν αυτό χρειάζεται) Εκτέλεση της λειτουργίας της αποκωδικοποιημένης εντολής σύμφωνα με τον ορισμό αυτής της εντολής Κάθε μία από τις παραπάνω βασικές διαδικασίες εκτελούνται σε σταθερά χρονικά διαστήματα, τα οποία καθορίζονται από ηλεκτρικούς παλμούς (ρολόι) Τα παραπάνω συμβαίνουν σε δύο βασικους κύκλους Κύκλο ανάκλυσης (fetch cycle) Κύκλο εκτέλεσης (execution cycle) ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ Η/Υ (4) Παράδειγμα: ADD 256 Η θέση μνήμης στή παραπάνω εντολή ορίζεται να είναι 256. Η διεύθυνση αυτή μεταφέρεται στόν καταχωρητή διευθύνσεων μνήμης Ο καταχωρητής διευθύνσεων μνήμης καθορίζει την θέση μνήμης 256 καί το περιεχόμενό της (π.χ. Τον αριθμό 15) Το περιεχόμενο της θέσης μνήμης με διεύθυνση 256 το οποίο είναι 15, τοποθετείται στον καταχωρητή λέξεων Επειδή το περιεχόμενο αντιπροσωπεύει δεδομένο μεταφέρεται στόν καταχωρητή της Α/Λ μονάδας Η μονάδα ελέγχου εκπέμπει τα κατάλληλα ηλεκτρικά σήματα ελέγχου για νά επιτύχει την πρόσθεση του περιεχομένου του καταχωρητου Α/Λ και του περιεχομένου του συσσωρευτού Α/Λ με την βοήθεια των κυκλωμάτων πράξεων της Α/Λ Το αποτέλεσμα μεταφέρεται στον συσσωρευτή της Α/Λ αντικαθιστώντας το προηγούμενο περιεχόμενο του συσσωρευτή ΠΡΟΓΡΑΜΜΑΤΑ / ΣΥΜΒΟΛΟΜΕΤΑΦΡΑΣΗ Όπως είπαμε, ένα πρόγραμμα δεν είναι τίποτε παραπάνω από μία ακολουθία εντολών πού μπορούν να εκτελεσθούν από τα ηλεκτρονικά κυκλώματα του Η/Υ Όμως το τι μπορεί να εκτελεσθεί από τα ηλεκτρονικά κυκλώματα του Η/Υ και το τι μπορεί εύκολα ένας άνθρωπος να προγραμματίσει είναι τελείως διαφορέτικα. Ο Η/Υ εκτελεί βασικές λειτουργίες στά κυκλώματά του (001010110101 π.χ. S=C+D) Γλωσσα Μηχανής (Machine Language) Ο προγραμματιστής όμως θέλει να ορίζει λειτουργίες σε πιο υψηλό επίπεδο χρησιμοποιώντας μια πιο φυσική γλώσσα που να θυμιζει π.χ. Αγγλικά Ανώτερη Γλωσσα Προγραμματισμού (High Level Language) ή Πηγαία Γλώσσα (Source Code) Κάπου λοιπόν αυτές οι δυο απαιτήσεις πρέπει να συναντηθούν Συμβολική Γλώσσα (Assembly Language) Χρειαζόμαστε λοιπόν καποιούς μεταφραστές από τη μία γλώσσα στην αλλή Συμβολομεταφραστες (assembler) και μεταγλωτιστές (compiler)
Γενικά Περί Γλωσσών Συντακτικό και Ερμηνεία Συντακτικό ορίζει τους γραμματικούς κανόνες για μία σωστά δομημένη πρόταση Ερμηνεία ορίζει την σημασία της πρότασης Γλώσσα Μηχανής Είναι σε δυαδική μορφή και κά9ε λέξη έχει τη δομη (πρόσημο) αριθμός Συμβολική Γλώσσα Είναι σε συμβολική μορφή και κάθε εντολή έχει τη δομή εντολή - διεύθυνση Γλωσσα Προγραμματισμού Ανωτέρου Επιπέδου Πηγαία Γλώσσα Είναι σε συμβολική μορφή και καθε εντολή μοιάζει με Αγγλικά (στις περισσότερες γλώσσες προγραμματισμού) ΚΥΚΛΟΣ ΜΕΤΑΦΡΑΣΕΩΝ Πηγάιο Πρόγραμμα Μετάφραση Πρόγραμμα σε Συβολική Γλώσσα Optimization Εννοποιημένη Συμβολική Γλώσσα Linking Optimized Συμβολίκή Γλώσσα Γλώσσα Μηχανής Συμβολομετάφραση Φόρτωση Η/Υ Ανασκόπηση Γενικά Ιστορικά στοιχεία περί της εξέλιξης των Η/Υ. Γενική δομή και λειτουργία των Η/Υ. Γενικές αρχές γιά τις Γλώσσες Προγραμματισμού. Εισαγωγικές έννοιες γιά τη μετάφραση και συμβολομετάφραση προγραμμάτων.