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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

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

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

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

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program)

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

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

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

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

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

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

Αρχιτεκτονικές Υπολογιστών

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

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

Προγραμματισμός Η/Υ. Λογισμικό. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 3 : Γλώσσες προγραμματισμού. Δρ.

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

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

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

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

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

Προγραμματισμός Η/Υ. 1 η ενότητα: Εισαγωγή στις γλώσσες προγραμματισμού. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων

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

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

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

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

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην αναγκαιότητα ύπαρξης των μεταγλωττιστών

ΕΠΛ Εισαγωγή στον Προγραµµατισµό: Λογισµικό. Το λογισµικό του συστήµατος: 1 Εισαγωγή ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

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

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού

ΛΟΓΙΣΜΙΚΟ (software)

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

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

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

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

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

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

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

2.1 Αντικειµενοστρεφής προγραµµατισµός

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

Εισαγωγή στην Πληροφορική

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

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

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

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

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

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

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

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

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

Κεφάλαιο 1: Εισαγωγή. 1.1 Οι γλώσσες προγραμματισμού

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΑΟΓΙΣΤΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ...3-1

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

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΙΟΙΚΗΣΗΣ Το σηµερινό µάθηµα ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ιδάσκων: Πέτρος Βασιλικός Λογισµικό Υπολογιστικών Συστηµάτων Λογισµικό & Προγράµµατα συστηµάτων και εφαρµογών Γλώσσες & επίπεδα γλωσσών προγραµµατισµού Επιτακτικές ή ιαδικαστικές & Εφαρµοστικές Γλώσσες Μεταφραστές & Μεταγλωττιστές Λειτουργικά συστήµατα pvasilikos@fme.aegean.gr Εβδοµάδα 8: Λογισµικό 1 Εβδοµάδα 8: Λογισµικό 2 Λογισµικό συστηµάτων & εφαρµογών Μέρος Α Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών Υπάρχουν 2 κατηγορίες λογισµικού: Λογισµικό συστήµατος (system software) Λογισµικό εφαρµογών (application software) Το λογισµικό συστήµατος περιλαµβάνει τα προγράµµατα συστήµατος τα οποία εξυπηρετούν τις ανάγκες των προγραµµάτων εφαρµογών των χρηστών Το λογισµικό εφαρµογών περιλαµβάνει τα προγράµµατα που υλοποιούν τις εφαρµογές των χρηστών µέσω των υπολογιστικών συστηµάτων Εβδοµάδα 8: Λογισµικό 3 Εβδοµάδα 8: Λογισµικό 4 Λογισµικό συστηµάτων & εφαρµογών Λογισµικό συστηµάτων Λογισµικό εφαρµογών Προγράµµατα συστηµάτων & εφαρµογών Λειτουργικά Συστήµατα Ανάπτυξη λογισµικού Λογισµικό επικοινωνίας Windows UNIX MS-DOS Μεταφραστές Γλώσσες Προγραµµατισµού Πρωτόκολλα επικοινωνίας ιαχείριση ικτυακού συστήµατος αρχείων Λογισµικό FAX Γενικευµένο Λογισµικό Εξειδικευµένο Λογισµικό Επεξ. Κειµένου Βάσεις εδοµένων Πολυµέσα ιαχείριση έργου Αυτοµατοποίηση Βιοµηχανίας Εφαρµογές Τοπικής Αυτοδιοίκησης Τραπεζικές εφαρµογές Παιχνίδια Μεταξύ των προγραµµάτων συστήµατος συµπεριλαµβάνονται: Λειτουργικά Συστήµατα (Operating Systems) Μεταφραστές (Translators) Προγράµµατα επικοινωνίας Προγράµµατα ιαχείρισης Βάσεων εδοµένων (Data Base Management Systems) H ανάπτυξη ενός προγράµµατος εφαρµογής µπορεί να πραγµατοποιείται για την εξυπηρέτηση των ιδιαιτέρων αναγκών ενός µόνου τελικού χρήστη (customization) ή για την κάλυψη οµοειδών αναγκών ενός συνόλου χρηστών (πακέτα εφαρµογών-application packages) Εβδοµάδα 8: Λογισµικό 5 Εβδοµάδα 8: Λογισµικό 6

Γλώσσες Προγραµµατισµού Μέρος Β Γλώσσες & Επίπεδα Γλωσσών Προγραµµατισµού Εβδοµάδα 8: Λογισµικό 7 Μια υπολογιστική µηχανή εκτελεί προγράµµατα που είναι κωδικοποιηµένα στη γλώσσα της Ακολουθίες δύο καταστάσεων µε στοιχεία του δυαδικού συστήµατος 0 και 1 Παράδειγµα προγράµµατος στη γλώσσα µηχανής 0101110101001010 1011010101111010 0100011101010001 1001111001010110 0110110101010101 Εβδοµάδα 8: Λογισµικό 8 Γλώσσες Προγραµµατισµού Ηανάπτυξη προγραµµάτων στη γλώσσα µηχανής είναι έργο πολύπλοκο και δύσκολο Το πρόβληµα γίνεται πιο δύσκολο αφού οι γλώσσες µηχανής δεν είναι ίδιες για όλους τις µηχανές. Για κάθε µηχανή πρέπει να αναπτύσσεται διαφορετικό πρόγραµµα Λύση στο παραπάνω πρόβληµα δίνουν οι γλώσσες προγραµµατισµού Οι γλώσσες δεν αντιστοιχούν σε µια συγκεκριµένη κατηγορία µηχανών Οι γλώσσες προγραµµατισµού θεωρούνται συστήµατα κωδικοποίησης των υπολογισµών και των διαδικασιών Παραδείγµατα Γλωσσών Προγραµµατισµού FORmula TRANslation (FORTRAN) COmmon Business Oriented Language (COBOL) ALGOrithmic Language (ALGOL) Biginners All purpose Symbolic Instruction Code (BASIC) LISt Processing (LISP) PROgramming LOGic (PROLOG) Pascal C, C++ Java Εβδοµάδα 8: Λογισµικό 9 Εβδοµάδα 8: Λογισµικό 10 FORTRAN-COBOL-ALGOL FORTRAN Κύρια αλγεβρική γλώσσα κατάλληλη για αριθµητικές εφαρµογές Πρώτη γλώσσα προγραµµατισµού υψηλού επιπέδου Χρησιµοποιήθηκε κυρίως ως µαθηµατική γλώσσα COBOL Ακατάλληλη για αριθµητικές εφαρµογές Σχεδιάστηκε για την ανάπτυξη εµπορικών εφαρµογών ALGOL Σχεδιάστηκε ως γλώσσα γενικής χρήσης Εισαγωγική γλώσσα στον προγραµµατισµό Επίπεδα γλωσσών προγραµµατισµού Οι γλώσσες προγραµµατισµού διακρίνονται σε γλώσσες: Υψηλού επιπέδου Χαµηλού επιπέδου Το επίπεδο µιας γλώσσας χαρακτηρίζεται υψηλό ή χαµηλό ανάλογα µε το αν βρίσκεται κοντά στον ανθρώπινο τρόπο σκέψης ή στις λειτουργικές ιδιοµορφίες των υπολογιστικών συστηµάτων Μια γλώσσα χαρακτηρίζεται από την περιγραφικότητά της Οι περισσότερο περιγραφικές γλώσσες είναι κατά κανόνα γλώσσες υψηλότερου επιπέδου Εβδοµάδα 8: Λογισµικό 11 Εβδοµάδα 8: Λογισµικό 12

Επίπεδα γλωσσών προγραµµατισµού Άνθρωπος Φυσική Γλώσσα PASCAL, C, COBOL, FORTRAN,ALGOL, BASIC, ADA, LISP, PROLOG, MODULA,PL/1, RPG, SIMULA, BLISS, SMALLTALK Υψηλό Επίπεδο Χαµηλό Επίπεδο Γλώσσα Μηχανής Συµβολική Γλώσσα (Assembly) Μηχανή Γλώσσα µηχανής Το σύνολο των απλών οδηγιών που ακολουθούν οι µηχανές για να υλοποιήσουν εύκολα τις διαδικασίες επίλυσης των ανθρωπίνων προβληµάτων ορίζεται ως γλώσσα µηχανής. Η γλώσσα µηχανής ενός συστήµατος σχεδιάζεται για να εξυπηρετήσει συγκεκριµένες ανάγκες και να καλύψει ορισµένες απαιτήσεις απόδοσης. Οι εντολές στη γλώσσα µηχανής δεν παριστάνονται µε συµβολική µορφή, αλλά µε αριθµητικούς κωδικούς, έτσι ώστε κάθε εντολή να έχει συγκεκριµένο κωδικό αριθµό που ονοµάζεται κωδικός λειτουργίας (operation code) Εβδοµάδα 8: Λογισµικό 13 Εβδοµάδα 8: Λογισµικό 14 Γλώσσες υψηλού και χαµηλού επιπέδου Οι γλώσσες προγραµµατισµού υψηλού επιπέδου διαθέτουν εντολές που ταυτίζονται ή είναι παρόµοιες µε αλγεβρικές παραστάσεις Οι γλώσσες προγραµµατισµού χαµηλού επιπέδου απαιτούν συνήθως την γραφή µιας ακολουθίας εντολών για την απόδοση του ίδιου υπολογισµού Η χρησιµοποίηση συµβολικών ονοµάτων τόσο για τις θέσεις µνήµης όσο και για τις οδηγίες αποτελεί βήµα αποµάκρυνσης από το επίπεδο της γλώσσας µηχανής. Γλώσσες υψηλού επιπέδου Οι γλώσσες προγραµµατισµού υψηλού επιπέδου και γενικής χρήσης ονοµάζονται συνήθως user-oriented languages (γλώσσες προσανατολισµένες στο χρήστη) Οι γλώσσες υψηλού επιπέδου ειδικής χρήσης που είναι κατάλληλες για την επίλυση προβληµάτων συγκεκριµένου τύπου ονοµάζονται problem-oriented languages (γλώσσες προσανατολισµένες στο πρόβληµα) Παραδείγµατα user-oriented γλωσσών αποτελούν οι γλώσσες Pascal, FORTRAN, C, COBOL, BASIC κτλ Παραδείγµατα problem-oriented γλωσσών αποτελούν οι γλώσσες SQL, Clipper, Simula Εβδοµάδα 8: Λογισµικό 15 Εβδοµάδα 8: Λογισµικό 16 Πλεονεκτήµατα γλωσσών προγραµµατισµού υψηλού επιπέδου Παρουσιάζουν ευκολία στην εκµάθηση εν χρειάζεται γνώση περί µετατροπών των στοιχείων από τις εξωτερικές τους παραστάσεις στις αντίστοιχες που είναι δεκτές από την υπολογιστική µηχανή Προσφέρουν περιεκτικές εντολές Επιτρέπουν τον έλεγχο των προγραµµάτων µε απλό τρόπο και την ανεύρεση και διόρθωση λαθών Υποστηρίζουν την ιεραρχική δόµηση των προγραµµάτων, τη διαίρεση τους σε διαδικασίες καθώς και τη δηµιουργία και χρησιµοποίηση τµηµάτων προγραµµάτων και τη σύνθεσή τους σε ολοκληρωµένα προγράµµατα Παρέχουν ανεξαρτησία από τη χρησιµοποιούµενη µηχανή Μέρος Γ Επιτακτικές ή ιαδικαστικές & Εφαρµοστικές Γλώσσες Εβδοµάδα 8: Λογισµικό 17 Εβδοµάδα 8: Λογισµικό 18

Επιτακτικές ή ιαδικαστικές Γλώσσες Επιτακτικές ή και διαδικαστικές είναι οι γλώσσες προγραµµατισµού υψηλού επιπέδου, που έχουν ως κύριο χαρακτηριστικό τους τη χρήση εκχωρητικών εντολών. Εκχωρητικές είναι οι εντολές αντικατάστασης των τιµών των µεταβλητών των προγραµµάτων, µε εκχωρήσεις νέων τιµών. Ο όρος διαδικαστικές (procedural) χρησιµοποιείται επειδή τα προγράµµατα που αναπτύσσονται βασίζονται στην ιδέα εκτέλεσης µιας συνταγής σύµφωνα µε µια προκαθορισµένη διαδικασία που αποδίδεται µε µια ακολουθία οδηγιών Παραδείγµατα επιτακτικών γλωσσών αποτελούν οι: FORTRAN, Pascal, ALGOL, COBOL, BASIC Εβδοµάδα 8: Λογισµικό 19 Εφαρµοστικές Γλώσσες (Applicative Languages) Οι Εφαρµοστικές γλώσσες αποτελούν µια δεύτερη γενική κατηγορία γλωσσών που βασίζονται σε µαθηµατικές εκφράσεις και χρησιµοποιούνται γι αυτές εναλλακτικά οι όροι δηλωτικές (declarative) και περιγραφικές (descriptive) Υπάρχουν 2 κατηγορίες Εφαρµοστικών γλωσσών: Συναρτησιακές (functional) Λογικές (logic) Οι λογικές γλώσσες έχουν ως χαρακτηριστικό τη διατύπωση λογικών προτάσεων που ορίζουν συσχετίσεις µεταξύ των δεδοµένων και την παραγωγή απαντήσεων σε ερωτήµατα τα οποία λαµβάνουν υπόψη τους τις λογικές προτάσεις Εβδοµάδα 8: Λογισµικό 20 Εφαρµοστικές Γλώσσες (Applicative Languages) Οι συναρτησιακές γλώσσες έχουν ως χαρακτηριστικό τη διαχείριση δεδοµένων µε παραστάσεις που προκύπτουν από την εφαρµογή συναρτήσεων οι οποίες ορίζονται µε απλές διαδικασίες. Μια εφαρµοστική γλώσσα χρησιµοποιεί ιδιότητες όµοιες µε τις µαθηµατικές ιδιότητες των συναρτήσεων και έχει 4 βασικά χαρακτηριστικά στοιχεία: Ένα σύνολο αρχικών συναρτήσεων Ένα σύνολο συναρτησιακών τύπων για τη δηµιουργία νέων συναρτήσεων Τη λειτουργία εφαρµογής των συναρτήσεων επί των ορισµάτων τους και τη διαδικασία παραγωγής της τιµής Ένα σύνολο αντικειµένων που ανήκουν στα πεδία ορισµού και τιµών Εβδοµάδα 8: Λογισµικό 21 Αντικειµενοστραφής Προγραµµατισµός Αρχές Αντικειµενοστραφούς Προγραµµατισµού : Καψουλοποίηση (Encapsulation) Πολυµορφισµός (Polymorphism) Κληρονοµικότητα (Inheritance) Ολοκλήρωση δεδοµένων (data) και διεργασιών (procedures) σε ένα αντικείµενο (object) Αποστολή µηνυµάτων (messages) στο object για να κάνει κάποια διεργασία Ενθυλάκωση δεδοµένων (encapsulated data) Επαναχρησιµοποιήσιµος κώδικας (reusable code) Μείωση χρόνου και κόστους ανάπτυξης λογισµικού Εβδοµάδα 8: Λογισµικό 22 Αντικειµενοστραφής Προγραµµατισµός Objects Το προϊόν σχεδιάζεται µε βάση τα abstract data types Τα αντικείµενα (objects) είναι instantiations αυτών των abstract data types Class: abstract data type η οποία υποστηρίζει inheritance Τα objects είναι instantiations των classes Κληρονοµιά (inheritance) Έστω humanbeing µία class Ένα humanbeing έχει attributes, όπως age, height, gender Καταχώριση τιµών στα attributes κατά την περιγραφή του object Ορισµός της parent ως subclass του humanbeing Ένας parent έχει όλα τα attributes του humanbeing και, επιπλέον, τα δικά του attributes (name_of_oldest_child, num_of_children) Ένας parent «κληρονοµεί» όλα τα attributes του humanbeing Σύγκριση επιτακτικών & εφαρµοστικών O συναρτησιακός προγραµµατισµός σε σχέση µε τον επιτακτικό, θεωρείται ότι από απόψεως επιπέδου βρίσκεται αρκετά υψηλότερα. Αυτό σηµαίνει ευκολότερο και αποδοτικότερο προγραµµατισµό Οι εφαρµοστικές γλώσσες δεν είναι ακόµη δυνατό να θεωρηθεί πως υπερέχουν και ότι πρέπει να προτιµούνται. Αυτό οφείλεται στις υλοποιήσεις τους σε σηµερινές µηχανές που δεν είναι ιδιαίτερα κατάλληλες. Επειδή το κύριο κριτήριο υπεροχής είναι η εκτέλεση των προγραµµάτων και όχι η ανάπτυξή τους, κρίνεται ότι οι επιτακτικές γλώσσες προσφέρονται περισσότερο στην παραγωγή ενώ οι εφαρµοστικές προσφέρονται για έρευνα Εβδοµάδα 8: Λογισµικό 23 Εβδοµάδα 8: Λογισµικό 24

Μεταφραστές (Translators) Μέρος Μεταφραστές & Μεταγλωττιστές Για κάθε πρόγραµµα που έχει συνταχθεί σε µια γλώσσα προγραµµατισµού διαφορετική από τη γλώσσα της µηχανής απαιτείται µια διαδικασία µετασχηµατισµού του σε µια άλλη µορφή που είναι εκτελέσιµη από την υπολογιστική µηχανή. Η διαδικασία του µετασχηµατισµού ή της µετάφρασης ενός προγράµµατος από τη γλώσσα προγραµµατισµού σε γλώσσα µηχανής πραγµατοποιείται µέσω ειδικών προγραµµάτων που ονοµάζονται µεταφραστές. Μεταφραστής είναι ένα πρόγραµµα που εκτελείται σε µια συγκεκριµένη µηχανή και µεταφράζει τα προγράµµατα από µια γλώσσα σε αντίστοιχα προγράµµατα σε µια διαφορετική γλώσσα Εβδοµάδα 8: Λογισµικό 25 Εβδοµάδα 8: Λογισµικό 26 Μεταφραστές (Translators) Το πρόγραµµα που έχει συνταχθεί σε µια γλώσσα προγραµµατισµού και πρόκειται να µεταφραστεί ονοµάζεται πηγαίο (source). To πρόγραµµα που προκύπτει ως αποτέλεσµα της µετάφρασης ονοµάζεται αντικείµενο (object) Σε περίπτωση που το πηγαίο πρόγραµµα είναι κωδικοποιηµένο σε µια γλώσσα υψηλού προγραµµατισµού, τότε ο µεταφραστής ονοµάζεται µεταγλωττιστής (compiler) και η διαδικασία µεταγλώττιση (compilation) Αν το πηγαίο πρόγραµµα είναι κωδικοποιηµένο στη συµβολική γλώσσα (assembly) και το αντικείµενο στη γλώσσα µηχανής, τότε ο µεταφραστής καλείται assembler και αποδίδεται ελληνικά µε τον όρο συµβολοµεταφραστής. ιερµηνευτές (Interpreters) Οι διερµηνευτές µεταφράζουν τα προγράµµατα που έχουν γραφεί σε γλώσσες υψηλού επιπέδου, σε γλώσσα µηχανής αλλά η διαδικασία πραγµατοποιείται τµηµατικά, δηλαδή εντολή προς εντολή. ηλαδή µεταφράζουν µια εντολή και αµέσως τηv εκτελούν. Στη συνέχεια ανακαλούν την επόµενη εντολή και συνεχίζουν την ίδια διαδικασία. Οι διερµηνευτές διαφέρουν από τους µεταγλωττιστές, αφού δεν µεταγλωττίζουν ολόκληρο το πρόγραµµα και δεν παράγουν ένα ολοκληρωµένο πρόγραµµα, σε γλώσσα µηχανής, αντίστοιχο του προγράµµατος της γλώσσας υψηλού επιπέδου. Εβδοµάδα 8: Λογισµικό 27 Εβδοµάδα 8: Λογισµικό 28 Εκτελεστές προγραµµάτων (Run Time Executors) ιάφοροι µεταφραστές µετατρέπουν το πηγαίο πρόγραµµα σε κάποια άλλη απλοποιηµένη µορφή που ονοµάζεται «ενδιάµεσος κώδικας». Η µορφή αυτή δεν αντιστοιχεί στη γλώσσα µηχανής και δεν είναι άµεσα εκτελέσιµη. Για την εκτέλεσή της απαιτείται ένα άλλο πρόγραµµα που συνήθως ονοµάζεται εκτελεστής προγράµµατος ή Run time executor Οι εταιρίες που παράγουν λογισµικό συστήµατος και ειδικά µεταγλωττιστές και µεταφραστές χρησιµοποιούν συχνά εκτελεστές προγράµµατος. Συµβολοµεταφραστές (Assemblers) Όταν πηγαία γλώσσα είναι η συµβολική και αντικειµενική γλώσσα είναι η γλώσσα µηχανής, τότε ο µεταφραστής ονοµάζεται συµβολοµεταφραστής (assembler). Η αντιστοιχία εντολών µεταξύ της γλώσσας µηχανής και της συµβολικής γλώσσας είναι µία προς µία. Η ουσιαστική διαφορά των δύο γλωσσών έγκειται στον τρόπο απόδοσης των πράξεων και των διευθύνσεων. Στη γλώσσα µηχανής αποδίδονται αριθµητικά Στη συµβολική γλώσσα αποδίδονται µε συµβολικά ονόµατα. Εβδοµάδα 8: Λογισµικό 29 Εβδοµάδα 8: Λογισµικό 30

Μεταγλωττιστές Επεξεργασίες Μεταγλώττισης Κάθε µεταγλωττιστής εκτελεί πάντα δύο, κατά βάση, ξεχωριστές διαδικασίες: Την ανάλυση του πηγαίου προγράµµατος Τη σύνθεση του αντίστοιχου αντικειµενικού προγράµµατος Η ανάλυση συνίσταται στη διάσπαση (decomposition) του πηγαίου προγράµµατος σε βασικά στοιχεία. Τα στοιχεία αυτά χρησιµοποιούνται ακολούθως στη φάση της σύνθεσης και δόµησης του αντικειµενικού προγράµµατος Η µεταγλώττιση είναι σύνθετο έργο και περιλαµβάνει την αλληλοσύνδεση µικρότερων επεξεργασιών. Οι επεξεργασίες αυτές είναι ευκολότερο να ορισθούν και να υλοποιηθούν ξεχωριστά. Οι 3 βασικές επεξεργασίες της µεταγλώττισης πραγµατοποιούνται από 3 αντίστοιχους επεξεργαστές: To λεκτικό επεξεργαστή Το συντακτικό επεξεργαστή Τον επεξεργαστή παραγωγής κώδικα µηχανής Πρόγραµµα σε Γλώσσα Υψηλού Επιπέδου Λεκτικός επεξεργαστής Συντακτικός επεξεργαστής Σηµασιολογικός επεξεργαστής Γεννήτρια Κώδικα Βελτιστοποίηση Κώδικα Π Ι Ν Α Κ Ε Σ Αντίστοιχο Πρόγραµµα σε Γλώσσα Μηχανής Εβδοµάδα 8: Λογισµικό 31 Εβδοµάδα 8: Λογισµικό 32 Επεξεργασίες Μεταγλώττισης Ολεκτικός επεξεργαστής αναγνωρίζει ακολουθίες χαρακτήρων και συνθέτει τις λέξεις της γλώσσας Ο συντακτικός επεξεργαστής αναλύει τις ακολουθίες των λέξεων και τις συνθέτει σε φράσεις που αποτελούν τις εντολές του προγραµµατιστή Ο επεξεργαστής παραγωγής κώδικα µηχανής (ή γεννήτρια κώδικα) µετασχηµατίζει τη µορφή του προγράµµατος στην οποία κατέληξε ο συντακτικός επεξεργαστής, σε αντίστοιχη ακολουθία εντολών της γλώσσας µηχανής Μέρος Ε Λειτουργικά συστήµατα Εβδοµάδα 8: Λογισµικό 33 Εβδοµάδα 8: Λογισµικό 34 Λειτουργικά συστήµατα Το λειτουργικό σύστηµα κάθε υπολογιστικού συστήµατος θεωρείται ως το πιο σηµαντικό µέρος του λογισµικού συστήµατος (system software) Το λειτουργικό σύστηµα είναι ένα ολοκληρωµένο σύστηµα προγραµµάτων Λειτουργικά συστήµατα Κάθε λειτουργικό σύστηµα εκτελεί τις ακόλουθες 4 κύριες διαχειριστικές λειτουργίες: ιαχείριση των εκτελούµενων έργων (Job Management) ιαχείριση των διατιθέµενων πόρων (Resource Management) ιαχείριση των δεδοµένων (Data Management) Υποστήριξη του περιβάλλοντος των χρηστών Τα προγράµµατα αυτά κατευθύνουν τις διαδικασίες εισόδου και εξόδου, παρέχουν το σύστηµα επικοινωνίας χρήστη- µηχανής και διαχειρίζονται τους πόρους του υπολογιστικού συστήµατος Εβδοµάδα 8: Λογισµικό 35 Εβδοµάδα 8: Λογισµικό 36

ιαχείριση των εκτελούµενων έργων (Job Management) ιαχείριση των διατιθέµενων πόρων (Resource Management) Περιλαµβάνει τον προγραµµατισµό εκτέλεσης και τις διαδικασίες προετοιµασίας και παρακολούθησης των εκτελούµενων έργων. Το λειτουργικό σύστηµα είναι εφοδιασµένο µε ένα ολοκληρωµένο σύστηµα προγραµµάτων που προγραµµατίζουν, κατευθύνουν και ελέγχουν τη ροή όλων των εκτελούµενων έργων από το υπολογιστικό σύστηµα Η έναρξη της εκτέλεσης κάθε έργου, η επεξεργασία του, η εξυπηρέτηση των διαφόρων απαιτήσεων του, ο τερµατισµός του, καθώς και η ενδιάµεση επικοινωνία µε τον χρήστη ανήκουν σε αυτή τη λειτουργία Με τη λειτουργία αυτή πραγµατοποιείται η διάθεση των πόρων του υπολογιστικού συστήµατος στα προγράµµατα των εφαρµογών, στα προγράµµατα συστήµατος, καθώς και σε προγράµµατα διαχείρισης και µετάδοσης δεδοµένων Οι διαχειριζόµενοι πόροι περιλαµβάνουν την κεντρική και την περιφερειακή µνήµη, τη διάθεση του χρόνου επεξεργασίας της κεντρικής µονάδας επεξεργασίας και τις διαθέσιµες περιφερειακές µονάδες, όπως π.χ δίσκους, εκτυπωτές κτλ Εβδοµάδα 8: Λογισµικό 37 Εβδοµάδα 8: Λογισµικό 38 ιαχείριση των δεδοµένων (Data Management) Το κύριο έργο της λειτουργίας αυτής είναι οι έλεγχοι της εισόδου και εξόδου των δεδοµένων (Input/Output), οι καταχωρήσεις τους και οι ανακλήσεις τους. Οι διαδικασίες αναφέρονται σε πολλά λειτουργικά συστήµατα µε τον όρο Input/Output Control System (IOCS) To IOCS περιλαµβάνει ένα σύνολο προγραµµάτων που έχουν σκοπό την στήριξη των διαδικασιών εισόδου και εξόδου των δεδοµένων Ηδιαδικασία εκκίνησης (booting) Σε µερικές περιπτώσεις το λειτουργικό σύστηµα είναι εγκατεστηµένο σε ROM (Read-Only Memory) και συνεπώς είναι εξ αρχής διαθέσιµο Στις περισσότερες περιπτώσεις όµως το λειτουργικό εισάγεται στην κεντρική µνήµη RAM (Random Access Memory) µε τη διαδικασία εκκίνησης του υπολογιστικού συστήµατος Η διαδικασία αυτή πραγµατοποιείται µέσω ενός ειδικού προγράµµατος που ονοµάζεται Boot Το πρόγραµµα αυτό είναι καταχωρηµένο στην αρχή ενός µαγνητικού δίσκου (δίσκος εκκίνησης) Αποτελείται από µια µικρή ακολουθία εντολών Εβδοµάδα 8: Λογισµικό 39 Εβδοµάδα 8: Λογισµικό 40 Συστήµατα πολλαπλών χρηστών Τα συστήµατα που εξυπηρετούν µια θέση εργασίας και συνεπώς ένα χρήστη ονοµάζονται συστήµατα ενός χρήστη (single user system) Τα υπολογιστικά συστήµατα τύπου main frames, µίνι, και τα σύγχρονα συστήµατα εξυπηρετούν περισσότερες από µία θέσεις εργασίας. Αυτά ονοµάζονται συστήµατα πολλαπλών χρηστών (multi-user systems) Τα λειτουργικά συστήµατα πολλαπλών χρηστών αντιµετωπίζουν την ταυτόχρονη εκτέλεση των προγραµµάτων των χρηστών που είναι περισσότερα από ένα και υλοποιούν καθιερωµένες διαδικασίες. Πολυπρογραµµατισµός Αντί της εκτέλεσης αποκλειστικά ενός προγράµµατος να εκτελούνται κατά την ίδια περίοδο δύο ή και περισσότερα Κάθε εκτελούµενο πρόγραµµα πρέπει να είναι καταχωρηµένο στην κεντρική µνήµη. Ο Πολυπρογραµµατισµός δεν εφαρµόζεται µόνο στην περίπτωση των λειτουργικών συστηµάτων πολλαπλών χρηστών. Υλοποιείται και στα συστήµατα ενός χρήστη Το πλεονέκτηµα της σύγχρονης εκτέλεσης προγραµµάτων έγκειται στο ότι η κεντρική µονάδα επεξεργασίας είναι δυνατό να πραγµατοποιεί περισσότερο έργο, µέσα στην ίδια χρονική περίοδο, εκµεταλλευόµενη τις καθυστερήσεις που οφείλονται σε απαιτήσεις εισόδου/εξόδου από τα προγράµµατα εφαρµογών Εβδοµάδα 8: Λογισµικό 41 Εβδοµάδα 8: Λογισµικό 42