Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ"— Μεταγράφημα παρουσίασης:

1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΚΕΦΑΛΑΙΟ 6ο: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

2 Η έννοια του προγράμματος
Η επίλυση ενός προβλήματος περιλαμβάνει 3 στάδια: Ακριβής προσδιορισμός Ανάπτυξη του αντίστοιχου αλγορίθμου Διατύπωση του αλγορίθμου σε μορφή κατανοητή από τον υπολογιστή. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ: η δημιουργία του προγράμματος, δηλαδή του συνόλου των εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί ο αλγόριθμος για την επίλυση του προβλήματος. 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

3 Καθηγητής: Δρίμτζιας Βασίλης
Γλώσσες μηχανής Αρχικά έπρεπε να δοθούν οι εντολές απευθείας στον υπολογιστή Ακολουθίες από 0 και 1 Μορφή κατανοητή από τον υπολογιστή αλλά ακατανόητη από τον άνθρωπο Επίπονος τρόπος, για λίγους, με πολύ βαθιά γνώση του υλικού και της αρχιτεκτονικής του Η/Υ Πρώτος υπολογιστής ο ENIAC, με πολύαριθμες καλωδιώσεις και διακόπτες που έπρεπε να αλλαχθούν κάθε φορά ώστε να γίνουν οι διαφορετικοί υπολογισμοί. Σήμερα, όλες οι εντολές ενός προγράμματος μετατρέπονται από τον υπολογιστή σε ακολουθίες από 0 και 1. 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

4 Συμβολικές γλώσσες ή γλώσσες χαμηλού επιπέδου
Γλώσσες που έχουν κάποιο νόημα για τον άνθρωπο Μετατρέπονται εσωτερικά από τον υπολογιστή σε 0 και 1 Για τη μετάφραση χρησιμοποιείται ο συμβολομεταφραστής (assembler) πχ: ADD AX, BX (είναι εύκολο να καταλάβουμε ότι πρόκειται για μια πρόσθεση) Χρησιμοποιούνται μέχρι και σήμερα για κάποιες ειδικές εφαρμογές Μειονεκτήματα Συμβολικών Γλωσσών: Οι γλώσσες αυτές παραμένουν συνδεδεμένες με την αρχιτεκτονική του κάθε υπολογιστή Δεν διαθέτουν εντολές για πιο σύνθετες λειτουργίες, με αποτέλεσμα τη δημιουργία πολύ πιο μεγάλων προγραμμάτων Όχι μεταφερσιμότητα προγραμμάτων. 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

5 Καθηγητής: Δρίμτζιας Βασίλης
Σύγκριση Γλωσσών ΓΛΩΣΣΑ ΜΗΧΑΝΗΣ ΣΥΜΒΟΛΙΚΗ ΓΛΩΣΣΑ ΓΛΩΣΣΑ ΥΨΗΛΟΥ ΕΠΙΠΕΔΟΥ 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

6 Καθηγητής: Δρίμτζιας Βασίλης
Γλώσσες υψηλού επιπέδου 1957: FORTRAN (FORmula TRANslation)  μετάφραση τύπων, μια γλώσσα κατάλληλη κυρίως για επίλυση μαθηματικών και επιστημονικών προβλημάτων Το πρόγραμμα από μια γλώσσα υψηλού επιπέδου μεταφράζεται από τον υπολογιστή στις ακολουθίες εντολών μηχανής, με τη χρήση ενός ειδικού προγράμματος που ονομάζεται μεταγλωττιστής. Ένα πρόγραμμα FORTRAN μπορεί να εκτελεστεί σε οποιοδήποτε άλλο υπολογιστή, αρκεί να έχει τον κατάλληλο μεταγλωττιστή Χρησιμοποιείται ακόμη και σήμερα, μετά από πολλές αλλαγές, προσθήκες & βελτιώσεις, κυρίως για επιστημονικές εφαρμογές. 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης 6

7 Γλώσσες υψηλού επιπέδου (2)
1960: COBOL (COmmon Business Oriented Language)  γλώσσα κατάλληλη για ανάπτυξη εμπορικών εφαρμογών και γενικότερα διαχειριστικών εφαρμογών ALGOL (ALGOrithmic Language): Αν και με ελάχιστη εφαρμογή, η γλώσσα αυτή θεωρείται σημαντική, χρησιμοποιείται για τη δημιουργία γενικών προγραμμάτων χωρίς συγκεκριμένη εφαρμογή PL/1 (Programming Language /1): Μια πρώτη προσπάθεια (ανεπιτυχής) για την κάλυψη όλων των προηγουμένων σε μια ενιαία γλώσσα LISP (LISt Processor) – PROLOG (PROgramming LOGic): Γλώσσες που χρησιμοποιούνται στο χώρο της τεχνητής νοημοσύνης. Η LISP προσανατολίζεται σε χειρισμό λιστών από σύμβολα 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

8 Γλώσσες υψηλού επιπέδου (3)
BASIC (Beginner's All Purpose Symbolic Instruction Code) Αρχικά αναπτύχθηκε για την εκπαίδευση αρχαρίων στον προγραμματισμό Σχεδιάστηκε για να γράφονται σύντομα προγράμματα τα οποία εκτελούνται με τη χρήση διερμηνευτή (interpeter) Αναπτύχθηκε και εξαπλώθηκε πολύ περισσότερο Τυποποιήθηκε από τη Microsoft (Quick Basic, Visual Basic) 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

9 Γλώσσες υψηλού επιπέδου (4)
PASCAL: Γλώσσα γενικής χρήσης Κατάλληλη τόσο για εκπαίδευση όσο και για τη δημιουργία ισχυρών προγραμμάτων Κατάλληλη για τη δημιουργία δομημένων προγραμμάτων Τεράστια εξάπλωση στο χώρο των μικροϋπολογιστών C: Χρησιμοποιήθηκε για την ανάπτυξη του UNIX Γλώσσα με ισχυρά χαρακτηριστικά, κατάλληλη για δομημένο προγραμματισμό C++ : μετεξέλιξη της C, αντικειμενοστραφής Java: Αντικειμενοστραφής γλώσσα, κατάλληλη κυρίως για ανάπτυξη εφαρμογών που εκτελούνται σε κατανεμημένα περιβάλλοντα, όπως το διαδίκτυο Προγράμματα σε Java εκτελούνται από διαφορετικούς υπολογιστές, με διαφορετικά λειτουργικά συστήματα, χωρίς αλλαγές 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

10 Γλώσσες υψηλού επιπέδου (5)
Η δημιουργία γραφικών περιβαλλόντων εργασίας δημιούργησε την ανάγκη για ανάλογα προγράμματα Με τα ήδη υπάρχοντα προγραμματιστικά περιβάλλοντα, αυτό ήταν ανέφικτο, γι’ αυτό αναπτύχθηκαν νέες έννοιες/μορφές προγραμματισμού: Οδηγούμενος από το γεγονός προγραμματισμός (event-driven programming): Η δυνατότητα να ενεργοποιούνται λειτουργίες του προγράμματος με την εκτέλεση ενός γεγονότος (πχ. Με ένα κλικ του ποντικιού σε κάποιο σημείο) Οπτικός προγραμματισμός (visual programming): Η δυνατότητα να δημιουργούμε γραφικά ολόκληρο το περιβάλλον μιας εφαρμογής. Visual Basic, Visual C++, Java κτλ 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

11 Πλεονεκτήματα των γλωσσών υψηλού επιπέδου
Φυσικότερος και πιο “ανθρώπινος” τρόπος έκφρασης των προβλημάτων. Τα προγράμματα σε γλώσσα υψηλού επιπέδου είναι πιο κοντά στα προβλήματα που επιλύουν. Ανεξαρτησία από τον τύπο του υπολογιστή. Προγράμματα σε μία γλώσσα υψηλού επιπέδου μπορούν να εκτελεστούν σε οποιονδήποτε υπολογιστή με ελάχιστες ή καθόλου μετατροπές. Η δυνατότητα της μεταφερσιμότητας των προγραμμάτων είναι σημαντικό προσόν. Ευκολία εκμάθησης/εκπαίδευσης ως απόρροια των προηγουμένων. Διόρθωση λαθών και συντήρηση προγραμμάτων πολύ ευκολότερη. Συνολικά ελάττωσαν σημαντικά το χρόνο και το κόστος παραγωγής νέων προγραμμάτων, αφού λιγότεροι προγραμματιστές μπορούν σε μικρότερο χρόνο να αναπτύξουν προγράμματα που χρησιμοποιούνται σε περισσότερους υπολογιστές 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

12 Γλώσσες 4ης γενεάς Οι γλώσσες υψηλού επιπέδου (3ης γενιάς) γνώρισαν μεγάλη επιτυχία, αλλά απευθύνονται μόνο σε προγραμματιστές. Ο χρήστης ενός υπολογιστή δεν είχε τη δυνατότητα να κάνει αλλαγές στο πρόγραμμα. Πολλές γλώσσες εφοδιάστηκαν με εργαλεία προγραμματισμού που αποκρύπτουν λεπτομέρειες από τις τεχνικές υλοποίησης & με αυτά ο χρήστης μπορεί να επιλύει μόνος του μικρά προβλήματα εφαρμογών. Η αυξανόμενη τάση απόκρυψης της αρχιτεκτονικής του υλικού και της τεχνικής του προγραμματισμού οδήγησε στις γλώσσες 4ης γενιάς. Ο χρήστης μπορεί να υποβάλει ερωτήσεις & να αναπτύσσει εφαρμογές που ανακτούν πληροφορίες από βάσεις δεδομένων SELECT ENAME, JOB, SAL FROM EMPLOYEΕS WHERE DEPTNO=20 AND SAL > ; Η ερώτηση αυτή σε SQL εκτελεί αναζήτηση στη βάση δεδομένων EMPLOYEΕS και επιστρέφει το όνομα, τη θέση και το μισθό των υπαλλήλων της διεύθυνσης 20 που κερδίζουν πάνω από 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

13 Καθηγητής: Δρίμτζιας Βασίλης
Ταξινόμηση Γλωσσών Προγραμματισμού Κριτήριο : Ιδέα Προγρ/σμού που αντιπροσωπεύουν Η μεγάλη πλειοψηφία ανήκει στην κατηγορία των διαδικασιακών (procedural) γλωσσών. Είναι γνωστές επίσης και ως αλγοριθμικές γλώσσες. Άλλες κατηγορίες είναι: Αντικειμενοστραφείς γλώσσες (object -oriented languages) Συναρτησιακές γλώσσες (functional languages) π.χ. LISP Μη διαδικασιακές γλώσσες(non procedural languages)PROLOG(πολύ υψηλού επιπέδου) Γλώσσες ερωταπαντήσεων (query languages) π.χ. SQL. 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

14 Καθηγητής: Δρίμτζιας Βασίλης
Ταξινόμηση Γλωσσών Προγραμματισμού Κριτήριο : Περιοχή χρήσης τους Μια άλλη ταξινόμηση μπορεί να προκύψει με βάση την περιοχή χρήσης: Γλώσσες γενικής χρήσης. Θεωρητικά κάθε γλώσσα γενικής χρήσης μπορεί να χρησιμοποιηθεί για την επίλυση οποιουδήποτε προβλήματος. Ωστόσο κάθε γλώσσα έχει σχεδιαστεί για να ορισμένη κατηγορία προβλημάτων Γλώσσες επιστημονικής κατεύθυνσης (science-oriented) FORTRAN Γλώσσες εμπορικής κατεύθυνσης (business-oriented) COBOL. Ορισμένες γλώσσες τα καταφέρνουν εξίσου καλά &στους 2 τομείς (BASIC, Pascal) Γλώσσες προγραμματισμού συστημάτων (system programming languages) π.χ. C. Γλώσσες τεχνητής νοημοσύνης (artificial intelligence languages) LISP, PROLOG. Γλώσσες ειδικής χρήσης. χρησιμοποιούνται σε ειδικές περιοχές εφαρμογών όπως π.χ. στα γραφικά με υπολογιστή, στη ρομποτική,στα Συστήματα Διοίκησης Βάσεων Δεδομένων, στην εκπαίδευση μέσω υπολογιστή κ.α. 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

15 Καθηγητής: Δρίμτζιας Βασίλης
Κριτήρια επιλογής της Γλώσσας Πρ/σμού που θα χρησιμοποιηθεί για την ανάπτυξη εφαρμογής Είδος εφαρμογής Περιβάλλον που εκτελεστεί η εφαρμογή π.χ. Κατανεμημένο περιβάλλον Προγραμματιστικά περιβάλλοντα που διαθέτουμε Κυρίως τις γνώσεις του προγραμματιστή 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης 15

16 Φυσικές και τεχνητές γλώσσες
Οι γλώσσες προγραμματισμού αναπτύχθηκαν για να δίνουμε εντολές στον υπολογιστή (τεχνητές γλώσσες) Χρησιμοποιούνται για την επικοινωνία ανθρώπου - υπολογιστή, όπως οι φυσικές γλώσσες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων. Ακολουθούν τις βασικές έννοιες & αρχές της γλωσσολογίας Μια γλώσσα προσδιορίζεται από: Το αλφάβητό της Το λεξιλόγιό της Τη γραμματική της Τη σημασιολογία της 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

17 Καθηγητής: Δρίμτζιας Βασίλης
Αλφάβητο – Λεξιλόγιο Αλφάβητο μιας γλώσσας καλείται το σύνολο των στοιχείων που χρησιμοποιείται από τη γλώσσα. Το αλφάβητο της ελληνικής γλώσσας περιέχει τα γράμματα Α-Ω και α-ω, τα 10 ψηφία (0-9) και όλα τα σημεία στίξης. Λεξιλόγιο: Το λεξιλόγιο είναι ένα υποσύνολο όλων των δυνατών ακολουθιών που δημιουργούνται από το σύνολο του αλφαβήτου της γλώσσας Η ακολουθία ΣΧΟΛΕΙΟ είναι αποδεκτή, ενώ η ακολουθία ΑΝΤΚΠΗΝΝ δεν είναι 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

18 Γραμματική - Σημασιολογία
Η γραμματική αποτελείται από το τυπικό ή τυπολογικό (accidence) και το συντακτικό (syntax) Τυπικό: Το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή Συντακτικό: Το σύνολο των κανόνων που καθορίζει τη νομιμότητα της διάταξης και της σύνδεσης των λέξεων της γλώσσας για τη δημιουργία προτάσεων (ή εντολών στις γλώσσες προγραμματισμού) Σημασιολογία (semantics):το σύνολο των κανόνων που καθορίζει το νόημα των λέξεων, των εκφράσεων & προτάσεων. Στις γλώσσες προγραμματισμού η σημασιολογία των λέξεων αποφασίζεται από τον δημιουργό της γλώσσας. 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

19 Διαφορές Φυσικών – Τεχνητών γλωσσών
Δυνατότητα εξέλιξης: Οι φυσικές γλώσσες εξελίσσονται συνεχώς, γιατί και ο άνθρωπος αλλάζει και εξελίσσεται ανάλογα με την εποχή δημιουργούνται νέες λέξεις κανόνες γραμματικής και συντακτικού αλλάζουν με την πάροδο του χρόνου Αντίθετα οι τεχνητές γλώσσες χαρακτηρίζονται από στασιμότητα Ωστόσο, συχνά οι γλώσσες προγραμματισμού βελτιώνονται & μεταβάλλονται για να καλύψουν περισσότερες εφαρμογές ή για να διορθώσουν αδυναμίες τους Οι γλώσσες προγραμματισμού αλλάζουν σε επίπεδο διαλέκτου ή σε επίπεδο επέκτασης 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

20 Τεχνικές σχεδίασης προγραμμάτων
Ιεραρχική σχεδίαση προγράμματος Τμηματικός προγραμματισμός Δομημένος προγραμματισμός 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

21 Ιεραρχική Σχεδίαση Προγράμματος
Προσέγγιση «από πάνω προς τα κάτω» (top-down approach) Περιλαμβάνει Τον καθορισμό των βασικών λειτουργιών σε ανώτατο επίπεδο Στη συνέχεια τη διάσπαση σε όλο και μικρότερες λειτουργίες Στο τελευταίο επίπεδο οι λειτουργίες είναι τόσο απλές που λύνονται πολύ εύκολα. Χρησιμοποιούνται διαγραμματικές τεχνικές 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

22 Παράδειγμα Ιεραρχικής Σχεδίασης
09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

23 Τμηματικός Προγραμματισμός
Η ιεραρχική σχεδίαση του προγράμματος υλοποιείται με τον τμηματικό προγραμματισμό Μετά την ανάλυση, κάθε υποπρόγραμμα αποτελεί ξεχωριστή ανεξάρτητη ενότητα (module), που γράφεται ξεχωριστά από τα υπόλοιπα τμήματα Ο τμηματικός προγραμματισμός Διευκολύνει τη δημιουργία του προγράμματος Μειώνει τα λάθη Επιτρέπει την ευκολότερη παρακολούθηση, κατανόηση και συντήρηση του προγράμματος από τρίτους 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

24 Δομημένος Προγραμματισμός
Παρουσιάστηκε στα μέσα του 1960 και έχει επικρατήσει σχεδόν απόλυτα, σε όλες τις σύγχρονες γλώσσες προγραμματισμού Πρόκειται για μια μεθοδολογία σύνταξης προγραμμάτων, με σκοπό: Να βοηθήσει τον προγραμματιστή στην ανάπτυξη σύνθετων προγραμμάτων Να μειώσει τα λάθη Να εξασφαλίσει την εύκολη κατανόηση των προγραμμάτων και Να διευκολύνει τις διορθώσεις και τις αλλαγές Ενθαρρύνει και βοηθάει την ανάλυση του προβλήματος σε επιμέρους τμήματα Περιέχει την ιεραρχική σχεδίαση και τον τμηματικό προγραμματισμό 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

25 Η εντολή GOTO – Το «μαύρο πρόβατο» του προγραμματισμού
ΓΡΑΨΕ ”Αρνητικός” GOTO 4 1: ΓΡΑΨΕ ”Θετικός” 2: ΓΡΑΨΕ ”Μηδέν” 4: ! Συνέχεια… Αν Αριθμός>0 τότε Εμφάνισε ”Θετικός” αλλιώς_αν Αριθμός=0 τότε Εμφάνισε ”Μηδέν” αλλιώς Εμφάνισε ”Αρνητικός” Τέλος_αν 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

26 Χαρακτηριστικά εντολών τύπου «GOTO»
Αλλαγή της ροής του προγράμματος Δημιουργία διακλαδώσεων Βοηθάει στην εξεύρεση «εύκολων λύσεων» για δύσκολες περιπτώσεις Δημιουργεί προβλήματα στη συνολική σχεδίαση, στην παρακολούθηση και στην κατανόηση του προγράμματος Δυσκολίες στη συντήρηση του προγράμματος 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

27 Αρχές Δομημένου Προγραμματισμού
Ο δομημένος προγραμματισμός στηρίζεται στη χρήση τριών και μόνο στοιχειωδών λογικών δομών, τη δομή της ακολουθίας, τη δομή της επιλογής και τη δομή της επανάληψης. Όλα τα προγράμματα μπορούν να γραφούν χρησιμοποιώντας μόνο αυτές τις τρεις δομές καθώς και συνδυασμό τους. Κάθε πρόγραμμα όπως και κάθε ενότητα προγράμματος έχει μόνο μία είσοδο και μόνο μία έξοδο. 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

28 Πλεονεκτήματα του δομημένου προγραμματισμού
Δημιουργία απλούστερων προγραμμάτων Άμεση μεταφορά των αλγορίθμων σε προγράμματα Διευκόλυνση ανάλυσης του προγράμματος σε τμήματα Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος Διευκόλυνση στην ανάγνωση και κατανόηση του προγράμματος από τρίτους Ευκολότερη διόρθωση και συντήρηση 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

29 Προγραμματιστικά περιβάλλοντα
Κάθε πρόγραμμα που γράφτηκε σε οποιαδήποτε γλώσσα προγραμματισμού, πρέπει να γραφεί σε μορφή αναγνωρίσιμη και εκτελέσιμη από τον υπολογιστή (γλώσσα μηχανής) Η μετατροπή γίνεται με τη χρήση ειδικών μεταφραστικών προγραμμάτων: Μεταγλωττιστές (compilers) Διερμηνευτές (interpreters) 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

30 Καθηγητής: Δρίμτζιας Βασίλης
Διερμηνευτής Διαβάζει μια προς μια τις εντολές του προγράμματος Για κάθε εντολή που διαβάζει, εκτελεί αμέσως μια ισοδύναμη ακολουθία εντολών μηχανής 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

31 Καθηγητής: Δρίμτζιας Βασίλης
Μεταγλωττιστής Δέχεται στην είσοδο ένα πρόγραμμα γραμμένο σε γλώσσα υψηλού επιπέδου (πηγαίο πρόγραμμα) Παράγει ισοδύναμο πρόγραμμα σε γλώσσα μηχανής (αντικείμενο) Ανεξάρτητο από το αρχικό πρόγραμμα Μπορεί να εκτελεστεί οποτεδήποτε από τον υπολογιστή 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

32 Καθηγητής: Δρίμτζιας Βασίλης
Μεταγλωττιστές Το αντικείμενο πρόγραμμα συνήθως, αν και σε κατανοητή μορφή, δεν είναι σε θέση να εκτελεστεί Χρειάζεται να συμπληρωθεί και να συνδεθεί με άλλα τμήματα προγράμματος απαραίτητα για την εκτέλεσή του Τα τμήματα αυτά είτε τα γράφει ο προγραμματιστής, είτε βρίσκονται στις βιβλιοθήκες (libraries) Το πρόγραμμα που εκτελεί αυτή τη σύνδεση ονομάζεται συνδέτης – φορτωτής (linker – loader) Το αποτέλεσμα του συνδέτη είναι η παραγωγή του εκτελέσιμου προγράμματος H συνολική διαδικασία αποκαλείται μεταγλώττιση και σύνδεση 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

33 Καθηγητής: Δρίμτζιας Βασίλης
Λάθη Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το αρχικό πρόγραμμα δεν έχει συντακτικά λάθη. Δύο είδη λαθών: Λογικά λάθη: Εμφανίζονται μόνο στην εκτέλεση του προγράμματος. Είναι τα πιο σοβαρά και δύσκολα στη διόρθωσή τους Οφείλονται σε σφάλματα κατά την υλοποίηση του αλγορίθμου Συντακτικά λάθη: Εμφανίζονται στο στάδιο της μεταγλώττισης Πρέπει πάντα να διορθωθούν ώστε να δημιουργηθεί το εκτελέσιμο πρόγραμμα Οφείλονται συνήθως σε αναγραμματισμούς, παραλείψεις 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

34 Ανίχνευση – Διόρθωση λαθών
Ο μεταγλωττιστής ή ο διερμηνευτής ανιχνεύει τα συντακτικά λάθη και εμφανίζει τα κατάλληλα διαγνωστικά μηνύματα Ακολουθεί το στάδιο της διόρθωσης των λαθών Το διορθωμένο πρόγραμμα υποβάλλεται σε νέα μεταγλώττιση Η διαδικασία επαναλαμβάνεται μέχρι να μην υπάρχουν καθόλου λάθη Με τη χρήση μεταγλωττιστή πρέπει πριν χρησιμοποιηθεί ένα πρόγραμμα να περάσει από τη διαδικασία μεταγλώττισης και σύνδεσης Αντίθετα, με τη χρήση διερμηνευτή υπάρχει το πλεονέκτημα της άμεσης εκτέλεσης, και επομένως της άμεσης διόρθωσης, με το μειονέκτημα όμως την πιο αργή εκτέλεση του προγράμματος. 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

35 Καθηγητής: Δρίμτζιας Βασίλης
09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης

36 Προγραμματιστικά περιβάλλοντα
Στα σύγχρονα προγραμματιστικά περιβάλλοντα υπάρχουν μεικτές υλοποιήσεις, με την παράλληλη ύπαρξη διερμηνευτή (φάση ανάπτυξης) και μεταγλωττιστή (χρήση προγράμματος) Για την αρχική σύνταξη & διόρθωση των προγραμμάτων χρησιμοποιείται ο συντάκτης (editor): Ένας επεξεργαστής κειμένου με ειδικές λειτουργίες & δυνατότητες για ευκολότερη γραφή εντολών Για τη δημιουργία, μετάφραση και εκτέλεση ενός προγράμματος απαιτούνται συνολικά τρία προγράμματα τουλάχιστον: ο συντάκτης, ο μεταγλωττιστής και ο συνδετής. Στα σύγχρονα προγραμματιστικά περιβάλλοντα, αυτά παρέχονται με ενιαίο τρόπο. Κάθε προγραμματιστικό περιβάλλον έχει διαφορετικά εργαλεία και ιδιότητες (π.χ. ένα γραφικό περιβάλλον (visual) έχει ειδικά εργαλεία για σχεδίαση γραφικών αντικειμένων) 09/04/2017 Καθηγητής: Δρίμτζιας Βασίλης


Κατέβασμα ppt "ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google