Ενότητα 2 -...

30
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενότητα 2

Transcript of Ενότητα 2 -...

Page 1: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

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

Ενότητα 2

Page 2: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

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

Στάδιο 1: Ακριβής Προσδιορισμός του Προβλήματος

Στάδιο 2: Ανάπτυξη του Αντίστοιχου Αλγόριθμου

Στάδιο 3: Διατύπωση του αλγόριθμου με μορφή που μπορεί να γίνει

κατανοητή από τον υπολογιστή

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Page 3: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

ΠΡΟΓΡΑΜΜΑ:

Υλοποίηση Αλγορίθμου

+ Δεδομένα

+ Δομές Δεδομένων

Ο προγραμματισμός είναι αυτός που δίνει την ψευδαίσθηση ότι ο

υπολογιστής είναι ευφυής. Στην πραγματικότητα ακολουθεί πιστά τις

εντολές που ο άνθρωπος-προγραμματιστής έχει δώσει.

Page 4: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Οι βασικές αρχές λειτουργίας των υπολογιστών δεν έχουν αλλάξει πρακτικά

καθόλου από το 1945 που τις διατύπωσε ο Φον Νόυμαν.

Έτσι και οι γλώσσες προγραμματισμού, αν και εξελίσσονται συνεχώς και

εμπλουτίζονται με νέες ιδιότητες, τα χαρακτηριστικά τους και οι βασικές

ιδιότητες παραμένουν ίδια μέσα στο χρόνο

Page 5: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Γλώσσες μηχανής

Γλώσσα μηχανής ονομάζουμε τη γλώσσα προγραμματισμού που

μπορεί άμεσα να γίνει κατανοητή από τον υπολογιστή και ουσιαστικά

πρόκειται για ακολουθίες από 0 και 1, τα μόνα σύμβολα που μπορεί

να αντιληφθεί ο υπολογιστής.

Οι γλώσσες μηχανής απαιτούν απόλυτη γνώση του υλικού και της

αρχιτεκτονικής του υπολογιστή και ελάχιστοι μπορούσαν να

προγραμματίσουν με αυτό τον τρόπο, η δε διαδικασία ήταν ιδιαίτερα

επίπονη.

Οι πρώτοι υπολογιστές όπως ο ENIAC ουσιαστικά

προγραμματίζονταν με καλωδιώσεις και διακόπτες που έπρεπε να

ρυθμιστούν διαφορετικά για κάθε πρόγραμμα

Page 6: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Συμβολικές Γλώσσες ή γλώσσες χαμηλού επιπέδου

Αποτελούν ένα βήμα εξέλιξης από τις γλώσσες μηχανής. Υποστηρίζουν ένα

μικρό σύνολο από απλές εντολές (π.χ. ADD) που είναι πιο εύκολα κατανοητές

και χρησιμοποιήσιμες από τον άνθρωπο

Συμβολική Γλώσσα Συμβολομεταφραστής

Assembler Γλώσσα μηχανής

Οι συμβολικές γλώσσες έχουν 2 σοβαρά μειονεκτήματα:

- Είναι «δεμένες» με έναν συγκεκριμένο υπολογιστή και προγράμματα δε μπορούν

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

- Υποστηρίζουν λίγες και βασικές εντολές με αποτέλεσμα να προκύπτουν μακροσκελή

προγράμματα.

Page 7: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Γλώσσες Υψηλού Επιπέδου

Δυσκολίες και Μειονεκτήματα των γλωσσών μηχανής και των συμβολικών γλωσσών

Προσπάθειες για πιο «φιλική»

επικοινωνία ανθρώπου - μηχανής

Γλώσσες Υψηλού Επιπέδου

Page 8: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Γλώσσες Υψηλού Επιπέδου

Γλώσσα Υψηλού Επιπέδου

Μεταγλωττιστής Compiler

Γλώσσα μηχανής H/Y 1

Μεταγλωττιστής Compiler

Γλώσσα μηχανής H/Y 2

Γράφοντας ένα πρόγραμμα σε μια γλώσσα υψηλού επιπέδου μπορεί να

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

κάθε συγκεκριμένου υπολογιστή. Στην πραγματικότητα ακόμα και στα

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

καθώς κάθε υλοποίηση compiler μπορεί να διαφέρει σε κάποια σημεία.

Page 9: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Fortran

•1957: H IBM αναπτύσσει την 1η γλώσσα προγραμματισμού υψηλού

επιπέδου και την ονομάζει FORTAN (FORmula TRANslation)

•Η FORTAN προορίζονταν για την επίλυση επιστημονικών και μαθηματικών

προβλημάτων με χρήση υπολογιστή.

•Μέσα στο χρόνο εξελίχθηκε και επεκτάθηκε. Ακόμη και σήμερα

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

βιβλιοθηκών που υπάρχουν.

Page 10: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

COBOL

Οι αδυναμίες της FORTRAN να καλύψει όλο το φάσμα των

απαιτούμενων προγραμμάτων (π.χ. Εμπορικές εφαρμογές) οδήγησαν

στη δημιουργία νέων γλωσσών υψηλού επιπέδου

1960: COBOL (COmmon Business Oriented Language). Αναπτύχθηκε

κυρίως για να καλύψει εμπορικές εφαρμογές και γενικά εφαρμογές

διαχείρισης. Γνώρισε τεράστια διάδοση και υπάρχουν ακόμη και σήμερα

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

γλώσσα.

Ξεχώριζε για την καλή υποστήριξη αρχείων σειριακής και τυχαίας

προσπέλασης.

Page 11: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

ALGOL: αναπτύχθηκε από Ευρωπαίους επιστήμονες το 1960 με σκοπό να

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

σημαντικά μεταγενέστερες γλώσσες

PL1: Αναπτύχθηκε στα μέσα της δεκαετίας ’60 ως γλώσσα γενικής χρήσης.

Ούτε αυτή γνώρισε επιτυχία

LISP (μέσα του ’60) και PROLOG (Αρχές ’70): Δύο γλώσσες που αναπτύχθηκαν

για εφαρμογές τεχνητής νοημοσύνης και χρησιμοποιούνται ακόμα και σήμερα

(έμπειρα συστήματα, παιχνίδια, επεξεργασία φυσικών γλωσσών κλπ)

ALGOL, PL1, LISP, PROLOG

Page 12: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

BASIC: Beginner's All Purpose Symbolic Instruction Code. Αναπτύχθηκε ως μια

εύκολη γλώσσα γενικής χρήσης για εκπαίδευση και εξοικείωση με τον

προγραμματισμό. Προοριζόταν για συγγραφή μικρών και απλών

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

(Quick Basic, Visual Basic) την καθιέρωσε δα μια από τις πιο διαδομένες

γλώσσες στο χώρο των PCs

PASCAL: Παρουσιάστηκε το 1970 (Wirth) και στηρίχθηκε στην ALGOL. Μια

ισχυρή γενικής χρήσης γλώσσα κατάλληλη για εκπαίδευση και για ανάπτυξη

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

γλώσσες όπως η ADA και η MODULE-2

Page 13: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

H γλώσσα προγραμματισμού C αναπτύχθηκε στα εργαστήρια της BELL και

είναι μια πολύ ισχυρή γλώσσα προγραμματισμού , με πολλά κοινά

χαρακτηριστικά με τη PASCAL αλλά και με αρκετές δυνατότητες γλώσσας

χαμηλού επιπέδου.

Αναπτύχθηκε αρχικά ως εργαλείο για την κατασκευή του λειτουργικού

συστήματος UNIX.

Εξελίχθηκε στη συνέχεια σε C++ αποκτώντας δυνατότητες

αντικειμενοστραφούς προγραμματισμού.

C

Page 14: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Λειτουργικό Σύστημα

Μια σχετικά πρόσφατη γλώσσα (δεκαετία του 90 - SUN) που έχει αρκετά κοινά στοιχεία με

τη C++ και προσανατολίζεται στην ανάπτυξη εφαρμογών σε περιβάλλον Internet .

Εφαρμογές γραμμένες σε JAVA Μπορούν να εκτελεστούν χωρίς αλλαγές από

διαφορετικούς υπολογιστές καθώς εκτελούνται σε ένα «εικονικό υπολογιστή» (java virtual

machine). Έτσι ουσιαστικά έχουμε το Java Virtual Machine για διάφορα λειτουργικά όπως

τα Windows, το MacOS, το Linux και το πρόγραμμα Java τρέχει απαράλλαχτο σε καθένα

από αυτά.

Η Java είναι σήμερα η κύρια γλώσσα προγραμματισμού Mobile εφαρμογών για Android

JAVA

Πρόγραμμα JAVA JAVA Virtual Machine

Page 15: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Οπτικός Προγραμματισμός (Visual Programming) Προγραμματισμός οδηγούμενος από γεγονότα

(Event Driven Programming)

Γραφικά Περιβάλλοντα

Εργασίας

Οδήγησαν

Οπτικός Προγραμματισμός (Visual Programming): Η δυνατότητα να σχεδιάζουμε το περιβάλλον της εφαρμογής (πχ. Μενού , κουμπιά , πλαίσια εισαγωγής κειμένου) με οπτικά εργαλεία αντί για εντολές και στη συνέχεια να προγραμματίζουμε τη συμπεριφορά κάθε στοιχείου της εφαρμογής. Προγραμματισμός Οδηγούμενος από Γεγονότα (Event Driven): Η δυνατότητα να ενεργοποιούμε τμήματα-λειτουργίες του προγράμματος όταν συμβούν συγκεκριμένα γεγονότα (π.χ. Το πάτημα ενός κουμπιού, η εισαγωγή κειμένου σε ένα πεδίο)

Page 16: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

•Φυσικότερος και πιο ανθρώπινος τρόπος έκφρασης των προβλημάτων

•Ανεξαρτησία από τον υπολογιστή που θα εκτελέσει το πρόγραμμα.

Μπορούν με ελάχιστες η καθόλου αλλαγές να λειτουργήσουν σε

οποιονδήποτε υπολογιστή υποστηρίζει την αντίστοιχη γλώσσα

•Ευκολία Εκμάθησης και Εκπαίδευσης

•Ευκολία Διόρθωσης Λαθών και Πραγματοποίησης Αλλαγών –

Συντήρησης Προγραμμάτων

Ελαττώθηκε ο Χρόνος και το Κόστος παραγωγής προγραμμάτων

Πλεονεκτήματα Γλωσσών Υψηλού Επιπέδου

Page 17: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

• Διαδικαστικές (Procedural) ή Αλγοριθμικές: Είναι οι περισσότερες: Basic, C, Pascal,

Cobol κλπ και προορίζονται για την υλοποίηση αλγορίθμων

• Μη Διαδικαστικές (Non Procedural): π.χ. PROLOG. Ονομάζονται και γλώσσες πολύ

υψηλού επιπέδου καθώς είναι πιο κοντά από όλες στις ανθρώπινες γλώσσες

• Αντικειμενοστραφείς (Object Oriented): Π.χ. C++, JAVA

• Συναρτησιακές (Functional): π.χ LISP

• Ερωταπαντήσεων (Query Languages): π.χ. SQL - Σχεδιασμένες ώστε να επιτρέπουν

σε χρήστες-μη προγραμματιστές να εκφράζουν σύντομες ερωτήσεις και να παίρνουν

αποτελέσματα-απαντήσεις

Ταξινόμηση με βάση το είδος (φιλοσοφία) της γλώσσας

Page 18: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Γενικής Χρήσης: Κατάλληλες για κάθε εφαρμογή. Στην πράξη όμως κάθε γλώσσα είναι

περισσότερο ή λιγότερο κατάλληλη για το είδος της εφαρμογής

•Επιστημονικής Κατεύθυνσης (π.χ. FORTRAN)

•Εμπορικής Κατεύθυνσης (π.χ. COBOL)

Προγραμματισμού Συστημάτων: Γλώσσες με δυνατότητες χαμηλού επιπέδου

κατάλληλες για εφαρμογές που χρειάζονται αμεσότερη πρόσβαση στο υλικό του

υπολογιστή. Π.χ. C

Τεχνητής Νοημοσύνης: Κατάλληλες για ανάπτυξη εφαρμογών τεχνητής νοημοσύνης

Ειδικής Χρήσης: Χρησιμοποιούνται σε ειδικές εφαρμογές π.χ. Μόνο για

εκπαιδευτικούς σκοπούς όπως η LOGO, σε ρομποτικά συστήματα, Σε Βάσεις

Δεδομένων κ.λ.π.

Ταξινόμηση με βάση το πεδίο χρήσης - εφαρμογών

Page 19: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Όπως και οι φυσικές γλώσσες, έτσι και οι γλώσσες προγραμματισμού υπακούουν

στις βασικές αρχές της γλωσσολογίας

Μια γλώσσα προσδιορίζεται από:

1. Το Αλφάβητο: Το σύνολο των στοιχείων (χαρακτήρων) που χρησιμοποιείται στη

γλώσσα.

2. Το λεξιλόγιο: Αποτελεί από το σύνολο των λέξεων (ακολουθία συμβόλων του

αλφαβήτου) που είναι αποδεκτό στη γλώσσα.

3. Γραμματική:

3.1 Τυπικό: Οι μορφές με τις οποίες μια λέξη είναι αποδεκτή

3.2 Συντακτικό: Οι κανόνες που καθορίζουν πώς μπορούν να συνδεθούν οι

λέξεις μεταξύ του για τη δημιουργία προτάσεων

4. Σημασιολογία: Οι κανόνες που καθορίζουν τη σημασία των λέξεων και κατ’

επέκταση των εκφράσεων που σχηματίζονται από αυτές.

Γλώσσες Προγραμματισμού

Page 20: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Οι φυσικές γλώσσες εξελίσσονται συνεχώς, νέες λέξεις δημιουργούνται ή εισάγονται

από άλλες γλώσσες, άλλες λέξεις σταματάνε να χρησιμοποιούνται κλπ. Το Συντακτικό

και οι κανόνες επίσης αλλάζουν με το χρόνο (π.χ. Μονοτονικό Σύστημα)

Οι τεχνητές γλώσσες παρουσιάζουν σχετική στασιμότητα αφού αναπτύσσονται για να

εξυπηρετήσουν συγκεκριμένους σκοπούς. Πάντως και οι γλώσσες προγραμματισμού

εξελίσσονται (σε μικρότερο βαθμό). Π.χ. Νέες εντολές (λέξεις) μπορούν να

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

ακολουθήσουν τις εξελίξεις (π.χ. Υποστήριξη Internet).

Οι γλώσσες προγραμματισμού αλλάζουν σε επίπεδο Διαλέκτου (GW Basic-Quick Basic)

ή Επέκτασης (Basic -> Visual Basic).

Διαφορές Φυσικών και Τεχνητών Γλωσσών

Page 21: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Η ιεραρχική σχεδίαση και επίλυση είναι γνωστή και ως “top – to – bottom”, «Από πάνω προς τα

κάτω» καθώς ξεκινά από το συνολικό πρόγραμμα και το αναλύει σε όλο και πιο μικρές και απλές

λειτουργίες που είναι εύκολο να επιλυθούν-υλοποιηθούν.

Τεχνικές Σχεδίασης Προγραμμάτων – Ιεραρχική Σχεδίαση

Πρόγραμμα Φορολογίας

Εισαγωγή Δεδομένων Υπολογισμοί

Εκτύπωση Αποτελεσμάτων

Υπολογισμός Φορολογητέου

Υπολογισμός Προπληρωμένου Φόρου

Υπολογισμός Εισοδήματος

Υπολογισμός Εκπτώσεων

Page 22: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Αφού ένα πρόγραμμα σχεδιαστεί με την ιεραρχική μέθοδο μπορεί στη συνέχεια να

υλοποιηθεί με τη μεθοδολογία της τμηματικής υλοποίησης.

Έχοντας διαιρέσει το πρόβλημα σε μικρότερα (υπο-προβλήματα) κάθε υπο-πρόβλημα

αποτελεί ένα ανεξάρτητο τμήμα (Module) που προγραμματίζεται ξεχωριστά.

Ο τμηματικός προγραμματισμός:

• Διευκολύνει την υλοποίηση του προγράμματος

• Μειώνει τα λάθη

• Κάνει ευκολότερη την παρακολούθηση και συντήρηση του προγράμματος

• Επιτρέπει την πιο εύκολη κατανομή της εργασίας σε ομάδες εργασίας κάθε μια από της

οποίες μπορεί να ασχοληθεί με ένα από τα τμήματα.

Τεχνικές Σχεδίασης Προγραμμάτων – Τμηματικός Προγραμματισμός

Page 23: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Η μεθοδολογία του Δομημένου προγραμματισμού πρωτοεμφανίστηκε στα μέσα του 1960.

Μέχρι τότε τα προγράμματα ήταν ιδιαίτερα μεγάλα και σε μεγάλο βαθμό αδόμητα και

μπερδεμένα με αποτέλεσμα κάποιος να δυσκολεύεται να παρακολουθήσει τη ροή

εκτέλεσής τους.

Κύριος λόγος ήταν η αλόγιστη χρήση μια εντολής, της GOTO, που επέτρεπε την αλλαγή

της ροής ενός προγράμματος.

Ο Δομημένος προγραμματισμός προσπαθεί να καθιερώσει μια κοινή μεθοδολογία

συγγραφής προγραμμάτων με καθαρή ροή που αποφεύγεται η χρήση εντολών GOTO.

Βασικό του χαρακτηριστικό η εκτεταμένη χρήση διαδικασιών και συναρτήσεων

(Procedures και function)

Τεχνικές Σχεδίασης Προγραμμάτων – Δομημένος Προγραμματισμός

Page 24: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Σκοποί του Δομημένου προγραμματισμού:

• Μείωση των λαθών

• Ευκολότερη κατανόηση και συντήρηση των προγραμμάτων

• Καθαρότερη δομή προγραμμάτων

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

μπορούν να υλοποιηθούν με χρήση τριών και μόνο δομών:

- Ακολουθιακής Δομής

- Δομής Επιλογής

- Δομής Επανάληψης

Τεχνικές Σχεδίασης Προγραμμάτων – Δομημένος Προγραμματισμός

Page 25: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Ο Αντικειμενοστραφής προγραμματισμός παρουσιάστηκε στα τέλη του ’70 και

σήμερα γνωρίζει μεγάλη διάδοση.

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

διευκολύνει:

• Την ανάπτυξη μεγάλων και πολύπλοκων προγραμμάτων

• Την επαναχρησιμοποίηση τμημάτων κώδικα για άλλες εφαρμογές

Εισάγεται η έννοια του Αντικειμένου, μιας οντότητας που περικλείει τόσο τα

δεδομένα όσο και τις λειτουργίες που μπορούν να εκτελεστούν σε αυτά.

Τεχνικές Σχεδίασης Προγραμμάτων – Αντικειμενοστραφής Προγραμματισμός

Page 26: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Τεχνικές Σχεδίασης Προγραμμάτων – Παράλληλος Προγραμματισμός

Πρόγραμμα

Τμήμα 1 Τμήμα 2 Τμήμα 3

CPU 1 CPU 2 CPU 3

O Παράλληλος προγραμματισμός εκμεταλλεύεται την ύπαρξη πολλών επεξεργαστών για να «σπάσει» την εργασία σε επιμέρους εργασίες που μπορούν να εκτελεστούν παράλληλα. Προκύπτουν βέβαια σημαντικά ζητήματα συγχρονισμού και προτεραιότητας τα οποία επιλύονται με κατάλληλες εντολές των γλωσσών που υποστηρίζουν παράλληλο προγραμματισμό.

Page 27: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Περιβάλλοντα Προγραμματισμού

Αρχικό Πρόγραμμα Source Code

Μεταγλωττιστής Compiler

Αντικείμενο Πρόγραμμα Object Code

Συνδέτης Linker

Εκτελέσιμο Πρόγραμμα Executable

Το αρχικό Πρόγραμμα (πηγαίο) μέσω του μεταγλωττιστή μετατρέπεται σε αντικείμενο (Object) πρόγραμμα. Στη συνέχεια με το συνδέτη (Linker) συνδέεται με κάποια άλλα προγράμματα που απαιτούνται για την εκτέλεσή του ή με βιβλιοθήκες (Libraries) της γλώσσας προγραμματισμού και προκύπτει το εκτελέσιμο από τον υπολογιστή πρόγραμμα.

Συντάκτης Editor

Οι σύγχρονες γλώσσες προγραμματισμού περιλαμβάνουν όλα τα παραπάνω ολοκληρωμένα στο ίδιο περιβάλλον (IDE : Integrated Development Environment)

Page 28: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Σφάλματα

Λογικά Σφάλματα

Δύσκολο να ανιχνευτούν. Εμφανίζονται κατά την εκτέλεση του προγράμματος. Είναι σφάλματα στη «λογική» του προγράμματος. Το πρόγραμμα εκτελείται κανονικά αλλά παράγει λανθασμένα αποτελέσματα

Συντακτικά Σφάλματα

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

Περιβάλλοντα Προγραμματισμού

Page 29: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Περιβάλλοντα Προγραμματισμού – Διαφορές Interpreter - Compiler

Εντολή 1

Εντολή 2

Εντολή ν

Αρχικό – Πηγαίο Πρόγραμμα Source Code

Ανάλυση – Έλεγχος Ανίχνευση - Εκτέλεση

Εντολής 1

Ανάλυση – Έλεγχος Ανίχνευση - Εκτέλεση

Εντολής 2

Διερμηνευτής Interpreter

Μεταγλώττιση Φόρτωση Σύνδεση

ΟΛΟΥ του Προγράμματος

Εκτέλεση ολόκληρου του προγράμματος

Μεταγλωττιστής Compiler

Page 30: Ενότητα 2 - eclass.teiion.greclass.teiion.gr/modules/document/file.php/DE-DE121/Θεωρία/Πληροφορική... · • Καθαρόερη δομή προγραμμάων

Διερμηνευτής – Interpreter

+ Άμεση Εκτέλεση του Προγράμματος - Σημαντική μείωση της ταχύτητας εκτέλεσης

Μεταγλωττιστής - Compiler

- Προηγείται η μεταγλώττιση και σύνδεση του Προγράμματος + Σημαντικά ταχύτερη εκτέλεση του τελικού εκτελέσιμου κώδικα

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

Περιβάλλοντα Προγραμματισμού – Διαφορές Interpreter - Compiler