2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · web viewυπήρχε...

31
Ερευνητική εργασία τάξης Β’ Λυκείου Θέμα: Γλώσσες Προγραμματισμού Ηλεκτρονικών Υπολογιστών Ιστορική αναδρομή στο χώρο των υπολογιστών 1 η Γενιά των Υπολογιστών(1946-1956) Το 1946, μετά το τέλος του Β΄ Παγκοσμίου Πολέμου, οι Ηνωμένες Πολιτείες χρειάζονταν μια συσκευή η οποία να βοηθά τους στρατιωτικούς στους υπολογισμούς για να βρίσκουν τα όπλα τους το στόχο με μεγαλύτερη ακρίβεια. Για πρώτη φορά δημιουργήθηκε ένα τεράστιο μηχάνημα που αντί για μηχανικά μέρη χρησιμοποιούσε ηλεκτρονικές λυχνίες, κατασκευασμένες από τον Λι Ντε Φόρεστ (Lee De Forest). Ο πρώτος ηλεκτρονικός υπολογιστής που λειτουργούσε με λυχνίες Ο ΕΝΙΑC ήταν τεράστιος σε μέγεθος (καταλάμβανε έναν ολόκληρο όροφο), και έπρεπε να τον ελέγχουν συνεχώς ειδικοί επιστήμονες. Συχνά, επίσης, καίγονταν οι λυχνίες του και έπρεπε να τις αντικαθιστούν. Ακόμα και ο πιο ταπεινός σημερινός υπολογιστής είναι χιλιάδες φορές καλύτερος από τον ENIAC ως προς τις δυνατότητες. Ήταν, όμως, η πρώτη σοβαρή προσπάθεια δημιουργίας υπολογιστικής μηχανής. 2η Γενιά των Υπολογιστών (1956- 1963) Στη δεύτερη γενιά ηλεκτρονικών υπολογιστών γίνεται η αντικατάσταση των τριόδων λυχνιών από τα τρανζίστορ. Τα τρανζίστορ προσφέρουν μια σημαντική μείωση τού όγκου των μηχανών με την ταυτόχρονη ελάττωση της απαιτούμενης ηλεκτρικής ενέργειας και με την παράλληλη αύξηση της ταχύτητας των υπολογιστών 1956 στη Μασαχουσέτη ιδρύθηκε ο πρώτος ηλεκτρονικός υπολογιστής που λειτούργησε με τρανζίστορ. Είναι αξιοσημείωτο να σημειωθεί ότι στην δεύτερη γενιά γίνεται η εμφάνιση των πρώτων γλωσσών υψηλού επιπέδου, για την κατασκευή και την εφαρμογή προγραμμάτων τελευταίας τεχνολογίας καθώς και για την γρήγορη εξέλιξη και διάδοση των ηλεκτρονικών υπολογιστών. Ο John Backus παρουσίασε τον πρώτο μεταγλωττιστή της Fortran το 1956 καθώς και την γλώσσα cobol. Στη δεύτερη γενιά υπολογιστών εμφανίστηκε παράλληλα και μια δεύτερη βιομηχανία που στόχευε στην τελειοποίηση των συστημάτων των τρανζίστορ αλλά και άλλων στοιχείων και κυκλωμάτων που θα

Upload: buikhanh

Post on 05-Jul-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

Ερευνητική εργασία τάξης Β’ ΛυκείουΘέμα: Γλώσσες Προγραμματισμού Ηλεκτρονικών Υπολογιστών

Ιστορική αναδρομή στο χώρο των υπολογιστών

1 η Γενιά των Υπολογιστών(1946-1956) Το 1946, μετά το τέλος του Β΄ Παγκοσμίου Πολέμου, οι Ηνωμένες

Πολιτείες χρειάζονταν μια συσκευή η οποία να βοηθά τους στρατιωτικούς στους υπολογισμούς για να βρίσκουν τα όπλα τους το στόχο με μεγαλύτερη ακρίβεια. Για πρώτη φορά δημιουργήθηκε ένα τεράστιο μηχάνημα που αντί για μηχανικά μέρη χρησιμοποιούσε ηλεκτρονικές λυχνίες, κατασκευασμένες από τον Λι Ντε Φόρεστ (Lee De Forest). Ο πρώτος ηλεκτρονικός υπολογιστής που λειτουργούσε με λυχνίες Ο ΕΝΙΑC ήταν τεράστιος σε μέγεθος (καταλάμβανε έναν ολόκληρο όροφο), και έπρεπε να τον ελέγχουν συνεχώς ειδικοί επιστήμονες. Συχνά, επίσης, καίγονταν οι λυχνίες του και έπρεπε να τις αντικαθιστούν. Ακόμα και ο πιο ταπεινός σημερινός υπολογιστής είναι χιλιάδες φορές καλύτερος από τον ENIAC ως προς τις δυνατότητες. Ήταν, όμως, η πρώτη σοβαρή προσπάθεια δημιουργίας υπολογιστικής μηχανής.

2η Γενιά των Υπολογιστών (1956- 1963)Στη δεύτερη γενιά ηλεκτρονικών υπολογιστών γίνεται η

αντικατάσταση των τριόδων λυχνιών από τα τρανζίστορ. Τα τρανζίστορ προσφέρουν μια σημαντική μείωση τού όγκου των μηχανών με την ταυτόχρονη ελάττωση της απαιτούμενης ηλεκτρικής ενέργειας και με την παράλληλη αύξηση της ταχύτητας των υπολογιστών 1956 στη Μασαχουσέτη ιδρύθηκε ο πρώτος ηλεκτρονικός υπολογιστής που λειτούργησε με τρανζίστορ. Είναι αξιοσημείωτο να σημειωθεί ότι στην δεύτερη γενιά γίνεται η εμφάνιση των πρώτων γλωσσών υψηλού επιπέδου, για την κατασκευή και την εφαρμογή προγραμμάτων τελευταίας τεχνολογίας καθώς και για την γρήγορη εξέλιξη και διάδοση των ηλεκτρονικών υπολογιστών. Ο John Backus παρουσίασε τον πρώτο μεταγλωττιστή της Fortran το 1956 καθώς και την γλώσσα cobol. Στη δεύτερη γενιά υπολογιστών εμφανίστηκε παράλληλα και μια δεύτερη βιομηχανία που στόχευε στην τελειοποίηση των συστημάτων των τρανζίστορ αλλά και άλλων στοιχείων και κυκλωμάτων που θα μπορούσαν να τοποθετηθούν πάνω σε ένα chip. Τα τρανζίστορ χρησιμοποιούνται καθημερινά από τους ανθρώπους καθώς είναι εύχρηστα και μπορεί ο καθένας να τα πάρει μαζί του για να ακούσει μουσική. Μέχρι το 1948,η εφεύρεση του τρανζίστορ άλλαξε σε μεγάλο βαθμό την ανάπτυξη του υπολογιστή. Το τρανζίστορ αντικατέστησε τη μεγάλη, δυσκίνητη σωλήνα κινούσε τηλεοράσεις, ραδιόφωνα και υπολογιστές. Ως αποτέλεσμα το μέγεθος των ηλεκτρονικών μηχανημάτων συρρικνώνεται από τότε. Το τρανζίστορ ήταν στην εργασία από το 1956.Σε συνδυασμό με τις εξελίξεις στο μαγνητικό πυρήνα μνήμης, το τρανζίστορ οδήγησε στη δεύτερη γενιά υπολογιστών την ύπαρξη μικρότερων τρανζίστορ τα οποία ήταν πιο γρήγορα και πιο αξιόπιστα από τους προκατόχους τους. Οι πρώτες μεγάλες μηχανές για

Page 2: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

να επωφεληθούν από τα τρανζίστορ τα οποία χαρακτηρίστηκαν στην συνέχεια ως υπερυπολογιστές stretch από τη IBM και LARC από Sperry -Rand. Αυτοί οι υπολογιστές μπορούσαν να χειριστούν ένα τεράστιο βαθμό δεδομένων γι' αυτό υπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα μηχανήματα λόγο των ικανοτήτων τους ήταν δαπανηρά και έτσι περιοριζόταν η ελκυστικότητα τους. Η δεκαετία του 1960 αποδείχτηκε εμπορικά επιτυχημένη καθώς οι υπολογιστές της 2η γενιάς εισχώρησαν στα πανεπιστήμια, στις επιχειρήσεις καθώς και στην κυβέρνηση. Αυτοί οι υπολογιστές περιείχαν τρανζίστορ αντικατάσταση με το σωλήνα κενού. Κατά τον τρόπο αυτό όλα τα στοιχεία που συνδέονται με τον σύγχρονο υπολογιστή σήμερα εκτυπωτής, αποθήκευση στο δίσκο μνήμης και τα αποθηκευμένα προγράμματα. Ένα σημαντικό παράδειγμα ήταν η IBM 1401, η οποία έγινε παγκοσμίως αποδεκτή σε όλη τη βιομηχανία και θεωρείται από αρκετούς ως το MODEL T τού κλάδου της πληροφορικής .Το 1965 όλες οι επιχειρήσεις χρησιμοποιούσαν υπολογιστές 2η γενιάς.

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

3η Γενιά των Υπολογιστών (1964- 1971)

Η τρίτη γενιά των ηλεκτρονικών υπολογιστών χαρακτηρίζεται από τη μερική αντικατάσταση του τρανζίστορ και των άλλων ηλεκτρονικών στοιχείων από τα ολοκληρωμένα κυκλώματα. Τα ολοκληρωμένα κυκλώματα συγκεντρώνουν μέσα σε μια μικρή επιφάνεια της τάξεως του 1 cm2 πάρα πολλά ηλεκτρονικά στοιχεία (τρανζίστορ, διόδους κλπ). Η είσοδος των ολοκληρωμένων κυκλωμάτων έδωσε νέες δυνατότητες στους κατασκευαστές, τέτοιες ώστε να χαρακτηριστεί σαν η επανάσταση στην τεχνολογία των ηλεκτρονικών υπολογιστών. Η αρχή έγινε στις 7 Μαρτίου 1964 όταν η ΙΒΜ παρουσίασε την σειρά 360 ("υπολογιστής όλων των διευθύνσεων"). Η παρουσίαση αυτή είχε δύο άμεσα αποτελέσματα: το ξεκίνημα μιας κούρσας μεταξύ των ανταγωνιστών για κάτι ανάλογο, τη συνειδητοποίηση του πραγματικού προβλήματος των υπολογιστών, του λογισμικού. Ο IBM 360 ήταν ο πρώτος υπολογιστής, ο οποίος διέθετε "λειτουργικό σύστημα", ένα πρόγραμμα επόπτη, που ήταν επιφορτισμένο με το συγχρονισμό των διαφόρων οργάνων και την εκτέλεση των

Page 3: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

προγραμμάτων των χρηστών. Ένα άλλο χαρακτηριστικό του IBM 360 ήταν η εισαγωγή και χρήση των μαγνητικών δίσκων, γεγονός που χαρακτηρίζει επίσης την τρίτη γενιά των υπολογιστών. Την εποχή αυτή η CDC κατασκεύασε το μοντέλο 3600 και λίγο αργότερα το 6600 που ήταν ο ισχυρότερος υπολογιστής την περίοδο 60 - 75, ικανός να εκτελεί πολλά εκατομμύρια πράξεις το δευτερόλεπτο και χρησιμοποιήθηκε κυρίως σε στρατιωτικές υπηρεσίες και την μετεωρολογία. Την περίοδο της τρίτης γενιάς εμφανίστηκαν και οι μίνι υπολογιστές σαν απάντηση στην ανάγκη για μικρότερους και φθηνότερους υπολογιστές, που ζητούσαν οι μικρότερες επιχειρήσεις. Την εποχή αυτή όμως παρουσιάζεται μεγάλη ανάπτυξη και στο λογισμικό (software). Αναπτύσσονται και βελτιώνονται οι γλώσσες υψηλού επιπέδου (Cobol, Algol, Fortran κλπ) και ενσωματώνονται στα νέα λειτουργικά συστήματα. Επίσης αυτή την εποχή κάνει και την εμφάνισή της σε πρακτική εφαρμογή η ιδέα του καταμερισμού του χρόνου (timesharing), που είχε αρχικά αναπτυχθεί στο MIT. Με την βοήθεια αυτής της τεχνικής δίδεται στον κάθε χρήστη η ψευδαίσθηση ότι ο υπολογιστής ασχολείται συνέχεια μαζί του ενώ στην πραγματικότητα του δίδεται μόνο ένα μικρό κλάσμα του συνολικού χρόνου, που όμως είναι αρκετό για τις δυνατότητες του υπολογιστή.

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

4η Γενιά των Υπολογιστών (1971 - σήμερα)Η γενιά αυτή χαρακτηρίζεται από και σημαντικές εξελίξεις. Η

κλίμακα των συστημάτων αυτών είναι πλέον μεγάλη (Large Scale Integration) και δίνει τη δυνατότητα να πραγματοποιηθούν εκατομμύρια πράξεις ταυτόχρονα το δευτερόλεπτο. Το πιο βασικό χαρακτηριστικό της γενιάς αυτής είναι η δημιουργία του πρώτου προσωπικού υπολογιστή αυτή την εποχή συναντάμε για πρώτη φορά την παράλληλη επεξεργασία η οποία εκτοξεύει την υπολογιστική ισχύ στα ύψη, πραγματοποιεί δηλαδή δισεκατομμύρια πράξεις το δευτερόλεπτο. Παλιότερα η επεξεργασία αυτή ήταν μονοπώλιο των υπολογιστών, στην εποχή μας όμως αυτό έχει πάψει πια να ισχύει τα μικρά και γρήγορα συστήματα έχουν μεγάλη απήχηση ανεβάζοντας στα ύψη την υπολογιστική ισχύ .Στις αρχές της περιόδου γίνεται γνωστή η ιδέα των γραφικών περιβαλλόντων χρήστη. Με αυτό τον τρόπο ο άνθρωπος αναπτύσσει φιλική σχέση με τον υπολογιστή, οι εντολές γίνονται πια μέσω εικονιδίων. Το βασικό χαρακτηριστικό όμως της τέταρτης γενιάς είναι η ανάπτυξη μικροϋπολογιστών και συγκεκριμένα μικρών προσωπικών υπολογιστών. Ένας πλήρη υπολογιστής μπορεί να δημιουργηθεί από έναν μικροεπεξεργαστή, μια μνήμη και μερικά κυκλώματα υποστήριξης. Το πρώτο μοντέλο δημιουργήθηκε το 1969.Η ανάπτυξη αυτή του μοντέλου επινοήθηκε σαν λύση στην κατασκευή υπολογιστών ειδικής χρήσης. Για πρώτη συναντάμε τον πρώτο μικροεπεξεργαστή ο ιστορικός 4004 της intel. H γενιά αυτή χαρακτηρίζεται από σημαντικές αλλαγές. Αρχικά

Page 4: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

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

Στις αρχές της δεκαετίας του 80, εμφανίστηκαν πολλά αξιόλογα μηχανήματα τα οποία χρησιμοποιήθηκαν στο έπακρο από τους ανθρώπους, η επιτυχία τους ανάγκασε την ΙΒΜ να εισβάλει στο χώρο παραγωγής προσωπικών υπολογιστών. Η είσοδος ΙΒΜ καθιέρωσε κάποια καινούρια πρότυπα στο χώρο, πράγμα που οδήγησε στην τεράστια ανάπτυξη και εξέλιξη των προσωπικών υπολογιστών.

Οι υπολογιστές που έχουμε σήμερα ανήκουν στην 4η γενιά, ο καθένας από αυτούς έχει τη δική του μνήμη, το δικό του χώρο αποθήκευσης δεδομένων, οθόνη, πληκτρολόγιο,ποντίκι και κάθε είδους μέσω για να δίνουμε πληροφορίες στον υπολογιστή. Κάθε 18 μήνες η ισχύς των παραγόμενων υπολογιστών διπλασιάζεται. Από αυτό καταλαβαίνουμε για πιο λόγο ένας υπολογιστής είναι ταχύτερος σε σχέση με τον υπολογιστή που αγοράστηκε ένα χρόνο πριν. Οι προσωπικοί υπολογιστές που έχουμε στο γραφείο, στο σπίτι στη δουλειά εισήχθησαν το 1981.Την δεκαετία του 80 οι προσωπικοί υπολογιστές είχαν μεγάλη ζήτηση με αποτέλεσμα το PC να γίνει πιο προσιτό στους ανθρώπους και ο υπολογιστής να μπει στην καθημερινότητα κάθε ανθρώπου. Όλο και περισσότερες εταιρείες πάσχιζαν να κάνουν τους υπολογιστές πιο μικρούς και πιο εύχρηστους για να έχουν περισσότερα κέρδη αφού είχαν γίνει πλέον περιζήτητοι. Πρέπει να σημειωθεί ότι παρά τις αλλαγές που υπέστησαν οι υπολογιστές του 2010 ακόμα εξακολουθούν να ανήκουν στους υπολογιστές της 4η γενιάς.

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

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

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

Γλώσσες προγραμματισμού: C C++ PHP

Page 5: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

PYTHON VISUAL BASIC SQL PERL PASCAL JAVA LOGO

Και πολλές άλλες!

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

Μεταγλωττιστής (Compiler) Ένας μεταγλωττιστής (compiler) είναι ένα πρόγραμμα που

διαβάζει ένα άλλο πρόγραμμα γραμμένο σε κάποια γλώσσα πηγή (source) - και το μεταφράζει σε ένα ισοδύναμο πρόγραμμα σε άλλη γλώσσα - τη γλώσσα στόχο (target). Σημαντικό κομμάτι της μετάφρασης, είναι η αναφορά στο χρήστη της ύπαρξης σφαλμάτων (bugs) στο πρόγραμμα πηγή.

Οι compilers διακρίνονται συχνά σε απλού-περάσματος (one-pass), πολλαπλών-περασμάτων (multi-pass), lead-and-go, εκσφαλμάτωσης ή βελτιστοποίησης (optimizing), ανάλογα με το πώς φτιάχνονται ή πως λειτουργούν. Πέρα από την πολυπλοκότητά τους οι βασικές τους λειτουργίες είναι οι ίδιες. Κατανοώντας αυτές τις λειτουργίες, μπορούμε να φτιάξουμε μεταγλωττιστές (compilers), για μεγάλο εύρος γλωσσών πηγής και target, χρησιμοποιώντας κάποιες βασικές τεχνικές.

Υπάρχουν δύο τμήματα στη μεταγλώττιση: η ανάλυση και η σύνθεση. Το μέρος της ανάλυσης σπάει το πρόγραμμα πηγής σε δομικά κομμάτια και δημιουργεί μια ενδιάμεση αναπαράσταση του πηγαίου προγράμματος. Το μέρος της σύνθεσης, συνθέτει το target πρόγραμμα από τα κομμάτια αυτά. Μεταξύ των δύο, η σύνθεση χρειάζεται πιο εξειδικευμένες τεχνικές. Κατά την ανάλυση, οι λειτουργίες του πηγαίου προγράμματος καταγράφονται σε μια ιεραρχική δομή δένδρου. Συχνά χρησιμοποιείται μια ειδική δομή δένδρου, το συντακτικό δένδρο (syntax tree), στο οποίο κάθε κόμβος αναπαριστά μια λειτουργία και τα παιδιά του αναπαριστούν τα ορίσματα της λειτουργίας αυτής. Το στάδιο της ανάλυσης εκτελείται από τα περισσότερα εργαλεία λογισμικού. Παραδείγματα τέτοιων εργαλείων είναι:1. Structure editors: Παίρνει σαν είσοδο μια ακολουθία εντολών για να φτιάξει ένα πηγαίο πρόγραμμα. Εκτελεί όχι μόνο τη δημιουργία του κειμένου και τις τροποποιήσεις που κάνει ένας συνηθισμένος επεξεργαστής κειμένου, αλλά αναλύει το κείμενο του προγράμματος βάζοντάς το σε ιεραρχική δομή. Εκτελεί έτσι επιπλέον λειτουργίες.

Page 6: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

Τελικά, η έξοδός του μοιάζει με το περιεχόμενο της φάσης της ανάλυσης.2. Pretty printers: Αναλύει ένα πρόγραμμα και το τυπώνει με τέτοιο τρόπο ώστε να είναι ορατή η δομή του προγράμματος (π.χ. σχόλια, εντολές κτλ.)3. Static checkers: Διαβάζει ένα πρόγραμμα, το αναλύει και προσπαθεί να ανακαλύψει δυναμικά λάθη(bugs) χωρίς να το τρέξει.4. Interpreters: Αντί να παράγει ένα πρόγραμμα τελικό (target), ένας διερμηνευτής (interpreter) εκτελεί μια τις εντολές του πηγαίου προγράμματος. Χρησιμοποιούνται συχνά για να εκτελέσουν γλώσσες εντολών, γιατί συνήθως, κάθε λειτουργία σ' αυτές τις γλώσσες είναι μια ανάκληση σύνθετης υπορουτίνας.

Διερμηνευτής (Interpreter)Διερμηνευτής της Γλώσσας. Πρόκειται για ένα ολοκληρωμένο

περιβάλλον ανάπτυξης αλγορίθμων σε ψευδοκώδικα, το οποίο αναπτύχθηκε από τον εκπαιδευτικό Πληροφορικής Άλκη Γεωργόπουλο. Χρησιμοποιείται η αλγοριθμική γλώσσα που περιγράφεται στο μάθημα «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον» της Γ’ τάξης του Γενικού Λυκείου. Το περιβάλλον εργασίας ακολουθεί την κλασσική φιλοσοφία μιας παραθυρικής εφαρμογής (γραμμή μενού, εργαλείων, κατάστασης κ.λπ.) ενώ οι χώροι εργασίας είναι οργανωμένοι σε καρτέλες. Για τη γρήγορη συγγραφή του ψευδοκώδικα στον Διερμηνευτή, ο μαθητής μπορεί να επιλέγει με το ποντίκι τις σχετικές δεσμευμένες λέξεις από την ομώνυμη καρτέλα ή να χρησιμοποιεί τις αντίστοιχες συντομεύσεις πληκτρολογίου ή τις δυνατότητες αυτόματης συμπλήρωσης. Το επόμενο βήμα είναι φυσικά η εκτέλεση και ο έλεγχος της ορθότητας του αλγορίθμου. Ο μαθητής μπορεί να χρησιμοποιήσει τα σχετικά κουμπιά της γραμμής εργαλείων ή τα αντίστοιχα μενού για να εκκινήσει ή να παύσει την εκτέλεση του αλγορίθμου, και να δίνει είσοδο ή να παρακολουθεί την έξοδο του προγράμματος από την καρτέλα «Οθόνη χρήστη». Μέσω των εργαλείων βήμα προς βήμα εκτέλεσης, των σημείων διακοπής, την καρτέλα «Μεταβλητές» και την καρτέλα «Εκφράσεις» είναι δυνατή η οπτικοποίηση της εκτέλεσης του αλγορίθμου. Παρακολουθώντας και πιθανώς μεταβάλλοντας τις τιμές των μεταβλητών για οποιοδήποτε υποπρόγραμμα, ο μαθητής μπορεί να επέμβει στη ροή εκτέλεσης του προγράμματος, ανακαλύπτοντας και διορθώνοντας έτσι τυχόν λογικά λάθη του αλγορίθμου. Εκτός από τις δυνατότητες αποσφαλμάτωσης, ο Διερμηνευτής παρέχει και αρκετές ακόμα, χρήσιμες στην εκπαιδευτική πράξη, λειτουργίες. Για παράδειγμα, για την οπτική αναπαράσταση και επίδειξη αλγορίθμων όπως η ταξινόμηση, απαιτείται η συμπλήρωση μεταβλητών-πινάκων με αρκετά δεδομένα εισόδου. Ο εκπαιδευτικός μπορεί να προ-πληκτρολογήσει τα δεδομένα αυτά στην καρτέλα «Αρχείο εισόδου» και να τα αποθηκεύσει στο ίδιο αρχείο με τον αλγόριθμο, αποφεύγοντας έτσι την κουραστική και χρονοβόρα είσοδο των δεδομένων από τους μαθητές.

Page 7: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

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

ΟρισμόςΣτην πληροφορική αντικειμενοστραφή προγραμματισμό (object-oriented

programming), ή ΑΠ, ονομάζουμε ένα προγραμματιστικό υπόδειγμα το οποίο εμφανίστηκε στα τέλη της δεκαετίας του 1960 και καθιερώθηκε κατά τη δεκαετία του 1990, αντικαθιστώντας σε μεγάλο βαθμό το παραδοσιακό υπόδειγμα του δομημένου προγραμματισμού. Πρόκειται για μία μεθοδολογία ανάπτυξης προγραμμάτων, υποστηριζόμενη από κατάλληλες γλώσσες προγραμματισμού, όπου ο χειρισμός σχετιζόμενων δεδομένων και των διαδικασιών που επενεργούν σε αυτά γίνεται από κοινού, μέσω μίας δομής δεδομένων που τα περιβάλλει ως αυτόνομη οντότητα με ταυτότητα και δικά της χαρακτηριστικά.

Στον αντικειμενοστρεφή προγραμματισμό δίνεται έμφαση στη δημιουργία μονάδων, οι οποίες θα περιλαμβάνουν τα δεδομένα αλλά και τις εντολές που τα διαχειρίζονται (π.χ. παρουσίαση μιας εργασίας). Όλες οι γλώσσες προγραμματισμού (εκτός λίγων) είναι αντικειμενοστραφείς (π.χ. Java, C++). Αντικειμενοστρέφεια (object-orientation) είναι μια προσέγγιση στην ανάπτυξη λογισμικού που οργανώνει τόσο το πρόβλημα όσο και τη λύση του ως μια συλλογή από διακριτά αντικείμενα. Τα αντικείμενα αλληλεπιδρούν για τη λύση του προβλήματοςΙστορική αναδρομή1967: Simula 67 (Νορβηγία), αποτελεί την πρώτη αντικειμενοστρεφής γλώσσα. Δεν χρησιμοποιείται σήμερα.1970: Smalltalk (Καλιφόρνια), είναι μια αμιγής αντικειμενοστρεφής γλώσσα, δηλαδή ό,τι περιέχει είναι αντικείμενα και όχι κανονικές μεταβλητές. Μπορεί ακόμα και σήμερα να βρεθεί σε κάποια βιβλία, αλλά δεν είναι κυρίαρχη γλώσσα.1980: Ο αντικειμενοστρεφής τρόπος σκέψης αρχίζει να διδάσκεται σε πανεπιστήμια. Η τελική έκδοση της Smalltalk γίνεται διαθέσιμη. Ο Stroustrup γράφει το εγχειρίδιο της C++, η οποία είναι αντικειμενοστραφής γλώσσα.1995: Το μεγάλο «μπαμ» από την Sun Microsystems όταν εκδόθηκε η Java. Σήμερα είναι η πιο διαδεδομένη γλώσσα, διότι προσεγγίζεται ευκολότερα από την C++.

Κατά το πρώτο ήμισυ της δεκαετίας του '90 η βαθμιαία καθιέρωση στους μικροϋπολογιστές των γραφικών διασυνδέσεων χρήστη (GUI), για την ανάπτυξη των οποίων ο ΑΠ φαινόταν ιδιαιτέρως κατάλληλος, και η επίδραση της C++ οδήγησαν στην επικράτηση της αντικειμενοστρέφειας ως βασικού προγραμματιστικού υποδείγματος.

ΠλεονεκτήματαΟ αντικειμενοστραφής προγραμματισμός έχει μεγάλη αποδοχή διότι:

Γίνεται επιτυχής επίλυση προβλημάτων μικρής αλλά και μεγάλης κλίμακας (scability) (π.χ. όπως μιας επιχείρησης)

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

Page 8: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

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

(class), μία αυτοτελής και αφαιρετική αναπαράσταση κάποιας κατηγορίας αντικειμένων, είτε φυσικών αντικειμένων του πραγματικού κόσμου είτε νοητών, εννοιολογικών αντικειμένων, σε ένα περιβάλλον προγραμματισμού. Πρακτικώς είναι ένας τύπος δεδομένων, ή αλλιώς το προσχέδιο μίας δομής δεδομένων με δικά της περιεχόμενα, τόσο μεταβλητές όσο και διαδικασίες. Τα περιεχόμενα αυτά δηλώνονται είτε ως δημόσια (public) είτε ως ιδιωτικά (private), με τα ιδιωτικά να μην είναι προσπελάσιμα από κώδικα εκτός της κλάσης. Οι διαδικασίες των κλάσεων συνήθως καλούνται μέθοδοι (methods) και οι μεταβλητές τους γνωρίσματα (attributes) ή πεδία (fields). Μία κλάση πρέπει ιδανικά να είναι εννοιολογικά αυτοτελής, να περιέχει δηλαδή μόνο πεδία τα οποία περιγράφουν μία κατηγορία αντικειμένων και δημόσιες μεθόδους οι οποίες επενεργούν σε αυτά όταν καλούνται από το εξωτερικό πρόγραμμα, χωρίς να εξαρτώνται από άλλα δεδομένα ή κώδικα εκτός της κλάσης, και επαναχρησιμοποιήσιμη, να αποτελεί δηλαδή μαύρο κουτί δυνάμενο να λειτουργήσει χωρίς τροποποιήσεις ως τμήμα διαφορετικών προγραμμάτων.Η Κλάση Α είναι υπερκλάση της ΒΗ Κλάση Β είναι δευτερεύουσα κλάση της ΑΗ Κλάση Β είναι υπερκλάση των Ε,Γ,ΔΟι κλάσεις Ε,Γ,Δ είναι δευτερεύουσες κλάσεις της ΒΗ κλάση Δ είναι υπερκλάση των Η,ΖΟι κλάσεις Η,Ζ είναι δευτερεύουσες της Δ.

Κληρονομικότητα ονομάζεται η ιδιότητα των κλάσεων να επεκτείνονται σε νέες κλάσεις, ρητά δηλωμένες ως κληρονόμους (υποκλάσεις ή 'θυγατρικές κλάσεις'), οι οποίες μπορούν να επαναχρησιμοποιήσουν τις μεταβιβάσιμες μεθόδους και ιδιότητες της γονικής τους κλάσης αλλά και να προσθέσουν δικές τους. Στιγμιότυπα των θυγατρικών κλάσεων μπορούν να χρησιμοποιηθούν όπου απαιτούνται στιγμιότυπα των γονικών (εφόσον η θυγατρική είναι κατά κάποιον τρόπο μία πιο εξειδικευμένη εκδοχή της γονικής), αλλά το αντίστροφο δεν ισχύει. Παράδειγμα κληρονομικότητας είναι μία γονική κλάση Vehicle (=Όχημα) και οι δύο πιο εξειδικευμένες υποκλάσεις της Car (=Αυτοκίνητο) και Bicycle (=Ποδήλατο), οι οποίες λέμε ότι "κληρονομούν" από αυτήν. Πολλαπλή κληρονομικότητα είναι η δυνατότητα που προσφέρουν ορισμένες γλώσσες προγραμματισμού μία κλάση να κληρονομεί ταυτόχρονα από περισσότερες από μία γονικές. Από μία υποκλάση μπορούν να προκύψουν νέες υποκλάσεις που κληρονομούν από αυτήν, με αποτέλεσμα μία ιεραρχία

Page 9: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

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

Αντικείμενο (object) είναι το στιγμιότυπο μίας κλάσης, δηλαδή αυτή καθαυτή η δομή δεδομένων (με αποκλειστικά δεσμευμένο χώρο στη μνήμη) βασισμένη στο «καλούπι» που προσφέρει η κλάση. Παραδείγματος χάρη, σε μία αντικειμενοστρεφή γλώσσα προγραμματισμού θα μπορούσαμε να ορίσουμε κάποια κλάση ονόματι BankAccount, η οποία αναπαριστά έναν τραπεζικό λογαριασμό, και να δηλώσουμε ένα αντικείμενο της με όνομα MyAccount. Το αντικείμενο αυτό θα έχει δεσμεύσει χώρο στη μνήμη με βάση τις μεταβλητές και τις μεθόδους που περιγράψαμε όταν δηλώσαμε την κλάση. Έτσι, στο αντικείμενο θα μπορούσε να περιέχεται ένα γνώρισμα Balance (=υπόλοιπο) και μία μέθοδος GetBalance (=επίστρεψε το υπόλοιπο). Ακολούθως θα μπορούσαμε να δημιουργήσουμε ακόμα ένα ή περισσότερα αντικείμενα της ίδιας κλάσης τα οποία θα είναι διαφορετικές δομές δεδομένων (διαφορετικοί τραπεζικοί λογαριασμοί στο παράδειγμα). Τα αντικείμενα μίας κλάσης μπορούν να προσπελάσουν τα ιδιωτικά περιεχόμενα άλλων αντικειμένων της ίδιας κλάσης.

Ενθυλάκωση δεδομένων (data encapsulation) καλείται η ιδιότητα που προσφέρουν οι κλάσεις να «κρύβουν» τα ιδιωτικά δεδομένα τους από το υπόλοιπο πρόγραμμα και να εξασφαλίζουν πως μόνο μέσω των δημόσιων μεθόδων τους θα μπορούν αυτά να προσπελαστούν. Αυτή η τακτική παρουσιάζει μόνο οφέλη καθώς εξαναγκάζει κάθε εξωτερικό πρόγραμμα να φιλτράρει το χειρισμό που επιθυμεί να κάνει στα πεδία μίας κλάσης μέσω των ελέγχων που μπορούν να περιέχονται στις δημόσιες μεθόδους της κλάσης.

Αφαίρεση δεδομένων καλείται η ιδιότητα των κλάσεων να αναπαριστούν αφαιρετικά πολύπλοκες οντότητες στο προγραμματιστικό περιβάλλον. Μία κλάση αποτελεί ένα αφαιρετικό μοντέλο κάποιας κατηγορίας αντικειμένων. Επίσης οι κλάσεις προσφέρουν και αφαίρεση ως προς τον υπολογιστή, εφόσον η καθεμία μπορεί να θεωρηθεί ένας μικρός και αυτάρκης υπολογιστής (με δική του κατάσταση, μεθόδους και μεταβλητές).

Υπερφόρτωση μεθόδου (method overloading) είναι η κατάσταση κατά την οποία υπάρχουν, στην ίδια ή σε διαφορετικές κλάσεις, μέθοδοι με το ίδιο όνομα και πιθανώς διαφορετικά ορίσματα. Αν πρόκειται για μεθόδους της ίδιας κλάσης διαφοροποιούνται μόνο από τις διαφορές τους στα ορίσματα και στον τύπο επιστροφής.

Υποσκέλιση μεθόδου (method overriding) είναι η κατάσταση κατά την οποία μία θυγατρική κλάση και η γονική της έχουν μία μέθοδο ομώνυμη και με τα ίδια ορίσματα. Χάρη στη δυνατότητα του πολυμορφισμού ο μεταγλωττιστής «ξέρει» πότε να καλέσει ποια μέθοδο, βασισμένος στον τύπο του τρέχοντος αντικειμένου. Δηλαδή πολυμορφισμός είναι η δυνατότητα των αντικειμενοστρεφών μεταγλωττιστών να αποφασίζουν δυναμικά ποια είναι η κατάλληλη να κληθεί μέθοδος σε συνθήκες υποσκέλισης.

Αφηρημένη κλάση (abstract class) είναι μία κλάση που ορίζεται μόνο για να κληρονομηθεί σε θυγατρικές υποκλάσεις και δεν υπάρχουν δικά της στιγμιότυπα (αντικείμενα). Η αφηρημένη κλάση ορίζει απλώς ένα "συμβόλαιο" το οποίο θα πρέπει να ακολουθούν οι υποκλάσεις της όσον αφορά τις υπογραφές των μεθόδων τους (όπου ως υπογραφή ορίζεται το όνομα, τα ορίσματα και η τιμή επιστροφής μίας διαδικασίας). Μία αφηρημένη κλάση μπορεί να έχει και μη

Page 10: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

αφηρημένες μεθόδους οι οποίες υλοποιούνται στην ίδια την κλάση (αν και φυσικά μπορούν να υποσκελίζονται σε υποκλάσεις). Αντιθέτως οι αφηρημένες μέθοδοί της είναι απλώς ένας ορισμός της υπογραφής τους και εναπόκειται στις υποκλάσεις να τις υλοποιήσουν. Μία αφηρημένη κλάση που δεν έχει γνωρίσματα και όλες οι μέθοδοί της είναι αφηρημένες και δημόσιες καλείται διασύνδεση (interface). Οι κλάσεις που κληρονομούν από μία διασύνδεση λέγεται ότι την "υλοποιούν"

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

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

που σχεδιάστηκε από την εταιρεία πληροφορικής Sun Microsystems. Ένα μεγάλο πλεονέκτημα της Java είναι πως υπάρχουν πολλά έτοιμα παραδείγματα κώδικα που μπορούν να μας βοηθήσουν στην ανάπτυξη μιας εφαρμογής. Δεν θα έχουμε τον έλεγχο στο υλικό του υπολογιστή όπως θα είχαμε με τη C. Όμως μας δίνει τη δυνατότητα να διαχειριστούμε το σύστημα αρχείων, όπως επίσης και τα συστήματα γραφικών και ήχου, επιτρέποντάς μας να δημιουργήσουμε προηγμένα προγράμματα. Σαν έξτρα bonus, η Java είναι ίσως η μόνη γλώσσα προγραμματισμού που μπορεί να τρέξει σε όλες τις πλατφόρμες (Windows, Linux, Mac OS) με τον ίδιο ακριβώς κώδικα. Ιστορία Στις αρχές του 1991, η Sun αναζητούσε το κατάλληλο εργαλείο για να αποτελέσει την πλατφόρμα ανάπτυξης λογισμικού σε μικρο-συσκευές. Τα εργαλεία της εποχής ήταν γλώσσες όπως η C++ και η C. Μετά από διάφορους πειραματισμούς προέκυψε το συμπέρασμα ότι οι υπάρχουσες γλώσσες δεν μπορούσαν να καλύψουν τις ανάγκες τους. Ο "πατέρας" της Java, James Gosling, που εργαζόταν εκείνη την εποχή για την Sun, έκανε ήδη πειραματισμούς πάνω στη C++ και είχε παρουσιάσει κατά καιρούς κάποιες πειραματικές γλώσσες (C++ ++) ως πρότυπα για το νέο εργαλείο που αναζητούσαν στην Sun. Τελικά μετά από λίγο καιρό κατέληξαν με μια πρόταση για το επιτελείο της εταιρίας, η οποία ήταν η γλώσσα Oak. Από την Oak στη Java

H Oak ήταν μία γλώσσα που διατηρούσε μεγάλη συγγένεια με την C++. Παρόλα αυτά είχε πολύ πιο έντονο αντικειμενοστραφή (object oriented) χαρακτήρα σε σχέση με την C++ και χαρακτηριζόταν για την απλότητα της. Σύντομα οι υπεύθυνοι ανάπτυξης της νέας γλώσσας ανακάλυψαν ότι το όνομα Oak ήταν ήδη κατοχυρωμένο οπότε κατά την διάρκεια μιας εκ των πολλών συναντήσεων σε κάποιο τοπικό καφέ αποφάσισαν να μετονομάσουν το νέο τους δημιούργημα σε Java που

Page 11: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

εκτός των άλλων ήταν το όνομα της αγαπημένης ποικιλίας καφέ για τους δημιουργούς της. Η επίσημη εμφάνιση της Java αλλά και του HotJava (πλοηγός με υποστήριξη Java) στη βιομηχανία της πληροφορικής έγινε το Μάρτιο του 1995. O πρώτος μεταγλωττιστής (compiler) της ήταν γραμμένος στη γλώσσα C από τον James Gosling. Το 1994, ο A.Van Hoff ξαναγράφει τον μεταγλωττιστή της γλώσσας σε Java, ενώ το Δεκέμβριο του 1995 πρώτες οι IBM, Borland, Mitsubishi Electronics, Sybase και Symantec ανακοινώνουν σχέδια να χρησιμοποιήσουν τη Java για την δημιουργία λογισμικού. Από εκεί και πέρα η Java ακολουθεί μία ανοδική πορεία και είναι πλέον μία από τις πιο δημοφιλείς γλώσσες στον χώρο της πληροφορικής. Στις 27 Απριλίου 2010 η εταιρία λογισμικού Oracle Corporation ανακοίνωσε ότι μετά από πολύμηνες συζητήσεις ήρθε σε συμφωνία για την εξαγορά της Sun Microsystems και των τεχνολογιών (πνευματικά δικαιώματα/ πατέντες) που η δεύτερη είχε στην κατοχή της ή είχε δημιουργήσει. Τα χαρακτηριστικά της Java

Ένα από τα βασικά πλεονεκτήματα της Java έναντι των περισσότερων άλλων γλωσσών είναι η ανεξαρτησία του λειτουργικού συστήματος και πλατφόρμας. Τα προγράμματα που είναι γραμμένα σε Java τρέχουνε ακριβώς το ίδιο σε Windows, Linux, Unix και Macintosh (σύντομα θα τρέχουν και σε Playstation καθώς και σε άλλες κονσόλες παιχνιδιών) χωρίς να χρειαστεί να ξαναγίνει μεταγλώττιση (compiling) ή να αλλάξει ο πηγαίος κώδικας για κάθε διαφορετικό λειτουργικό σύστημα. Για να επιτευχθεί όμως αυτό χρειαζόταν κάποιος τρόπος έτσι ώστε τα προγράμματα γραμμένα σε Java να μπορούν να είναι «κατανοητά» από κάθε υπολογιστή ανεξάρτητα του είδους επεξεργαστή (Intel x86, IBM, Sun SPARC, Motorola) αλλά και λειτουργικού συστήματος (Windows, Unix, Linux, BSD, MacOS). Ο λόγος είναι ότι κάθε κεντρική μονάδα επεξεργασίας κατανοεί διαφορετικό κώδικα μηχανής. Ο συμβολικός κώδικας (assembly) που μεταφράζεται και εκτελείται σε Windows είναι διαφορετικός από αυτόν που μεταφράζεται και εκτελείται σε έναν υπολογιστή Macintosh. Η λύση δόθηκε με την ανάπτυξη της Εικονικής Mηχανής (Virtual Machine ή VM ή ΕΜ στα ελληνικά).Η εικονική μηχανή της Java

Αφού γραφεί κάποιο πρόγραμμα σε Java, στη συνέχεια μεταγλωττίζεται μέσω του μεταγλωττιστή javac, ο οποίος παράγει έναν αριθμό από αρχεία .class (κώδικας byte ή bytecode). Ο κώδικας byte είναι η μορφή που παίρνει ο πηγαίος κώδικας της Java όταν μεταγλωττιστεί. Όταν πρόκειται να εκτελεστεί η εφαρμογή σε ένα μηχάνημα, το Java Virtual Machine που πρέπει να είναι εγκατεστημένο σε αυτό θα αναλάβει να διαβάσει τα αρχεία .class. Στη συνέχεια τα μεταφράζει σε γλώσσα μηχανής που να υποστηρίζεται από το

Page 12: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

λειτουργικό σύστημα και τον επεξεργαστή, έτσι ώστε να εκτελεστεί. Χωρίς αυτό δε θα ήταν δυνατή η εκτέλεση λογισμικού γραμμένου σε Java. Η JVM είναι λογισμικό που εξαρτάται από την πλατφόρμα, δηλαδή για κάθε είδος λειτουργικού συστήματος και αρχιτεκτονικής επεξεργαστή υπάρχει διαφορετική έκδοση του. Έτσι υπάρχουν διαφορετικές JVM για Windows, Linux, Unix, Macintosh, κινητά τηλέφωνα, παιχνιδομηχανές κλπ. Οτιδήποτε θέλει να κάνει ο προγραμματιστής (ή ο χρήστης) γίνεται μέσω της εικονικής μηχανής. Αυτό βοηθάει στο να υπάρχει μεγαλύτερη ασφάλεια στο σύστημα γιατί η εικονική μηχανή είναι υπεύθυνη για την επικοινωνία χρήστη - υπολογιστή. Ο προγραμματιστής δεν μπορεί να γράψει κώδικα ο οποίος θα έχει καταστροφικά αποτελέσματα για τον υπολογιστή γιατί η εικονική μηχανή θα τον ανιχνεύσει και δε θα επιτρέψει να εκτελεστεί. Από την άλλη μεριά ούτε ο χρήστης μπορεί να κατεβάσει «κακό» κώδικα από το δίκτυο και να τον εκτελέσει. Ο συλλέκτης απορριμμάτων (Garbage Collector) Ακόμα μία ιδέα που βρίσκεται πίσω από τη Java είναι η ύπαρξη του συλλέκτη απορριμμάτων (Garbage Collector). Συλλογή απορριμμάτων είναι μία κοινή ονομασία που χρησιμοποιείται στον τομέα της πληροφορικής για να δηλώσει την ελευθέρωση τμημάτων μνήμης από δεδομένα που δε χρειάζονται και δε χρησιμοποιούνται άλλο. Αυτή η απελευθέρωση μνήμης στη Java είναι αυτόματη και γίνεται μέσω του συλλέκτη απορριμμάτων. Υπεύθυνη για αυτό είναι και πάλι η εικονική μηχανή η οποία μόλις «καταλάβει» ότι ο σωρός (heap) της μνήμης κοντεύει να γεμίσει ενεργοποιεί το συλλέκτη απορριμμάτων. Eπιδόσεις Παρόλο που η εικονική μηχανή προσφέρει όλα αυτά (και όχι μόνο) τα πλεονεκτήματα, η Java αρχικά ήταν πιο αργή σε σχέση με άλλες προγραμματιστικές γλώσσες υψηλού επιπέδου (high-level) όπως η C και η C++. Εμπειρικές μετρήσεις στο παρελθόν είχαν δείξει ότι η C++ μπορούσε να είναι αρκετές φορές γρηγορότερη από την Java. Ωστόσο γίνονται προσπάθειες από τη Sun για τη βελτιστοποίηση της εικονικής μηχανής. Επιπλέον με την καθιέρωση των μεταγλωττιστών JIT (Just In Time), οι οποίοι μετατρέπουν τον κώδικα byte απευθείας σε γλώσσα μηχανής, η διαφορά ταχύτητας από τη C++ έχει μικρύνει κατά πολύ.

Εργαλεία ανάπτυξης Όλα τα εργαλεία που χρειάζεται κάποιος για να γράψει Java προγράμματα έρχονται δωρεάν, από το περιβάλλον ανάπτυξης μέχρι εργαλεία build όπως το Apache Ant και βιβλιοθήκες, ενώ υπάρχουν πολλές διαφορετικές υλοποιήσεις της Εικονικής Μηχανής και του μεταγλωττιστή (πχ the GNU Compiler for Java) της Java.

Page 13: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

Πολλά εργαλεία και τεχνολογίες σε Java μπορούν να βρεθούν στο Apache Software Foundation αλλά και στο Jakarta Project.Ολοκληρωμένο περιβάλλον ανάπτυξης (IDE) Για να να γράψει κάποιος κώδικα Java δε χρειάζεται τίποτα άλλο παρά έναν επεξεργαστή κειμένου, όπως το Σημειωματάριο (Notepad) των Windows ή ο vi (γνωστός στο χώρο του Unix). Παρ'όλ'αυτά, ένα ολοκληρωμένο περιβάλλον ανάπτυξης (IDE) βοηθάει πολύ, ιδιαίτερα στον εντοπισμό σφαλμάτων (debugging). Υπάρχουν αρκετά διαθέσιμα, ενώ πολλά από αυτά έρχονται δωρεάν.

HTMLΗ HTML είναι η κύρια γλώσσα σήμανσης για τις ιστοσελίδες, και

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

αποτελούνται από ετικέτες (tags), οι οποίες περικλείονται μέσα σε σύμβολα «μεγαλύτερο από» και «μικρότερο από» (για παράδειγμα <html>), μέσα στο περιεχόμενο της ιστοσελίδας. Οι ετικέτες HTML συνήθως λειτουργούν ανά ζεύγη (για παράδειγμα <h1> και </h1> ), με την πρώτη να ονομάζεται ετικέτα έναρξης και τη δεύτερη ετικέτα λήξης.

Τα στοιχεία της HTML χρησιμοποιούνται για να κτίσουν όλους του ιστότοπους. Η HTML επιτρέπει την ενσωμάτωση εικόνων και άλλων αντικειμένων μέσα στη σελίδα, και μπορεί να χρησιμοποιηθεί για να εμφανίσει διαδραστικές φόρμες. Παρέχει τις μεθόδους δημιουργίας δομημένων εγγράφων (δηλαδή εγγράφων που αποτελούνται από το

Page 14: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

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

Visual Basic Η Visual Basic είναι γλώσσα προγραμματισμού τρίτης γενιάς,

οδηγούμενη από συμβάντα και έχει ολοκληρωμένο περιβάλλον ανάπτυξης από τη Microsoft για το μοντέλο προγραμματισμού COM. Η VB θεωρείται επίσης μία σχετικά εύκολη γλώσσα προγραμματισμού στην εκμάθηση και τη χρησιμοποίηση, λόγω των χαρακτηριστικών της, καθώς έχει Γραφικό Περιβάλλον Χρήστη και συγγένεια με την γλώσσα προγραμματισμού BASIC. Η Visual Basic προέρχεται από τη BASIC και επιτρέπει την ταχεία ανάπτυξη εφαρμογών με Γραφικό Περιβάλλον Χρήστη , πρόσβαση σε βάσεις δεδομένων χρησιμοποιώντας αντικείμενα, και τη δημιουργία στοιχείων ελέγχου ActiveX και αντικειμένων. Οι γλώσσες προγραμματισμού τύπου "scripting", όπως η VBA και VBScript συντακτικά είναι παρόμοιες με τη Visual Basic, αλλά έχουν διαφορετικές επιδόσεις. Ένας προγραμματιστής μπορεί να ολοκληρώσει μια εφαρμογή χρησιμοποιώντας τα στοιχεία που παρέχονται με την Visual Basic. Προγράμματα γραμμένα σε Visual Basic μπορούν, επίσης, να χρησιμοποιήσουν το Windows API, αλλά κάτι τέτοιο απαιτεί δηλώσεις εξωτερικών συναρτήσεων. Η τελική έκδοση 6 βγήκε το 1998. Η εκτεταμένη υποστήριξη της Microsoft έληξε το Μάρτιο του 2008 και ορίστηκε διάδοχος της η Visual Basic.NET.

Όπως και η γλώσσα προγραμματισμού BASIC, η Visual Basic έχει σχεδιαστεί για να είναι εύκολη στην εκμάθηση και το χειρισμό. Η γλώσσα δεν επιτρέπει στους προγραμματιστές να δημιουργήσουν μόνο απλές εφαρμογές GUI, αλλά μπορούν, επίσης, να αναπτύξουν πολύπλοκες εφαρμογές. Ο προγραμματισμός σε VB συνίσταται από τον οπτικό συνδυασμό στοιχείων ή ελέγχων σε μια φόρμα, τον προσδιορισμό χαρακτηριστικών και ενεργειών αυτών των στοιχείων και την σύνταξη επιπλέον γραμμών κώδικα για αυξημένη λειτουργικότητα. Καθώς υπάρχουν προεπιλεγμένα χαρακτηριστικά και ενέργειες για τα επιμέρους στοιχεία, μπορεί να δημιουργηθεί ένα απλό πρόγραμμα χωρίς ο προγραμματιστής να γράψει πολλές γραμμές κώδικα.

Οι φόρμες δημιουργούνται χρησιμοποιώντας τεχνικές "σύρε κι άσε" (drag-and-drop). Χρησιμοποιείται ένα εργαλείο για την τοποθέτηση στοιχείων ελέγχου (π.χ. πλαίσια κειμένου, κουμπιά, κλπ.) στη φόρμα (παράθυρο). Τα στοιχεία ελέγχου έχουν χαρακτηριστικά και χειριστές

Page 15: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

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

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

οποία δημιουργήθηκε από τον Ολλανδό Γκβίντο βαν Ρόσσουμ (Guido van Rossum) το 1990. Ο κύριος στόχος της είναι η αναγνωσιμότητα του κώδικά της και η ευκολία χρήσης της και το συντακτικό της επιτρέπει στους προγραμματιστές να εκφράσουν έννοιες σε λιγότερες γραμμές κώδικα απ'ότι θα ήταν δυνατόν σε γλώσσες όπως η C++ ή η Java. Διακρίνεται λόγω του ότι έχει πολλές βιβλιοθήκες που διευκολύνουν ιδιαίτερα αρκετές συνηθισμένες εργασίες και για την ταχύτητα εκμάθησης της.

Αρχικά, η Python ήταν γλώσσα σεναρίων που χρησιμοποιούνταν το λειτουργικό σύστημα Amoeba, ικανή και για κλήσεις συστήματος.

Η Python 2.0 κυκλοφόρησε στις 16 Οκτωβρίου του 2000. Στις 3 Δεκεμβρίου 2008 κυκλοφόρησε η έκδοση 3.0 (γνωστή και ως py3k ή python 3000). Πολλά από τα καινούργια χαρακτηριστικά αυτής της έκδοσης έχουν μεταφερθεί στις εκδόσεις 2.6 και 2.7 που είναι προς τα πίσω συμβατές.

Η python 3 είναι ιστορικά η πρώτη γλώσσα προγραμματισμού που σπάει την προς τα πίσω συμβατότητα με προηγούμενες εκδόσεις ώστε να διορθωθούν κάποια λάθη που υπήρχαν σε προγενέστερες εκδόσεις και να

Page 16: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

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

Η γλώσσα Pascal δημιουργήθηκε στο Πανεπιστήμιο της Γενεύης από τον  Nicklaus Wirth. Πήρε το όνομά της προς τιμή του μαθηματικού και φιλοσόφου Blaise Pascal. Είναι μία δομημένη γλώσσα με ιδιαίτερο χαρακτηριστικό τη δυνατότητα ορισμού από τον προγραμματιστή δικών του δομών δεδομένων.

Η Pascal έχει όλα τα στοιχεία για την ανάπτυξη δομημένου προγραμματισμού. Χρησιμοποιήθηκε εκτεταμένα στα πανεπιστήμια ως εργαλείο για τα μαθήματα προγραμματισμού, και για τα μαθήματα δομών δεδομένων.

Η Pascal μπορεί να θεωρηθεί ως γλώσσα γενικής χρήσης (όχι μόνο επιστημονικών εφαρμογών, όχι μόνο εμπορικών εφαρμογών). Αρχικά δεν διέθετε εξελιγμένο σύστημα χειρισμού αρχείων αλλά, όπως οι περισσότερες γλώσσες, πέρασε από πολλές εκδόσεις που κάθε μια βελτίωνε την προηγούμενη. Διάφορες εκδόσεις της Pascal είναι σήμερα σε χρήση.

ScratchΤο Scratch είναι μια διερμηνευόμενη δυναμική οπτική γλώσσα

προγραμματισμού βασισμένη και υλοποιημένη σε Squeak. Όντας δυναμική, επιτρέπει σε αλλαγές του κώδικα ακόμη και κατά τη διάρκεια της εκτέλεσης των προγραμμάτων. Έχει ως στόχο τη διδασκαλία εννοιών προγραμματισμού σε παιδιά και εφήβους και να τους επιτρέψει να δημιουργήσουν παιχνίδια, βίντεο και μουσική. Μπορεί να μεταφορτωθεί δωρεάν και χρησιμοποιείται σε μια ευρεία ποικιλία δράσεων εντός και εκτός του σχολείου ανά τον κόσμο.

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

Ο ιστότοπος δείχνει ταχεία ανάπτυξη της κοινότητας του Scratch: από το Μάρτιο 2007 ως τον Ιούνιο 2008, άνω των 119,000 λογαριασμών έχουν καταχωρηθεί, με άνω των 148,000 έργων να έχουν φορτωθεί. Η ταχέως αυξανόμενη διεθνής κοινότητα έχει μεταφράσει το Scratch σε διάφορες γλώσσες, με περισσότερες υπό εξέλιξη.

Page 17: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

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

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

Το σλόγκαν του Scratch είναι "Φαντάσου · Φτιάξε · Μοιράσου". Η έμφαση στο μοίρασμα είναι σημαντικό μέρος της παιδαγωγικής για το Scratch: τα προγράμματα δεν θεωρούνται μαύρα κουτιά, αλλά αντικείμενα που μπορούν να αναμιχθούν για τη δημιουργία νέων έργων. Ο μόνος τρόπος να γίνει ένα πρόγραμμα διαθέσιμο για χρήση είναι να δοθεί ο πηγαίος κώδικας του.Περιβάλλον ανάπτυξης, ιστότοπος και ScratchPlayer

Το περιβάλλον ανάπτυξης του Scratch μπορεί να μεταμορφωθεί δωρεάν και να εγκατασταθεί σε οποιοδήποτε υπολογιστή με Windows ή Mac OS X.Τα προγράμματα Scratch μπορούν να φορτωθούν αυτόματα από το περιβάλλον ανάπτυξης σε προσωπικές σελίδες στον ιστότοπο του Scratch, όπου άλλα μέλη της κοινότητας του Scratch μπορούν να τα μεταφορτώσουν (συμπεριλαμβανομένου του πλήρους πηγαίου κώδικα) για μάθηση ή ανάμιξη σε νέα έργα. Ο ιστότοπος, που είναι υλοποιημένος πάνω στην πλατφόρμα ScratchR, παρέχει επίσης δυνατότητα στα μέλη της κοινότητας να σχολιάσουν έργα, πέραν της παροχής γενικών χώρων συζητήσεων και χώρων επίδειξης έργων. Προγράμματα που έχουν αναπτυχθεί σε Scratch μπορούν να εκτελούνται είτε στο περιβάλλον ανάπτυξης ή μέσω μιας μικροεφαρμογήςJava γνωστής ως ScratchPlayer. Ο ScratchPlayer επιτρέπει σε προγράμματα Scratch να εκτελεστούν από σχεδόν οποιαδήποτε εφαρμογή εμφάνισης ιστοσελίδων.Αρχές εύρους και χρήσης της γλώσσας

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

Page 18: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

Εμπειρικές μελέτες έχουν γίνει για διάφορες λειτουργίες — αυτές που παρεμπόδιζαν την φυσική εκμάθηση απορρίφθηκαν, ενώ αυτές που ενθάρρυναν τους αρχάριους και έκαναν εύκολη τη διερεύνηση και την εκμάθηση, διατηρήθηκαν. Ορισμένα από τα αποτελέσματα προκαλούν έκπληξη, κάνοντας το Scratch αρκετά διαφορετικό από άλλες διδασκόμενες γλώσσες (όπως η BASIC, η Logo, ή η Alice).

Για παράδειγμα, ο πολυνηματικός κώδικας μέσω περάσματος μηνυμάτων είναι θεμελιώδης για το Scratch, αλλά δεν έχει διαδικασίες ή Είσοδο/Έξοδο αρχείων (I/O) και υποστηρίζει μόνο μονοδιάστατους πίνακες, γνωστούς ως Λίστες. Οι αριθμοί κινητής υποδιαστολής και τα αλφαριθμητικά υποστηρίζονται από την έκδοση 1.3, αλλά με περιορισμένη ικανότητα διαχείρισης αλφαριθμητικών.

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

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

Το περιβάλλον χρήστη του περιβάλλοντος ανάπτυξης του Scratch χωρίζει την οθόνη σε πολλαπλές περιοχές: στα αριστερά είναι η παλέτα με τα τμήματα κώδικα, στο κέντρο είναι οι πληροφορίες για την τρέχουσα φιγούρα και η περιοχή των σεναρίων (κώδικα), και στα δεξιά είναι η σκηνή και η λίστα με τις φιγούρες. Η παλέτα των τμημάτων κώδικα έχει τμήματα κώδικα (καλούνται "blocks") που μπορούν να συρθούν πάνω στην περιοχή των σεναρίων για τη δημιουργία προγραμμάτων. Για να διατηρηθεί η παλέτα σε όχι πολύ μεγάλο μέγεθος, οργανώνεται σε 8 ομάδες τμημάτων κώδικα: κίνηση, όψεις, ήχος, πένα, έλεγχος, αισθητήρες, αριθμοί, και μεταβλητές.

C ++ Η C++ (CPlusPlus) είναι μια γενικού σκοπού γλώσσα

προγραμματισμού Η/Υ. Θεωρείται μέσου επιπέδου γλώσσα, καθώς περιλαμβάνει έναν συνδυασμό χαρακτηριστικών από γλώσσες υψηλού και χαμηλού επιπέδου. Είναι μια μεταγλωττιζόμενη γλώσσα πολλαπλών

Page 19: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

παραδειγμάτων, με τύπους. Υποστηρίζει δομημένο, αντικειμενοστρεφή και γενικό προγραμματισμό.Ιστορία

Η γλώσσα αναπτύχθηκε από τον ΜπιάρνεΣτρούστρουπ το 1979 στα εργαστήρια Bell της AT&T, ως βελτίωση της ήδη υπάρχουσας γλώσσας προγραμματισμού C, και αρχικά ονομάστηκε "CwithClasses", δηλαδή C με Κλάσεις. Μετονομάστηκε σε C++ το 1983. Οι βελτιώσεις ξεκίνησαν με την προσθήκη κλάσεων, και ακολούθησαν, μεταξύ άλλων, εικονικές συναρτήσεις, υπερφόρτωση τελεστών, πολλαπλή κληρονομικότητα, πρότυπα κ.α.

Η γλώσσα ορίστηκε παγκοσμίως, το 1998, με το πρότυπο ISO/IEC 14882:1998. Η τρέχουσα έκδοση αυτού του προτύπου είναι αυτή του 2003, η ISO/IEC 14882:2003. Μια καινούρια έκδοση είναι υπό ανάπτυξη, γνωστή ανεπίσημα με την ονομασία C++0x.Φιλοσοφία

Στο βιβλίο TheDesignandEvolutionof C++ (1994), ο ΜπιάρνεΣτρούστρουπ περιγράφει τα κριτήρια που χρησιμοποιεί για το σχεδιασμό της C++, εξηγώντας πως η C++ είναι σχεδιασμένη:

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

ωστε να υποστηρίζει άμεσα και σφαιρικά πολλά είδη προγραμματισμού (δομημένος προγραμματισμός, αντικειμενοστρεφήςπρογραμματισμός,γενικός προγραμματισμός)

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

με σκοπό να είναι όσο το δυνατόν συμβατή με τη C, διευκολύνοντας έτσι τη μετάβαση από τη C στη C++

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

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

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

Το βιβλίο Insidethe C++ ObjectModel (Lippman, 1996) περιγράφει πως οι μεταγλωττιστές μπορούν να μετατρέψουν εντολές ενός προγράμματος C++ σε μια διάταξη στη μνήμη. Παρ' όλα αυτά, οι συγγραφείς μεταγλωττιστών είναι γενικά ελεύθεροι να υλοποιήσουν το πρότυπο με δικό τους τρόπο.Χαρακτηριστικά

Η C++ κληρονόμησε το μεγαλύτερο μέρος της σύνταξης της C και τον προεπεξεργαστή της C. Το παρακάτω είναι ένα πρόγραμμα helloworld που χρησιμοποιεί την λειτουργία stream της πρότυπης

Page 20: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

βιβλιοθήκης της C++ για να γράψει ένα μήνυμα στην κύρια έξοδο. Το παρακάτω πρόγραμμα χρησιμοποιεί την βιβλιοθήκη εισόδου/εξόδου iostream#include<iostream> // αρχείο επικεφαλίδας για την βιβλιοθήκη εισόδου/εξόδου iostream (για cout)// std: standard namespace// cout: "see-output"int main(){std::cout<< "Hello, world!\n";}Τελεστές και υπερφόρτωση τελεστών

Η C++ παρέχει περισσότερους από 30 τελεστές, που καλύπτουν τη βασική αριθμητική, το χειρισμό bit, αναφορά δεικτών, συγκρίσεις, λογικές πράξεις κ.α. Σχεδόν όλοι οι τελεστές μπορούν να υπερφορτωθούν για τύπους ορισμένους από το χρήστη, με λίγες εξαιρέσεις όπως πρόσβαση μέλους (. και .*). Το πλούσιο σύνολο από τελεστές που μπορούν να υπερφορτωθούν είναι βασικό για τη χρήση της C++ ως γλώσσα ειδικού πεδίου (domainspecificlanguage). Οι υπερφορτώσιμοι τελεστές είναι ακόμα βασικό μέρος πολλών προχωρημένων τεχνικών προγραμματισμού της C++, όπως οι έξυπνοι δείκτες. Η υπερφόρτωση ενός τελεστή δεν αλλάζει την προτεραιότητα των υπολογισμών όπου χρησιμοποιείται, ούτε τον αριθμό των τελεστέων που χρησιμοποιεί ο τελεστής (αν και οποιοσδήποτε τελεστέος μπορεί απλά να αγνοείται).

Πρακτικές εφαρμογές στα πλαίσια του μαθήματος

Οι μαθητές στα πλαίσια του μαθήματος ήρθαν σε επαφή με δύο προγραμματιστικά περιβάλλοντα. Με το περιβάλλον της ΓΛΩΣΣΑΣ, της ψευδογλώσσας που διδάσκονται οι μαθητές της Γ’ Λυκείου, καθώς και με τη Visual Basic, γλώσσα οπτικού προγραμματισμού. Δημιούργησαν, έμαθαν και διασκέδασαν φτιάχνοντας προγράμματα-παιχνίδια. Ακολουθούν δύο δείγματα εργασιών που υλοποίησαν οι μαθητές.

Το παιχνίδι Πέτρα-ψαλίδι-χαρτί (σε περιβάλλον ΓΛΩΣΣΑΣ)

ΠΡΟΓΡΑΜΜΑ testΜΕΤΑΒΛΗΤΕΣ  ΑΚΕΡΑΙΕΣ: ζ, ξ  ΧΑΡΑΚΤΗΡΕΣ: ον1, ον2, χ, υΑΡΧΗ  ζ <- 0

Page 21: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

  ξ <- 0  ΓΡΑΨΕ "Δώσε τα ονόματα των παικτών!"  ΓΡΑΨΕ "Παίκτη 1 γράψε το όνομά σου.."  ΔΙΑΒΑΣΕ ον1  ΓΡΑΨΕ "Παίκτη 2 γράψε το όνομά σου.."  ΔΙΑΒΑΣΕ ον2  ΓΡΑΨΕ "Το παιχνίδι ξεκινάει..."  ΓΡΑΨΕ ον1, " δώσε την επιλογή σου! (ΠΕΤΡΑ - ΨΑΛΙΔΙ - ΧΑΡΤΙ - ΤΕΛΟΣ)"  ΔΙΑΒΑΣΕ χ  ΓΡΑΨΕ ον2, " δώσε την επιλογή σου! (ΠΕΤΡΑ - ΨΑΛΙΔΙ - ΧΑΡΤΙ - ΤΕΛΟΣ)"  ΔΙΑΒΑΣΕ υ  ΟΣΟ χ <> "ΤΕΛΟΣ" ΚΑΙ υ <> "ΤΕΛΟΣ" ΕΠΑΝΑΛΑΒΕ    ΑΝ χ = υ ΤΟΤΕ      ΓΡΑΨΕ "Ο γύρος αυτός είναι ισόπαλος!"    ΑΛΛΙΩΣ_ΑΝ χ = "ΠΕΤΡΑ" ΚΑΙ υ = "ΨΑΛΙΔΙ" ΤΟΤΕ      ΓΡΑΨΕ "Ο/Η ", ον1, " κέρδισε τον γύρο!"      ζ <- ζ + 1    ΑΛΛΙΩΣ_ΑΝ χ = "ΠΕΤΡΑ" ΚΑΙ υ = "ΧΑΡΤΙ" ΤΟΤΕ      ΓΡΑΨΕ "Ο/Η ", ον2, " κέρδισε τον γύρο!"      ξ <- ξ + 1    ΑΛΛΙΩΣ_ΑΝ χ = "ΨΑΛΙΔΙ" ΚΑΙ υ = "ΠΕΤΡΑ" ΤΟΤΕ      ΓΡΑΨΕ "Ο/Η ", ον2, " κέρδισε τον γύρο!"      ξ <- ξ + 1    ΑΛΛΙΩΣ_ΑΝ χ = "ΨΑΛΙΔΙ" ΚΑΙ υ = "ΧΑΡΤΙ" ΤΟΤΕ      ΓΡΑΨΕ "Ο/Η ", ον1, " κέρδισε τον γύρο!"      ζ <- ζ + 1    ΑΛΛΙΩΣ_ΑΝ χ = "ΧΑΡΤΙ" ΚΑΙ υ = "ΠΕΤΡΑ" ΤΟΤΕ      ΓΡΑΨΕ "Ο/Η ", ον1, " κέρδισε τον γύρο!"      ζ <- ζ + 1    ΑΛΛΙΩΣ_ΑΝ χ = "ΧΑΡΤΙ" ΚΑΙ υ = "ΨΑΛΙΔΙ" ΤΟΤΕ      ΓΡΑΨΕ "Ο/Η ", ον2, " κέρδισε τον γύρο!"      ξ <- ξ + 1    ΤΕΛΟΣ_ΑΝ    ΓΡΑΨΕ "-----------------<<Νέος γύρος>>------------------"    ΓΡΑΨΕ ον1, " δώσε την επιλογή σου! (ΠΕΤΡΑ - ΨΑΛΙΔΙ - ΧΑΡΤΙ - ΤΕΛΟΣ)"    ΔΙΑΒΑΣΕ χ    ΓΡΑΨΕ ον2, " δώσε την επιλογή σου! (ΠΕΤΡΑ - ΨΑΛΙΔΙ - ΧΑΡΤΙ - ΤΕΛΟΣ)"    ΔΙΑΒΑΣΕ υ  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ  ΑΝ ζ = ξ ΤΟΤΕ    ΓΡΑΨΕ "Το παιχνίδι έληξε ισόπαλο!"  ΑΛΛΙΩΣ_ΑΝ ζ > ξ ΤΟΤΕ    ΓΡΑΨΕ "Νικητής είναι ο: ", ον1  ΑΛΛΙΩΣ    ΓΡΑΨΕ "Νικητής είναι ο: ", ον2  ΤΕΛΟΣ_ΑΝΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ test

Παιχνίδι γνώσεων (σε περιβάλλον Visual-Basic)

Page 22: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα
Page 23: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα
Page 24: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα
Page 25: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα
Page 26: 2lyk-spart.lak.sch.gr2lyk-spart.lak.sch.gr/ergasies/2015_2016/glosses.docx · Web viewυπήρχε μεγάλη ζήτηση από τους επιστήμονες .Αυτά τα

Βιβλιογραφία - πηγές http://www.demsym.com/index.php/mathimata/a-gymnasiou/item/29-a-

istoriki-anadromi-genies-ypologistwn https://dsepwiki.wikispaces.com/5%CE%B7+%CE%B3%CE%B5%CE%BD

%CE%B9%CE%AC+%CF%85%CF%80%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CF%83%CF%84%CF%8E%CE%BD

https://www.youtube.com/watch?v=yJDMObNF-Yg https://el.wikipedia.org/wiki/Java http://www.pcsteps.gr/ https://el.wikipedia.org http://python-tutorial-greek.readthedocs.org/en/latest/oop_general.html Πλήρες εγχειρίδιο της Java 2 Platform, εκδότης Μ.Γκιούρδας (ISBN: 960-

512-175-1) Εισαγωγή στην C++, εκδότης Kris Jamsa (ISBN: 960-209-246-7) https://www.youtube.com/watch?v=3aPoSpVfdNM ΣΧΟΛΙΚΟ ΒΙΒΛΙΟ ΑΕΠΠ Γ’ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

(ΜΙΧΑΛΑΚΟΠΟΥΛΟΣ - ΤΣΙΑΠΑΛΑΣ)