ΚΕΦΑΛΑΙΟ 6 - sch.grusers.sch.gr/chtzokas/pdf_kef6.pdf · Προγραμματισμός...
TRANSCRIPT
03/01/09 Χαράλαμπος Τζόκας 1
ΚΕΦΑΛΑΙΟ 6
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
03/01/09 Χαράλαμπος Τζόκας 2
Πρόγραμμα - Προγραμματισμός
Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης ενός προβλήματος
Προγραμματισμός: Διαδικασία μετατροπής ενός αλγόριθμου σε μορφή κατανοητή από τον υπολογιστή
03/01/09 Χαράλαμπος Τζόκας 3
Ιστορική αναδρομή
Γλώσσες μηχανής Συμβολικές γλώσσες Γλώσσες Υψηλού επιπέδου Γλώσσες 4ης γενιάς Γλώσσες οπτικού προγραμματισμού και
οδηγούμενου από γεγονός προγραμματισμού **
03/01/09 Χαράλαμπος Τζόκας 4
Γλώσσες Μηχανής ΠΛΕΟΝΕΚΤΗΜΑΤΑ
Εντολές σε μορφή 0,1 Πολύ γρήγορες γιατί εκτελούνται απευθείας
ΜΕΙΟΝΕΚΤΗΜΑΤΑ Στενά συνδεδεμένες με την αρχιτεκτονική του
υπολογιστή (άρα ο προγραμματιστής πρέπει να γνωρίζει πολύ καλό Hardware )
Πολύπλοκα και μακροσκελή προγράμματα Δύσκολη γραφή-διόρθωση- συντήρηση Δεν μεταφέρονται από ένα υπολογιστή σε κάποιον
άλλο διαφορετικού τύπου
03/01/09 Χαράλαμπος Τζόκας 5
Συμβολικές γλώσσες ( Assembly ) Ο κώδικας κάθε εντολής αντικαθίσταται από
κάποια λέξη ή συντομογραφία λέξεων Οι διευθύνσεις μνήμης αντικαθίστανται από
συμβολικές λέξεις Απαιτείται κάποιο πρόγραμμα που να
μεταφράζει τα σύμβολα σε γλώσσα μηχανής ( Συμβολομεταφραστής –Assembler)
03/01/09 Χαράλαμπος Τζόκας 6
Πλεονεκτήματα Πιο κατανοητές από τον άνθρωπο, αφού δεν
χρησιμοποιούν δυαδικά ψηφία Γρήγορες, αν και απαιτείται η χρήση του Assembler
Μειονεκτήματα Στενά συνδεδεμένες με την αρχιτεκτονική του υπολογιστή Πολύπλοκα και μακροσκελή προγράμματα Δύσκολη γραφή-διόρθωση- συντήρηση Δεν μεταφέρονται από ένα υπολογιστή σε κάποιον άλλο
διαφορετικού τύπου
Συμβολικές γλώσσες ( Assembly )
03/01/09 Χαράλαμπος Τζόκας 7
Πλεονεκτήματα Κατανοητά προγράμματα Ανεξαρτησία από τον τύπο του υπολογιστή
(Μεταφερσιμότητα ) Ευκολία εκμάθησης και εκπαίδευσης Ευκολότερη διόρθωση λαθών και
συντήρηση Ελάττωση χρόνου και κόστους παραγωγής
προγραμμάτων
Γλώσσες Υψηλού επιπέδου
03/01/09 Χαράλαμπος Τζόκας 8
Γλώσσες 4ης Γενιάς Ο χρήστης έχει την δυνατότητα ( χωρίς να
είναι προγραμματιστής) να: υποβάλει ερωτήσεις στο σύστημα, αναπτύσσει εφαρμογές που ανακτούν
πληροφορίες από βάσεις δεδομένων και να καθορίζει τον ακριβή τρόπο εμφάνισης των πληροφοριών
Απόκρυψη της αρχιτεκτονικής του υλικού Απόκρυψη της τεχνικής του
προγραμματισμού
03/01/09 Χαράλαμπος Τζόκας 9
Ταξινόμηση Γλωσσών ( 1)
Αλγοριθμικές ή διαδικασιακές Αντικειμενοστραφείς Συναρτησιακές Μη διαδικαστιακές ή πολύ υψηλού
επιπέδου Ερωταπαντήσεων
03/01/09 Χαράλαμπος Τζόκας 10
Επιστημονικής κατεύθυνσης Fortran
Εμπορικής κατεύθυνσης Cobol
Προγραμματισμού συστημάτων C
Τεχνητής νοημοσύνης LISP, PROLOG
Ειδικής χρήσης
Ταξινόμηση Γλωσσών ( 2)
03/01/09 Χαράλαμπος Τζόκας 11
Γλώσσες –πεδία χρήσης
Fortran Επιστημονικές εφαρμογές Basic Γενικής χρήσης Pascal εκπαίδευση Cobol Εμπορικές εφαρμογές C Συστημάτων Lisp- Prolog Τεχνητής νοημοσύνης Java Διαδικτύου
03/01/09 Χαράλαμπος Τζόκας 12
Χαρακτηριστικά φυσικών και τεχνητών γλωσσών Αλφάβητο Λεξιλόγιο Γραμματική
Τυπικό : Κανόνες ορισμού αποδεκτών λέξεων Συντακτικό: κανόνες για τη δημιουργία προτάσεων
απ’ τις επιτρεπτές λέξεις Σημασιολογία: κανόνες καθορισμού νοήματος
των λέξεων - προτάσεων
03/01/09 Χαράλαμπος Τζόκας 13
Διαφορές φυσικών – τεχνητών γλωσσών
Συνεχής εξέλιξη φυσικών γλωσσών Στασιμότητα τεχνητών αν και γίνονται
βελτιώσεις για διόρθωση αδυναμιών – κάλυψη μεγαλύτερου εύρους εφαρμογών
Αλλαγή διαλέκτου ( από pascal3.0 σε Pascal 7.2)
Επέκταση ( από Basic σε Visual Basic)
03/01/09 Χαράλαμπος Τζόκας 14
ΙΕΡΑΡΧΙΚΗ ΣΧΕΔΙΑΣΗ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Καθορισμός βασικών λειτουργιών σε ανώτερο επίπεδο
Διάσπαση κάθε λειτουργίας σε όλο και μικρότερες λειτουργίες μέχρι το τελευταίο επίπεδο που κάθε λειτουργία είναι απλή και επιλύεται εύκολα
Υλοποίηση της ιεραρχικής σχεδίασης με τμηματικό προγραμματισμό : κάθε επιμέρους λειτουργία αποτελεί ανεξάρτητη ενότητα που γράφεται ξεχωριστά από τα υπόλοιπα τμήματα
03/01/09 Χαράλαμπος Τζόκας 15
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Συνδυασμός ιεραρχικής σχεδίασης και
τμηματικού προγραμματισμού Χρήση μόνο τριών δομών ή συνδυασμό τους
Ακολουθία Επιλογή Επανάληψη
Πρόγραμμα ή ενότητα προγράμματος έχει ΜΙΑ είσοδο – ΜΙΑ έξοδο
03/01/09 Χαράλαμπος Τζόκας 16
Πλεονεκτήματα Δομημένου προγραμματισμού Δημιουργία απλούστερων προγραμμάτων Άμεση μεταφορά των αλγορίθμων σε
προγράμματα Διευκόλυνση της ανάλυσης του
προγράμματος σε τμήματα Περιορισμός λαθών Διευκόλυνση στην ανάγνωση και κατανόηση
από τρίτους Ευκολότερη διόρθωση και συντήρηση
03/01/09 Χαράλαμπος Τζόκας 17
Αντικειμενοστραφής προγραμματισμός Πρωτεύοντα δομικά στοιχεία ενός
προγράμματος είναι τα δεδομένα σε αντίθεση με τον παραδοσιακό προγραμματισμό που πρωτεύον στοιχείο είναι οι τρόποι επεξεργασίας που εφαρμόζονται πάνω στα δεδομένα
Με κατάλληλη μορφοποίηση των δεδομένων προκύπτουν τα αντικείμενα
Χρησιμοποίηση ιεραρχικής σχεδίασης- τμηματικού προγραμματισμού και αρχές δομημένου προγραμματισμού
03/01/09 Χαράλαμπος Τζόκας 18
Οπτικός προγραμματισμός και οδηγούμενος από τα γεγονότα
προγραμματισμός
Οπτικός: Δυνατότητα να δημιουργούμε γραφικά ολόκληρο το περιβάλλον της εφαρμογής ( παράδειγμα πλαίσια διαλόγου – μενού )
Οδηγούμενος ..: Δυνατότητα να ενεργοποιούνται λειτουργίες του προγράμματος με την εκτέλεση ενός γεγονότος ( κάνουμε κλικ σε ένα μέρος ή επιλέγουμε από ένα μενού )
Βοηθάει πολύ ο αντικειμενοστραφής προγραμματισμός
03/01/09 Χαράλαμπος Τζόκας 19
Παράλληλος Προγραμματισμός Αλλαγή αρχιτεκτονικής ΗΥ που διαθέτει
περισσότερες από ένα επεξεργαστές Μοιράζονται την ίδια μνήμη και εκτελούν
ταυτόχρονα διαφορετικά τμήματα του ίδιου προγράμματος
Θεωρητικά έχουν πολύ υψηλότερες ταχύτητες Τα παλιά προγράμματα πρέπει να τα
αλλάξουμε έτσι ώστε να επιτρέπεται η παράλληλη εκτέλεση
03/01/09 Χαράλαμπος Τζόκας 20
Μετάφραση προγραμμάτων
ΠΗΓΑΙΟ ΠΡΟΓΡΑΜΜΑ
ΑΝΤΙΚΕΙΜΕΝΟΠΡΟΓΡΑΜΜΑ
ΕΚΤΕΛΕΣΙΜΟΠΡΟΓΡΑΜΜΑ
ΜΕΤΑΓΛΩΤΙΣΤΗΣ ΣΥΝΔΕΤΗΣ-ΦΟΡΤΩΤΗΣ
03/01/09 Χαράλαμπος Τζόκας 21
Κατηγορίες μεταφραστών Μεταγλωττιστές
Μια φορά γίνεται Μεταγλώττιση και αν δεν
υπάρχουν λάθη Φόρτωση Σύνδεση Παραγωγή εκτελέσιμου
κώδικα για όλο το πρόγραμμα
Εκτέλεση του παραγόμενου εκτελέσιμου προγράμματος κάθε φορά που θέλει ο χρήστης
Πιο γρήγορη εκτέλεση
Διερμηνευτές
Κάθε φορά γίνεται Ανάλυση Έλεγχος Ανίχνευση Εκτέλεση κάθε εντολής
Πλεονέκτημα η άμεση εκτέλεση – άμεση διόρθωση
Δεν παράγεται εκτελέσιμος κώδικας για όλο το πρόγραμμα
Πιο αργό στην εκτέλεση
03/01/09 Χαράλαμπος Τζόκας 22
Είδη λαθών Λογικά
Σφάλματα πάνω στην υλοποίηση του αλγόριθμου
Εμφανίζονται μόνο κατά την εκτέλεση
Το πρόγραμμα μπορεί να εκτελεστεί αλλά το αποτέλεσμα …
Συντακτικά Σφάλματα πάνω στο
συντακτικό και την ορθογραφία
Εμφανίζονται κατά την μεταγλώττιση
Το πρόγραμμα δεν μπορεί να εκτελεστεί αν δεν διορθωθούν
03/01/09 Χαράλαμπος Τζόκας 23
Απαιτούμενα προγράμματα για την δημιουργία, μετάφραση και εκτέλεση
Συντάκτης Μεταγλωττιστής Συνδέτης -φορτωτής
Στα σύγχρονα ολοκληρωμένα προγραμματιστικά περιβάλλοντα παρέχονται μαζί με τον μεταγλωττιστή ότι άλλο χρειάζεται …
03/01/09 Χαράλαμπος Τζόκας 1
ΚΕΦΑΛΑΙΟ 6
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
03/01/09 Χαράλαμπος Τζόκας 2
Πρόγραμμα - Προγραμματισμός
Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης ενός προβλήματος
Προγραμματισμός: Διαδικασία μετατροπής ενός αλγόριθμου σε μορφή κατανοητή από τον υπολογιστή
03/01/09 Χαράλαμπος Τζόκας 3
Ιστορική αναδρομή
Γλώσσες μηχανής Συμβολικές γλώσσες Γλώσσες Υψηλού επιπέδου Γλώσσες 4ης γενιάς Γλώσσες οπτικού προγραμματισμού και
οδηγούμενου από γεγονός προγραμματισμού **
03/01/09 Χαράλαμπος Τζόκας 4
Γλώσσες Μηχανής ΠΛΕΟΝΕΚΤΗΜΑΤΑ
Εντολές σε μορφή 0,1 Πολύ γρήγορες γιατί εκτελούνται απευθείας
ΜΕΙΟΝΕΚΤΗΜΑΤΑ Στενά συνδεδεμένες με την αρχιτεκτονική του
υπολογιστή (άρα ο προγραμματιστής πρέπει να γνωρίζει πολύ καλό Hardware )
Πολύπλοκα και μακροσκελή προγράμματα Δύσκολη γραφή-διόρθωση- συντήρηση Δεν μεταφέρονται από ένα υπολογιστή σε κάποιον
άλλο διαφορετικού τύπου
03/01/09 Χαράλαμπος Τζόκας 5
Συμβολικές γλώσσες ( Assembly ) Ο κώδικας κάθε εντολής αντικαθίσταται από
κάποια λέξη ή συντομογραφία λέξεων Οι διευθύνσεις μνήμης αντικαθίστανται από
συμβολικές λέξεις Απαιτείται κάποιο πρόγραμμα που να
μεταφράζει τα σύμβολα σε γλώσσα μηχανής ( Συμβολομεταφραστής –Assembler)
03/01/09 Χαράλαμπος Τζόκας 6
Πλεονεκτήματα Πιο κατανοητές από τον άνθρωπο, αφού δεν
χρησιμοποιούν δυαδικά ψηφία Γρήγορες, αν και απαιτείται η χρήση του Assembler
Μειονεκτήματα Στενά συνδεδεμένες με την αρχιτεκτονική του υπολογιστή Πολύπλοκα και μακροσκελή προγράμματα Δύσκολη γραφή-διόρθωση- συντήρηση Δεν μεταφέρονται από ένα υπολογιστή σε κάποιον άλλο
διαφορετικού τύπου
Συμβολικές γλώσσες ( Assembly )
03/01/09 Χαράλαμπος Τζόκας 7
Πλεονεκτήματα Κατανοητά προγράμματα Ανεξαρτησία από τον τύπο του υπολογιστή
(Μεταφερσιμότητα ) Ευκολία εκμάθησης και εκπαίδευσης Ευκολότερη διόρθωση λαθών και
συντήρηση Ελάττωση χρόνου και κόστους παραγωγής
προγραμμάτων
Γλώσσες Υψηλού επιπέδου
03/01/09 Χαράλαμπος Τζόκας 8
Γλώσσες 4ης Γενιάς Ο χρήστης έχει την δυνατότητα ( χωρίς να
είναι προγραμματιστής) να: υποβάλει ερωτήσεις στο σύστημα, αναπτύσσει εφαρμογές που ανακτούν
πληροφορίες από βάσεις δεδομένων και να καθορίζει τον ακριβή τρόπο εμφάνισης των πληροφοριών
Απόκρυψη της αρχιτεκτονικής του υλικού Απόκρυψη της τεχνικής του
προγραμματισμού
03/01/09 Χαράλαμπος Τζόκας 9
Ταξινόμηση Γλωσσών ( 1)
Αλγοριθμικές ή διαδικασιακές Αντικειμενοστραφείς Συναρτησιακές Μη διαδικαστιακές ή πολύ υψηλού
επιπέδου Ερωταπαντήσεων
03/01/09 Χαράλαμπος Τζόκας 10
Επιστημονικής κατεύθυνσης Fortran
Εμπορικής κατεύθυνσης Cobol
Προγραμματισμού συστημάτων C
Τεχνητής νοημοσύνης LISP, PROLOG
Ειδικής χρήσης
Ταξινόμηση Γλωσσών ( 2)
03/01/09 Χαράλαμπος Τζόκας 11
Γλώσσες –πεδία χρήσης
Fortran Επιστημονικές εφαρμογές Basic Γενικής χρήσης Pascal εκπαίδευση Cobol Εμπορικές εφαρμογές C Συστημάτων Lisp- Prolog Τεχνητής νοημοσύνης Java Διαδικτύου
03/01/09 Χαράλαμπος Τζόκας 12
Χαρακτηριστικά φυσικών και τεχνητών γλωσσών Αλφάβητο Λεξιλόγιο Γραμματική
Τυπικό : Κανόνες ορισμού αποδεκτών λέξεων Συντακτικό: κανόνες για τη δημιουργία προτάσεων
απ’ τις επιτρεπτές λέξεις Σημασιολογία: κανόνες καθορισμού νοήματος
των λέξεων - προτάσεων
03/01/09 Χαράλαμπος Τζόκας 13
Διαφορές φυσικών – τεχνητών γλωσσών
Συνεχής εξέλιξη φυσικών γλωσσών Στασιμότητα τεχνητών αν και γίνονται
βελτιώσεις για διόρθωση αδυναμιών – κάλυψη μεγαλύτερου εύρους εφαρμογών
Αλλαγή διαλέκτου ( από pascal3.0 σε Pascal 7.2)
Επέκταση ( από Basic σε Visual Basic)
03/01/09 Χαράλαμπος Τζόκας 14
ΙΕΡΑΡΧΙΚΗ ΣΧΕΔΙΑΣΗ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Καθορισμός βασικών λειτουργιών σε ανώτερο επίπεδο
Διάσπαση κάθε λειτουργίας σε όλο και μικρότερες λειτουργίες μέχρι το τελευταίο επίπεδο που κάθε λειτουργία είναι απλή και επιλύεται εύκολα
Υλοποίηση της ιεραρχικής σχεδίασης με τμηματικό προγραμματισμό : κάθε επιμέρους λειτουργία αποτελεί ανεξάρτητη ενότητα που γράφεται ξεχωριστά από τα υπόλοιπα τμήματα
03/01/09 Χαράλαμπος Τζόκας 15
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Συνδυασμός ιεραρχικής σχεδίασης και
τμηματικού προγραμματισμού Χρήση μόνο τριών δομών ή συνδυασμό τους
Ακολουθία Επιλογή Επανάληψη
Πρόγραμμα ή ενότητα προγράμματος έχει ΜΙΑ είσοδο – ΜΙΑ έξοδο
03/01/09 Χαράλαμπος Τζόκας 16
Πλεονεκτήματα Δομημένου προγραμματισμού Δημιουργία απλούστερων προγραμμάτων Άμεση μεταφορά των αλγορίθμων σε
προγράμματα Διευκόλυνση της ανάλυσης του
προγράμματος σε τμήματα Περιορισμός λαθών Διευκόλυνση στην ανάγνωση και κατανόηση
από τρίτους Ευκολότερη διόρθωση και συντήρηση
03/01/09 Χαράλαμπος Τζόκας 17
Αντικειμενοστραφής προγραμματισμός Πρωτεύοντα δομικά στοιχεία ενός
προγράμματος είναι τα δεδομένα σε αντίθεση με τον παραδοσιακό προγραμματισμό που πρωτεύον στοιχείο είναι οι τρόποι επεξεργασίας που εφαρμόζονται πάνω στα δεδομένα
Με κατάλληλη μορφοποίηση των δεδομένων προκύπτουν τα αντικείμενα
Χρησιμοποίηση ιεραρχικής σχεδίασης- τμηματικού προγραμματισμού και αρχές δομημένου προγραμματισμού
03/01/09 Χαράλαμπος Τζόκας 18
Οπτικός προγραμματισμός και οδηγούμενος από τα γεγονότα
προγραμματισμός
Οπτικός: Δυνατότητα να δημιουργούμε γραφικά ολόκληρο το περιβάλλον της εφαρμογής ( παράδειγμα πλαίσια διαλόγου – μενού )
Οδηγούμενος ..: Δυνατότητα να ενεργοποιούνται λειτουργίες του προγράμματος με την εκτέλεση ενός γεγονότος ( κάνουμε κλικ σε ένα μέρος ή επιλέγουμε από ένα μενού )
Βοηθάει πολύ ο αντικειμενοστραφής προγραμματισμός
03/01/09 Χαράλαμπος Τζόκας 19
Παράλληλος Προγραμματισμός Αλλαγή αρχιτεκτονικής ΗΥ που διαθέτει
περισσότερες από ένα επεξεργαστές Μοιράζονται την ίδια μνήμη και εκτελούν
ταυτόχρονα διαφορετικά τμήματα του ίδιου προγράμματος
Θεωρητικά έχουν πολύ υψηλότερες ταχύτητες Τα παλιά προγράμματα πρέπει να τα
αλλάξουμε έτσι ώστε να επιτρέπεται η παράλληλη εκτέλεση
03/01/09 Χαράλαμπος Τζόκας 20
Μετάφραση προγραμμάτων
ΠΗΓΑΙΟ ΠΡΟΓΡΑΜΜΑ
ΑΝΤΙΚΕΙΜΕΝΟΠΡΟΓΡΑΜΜΑ
ΕΚΤΕΛΕΣΙΜΟΠΡΟΓΡΑΜΜΑ
ΜΕΤΑΓΛΩΤΙΣΤΗΣ ΣΥΝΔΕΤΗΣ-ΦΟΡΤΩΤΗΣ
03/01/09 Χαράλαμπος Τζόκας 21
Κατηγορίες μεταφραστών Μεταγλωττιστές
Μια φορά γίνεται Μεταγλώττιση και αν δεν
υπάρχουν λάθη Φόρτωση Σύνδεση Παραγωγή εκτελέσιμου
κώδικα για όλο το πρόγραμμα
Εκτέλεση του παραγόμενου εκτελέσιμου προγράμματος κάθε φορά που θέλει ο χρήστης
Πιο γρήγορη εκτέλεση
Διερμηνευτές
Κάθε φορά γίνεται Ανάλυση Έλεγχος Ανίχνευση Εκτέλεση κάθε εντολής
Πλεονέκτημα η άμεση εκτέλεση – άμεση διόρθωση
Δεν παράγεται εκτελέσιμος κώδικας για όλο το πρόγραμμα
Πιο αργό στην εκτέλεση
03/01/09 Χαράλαμπος Τζόκας 22
Είδη λαθών Λογικά
Σφάλματα πάνω στην υλοποίηση του αλγόριθμου
Εμφανίζονται μόνο κατά την εκτέλεση
Το πρόγραμμα μπορεί να εκτελεστεί αλλά το αποτέλεσμα …
Συντακτικά Σφάλματα πάνω στο
συντακτικό και την ορθογραφία
Εμφανίζονται κατά την μεταγλώττιση
Το πρόγραμμα δεν μπορεί να εκτελεστεί αν δεν διορθωθούν
03/01/09 Χαράλαμπος Τζόκας 23
Απαιτούμενα προγράμματα για την δημιουργία, μετάφραση και εκτέλεση
Συντάκτης Μεταγλωττιστής Συνδέτης -φορτωτής
Στα σύγχρονα ολοκληρωμένα προγραμματιστικά περιβάλλοντα παρέχονται μαζί με τον μεταγλωττιστή ότι άλλο χρειάζεται …