Προγραμματισμοσ υπολογιστη Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα Προγραμματισμοσ υπολογιστη Κεφάλαιο 7ο | 7.1 – 7.38
7.1 Προγραμματιζόμενη μηχανή Κύριο διακριτικό γνώρισμα του υπολογιστή είναι η δυνατότηα προγραμματισμού του, με τη λειτουργία του να καθορίζεται από το πρόγραμμα που εκτελεί κάθε στιγμή. Ο προγραμματισμός, αποτελεί έναν από τους βασικούς τομείς της επιστήμης των υπολογιστών. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
7.3 Πρόγραμμα Για να εκτελέσει ένας ηλεκτρονικός υπολογιστής ακόμη και την πιο απλή εργασία, θα πρέπει να του έχουν δοθεί λεπτομερείς οδηγίες για να την επιτελέσει. Αυτές οι οδηγίες αποτελούν το πρόγραμμα και εκτελούνται από την κεντρική μονάδα επεξεργασίας (ΚΜΕ) του υπολογιστή. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
7.3.2 Η γλώσσα μηχανής Τα πρώτα προγράμματα γράφονταν σε γλώσσα μηχανής, γλώσσα προγραμματισμού, της οποίας το αλφάβητο είναι το 0 και το 1. Ωστόσο η γραφή προγραμμάτων άμεσα σε γλώσσα μηχναής είναι μια πολύ δύσκολη και αντιπαραγωγική εργασία για δύο κυρίως λόγους: Δυσκολία απομνημόνευσης των εντολών Δυσκολία εντοπισμού λαθών Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
7.3.2 Η γλώσσα μηχανής Η γλώσσα μηχανής διαφέρει για κάθε τύπο ΚΜΕ. Κάθε εντολή στη γλώσσα μηχανής αποτελείται από δύο τμήματα, τον κωδικό λειτουγρίας και τον τελεστέο. Ο κωδικός λειτουργίας προσδιορίζει τη λειτουργία της εντολής (αποθήκευσε, πρόσθεσε κ.α.). Ο τελεστέος αφορά τα δεδομένα στα οποία δρα η εντολή. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
7.3.2 Γλώσσα μηχανής Οι εντολές που αναγνωρίζει η ΚΜΕ ανήκουν σε μια από τις πιο κάτω κατηγορίες: Εντολές μεταφοράς δεδομένων μεταξύ της ΚΜΕ και της κεντρικής μνήμης Εντολές μεταφοράς δεδομένων μεταξύ των καταχωρητών Εντολές αριθμητικών πράξεων Εντολές λογικών πράξεων Εντολές ελέγχου της ροής εκτέλεσης των εντολών Διάφορες βοηθητικές εντολές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
Γλώσσα Μηχανής Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
7.3.3 Συμβολικές Γλώσσες Μια πρώτη προσπάθεια για τη διευκόλυνση της γραφής προγραμμάτων ήταν η γραφή τους σε συμβολική γλώσσα (assembly). Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
7.33 Συμβολικές γλώσσες Στις συμβολικές γλώσσες, σε κάθε εντολή γλώσσς μηχανής αντιστοιχίζεται μια λέξη η οποία θυμίζει το σκοπό της εντολής. Επί πλέον δίνεται η δυνατότητα να χρησιμοποιούνται, στη θέση αριθμών ονόματα σταθερών ή μεταβλητών. Για παράδειγμα η εντολή σε γλώσσα μηχανής θα μπορούσε στη συμβολική γλώσσα να έχει τη μορφή Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
7.3.3 Συμβολικές γλώσσες Τμήμα προγράμματος σε συμβολική γλώσσα για επεξεργαστή Intel Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
7.3.4 Γλώσσες υψηλού επιπέδου Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
7.3.4 Γλώσσες υψηλού επιπέδου Οι συμβολικές γλώσσες διευκόλυναν τη γραφή προγραμμάτων όμως ο προγραμματισμός εξακολουθεί να είναι μια επίπονη διαδικασία, καθώς οι εντολές είναι σε αντιστοιχία με τη γλώσσα μηχανής Τα προγράμματα μπορούνα να εκτελεστούν μονο από τον τύπο υπολογιστή για τον οποίο είναι γραμμένα. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
7.3.4 Γλώσσες υψηλού επιπέδου Για να αντιμετωπιστουν τέτοιου είδους προβλήματα, δημιουργήθηκαν και εξελίχθηκαν οι νέες γλώσσες προγραμματισμού Απλές Ανεξάρτητες από τον τύπο του υπολογιστή Με φιλικό σύνολο εντολών Οι γλώσσες αυτές ονομάστηκαν υψηλού επιπέδου. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
7.3.5 Ένα παράδειγμα Έστω ότι θέλουμε να προσθέσουμε το περιεχόμενο δύο θέσεων μνήμης και να καταχωρίσουμε τοο αποτέλεσμα σε μία Τρίτη. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
7.3.6 Ιστορία γλωσσών υψηλού επιπέδου Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
FORTRAN Σχεδιάτηκε από ομάδα της IBM για υπολογισμό αλγεβρικών παραστάσεων. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
ALGOL Έγινε ιδιαίτερα γνωστή, γιατί υλοποίησε αξιόλογες ιδέες όπως ο δομημένος προγραμματισμός Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
COBOL (Common Buisiness Oriented Language) Κοινή Γλώσσα Εμπορικού Προσανατολισμού. Σχεδιάστηκε από το Υπουργείο Άμυνας των Η.Π.Α. Οδήγησε στην επινόηση συστημάτων διαχείρισης βάσεων δεδομένων. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
BASIC Αναπτύχθηκε ως μια γλώσσα για τη διδασκαλία προγραμματισμού σε φοιτητές. Σημέρα χρησιμοποιείται ως μια κανονική γλώσσα ανάπτυξης εφαρμογών. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
SIMULA Βασισμένη στην ALGOL με βασικό τομέα εφαρμογής της την προσομοίωση Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
LISP Πεδίο εφαρμογής της η τεχνητή νοημοσύνη. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
LOGO Έχει παιδαγωγικές προδιαγραφές για την επίλυση προβλημάτων και από μαθητές μικρής ηλικίας. Σημαντικό εργαλείο στην διερεύνηση γραφικών σχημάτων. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
PASCAL Οι στόχοι σχεδιαμού της επικεντρώθηκαν γύρω από την παροχή ορισμένων δυνατοτήτων που θα οδηγούσαν σε αποδοτικό κώδικα κατά τη μεταγλώττιση. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
C Κατάλληλη για τη συγγραφή λειτουργικών συστημάτων. Το μεγαλύτερο μέρος του συστήματος UNIX γράφτηκε σε C. Χρησιμοποιείται για την ανάπτυξη λειρογυρικών συστημάτων και εφαρμογών. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
C++ Εξέλιξη της C προς την κατεύθυνση του αντικειμενοστραφούς προγραμματισμού. Είναι η γλώσσα που κυριαρχεί στην κατασκευή προγραμμάτων σε παραθυρικά περιβάλλοντα. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
SMALLTALK Πρόκειται για λειτουργικό σύστημα και ταυτόχρονα για γλώσσα αντικειμενοστρεφούς προγραμματισμού. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
ADA Κατάλληλη για τον προγραμματισμό Ενσωματωμένων Υπολογιστικών Συστημάτων. Οι εφαρμογές αυτές χαρακτηρίζοτναι από μεγάλο μέγεθος και υψηλή πολυπλοκότητα. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
JAVA Γλώσσα για προγράμματα προσαρμοσμένα στις ανάγκες του παγκόσμιου ιστού και του Διαδικτύου. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
PROLOG Βασίζεται στη μαθηματική λογική και χρησιμοποιείται όπως και η LISP σε εφαρμογές τεχνητής νοημοσύνης Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
SQL Γλώσσα επικοινωνίας με τις σχεσιακές βάσεις δεδομένων. Πρωτοεμφανίστηκε από την εταιρεία ORACLE. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
Γενιές γλωσσών προγραμματισμού 1η γενιά | Γλώσσα μηχανής 2η γενιά | Συμβολικές Γλώσσες 3η γενιά | Γλώσσες υψηλού επιπέδου 4η γενιά | Γλώσσες που είναι πιο κοντά στη φυσική γλώσσα απ’ ότι οι συνήθεις γλώσσες υψηλού επιπέδου (π.χ. sql) Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
Ραγδαία ανάπτυξη λογισμικού Το κόστος ανάπτυξης και το κόστος χρήσης του λογισμικού μειώθηκαν σημαντικά για τους εξής λόγους: Η εκμάθηση μιας γλώσσας προγραμματισμού έγινε ευκολότερη Η κατασκευή λογισμικού έγινε απλούστερη Προγράμματα που έχουν γραφτεί σε γλώσσα υψηλού επιπέδου μπορούν να εκτελεστούν σε υπολογιστές με διαφορετική ΚΜΕ. Η τυποποίηση των διαφόρων γλωσσών γίνετια από το ANSI. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
7.3.7 Εξάρτηση των γλωσσών από το σκοπό Ανάλογα με το σκοπό για τον οποίο αρχικά σχεδιάστηκαν οι διάφορες γλώσσες, χωρίζονται σε ειδικού και γενικού σκοπού. Ειδκικού Σκοπού COBOL | επίλυση εμπορικών προβλημάτων FORTRAN | επιστημοντικές εφαρμογές LISP | εφαρμογές τεχνητής νοημοσύνης Γενικού Σκοπού C JAVΑ Χρησιμοποιούνται σε διαφορετικές περιοχές εφαρμογών με εξίσου καλά αποτελέσματα Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
Γλώσσες υψηλού επιπέδου 7.3.8 Τα προγράμματα που είναι γραμμένα σε κάποια γλώσσα υψηλού επιπέδου να «μεταφραστούν» σε γλώσσα μηχανής. Συμβολικές Γλώσσες Συμβολομεταφραστές Γλώσσες υψηλού επιπέδου Μεταγλωττιστές Διερμηνευτές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
Συμβολομεταφραστές Οι εντολές των συμβολικών γλωσσών βρίσκονται σε αντιστοιχία μία προς μία με αυτές της γλώσσας μηχανής. Η μετατροπή των προγραμμάτων από συμβολική γλώσσα σε γλώσσα μηχανής γίνεται από προγράμματα που ονομάζονται συμβολομεταφραστές. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
Μεταγλωτισστές - Διερμηνευτές Δύο τρόποι για την εκτέλεση προγραμμάτων που είναι γραμμένα σε γλώσσες υψηλού επιπέδου Με τη χρήση μεταγωττιστή Με τη χρήση διερμηνευτή Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
Μεταγλωττιστής Διαδικασία Γραφή του προγράμματος σε γλώσσα υψηλού επιπέδου (πηγαίο πρόγραμμα). Το πηγαίο πρόγραμμα μεταγλωττίζεται σε γλώσσα μηχανής οπότε προκύπτει το αντικείμενο πρόγραμμα. Για να ολοκληρωθεί μεταγλώττιση το πρόγραμμα πρέπει να είναι συνακτικά σωστό γι’ αυτό ελέγχεται για συνατικά λάθη. Από το αντικείμενο πρόγραμμα συνήθως λείπει κώδικας κοινής χρήσης (κώδικας που διαχειρίζεται τις λειτουργίες εισόδου εξόδου ή μαθηματικές συναρτήσεις). Ο συνδέτης συνδέει το αντικείμενο πρόγραμμα με τα απαραίτητα προγράμματα από τις βιβλιοθήκες και παράγει το αυτόνομο εκτελέσιμο πρόγραμμα που εκτελείται από την ΚΜΕ. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
Μεταγλώττιση Τα βήματα είναι: Συγγραφή Μεταγλώττιση Σύνδεση Εκτέλεση Τα βήματα είναι: Συγγραφή Μεταγλώττιση Σύνδεση Εκτέλεση Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα
Διερμηνευτής Το πρόγραμμα γράφεται με τη βοήθεια κάποιου συντάκτη κειμένου ενσωματωμένου στο διερμηνευτή. Ο διερμηνευτής αναλαμβάνει να εκτελέσει μία μία τις εντολές του προγράμματος. Ο διερμηνευτής δεν μεταγλωττίζει το πρόγραμμα σε γλώσσα μηχανής, αλλά εκτελεί ο ίδιος το πρόγραμμα. Συνήθως ο διερμηνευτής μετασχηματίζει το πρόγραμμά μας σε μια ενδιάμεση μορφή και στη συνέχεια το εκτελεί. Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα