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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ένα περιοδικό για το ΑΕΠΠ

Προγραµµατισµός Η/Υ. Μέρος2

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

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

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

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

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

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

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

Κεφ. 1: Εισαγωγή στην έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΠΡΟΓΡΑΜΜΑ ΠΑΙΔΑΓΩΓΙΚΗΣ ΚΑΤΑΡΤΙΣΗΣ 2 η ΕΡΓΑΣΙΑ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ ΠΑΡΑΤΗΡΗΣΕΙΣ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ

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

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

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

III. Πως μετατρέπεται το πηγαίο πρόγραμμα σε εκτελέσιμο πρόγραμμα;

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

Κεφάλαιο 2: Μεταφραστές

Transcript:

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

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

6.2 Ιστορική αναδρομή Γλώσσες Προγραμματισμού 1. Γλώσσες Μηχανής 2. Συμβολικές Γλώσσες με χρήση συμβολομεταφραστή (assembler) 3. Γλώσσες υψηλού επιπέδου (1957 FORTRAN, 1960 COBOL, ALGOL, PL1,LISP, BASIC, PASCAL 1970 PROLOG, 1972 C, JAVA κ.λ.π.) 4. Γλώσσες 4ης Γενιάς

Παράδειγμα κώδικα που υπολογίζει το άθροισμα από 1 μέχρι 10 Σε ΓΛΩΣΣΑ ΜΗΧΑΝΗΣ 10101000 000001010 10001100 000000001 00111100 01010001 000000001 01000011 000000001 11000000 11111010 1000110 00000010 1111111 Σε Συμβολική Γλώσσα INDEX=$01 SUM=$02 LDA #10 STA INTEX CLA LOOP ADD INDEX DEC INDEX BNE SUM BRK Σε ΓΛΩΣΣΑ basic sum = 0 FOR index=1 TO 10 Sum=sum+index NEXT index END

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

6.2.2 Συμβολικές γλώσσες ή γλώσσες χαμηλού επιπέδου (Assembly) Το έργο της μετάφρασης το αναλαμβάνει ένα ειδικό πρόγραμμα, ο συμβολομεταφραστής (assembler). Οι εντολές σε συμβολική γλώσσα αποτελούνται από συμβολικά ονόματα π.χ. (ADD) που αντιστοιχούν σε εντολές της γλώσσας μηχανής. + : ήταν μια εξέλιξη από τις ακατανόητες ακολουθίες δυαδικών στοιχείων. - : παρέμεναν στενά συνδεδεμένες με την αρχιτεκνονική του κάθε υπολογιστή και τα προγράμματα ήταν μακροσκελή.

6.2.3 Γλώσσες υψηλού επιπέδου 1. FORTRAN (FORmula TRANslation μετάφραση τύπων): κατάλληλη για την επίλυση μαθηματικών και επιστημονικών προβλημάτων. (1957 ΙΒΜ) 2. COBOL (COMmon Oriented Language Κοινή γλώσσα προσανατολισμένη στις επιχειρήσεις): κατάλληλη για την ανάπτυξη εμπορικών εφαρμογών. (1960) 3. ALGOL (ALGOrithmic Language Αλγοριθμική γλώσσα): κατάλληλη για τη δημιουργία γενικής φύσης προγραμμάτων. (1960) 4. PL/1 (Programming Language/1 Γλώσσα Προγραμματισμού 1): χωρίς επιτυχία προσπάθησε να καλύψει όλους τους τομείς του προγραμματισμού. (μέσα δεκ. 60)

6.2.3 Γλώσσες υψηλού επιπέδου 5. LISP (LISt Processor Επεξεργαστής Λίστας) και PROLOG (PROgramming LOGic Λογικός Προγραμματισμός): γλώσσες της Τεχνητής Νοημοσύνης που χρησιμοποιούνται στα έμπειρα συστήματα, τα παιχνίδια, την επεξεργασία φυσικών γλωσσών κλπ. (μέσα δεκ. 60) 6. BASIC (Beginner s All Purpose Symbolic Instruction Code Συμβολικός Κώδικας Εντολών Γενικής Χρήσης για Αρχάριους ): για την εκπαίδευση αρχάριων στον προγραμματισμό (δεκ. 60). Αργότερα έγινε η δημοφιλέστερη γλώσσα στους προσωπικούς ΗΥ (Visual Basic). 7. LOGO (Λόγος): για την εισαγωγή στον προγραμματισμό μαθητών μικρής ηλικίας (1967). 8. PASCAL (Niklaus Wirth): για την εκπαίδευση και τη δημιουργία ισχυρών προγραμμάτων. Ήταν η βάση για ισχυρότερες γλώσσες (ADA, Modula-2) (1970).

6.2.3 Γλώσσες υψηλού επιπέδου 9. C : ανάπτυξη του λειτουργικού συστήματος UNIX και δομημένων εφαρμογών. Έχει δυνατότητες γλώσσας χαμηλού επιπέδου. (1972-Bell) 10. C++ : αντικειμενοστραφής γλώσσα, εξέλιξη της C. 11. JAVA : ανάπτυξη αντικειμενοστραφών εφαρμογών εκτελέσιμων σε κατανεμημένα περιβάλλοντα, σε διαφορετικούς (με διαφορετικά λειτουργικά συστήματα) ΗΥ δηλ. συνδεδεμένους στο Διαδίκτυο. 12. dbase : διαχείριση αρχείων βάσεων δεδομένων. (δεκ. 70) 13. Clipper : εξέλιξη της dbase. 14. Access : διαχείριση αρχείων βάσεων δεδομένων.

6.2.3 Γλώσσες υψηλού επιπέδου Γλώσσες που υλοποιούν τις έννοιες του: 1. Οδηγούμενου από το γεγονός προγραμματισμού (object driven programming): οι λειτουργίες του προγράμματος ενεργοποιούνται με την εκτέλεση ενός γεγονότος (π.χ. ένα μενού ή ένα κλικ) 2. Οπτικού προγραμματισμού (visual programming): δυνατότητα γραφικής δημιουργίας ολόκληρου του περιβάλλοντος της εφαρμογής. Visual Basic, Visual C++, Visual Java++

6.2.3 Γλώσσες υψηλού επιπέδου Πλεονεκτήματα των γλωσσών υψηλού επιπέδου: 1. «Ανθρώπινος» τρόπος έκφρασης των προβλημάτων. 2. Μεταφερσιμότητα (portability): ανεξαρτησία από τον τύπο του ΗΥ. 3. Ευκολία στην εκμάθηση και εκπαίδευση. 4. Ευκολία στη συντήρηση και τη διόρθωση των λαθών. 5. Μείωση στο χρόνο και το κόστος παραγωγής προγραμμάτων.

6.2.4 Γλώσσες 4 ης γενιάς Παρέχουν τη δυνατότητα υποβολής ερωτήσεων στο σύστημα, ανάπτυξης εφαρμογών που ανακτούν πληροφορίες από βάσεις δεδομένων και καθορισμού του τρόπου εμφάνισης αυτών. π.χ. γλώσσες ερωταπαντήσεων (query languages) όπως η SQL.

6.2.4 Γλώσσες 4 ης γενιάς Ταξινόμηση γλωσσών προγραμματισμού με βάση Ιδέα Προγραμματισμού Διαδικασιακές (ή αλγοριθμικές): είναι οι περισσότερες γλώσσες και επιτρέπουν την υλοποίηση αλγορίθμων Αντικειμενοστραφείς γλώσσες Συναρτησιακές γλώσσες π.χ. LISP Μη διαδικασιακές γλώσσες (ή γλώσσες πολύ υψηλού επιπέδου) π.χ.prolog Γλώσσες ερωταπαντήσεων π.χ. SQL Ταξινόμηση με βάση την περιοχή χρήσης γενικής χρήσης επιστημονικής κατεύθυνσης π.χ. FORTRAN εμπορικής κατεύθυνσης π.χ. COBOL προγραμματισμού συστημάτων π.χ. C τεχνητής νοημοσύνης π.χ.lisp, PROLOG ειδικής χρήσης (π.χ. γραφικά με υπολογιστή, ρομποτική) Δεν υπάρχει μία γλώσσα προγραμματισμού που να είναι αντικειμενικά καλύτερη από τις άλλες ούτε πρόκειται να υπάρξει. Η επιλογή της γλώσσας εξαρτάται από το είδος της εφαρμογής.

6.3 Φυσικές και τεχνητές γλώσσες Μια γλώσσα γενικά προσδιορίζεται από: 1. Το αλφάβητο: το σύνολο των στοιχείων που χρησιμοποιεί (γράμματα πεζά και κεφαλαία, ψηφία, σημεία στίξης) 2. Το λεξιλόγιο: τις λέξεις που είναι δεκτές από τη γλώσσα. 3. Τη γραμματική: η οποία αποτελείται από: α) Το τυπικό ή τυπολογικό (accidence): το σύνολο των κανόνων που ορίζουν τις μορφές με τις οποίες είναι αποδεκτή μία λέξη (π.χ. κλίσεις, βαθμοί) β) Το συντακτικό (syntax): το σύνολο των κανόνων για τη δημιουργία προτάσεων. 4. Τη σημασιολογία (Semantics): το σύνολο των κανόνων που καθορίζει το νόημα των λέξεων, των εκφράσεων και των προτάσεων.

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

6.4 Τεχνικές σχεδίασης προγραμμάτων 6.4.1 Ιεραρχική σχεδίαση προγράμματος (hierarchical programming) Ιεραρχική σχεδίαση : Είναι ή η διαδικασία σχεδίασης από επάνω προς τα κάτω ή (top-down program design) που περιλαμβάνει: α) τον καθορισμό των βασικών λειτουργιών ενός προγράμματος, σε ανώτερο επίπεδο και β) τη διάσπαση του προβλήματος σε μια σειρά από απλούστερα υποπροβλήματα, τα οποία είναι εύκολο να επιλυθούν οδηγώντας στην επίλυση του αρχικού προβλήματος.

6.4.1 Ιεραρχική σχεδίαση προγράμματος (hierarchical programming) Η ιεραρχική σχεδίαση χρησιμοποιεί τις διαγραμματικές τεχνικές. Παράδειγμα : Ιεραρχική σχεδίαση υπολογισμού του φόρου εισοδήματος

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

6.4.3 Δομημένος προγραμματισμός (structural programming) Παρουσιάστηκε στα μέσα του 1960 με σκοπό τη μείωση των εντολών GOTO. Η εντολή GOTO έχει ως αποτέλεσμα την αλλαγή της ροής του προγράμματος, της διακλάδωσης σε μία άλλη εντολή του προγράμματος εκτός από την επόμενη. Π.χ:...! μη δομημένα ΑΝ Αριθμός>0 ΤΟΤΕ GOTO 1 ΑΝ Αριθμός=0 ΤΟΤΕ GOTO 2 ΓΡΑΨΕ Αρνητικός GOTO 4 1:ΓΡΑΨΕ Θετικός GOTO 4 2: ΓΡΑΨΕ Μηδέν GOTO 4... ή...! δομημένα ΑΝ Αριθμός>0 ΤΟΤΕ ΓΡΑΨΕ Θετικός ΑΛΛΙΩΣ_ΑΝ Αριθμός=0 ΤΟΤΕ ΓΡΑΨΕ Μηδέν ΑΛΛΙΩΣ ΓΡΑΨΕ Αρνητικός ΤΕΛΟΣ_ΑΝ...! (πιο εύκολο στην κατανόηση)

6.4.3 Δομημένος προγραμματισμός (structural programming) Είναι μία μεθοδολογία σύνταξης προγραμμάτων που χρησιμοποιεί τη δομή της ακολουθίας, τη δομή της επιλογής και τη δομή της επανάληψης μόνες και σε συνδυασμό τους. Συνδυάζει την ιεραρχική σχεδίαση και τιν τμηματικό προγραμματισμό. Κάθε πρόγραμμα όπως και κάθε ενότητα προγράμματος έχει μόνο μία είσοδο και μόνο μία έξοδο. Πλεονεκτήματα του δομημένου προγραμματισμού 1. Δημιουργία απλούστερων προγραμμάτων. 2. Άμεση μεταφορά των αλγορίθμων σε προγράμματα. 3. Διευκόλυνση ανάλυσης του προγράμματος σε τμήματα. 4. Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος. 5. Διευκόλυνση στην ανάγνωση και κατανόηση του προγράμματος από τρίτους. 6. Ευκολότερη διόρθωση και συντήρηση.

6.7 Προγραμματιστικά περιβάλλοντα Στόχος: κάθε πρόγραμμα να μετατραπεί σε μορφή αναγνώσιμη και εκτελέσιμη από τον υπολογιστή, δηλαδή σε εντολές γλώσσας μηχανής. Μεταφραστικά προγράμματα: 1. Μεταγλωττιστές (compilers): δέχονται στην είσοδο ένα πρόγραμμα γραμμένο σε μία γλώσσα υψηλού επιπέδου και παράγει ένα ισοδύναμο πρόγραμμα σε γλώσσα μηχανής. (-): υποχρεωτική μεταγλώττιση και σύνδεση πριν την εκτέλεση (+): ταχύτερη εκτέλεση 2. Διερμηνευτές (interpreters): διαβάζουν μία προς μία τις εντολές του αρχικού προγράμματος και για κάθε μία εκτελεί αμέσως μία ισοδύναμη ακολουθία εντολών μηχανής. (+): άμεση εκτέλεση και διόρθωση (-) : πιο αργή εκτέλεση

6.7 Προγραμματιστικά περιβάλλοντα Συντάκτης:Χρησιμοποιείται για τη σύνταξη προγραμμάτων Μεταγλωττιστής:Δέχεται σαν είσοδο ένα πρόγραμμα σε γλώσσα υψηλού επιπέδου και παράγει ένα ισοδύναμο σε γλώσσα μηχανής Συνδέτης-φορτωτής: Συνδέει το πρόγραμμα που είναι σε γλώσσα μηχανής με άλλα τμήματα προγράμματος (που είναι σε βιβλιοθήκες) για να μπορέσει να εκτελεστεί

Μεταγλώτισση και σύνδεση Το πηγαίο πρόγραμμα μετατρέπεται σε εκτελέσιμο Πηγαίο πρόγραμμα Μεταγλωτιστής Εκτελέσιμο πρόγραμμα Συνδέτης Φορτωτής Αντικείμενο πρόγραμμα

6.7 Προγραμματιστικά περιβάλλοντα Μεταγλώττιση και σύνδεση προγράμματος: ΝΑΙ Λάθη ΟΧΙ Βιβλιοθήκη Συντάκτης (Editor).obj.exe (Πηγαίο - source) ή αντικείμενο Object πρόγραμμα (Linker) (executable)

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