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

Σχετικά έγγραφα
Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

6. 1 Η έννοια του προγράμματος

Εισαγωγή στον προγραμματισμό

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

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

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Επιµέλεια Θοδωρής Πιερράτος

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

Μαλούτα Θεανώ Σελίδα 1

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

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

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

6. Εισαγωγή στον προγραµµατισµό

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 6 ο

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

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1

Α. Ερωτήσεις Ανάπτυξης

.EVAL push bx Xor bx,bh Add si,ax.loop dec cx. 1. Fortran. 2. Cobol. 3. Algol

Βασίλειος Κοντογιάννης ΠΕ19

κ ε φ ά λ α ι ο 7 0 Α. Θ Ε Ω Ρ Ι Α Η έ ν ν ο ι α τ ο υ π ρ ο γ ρ ά µ µ α τ ο ς Ι σ τ ο ρ ι κ ή Α ν α δ ρ ο µ ή π α ρ α τ ή ρ η σ η

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή

ΑΕΠΠ Ερωτήσεις θεωρίας

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

7 ο ΓΕΛ Καλλιθέας Οδηγός Α.Ε.Π.Π. ΚΕΦΑΛΑΙΟ 6 ο

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος

ΑΕΠΠ ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 6.3 Φυσικές και Τεχνιτές Γλώσσες 6.4 Τεχνικές Σχεδίασης Προγραμμάτων

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Εργαστήρι Πληροφορικής Αλγόριθµος 92 Σηµειώσεις Τεχνολογικής Κατεύθυνσης Γλώσσες µηχανής Αρχικά για να µπορέσει ο υπολογιστής να εκτελέσει µία οποιαδή

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

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

Αρχές Προγραμματισμού Υπολογιστών

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

Προγραμματισμός και Εφαρμογές Υπολογιστών

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

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α.

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

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

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

ΠΕΡΙΕΧΟΜΕΝΑ Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Αντικειμενοστραφής

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

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Κεφάλαιο 1: Εισαγωγή. Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήμιο Πατρών

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

Εισαγωγή στον προγραμματισμό

Κεφάλαιο 7 Προγραμματισμός υπολογιστή

ΠΕΡΙΕΧΟΜΕΝΑ Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Αντικειμενοστραφής

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Πληροφορική 2. Γλώσσες Προγραμματισμού

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Εισαγωγή στον δομημένο προγραμματισμό

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

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Κεφάλαια 2,7,8

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

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

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #1 η : Εισαγωγή: Λογισμικό, Γλώσσες Προγραμματισμού, Java

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο. Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού

Προγραμματισμός Υπολογιστών

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών

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

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

Προγραμματισμός ΗΥ. 1. Γλώσσα μηχανής

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ονοματεπώνυμο: Βαθμός:

Βασικές Αρχές Προγραμματισμού

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ H/Y ΜΕ PASCAL. Ειδικότητα Τεχνικός Εφαρμογών Πληροφορικής ( Πολυμέσα/Web Designer- Developer/Video Games)

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΠΛΗΡΟΦΟΡΙΚΗ I. 9 η ΔΙΑΛΕΞΗ Λογισμικό - Προγραμματισμός

Transcript:

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

ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΩΝ ΜΕ ΥΠΟΛΟΓΙΣΤΗ: Στάδιο 1: Ακριβής Προσδιορισμός του Προβλήματος Στάδιο 2: Ανάπτυξη του Αντίστοιχου Αλγόριθμου Στάδιο 3: Διατύπωση του αλγόριθμου με μορφή που μπορεί να γίνει κατανοητή από τον υπολογιστή ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΠΡΟΓΡΑΜΜΑ: Υλοποίηση Αλγορίθμου + Δεδομένα + Δομές Δεδομένων Ο προγραμματισμός είναι αυτός που δίνει την ψευδαίσθηση ότι ο υπολογιστής είναι ευφυής. Στην πραγματικότητα ακολουθεί πιστά τις εντολές που ο άνθρωπος-προγραμματιστής έχει δώσει.

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

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

Συμβολικές Γλώσσες ή γλώσσες χαμηλού επιπέδου Αποτελούν ένα βήμα εξέλιξης από τις γλώσσες μηχανής. Υποστηρίζουν ένα μικρό σύνολο από απλές εντολές (π.χ. ADD) που είναι πιο εύκολα κατανοητές και χρησιμοποιήσιμες από τον άνθρωπο Συμβολική Γλώσσα Συμβολομεταφραστής Assembler Γλώσσα μηχανής Οι συμβολικές γλώσσες έχουν 2 σοβαρά μειονεκτήματα: - Είναι «δεμένες» με έναν συγκεκριμένο υπολογιστή και προγράμματα δε μπορούν να μεταφερθούν αυτούσια σε διαφορετικό υπολογιστή - Υποστηρίζουν λίγες και βασικές εντολές με αποτέλεσμα να προκύπτουν μακροσκελή προγράμματα.

Γλώσσες Υψηλού Επιπέδου Δυσκολίες και Μειονεκτήματα των γλωσσών μηχανής και των συμβολικών γλωσσών Προσπάθειες για πιο «φιλική» επικοινωνία ανθρώπου - μηχανής Γλώσσες Υψηλού Επιπέδου

Γλώσσες Υψηλού Επιπέδου Γράφοντας ένα πρόγραμμα σε μια γλώσσα υψηλού επιπέδου μπορεί να μεταφερθεί σε διαφορετικούς υπολογιστές. Αρκεί να περάσει από τον compiler κάθε συγκεκριμένου υπολογιστή. Στην πραγματικότητα ακόμα και στα προγράμματα γλωσσών υψηλού επιπέδου οι μικρο-αλλαγές είναι αναπόφευκτες καθώς κάθε υλοποίηση compiler μπορεί να διαφέρει σε κάποια σημεία. Γλώσσα Υψηλού Επιπέδου Μεταγλωττιστής Compiler Γλώσσα μηχανής H/Y 1 Μεταγλωττιστής Compiler Γλώσσα μηχανής H/Y 2

Fortran 1957: H IBM αναπτύσσει την 1η γλώσσα προγραμματισμού υψηλού επιπέδου και την ονομάζει FORTAN (FORmula TRANslation) Η FORTAN προορίζονταν για την επίλυση επιστημονικών και μαθηματικών προβλημάτων με χρήση υπολογιστή. Μέσα στο χρόνο εξελίχθηκε και επεκτάθηκε. Ακόμη και σήμερα χρησιμοποιείται σε επιστημονικές εφαρμογές λόγω του πλήθους σχετικών βιβλιοθηκών που υπάρχουν.

COBOL Οι αδυναμίες της FORTRAN να καλύψει όλο το φάσμα των απαιτούμενων προγραμμάτων (π.χ. Εμπορικές εφαρμογές) οδήγησαν στη δημιουργία νέων γλωσσών υψηλού επιπέδου 1960: COBOL (COmmon Business Oriented Language). Αναπτύχθηκε κυρίως για να καλύψει εμπορικές εφαρμογές και γενικά εφαρμογές διαχείρισης. Γνώρισε τεράστια διάδοση και υπάρχουν ακόμη και σήμερα πολλές εφαρμογές που λειτουργούν και έχουν γραφτεί σε αυτή τη γλώσσα. Ξεχώριζε για την καλή υποστήριξη αρχείων σειριακής και τυχαίας προσπέλασης.

ALGOL, PL1, LISP, PROLOG ALGOL: αναπτύχθηκε από Ευρωπαίους επιστήμονες το 1960 με σκοπό να καλύψει κάθε είδος εφαρμογών. Δε γνώρισε ιδιαίτερη επιτυχία αλλά επηρέασε σημαντικά μεταγενέστερες γλώσσες PL1: Αναπτύχθηκε στα μέσα της δεκαετίας 60 ως γλώσσα γενικής χρήσης. Ούτε αυτή γνώρισε επιτυχία LISP (μέσα του 60) και PROLOG (Αρχές 70): Δύο γλώσσες που αναπτύχθηκαν για εφαρμογές τεχνητής νοημοσύνης και χρησιμοποιούνται ακόμα και σήμερα (έμπειρα συστήματα, παιχνίδια, επεξεργασία φυσικών γλωσσών κλπ)

BASIC: Beginner's All Purpose Symbolic Instruction Code. Αναπτύχθηκε ως μια εύκολη γλώσσα γενικής χρήσης για εκπαίδευση και εξοικείωση με τον προγραμματισμό. Προοριζόταν για συγγραφή μικρών και απλών προγραμμάτων για εκπαιδευτικούς σκοπούς αλλά η διαρκής της εξέλιξη (Quick Basic, Visual Basic) την καθιέρωσε δα μια από τις πιο διαδομένες γλώσσες στο χώρο των PCs PASCAL: Παρουσιάστηκε το 1970 (Wirth) και στηρίχθηκε στην ALGOL. Μια ισχυρή γενικής χρήσης γλώσσα κατάλληλη για εκπαίδευση και για ανάπτυξη πολύπλοκων δομημένων προγραμμάτων. Σε αυτή βασίστηκαν ισχυρότερες γλώσσες όπως η ADA και η MODULE-2

C H γλώσσα προγραμματισμού C αναπτύχθηκε στα εργαστήρια της BELL και είναι μια πολύ ισχυρή γλώσσα προγραμματισμού, με πολλά κοινά χαρακτηριστικά με τη PASCAL αλλά και με αρκετές δυνατότητες γλώσσας χαμηλού επιπέδου. Αναπτύχθηκε αρχικά ως εργαλείο για την κατασκευή του λειτουργικού συστήματος UNIX. Εξελίχθηκε στη συνέχεια σε C++ αποκτώντας δυνατότητες αντικειμενοστραφούς προγραμματισμού.

JAVA Μια σχετικά πρόσφατη γλώσσα (δεκαετία του 90 - SUN) που έχει αρκετά κοινά στοιχεία με τη C++ και προσανατολίζεται στην ανάπτυξη εφαρμογών σε περιβάλλον Internet. Εφαρμογές γραμμένες σε JAVA Μπορούν να εκτελεστούν χωρίς αλλαγές από διαφορετικούς υπολογιστές καθώς εκτελούνται σε ένα «εικονικό υπολογιστή» (java virtual machine). Έτσι ουσιαστικά έχουμε το Java Virtual Machine για διάφορα λειτουργικά όπως τα Windows, το MacOS, το Linux και το πρόγραμμα Java τρέχει απαράλλαχτο σε καθένα από αυτά. Η Java είναι σήμερα η κύρια γλώσσα προγραμματισμού Mobile εφαρμογών για Android Πρόγραμμα JAVA JAVA Virtual Machine Λειτουργικό Σύστημα

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

Πλεονεκτήματα Γλωσσών Υψηλού Επιπέδου Φυσικότερος και πιο ανθρώπινος τρόπος έκφρασης των προβλημάτων Ανεξαρτησία από τον υπολογιστή που θα εκτελέσει το πρόγραμμα. Μπορούν με ελάχιστες η καθόλου αλλαγές να λειτουργήσουν σε οποιονδήποτε υπολογιστή υποστηρίζει την αντίστοιχη γλώσσα Ευκολία Εκμάθησης και Εκπαίδευσης Ευκολία Διόρθωσης Λαθών και Πραγματοποίησης Αλλαγών Συντήρησης Προγραμμάτων Ελαττώθηκε ο Χρόνος και το Κόστος παραγωγής προγραμμάτων

Ταξινόμηση με βάση το είδος (φιλοσοφία) της γλώσσας Διαδικαστικές (Procedural) ή Αλγοριθμικές: Είναι οι περισσότερες: Basic, C, Pascal, Cobol κλπ και προορίζονται για την υλοποίηση αλγορίθμων Μη Διαδικαστικές (Non Procedural): π.χ. PROLOG. Ονομάζονται και γλώσσες πολύ υψηλού επιπέδου καθώς είναι πιο κοντά από όλες στις ανθρώπινες γλώσσες Αντικειμενοστραφείς (Object Oriented): Π.χ. C++, JAVA Συναρτησιακές (Functional): π.χ LISP Ερωταπαντήσεων (Query Languages): π.χ. SQL - Σχεδιασμένες ώστε να επιτρέπουν σε χρήστες-μη προγραμματιστές να εκφράζουν σύντομες ερωτήσεις και να παίρνουν αποτελέσματα-απαντήσεις

Ταξινόμηση με βάση το πεδίο χρήσης - εφαρμογών Γενικής Χρήσης: Κατάλληλες για κάθε εφαρμογή. Στην πράξη όμως κάθε γλώσσα είναι περισσότερο ή λιγότερο κατάλληλη για το είδος της εφαρμογής Επιστημονικής Κατεύθυνσης (π.χ. FORTRAN) Εμπορικής Κατεύθυνσης (π.χ. COBOL) Προγραμματισμού Συστημάτων: Γλώσσες με δυνατότητες χαμηλού επιπέδου κατάλληλες για εφαρμογές που χρειάζονται αμεσότερη πρόσβαση στο υλικό του υπολογιστή. Π.χ. C Τεχνητής Νοημοσύνης: Κατάλληλες για ανάπτυξη εφαρμογών τεχνητής νοημοσύνης Ειδικής Χρήσης: Χρησιμοποιούνται σε ειδικές εφαρμογές π.χ. Μόνο για εκπαιδευτικούς σκοπούς όπως η LOGO, σε ρομποτικά συστήματα, Σε Βάσεις Δεδομένων κ.λ.π.

Γλώσσες Προγραμματισμού Όπως και οι φυσικές γλώσσες, έτσι και οι γλώσσες προγραμματισμού υπακούουν στις βασικές αρχές της γλωσσολογίας Μια γλώσσα προσδιορίζεται από: 1. Το Αλφάβητο: Το σύνολο των στοιχείων (χαρακτήρων) που χρησιμοποιείται στη γλώσσα. 2. Το λεξιλόγιο: Αποτελεί από το σύνολο των λέξεων (ακολουθία συμβόλων του αλφαβήτου) που είναι αποδεκτό στη γλώσσα. 3. Γραμματική: 3.1 Τυπικό: Οι μορφές με τις οποίες μια λέξη είναι αποδεκτή 3.2 Συντακτικό: Οι κανόνες που καθορίζουν πώς μπορούν να συνδεθούν οι λέξεις μεταξύ του για τη δημιουργία προτάσεων 4. Σημασιολογία: Οι κανόνες που καθορίζουν τη σημασία των λέξεων και κατ επέκταση των εκφράσεων που σχηματίζονται από αυτές.

Διαφορές Φυσικών και Τεχνητών Γλωσσών Οι φυσικές γλώσσες εξελίσσονται συνεχώς, νέες λέξεις δημιουργούνται ή εισάγονται από άλλες γλώσσες, άλλες λέξεις σταματάνε να χρησιμοποιούνται κλπ. Το Συντακτικό και οι κανόνες επίσης αλλάζουν με το χρόνο (π.χ. Μονοτονικό Σύστημα) Οι τεχνητές γλώσσες παρουσιάζουν σχετική στασιμότητα αφού αναπτύσσονται για να εξυπηρετήσουν συγκεκριμένους σκοπούς. Πάντως και οι γλώσσες προγραμματισμού εξελίσσονται (σε μικρότερο βαθμό). Π.χ. Νέες εντολές (λέξεις) μπορούν να προστεθούν για να εξυπηρετήσουν νέες ανάγκες, να διορθωθούν αδυναμίες ή να ακολουθήσουν τις εξελίξεις (π.χ. Υποστήριξη Internet). Οι γλώσσες προγραμματισμού αλλάζουν σε επίπεδο Διαλέκτου (GW Basic-Quick Basic) ή Επέκτασης (Basic -> Visual Basic).

Τεχνικές Σχεδίασης Προγραμμάτων Ιεραρχική Σχεδίαση Η ιεραρχική σχεδίαση και επίλυση είναι γνωστή και ως top to bottom, «Από πάνω προς τα κάτω» καθώς ξεκινά από το συνολικό πρόγραμμα και το αναλύει σε όλο και πιο μικρές και απλές λειτουργίες που είναι εύκολο να επιλυθούν-υλοποιηθούν. Πρόγραμμα Φορολογίας Εισαγωγή Δεδομένων Υπολογισμοί Εκτύπωση Αποτελεσμάτων Υπολογισμός Φορολογητέου Υπολογισμός Προπληρωμένου Φόρου Υπολογισμός Εισοδήματος Υπολογισμός Εκπτώσεων

Τεχνικές Σχεδίασης Προγραμμάτων Τμηματικός Προγραμματισμός Αφού ένα πρόγραμμα σχεδιαστεί με την ιεραρχική μέθοδο μπορεί στη συνέχεια να υλοποιηθεί με τη μεθοδολογία της τμηματικής υλοποίησης. Έχοντας διαιρέσει το πρόβλημα σε μικρότερα (υπο-προβλήματα) κάθε υπο-πρόβλημα αποτελεί ένα ανεξάρτητο τμήμα (Module) που προγραμματίζεται ξεχωριστά. Ο τμηματικός προγραμματισμός: Διευκολύνει την υλοποίηση του προγράμματος Μειώνει τα λάθη Κάνει ευκολότερη την παρακολούθηση και συντήρηση του προγράμματος Επιτρέπει την πιο εύκολη κατανομή της εργασίας σε ομάδες εργασίας κάθε μια από της οποίες μπορεί να ασχοληθεί με ένα από τα τμήματα.

Τεχνικές Σχεδίασης Προγραμμάτων Δομημένος Προγραμματισμός Η μεθοδολογία του Δομημένου προγραμματισμού πρωτοεμφανίστηκε στα μέσα του 1960. Μέχρι τότε τα προγράμματα ήταν ιδιαίτερα μεγάλα και σε μεγάλο βαθμό αδόμητα και μπερδεμένα με αποτέλεσμα κάποιος να δυσκολεύεται να παρακολουθήσει τη ροή εκτέλεσής τους. Κύριος λόγος ήταν η αλόγιστη χρήση μια εντολής, της GOTO, που επέτρεπε την αλλαγή της ροής ενός προγράμματος. Ο Δομημένος προγραμματισμός προσπαθεί να καθιερώσει μια κοινή μεθοδολογία συγγραφής προγραμμάτων με καθαρή ροή που αποφεύγεται η χρήση εντολών GOTO. Βασικό του χαρακτηριστικό η εκτεταμένη χρήση διαδικασιών και συναρτήσεων (Procedures και function)

Τεχνικές Σχεδίασης Προγραμμάτων Δομημένος Προγραμματισμός Σκοποί του Δομημένου προγραμματισμού: Μείωση των λαθών Ευκολότερη κατανόηση και συντήρηση των προγραμμάτων Καθαρότερη δομή προγραμμάτων Σύμφωνα με τις αρχές του δομημένου προγραμματισμού, όλα τα προγράμματα μπορούν να υλοποιηθούν με χρήση τριών και μόνο δομών: - Ακολουθιακής Δομής - Δομής Επιλογής - Δομής Επανάληψης

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

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

Περιβάλλοντα Προγραμματισμού Συντάκτης Editor Μεταγλωττιστής Compiler Συνδέτης Linker Αρχικό Πρόγραμμα Source Code Αντικείμενο Πρόγραμμα Object Code Το αρχικό Πρόγραμμα (πηγαίο) μέσω του μεταγλωττιστή μετατρέπεται σε αντικείμενο (Object) πρόγραμμα. Στη συνέχεια με το συνδέτη (Linker) συνδέεται με κάποια άλλα προγράμματα που απαιτούνται για την εκτέλεσή του ή με βιβλιοθήκες (Libraries) της γλώσσας προγραμματισμού και προκύπτει το εκτελέσιμο από τον υπολογιστή πρόγραμμα. Εκτελέσιμο Πρόγραμμα Executable Οι σύγχρονες γλώσσες προγραμματισμού περιλαμβάνουν όλα τα παραπάνω ολοκληρωμένα στο ίδιο περιβάλλον (IDE : Integrated Development Environment)

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

Περιβάλλοντα Προγραμματισμού Διαφορές Interpreter - Compiler Ανάλυση Έλεγχος Ανίχνευση - Εκτέλεση Εντολής 1 Ανάλυση Έλεγχος Ανίχνευση - Εκτέλεση Εντολής 2 Αρχικό Πηγαίο Πρόγραμμα Source Code Εντολή 1 Εντολή 2 Μεταγλωττιστής Compiler Μεταγλώττιση Φόρτωση Σύνδεση ΟΛΟΥ του Προγράμματος Διερμηνευτής Interpreter Εντολή ν Εκτέλεση ολόκληρου του προγράμματος

Περιβάλλοντα Προγραμματισμού Διαφορές Interpreter - Compiler Διερμηνευτής Interpreter + Άμεση Εκτέλεση του Προγράμματος - Σημαντική μείωση της ταχύτητας εκτέλεσης Μεταγλωττιστής - Compiler - Προηγείται η μεταγλώττιση και σύνδεση του Προγράμματος + Σημαντικά ταχύτερη εκτέλεση του τελικού εκτελέσιμου κώδικα Υπάρχουν περιβάλλοντα προγραμματισμού που συνδυάζουν τα οφέλη και των δύο μεθόδων μετάφρασης του προγράμματος. Υποστηρίζουν Διερμηνευτή κατά την ανάπτυξη του προγράμματος και το τελικό πρόγραμμα μπορεί να περάσει από μεταγλωττιστή προκειμένου να εκτελείται πιο γρήγορα.