↑ Return to ΘΕΩΡΙΑ ΑΕΠΠ

3. Εισαγωγή στον Προγραμματισμό

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

ΘΕΩΡΙΑ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Οι ερωτήσεις που ακολουθούν είναι σύμφωνες με τα θέματα που αναπτύσσονται στο βιβλίο Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον της Γ’ τάξης των Γενικών Λυκείων. Το αντίστοιχο κεφάλαιο του σχολικού βιβλίου είναι το κεφάλαιο 6 και πιο ειδικά οι παράγραφοι 6.1, 6.3, 6.4 (6.4.1, 6.4.2, 6.4.3), 6.5, 6.7.

Σχολικό ΒιβλίοΠλήρη ΑνάπτυξηΣωστό - ΛάθοςΠολλαπλή επιλογήΑντιστοίχισηΣυμπλήρωση κενών

Στάδια επίλυσης προβλήματος με υπολογιστή

Ακριβής προσδιορισμός του προβλήματος.

Ανάπτυξη του αντίστοιχου αλγορίθμου.

Διατύπωση του αλγορίθμου σε κατανοητή μορφή από τον υπολογιστή.

Πρόγραμμα είναι, το σύνολο των εντολών που πρέπει να δοθούν στον υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος για την επίλυση του προβλήματος.

Φυσικές και τεχνητές γλώσσες

Οι τεχνητές γλώσσες χρησιμοποιούνται για την επικοινωνία ανθρώπου και μηχανής.

Οι φυσικές γλώσσες χρησιμοποιούνται για την επικοινωνία μεταξύ των ανθρώπων.

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

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

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

Στοιχεία προσδιορισμού μιας γλώσσας

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

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

Η Γραμματική αποτελείται από το τυπικό ή τυπολογικό και το συντακτικό.

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

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

Η γνώση του συντακτικού επιτρέπει τη δημιουργία σωστών προτάσεων στις φυσικές γλώσσες, ενώ στις γλώσσες προγραμματισμού τη δημιουργία σωστών εντολών.

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

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

Δομημένος Προγραμματισμός

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

Ο δομημένος προγραμματισμός δεν είναι απλώς ένα είδος προγραμματισμού, είναι μία μεθοδολογία σύνταξης προγραμμάτων που έχει σκοπό να βοηθήσει τον προγραμματιστή:

στην ανάπτυξη σύνθετων προγραμμάτων

να μειώσει τα λάθη

να εξασφαλίσει την εύκολη κατανόηση των προγραμμάτων και

να διευκολύνει τις διορθώσεις και τις αλλαγές σε αυτά.

Πλεονεκτήματα δομημένου προγραμματισμού

1 – Δημιουργία απλούστερων προγραμμάτων.

2 – Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος.

3 – Διευκόλυνση στην ανάγνωση και κατανόηση του προγράμματος από τρίτους.

4 – Ευκολότερη διόρθωση και συντήρηση.

5 – Άμεση μεταφορά των αλγορίθμων σε προγράμματα.

6 – Διευκόλυνση ανάλυσης του προγράμματος σε τμήματα.

Μεταφραστικά Προγράμματα

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

Το αρχικό πρόγραμμα λέγεται πηγαίο πρόγραμμα, ενώ το πρόγραμμα που παράγεται από το μεταγλωττιστή λέγεται αντικείμενο πρόγραμμα.

Το αντικείμενο πρόγραμμα είναι μεν σε μορφή κατανοητή από τον υπολογιστή, αλλά συνήθως δεν είναι σε θέση να εκτελεστεί. Χρειάζεται να συμπληρωθεί και να συνδεθεί με άλλα τμήματα προγράμματος απαραίτητα για την εκτέλεσή του, τμήματα που είτε τα γράφει ο προγραμματιστής είτε βρίσκονται στις βιβλιοθήκες της γλώσσας. Το πρόγραμμα που επιτρέπει αυτή τη σύνδεση ονομάζεται συνδέτης – φορτωτής. Το αποτέλεσμα του συνδέτη είναι η παραγωγή του εκτελέσιμου προγράμματος, το οποίο είναι το τελικό πρόγραμμα που εκτελείται από τον υπολογιστή. Για το λόγο αυτό η συνολική διαδικασία αποκαλείται μεταγλώττιση και σύνδεση.

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

Τα στάδια που προηγούνται της εκτέλεσης είναι: ανάλυση, έλεγχος, ανίχνευση και εκτέλεση.

Εν τέλει για τη δημιουργία, τη μετάφραση και την εκτέλεση ενός προγράμματος απαιτούνται τουλάχιστον τρία προγράμματα:

ο συντάκτης, ο μεταγλωττιστής και ο συνδέτης.

ΕΡΩΤΗΣΕΙΣ ΑΝΑΠΤΥΞΗΣ

Ποια στάδια περιλαμβάνει η επίλυση ενός προβλήματος με υπολογιστή;

Ποια στάδια περιλαμβάνει η επίλυση ενός προβλήματος με υπολογιστή;

Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία σημαντικά στάδια.

Τον ακριβή προσδιορισμό του προβλήματος.

Την ανάπτυξη του αντίστοιχου αλγορίθμου.

Τη διατύπωση του αλγορίθμου σε κατανοητή μορφή από τον υπολογιστή.

Τι είναι πρόγραμμα;

Τι είναι πρόγραμμα;

Πρόγραμμα είναι, το σύνολο των εντολών που πρέπει να δοθούν στον υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος για την επίλυση του προβλήματος.

Γιατί η εντύπωση ότι ο υπολογιστής είναι έξυπνη μηχανή που επιλύει προβλήματα είναι απλώς μια ψευδαίσθηση;

Γιατί η εντύπωση ότι ο υπολογιστής είναι έξυπνη μηχανή που επιλύει προβλήματα είναι απλώς μια ψευδαίσθηση;

Ο προγραμματισμός είναι αυτός που δίνει την εντύπωση ότι, οι υπολογιστές είναι έξυπνες μηχανές που επιλύουν τα πολύπλοκα προβλήματα. Η εντύπωση αυτή όμως είναι απλώς μία ψευδαίσθηση.

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

Που χρησιμοποιούνται οι φυσικές γλώσσες και που οι τεχνητές γλώσσες;

Που χρησιμοποιούνται οι φυσικές γλώσσες και που οι τεχνητές γλώσσες;

Οι τεχνητές γλώσσες χρησιμοποιούνται για την επικοινωνία ανθρώπου και μηχανής.

Οι φυσικές γλώσσες χρησιμοποιούνται για την επικοινωνία μεταξύ των ανθρώπων.

Ποιες οι διαφορές μεταξύ φυσικών και τεχνητών γλωσσών;

Ποιες οι διαφορές μεταξύ φυσικών και τεχνητών γλωσσών;

Μία βασική διαφορά μεταξύ φυσικών και τεχνητών γλωσσών είναι η δυνατότητα εξέλιξής τους. Οι φυσικές γλώσσες εξελίσσονται συνεχώς, νέες λέξεις δημιουργούνται, κανόνες γραμματικής και σύνταξης αλλάζουν με την πάροδο του χρόνου και αυτό γιατί η γλώσσα χρησιμοποιείται για την επικοινωνία μεταξύ ανθρώπων, που εξελίσσονται και αλλάζουν ανάλογα με τις εποχές και τον κοινωνικό περίγυρο.
Αντίθετα οι τεχνητές γλώσσες χαρακτηρίζονται από στασιμότητα, αφού κατασκευάζονται συνειδητά για ένα συγκεκριμένο σκοπό.
Ωστόσο συχνά οι γλώσσες προγραμματισμού βελτιώνονται και μεταβάλλονται από τους δημιουργούς τους, με σκοπό να διορθωθούν αδυναμίες ή να καλύψουν μεγαλύτερο εύρος εφαρμογών ή τέλος να ακολουθήσουν τις νέες εξελίξεις. Οι γλώσσες προγραμματισμού αλλάζουν σε επίπεδο διαλέκτου (για παράδειγμα GW-Basic και QuickBasic) ή σε επίπεδο επέκτασης (για παράδειγμα Basic και Visual Basic).

Πως προσδιορίζεται μία οποιαδήποτε γλώσσα; Να γίνει πλήρη ανάπτυξη του θέματος.

Πως προσδιορίζεται μία οποιαδήποτε γλώσσα; Να γίνει πλήρη ανάπτυξη του θέματος.

Μία γλώσσα προσδιορίζεται από το αλφάβητό της, το λεξιλόγιό της, τη γραμματική της και τέλος τη σημασιολογία της.

Το αλφάβητο

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

Για παράδειγμα, η ελληνική γλώσσα περιέχει τα εξής στοιχεία:
Τα γράμματα του αλφαβήτου πεζά και κεφαλαία 48 δηλαδή χαρακτήρες (Α-Ω και α-ω), τα 10 ψηφία (0-9) και όλα τα σημεία στίξης.

Αντίστοιχα η αγγλική γλώσσα περιλαμβάνει τα γράμματα του αγγλικού αλφαβήτου (Α-Ζ και a-z) καθώς και τα ψηφία και όλα τα σημεία στίξης που χρησιμοποιούνται.

Το λεξιλόγιο

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

Για παράδειγμα, στην ελληνική γλώσσα η ακολουθία των γραμμάτων ΑΒΓΑ είναι δεκτή αφού αποτελεί λέξη, αλλά η ακολουθία ΑΒΓΔΑ δεν αποτελεί λέξη της ελληνικής γλώσσας, άρα δεν είναι δεκτή.

Η Γραμματική

Η Γραμματική αποτελείται από το τυπικό ή τυπολογικό (accidence) και το συντακτικό (syntax).

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

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

Η σημασιολογία

Η σημασιολογία (Semantics) είναι το σύνολο των κανόνων που καθορίζει το νόημα των λέξεων και κατά επέκταση των εκφράσεων και προτάσεων που χρησιμοποιούνται σε μία γλώσσα.
Στις γλώσσες προγραμματισμού οι οποίες είναι τεχνητές γλώσσες, ο δημιουργός της γλώσσας αποφασίζει τη σημασιολογία των λέξεων της γλώσσας.

Ποια προβλήματα αντιμετώπιζαν οι προγραμματιστές στις αρχές της δεκαετίας του 60;

Ποια προβλήματα αντιμετώπιζαν οι προγραμματιστές στις αρχές της δεκαετίας του 60;

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

Γράψτε λίγα λόγια για την ιστορία της εντολής Goto.

Γράψτε λίγα λόγια για την ιστορία της εντολής Goto.

Στην ιστορία του προγραμματισμού καμία άλλη εντολή δεν συζητήθηκε τόσο πολύ όσο η εντολή GOTO (Πήγαινε). Η εντολή GOTO έχει ως αποτέλεσμα την αλλαγή της ροής του προγράμματος, της διακλάδωσης σε μία άλλη εντολή του προγράμματος εκτός από την επόμενη.

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

Ποια τα προβλήματα από την αλόγιστη χρήση της εντολής GOTO (Πήγαινε);

Ποια τα προβλήματα από την αλόγιστη χρήση της εντολής GOTO (Πήγαινε);

H αλόγιστη χρήση της εντολής GOTO που χρησιμοποιούμενη άλλαζε διαρκώς τη ροή του προγράμματος, είχε σαν αποτέλεσμα ακόμη και ένα μικρό τμήμα προγράμματος, να είναι δύσκολο στην κατανόησή του και στην παρακολούθησή του.  Οι πολέμιοι της GOTO έβλεπαν ότι η εντολή αυτή ήταν υπεύθυνη για τη δυσκολία στην αρχική σχεδίαση της λύσης, στην παρακολούθηση και κατανόηση του προγράμματος και τέλος στη συντήρηση. 

Τι είναι ο Δομημένος Προγραμματισμός και που στηρίζεται;

Τι είναι ο Δομημένος Προγραμματισμός και που στηρίζεται;

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

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

Κάθε πρόγραμμα όπως και κάθε ενότητα προγράμματος έχει μόνο μία είσοδο και μόνο μία έξοδο.

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

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

Ο δομημένος προγραμματισμός δεν είναι απλώς ένα είδος προγραμματισμού, είναι μία μεθοδολογία σύνταξης προγραμμάτων που έχει σκοπό να βοηθήσει τον προγραμματιστή:

στην ανάπτυξη σύνθετων προγραμμάτων,

να μειώσει τα λάθη,

να εξασφαλίσει την εύκολη κατανόηση των προγραμμάτων και

να διευκολύνει τις διορθώσεις και τις αλλαγές σε αυτά.

Ποιοι οι πρώτοι υποστηρικτές του δομημένου προγραμματισμού, πότε και πως έκαναν γνωστές τις απόψεις τους;

Ποιοι οι πρώτοι υποστηρικτές του δομημένου προγραμματισμού, πότε και πως έκαναν γνωστές τις απόψεις τους;

Το 1964 σε ένα συνέδριο στο Ισραήλ παρουσιάστηκε ένα κείμενο των Bohm και Jacopini με τις θεωρητικές αρχές του δομημένου προγραμματισμού. Οι απόψεις τους δεν έγιναν αρχικά ευρύτερα γνωστές και αποδεκτές, αλλά το 1968 ο καθηγητής Edsger Dijkstra δημοσίευσε ένα κείμενο που έκανε ιδιαίτερη αίσθηση και έμελλε να αλλάξει σταδιακά τον τρόπο προγραμματισμού καθώς και τις ίδιες τις γλώσσες προγραμματισμού.

Ο τίτλος της μελέτης αυτής ήταν “GO TO Statement Considered Harmful – η εντολή GOTO θεωρείται επιβλαβής” και θεμελίωνε το δομημένο προγραμματισμό.

Χρειάστηκε όμως να περάσουν αρκετά χρόνια, ώστε να αρχίσει να διαδίδεται η χρήση του δομημένου προγραμματισμού.

Ποια τα πλεονεκτήματα του δομημένου προγραμματισμού;

Ποια τα πλεονεκτήματα του δομημένου προγραμματισμού;

Επιγραμματικά μπορούμε να αναφέρουμε τα εξής πλεονεκτήματα του δομημένου προγραμματισμού.

1 – Δημιουργία απλούστερων προγραμμάτων.
2 – Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος.
3 – Διευκόλυνση στην ανάγνωση και κατανόηση του προγράμματος από τρίτους.
4 – Ευκολότερη διόρθωση και συντήρηση.
5 – Άμεση μεταφορά των αλγορίθμων σε προγράμματα.
6 – Διευκόλυνση ανάλυσης του προγράμματος σε τμήματα.

Τι περιλαμβάνει η ιεραρχική σχεδίαση προγράμματος;

Τι περιλαμβάνει η ιεραρχική σχεδίαση προγράμματος;

Η τεχνική της ιεραρχικής σχεδίασης και επίλυσης ή η διαδικασία σχεδίασης “από επάνω προς τα κάτω” όπως συχνά ονομάζεται (top-down program design) περιλαμβάνει τον καθορισμό των βασικών λειτουργιών ενός προγράμματος, σε ανώτερο επίπεδο, και στη συνέχεια τη διάσπαση των λειτουργιών αυτών σε όλο και μικρότερες λειτουργίες, μέχρι το τελευταίο επίπεδο που οι λειτουργίες είναι πολύ άπλες, ώστε να επιλυθούν εύκολα.

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

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

Τι γνωρίζετε για τον τμηματικό προγραμματισμό.

Τι γνωρίζετε για τον τμηματικό προγραμματισμό.

Η ιεραρχική σχεδίαση προγράμματος υλοποιείται με τον τμηματικό προγραμματισμό. Μετά την ανάλυση του προβλήματος σε αντίστοιχα υποπροβλήματα, κάθε υποπρόβλημα αποτελεί ανεξάρτητη ενότητα (module), που γράφεται ξεχωριστά από τα υπόλοιπα τμήματα προγράμματος.
Η σωστή διαίρεση του αρχικού προβλήματος σε υποπροβλήματα και κατά συνέπεια του αρχικού προγράμματος σε τμήματα προγράμματος είναι μία διαδικασία αρκετά πολύπλοκη.

Τι γνωρίζεται για τον αντικειμενοστραφή προγραμματισμό

Τι γνωρίζεται για τον αντικειμενοστραφή προγραμματισμό;

Μία νέα ιδέα στον προγραμματισμό γεννήθηκε στις παγωμένες νορβηγικές ακτές στα τέλη της δεκαετίας του ’70 και πέρασε πολύ γρήγορα στην άλλη μεριά του Ατλαντικού. Πρόκειται για μια νέα τάση αντιμετώπισης προγραμματιστικών αντιλήψεων και δομών που ονομάζεται αντικειμενοστραφής (object-oriented) προγραμματισμός. Την τελευταία δεκαετία έχει γίνει η επικρατούσα κατάσταση και έχει αλλάξει ριζικά τα μέχρι πριν από λίγα χρόνια γνωστά και σταθερά σημεία αναφοράς των προγραμματιστών.

Η ιδέα του αντικειμενοστραφούς προγραμματισμού ή της αντικειμενοστραφούς σχεδίασης έχει τις ρίζες της σε πολύ απλοϊκή ιδέα. Ένα πρόγραμμα περιγράφει “ενέργειες” (επεξεργασία) που εφαρμόζονται πάνω σε δεδομένα. Ένα βασικό ερώτημα που τίθεται είναι αν η φιλοσοφία, η δομή του προγράμματος είναι προτιμότερο να στηρίζεται στις “ενέργειες” ή στα δεδομένα. Η απάντηση σε αυτό το ερώτημα προσδιορίζει και τη βασική διαφορά ανάμεσα στις παραδοσιακές προγραμματιστικές τεχνικές και στην αντικειμενοστραφή προσέγγιση.

Η αντικειμενοστραφής σχεδίαση εκλαμβάνει ως πρωτεύοντα δομικά στοιχεία ενός προγράμματος τα δεδομένα, από τα οποία δημιουργούνται με κατάλληλη μορφοποίηση τα αντικείμενα (objects). Αυτή η σχεδίαση αποδείχθηκε ότι επιφέρει καλύτερα αποτελέσματα, αφού τα προγράμματα που δημιουργούνται είναι περισσότερο ευέλικτα και επαναχρησιμοποιήσιμα. Βέβαια, δημιουργούνται μία σειρά από εύλογα ερωτήματα, όπως “Τι ακριβώς είναι ένα αντικείμενο;”, “Πώς προσδιορίζουμε και περιγράψουμε ένα αντικείμενο;”, “Πώς το πρόγραμμα χειρίζεται τα αντικείμενα;” “Πώς τα αντικείμενα συσχετίζονται μεταξύ τους;”. Απαντήσεις σε αυτά τα ερωτήματα καθώς και αναλυτική παρουσίαση του αντικειμενοστραφούς προγραμματισμού υπάρχουν στο κεφάλαιο 11.

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

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

Ποιος ο ρόλος του συντάκτη στην συγγραφή ενός προγράμματος;

Ποιος ο ρόλος του συντάκτη στην συγγραφή ενός προγράμματος;

Για την αρχική σύνταξη των προγραμμάτων και τη διόρθωσή τους χρησιμοποιείται ένα ειδικό πρόγραμμα που ονομάζεται συντάκτης (editor). Ο συντάκτης είναι ουσιαστικά ένας μικρός επεξεργαστής κειμένου, με δυνατότητες όμως που διευκολύνουν τη γρήγορη γραφή των εντολών των προγραμμάτων.

Τι είναι οι μεταγλωττιστές;

Τι είναι οι μεταγλωττιστές;

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

Περιγράψτε την διαδικασία μεταγλώττισης και σύνδεσης ενός προγράμματος.

Περιγράψτε την διαδικασία μεταγλώττισης και σύνδεσης ενός προγράμματος.

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

Το αρχικό πρόγραμμα λέγεται πηγαίο πρόγραμμα (source), ενώ το πρόγραμμα που παράγεται από το μεταγλωττιστή λέγεται αντικείμενο πρόγραμμα (object).

Το αντικείμενο πρόγραμμα είναι μεν σε μορφή κατανοητή από τον υπολογιστή, αλλά συνήθως δεν είναι σε θέση να εκτελεστεί. Χρειάζεται να συμπληρωθεί και να συνδεθεί με άλλα τμήματα προγράμματος απαραίτητα για την εκτέλεσή του, τμήματα που είτε τα γράφει ο προγραμματιστής είτε βρίσκονται στις βιβλιοθήκες (libraries) της γλώσσας. Το πρόγραμμα που επιτρέπει αυτή τη σύνδεση ονομάζεται συνδέτης – φορτωτής (linker- loader). Το αποτέλεσμα του συνδέτη είναι η παραγωγή του εκτελέσιμου προγράμματος (executable), το οποίο είναι το τελικό πρόγραμμα που εκτελείται από τον υπολογιστή.

Για το λόγο αυτό η συνολική διαδικασία αποκαλείται μεταγλώττιση και σύνδεση.

Τι είναι οι διερμηνευτές ποιος ο ρόλος τους και πως πραγματοποιείται;

Τι είναι οι διερμηνευτές ποιος ο ρόλος τους και πως πραγματοποιείται;

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

Τα στάδια που προηγούνται της εκτέλεσης είναι: ανάλυση, έλεγχος, ανίχνευση και εκτέλεση.

Μεταγλωτιστές & Διερμηνευτές - αναπτύξτε διαφορές, πλεονεκτήματα, μειονεκτήματα.

Μεταγλωτιστές & Διερμηνευτές – αναπτύξτε διαφορές, πλεονεκτήματα, μειονεκτήματα.

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

Ποια προγράμματα και εργαλεία περιέχει ένα προγραμματιστικό περιβάλλον;

Ποια προγράμματα και εργαλεία περιέχει ένα προγραμματιστικό περιβάλλον;

Εν τέλει για τη δημιουργία, τη μετάφραση και την εκτέλεση ενός προγράμματος απαιτούνται τουλάχιστον τρία προγράμματα:

ο συντάκτης, ο μεταγλωττιστής και ο συνδέτης.

Τα σύγχρονα προγραμματιστικά περιβάλλοντα παρέχουν αυτά τα προγράμματα με ενιαίο τρόπο. Το κάθε προγραμματιστικό περιβάλλον έχει φυσικά διαφορετικά εργαλεία και ιδιότητες. Για παράδειγμα, ένα περιβάλλον οπτικού (visual) προγραμματισμού πρέπει να περιέχει οπωσδήποτε και ειδικό συντάκτη που να διευκολύνει τη δημιουργία γραφικών αντικειμένων (για παράδειγμα, φόρμες, λίστες, παράθυρα διαλόγου) παρέχοντας στον προγραμματιστή τα αντίστοιχα γραφικά εργαλεία.

Ποια τα είδη των λαθών που μπορούν να εμφανιστούν σ’ ένα πρόγραμμα και που οφείλονται; Με ποιο τρόπο επιτυγχάνεται η ανίχνευση και η διόρθωση των λαθών;

Ποια τα είδη των λαθών που μπορούν να εμφανιστούν σ’ ένα πρόγραμμα και που οφείλονται; Με ποιο τρόπο επιτυγχάνεται η ανίχνευση και η διόρθωση των λαθών;

Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο στην περίπτωση που το αρχικό πρόγραμμα δεν περιέχει συντακτικά λάθη. Τις περισσότερες φορές κάθε πρόγραμμα αρχικά θα έχει λάθη. Τα λάθη του προγράμματος είναι γενικά δύο ειδών, λογικά και συντακτικά.

Τα λογικά λάθη που είναι τα πλέον σοβαρά και δύσκολα στη διόρθωσή τους οφείλονται σε σφάλματα κατά την υλοποίηση του αλγορίθμου, ενώ

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

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

ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟΥ ΛΑΘΟΥΣ

  • Οι προτάσεις που ακολουθούν να χαρακτηρισθούν ως Σωστές (Σ) ή Λανθασμένες (Λ).

ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ

  • Για τις προτάσεις που ακολουθούν επιλέξτε από αριστερά -κάντε κλικ- το/τα γράμμα/τα που συνοδεύει/ουν τον αριθμό της πρότασης και αντιστοιχεί/ούν στη σωστή απάντηση.

ΕΡΩΤΗΣΕΙΣ ΑΝΤΙΣΤΟΙΧΗΣΗΣ

  • Αντιστοιχίστε κάθε λέξη/φράση που ακολουθεί παρακάτω επιλέγοντας κατάλληλα μεταξύ των προτεινόμενων. 

ΕΡΩΤΗΣΕΙΣ ΣΥΜΠΛΗΡΩΣΗΣ ΚΕΝΩΝ

  • Να συμπληρωθούν τα κενά στις παρακάτω προτάσεις.

Permanent link to this article: https://pervolischool.edu.gr/computer-science/algorithms-aepp/aepp-theory/programing-intro/