Διαφορά μεταξύ των αναθεωρήσεων του «Αντικειμενοστρεφής προγραμματισμός»

μ
ετυμολ.
μ (ετυμολ.)
Ετικέτα: επεξεργασία κώδικα 2017
Στην [[πληροφορική]] '''αντικειμενοστρεφή προγραμματισμό''' (object-oriented programming)<ref>Ο όρος object-oriented αποδόθηκε από τις ορολογικές ομάδες ΜΟΤΟ και ΕΛΟΤ/ΤΕ48/ΟΕ1 στα ελληνικά ως αντικειμενοστρεφής, αλλά η λέξη απαντάται στα ελληνικά και σαν «αντικειμενοστραφής».</ref><ref>«[https://www2.dmst.aueb.gr/dds/faq/academic.html#oo Γιατί χρησιμοποιείτε τον όρο αντικειμενοστρεφής και όχι αντικειμενοστραφής;]» από ιστοσελίδα του [[Διομήδης Σπινέλλης|Διομήδη Σπινέλλη]]. [https://web.archive.org/web/20161211172713/https://www2.dmst.aueb.gr/dds/faq/academic.html Αρχειοθετήθηκε] 13/01/2019. Ανακτήθηκε 13/01/2019.</ref> ή '''ΑΠ''', ονομάζουμε ένα [[προγραμματιστικό υπόδειγμα]] το οποίο εμφανίστηκε στα τέλη της δεκαετίας του 1960 και καθιερώθηκε κατά τη δεκαετία του 1990, αντικαθιστώντας σε μεγάλο βαθμό το παραδοσιακό υπόδειγμα του [[Δομημένος προγραμματισμός|δομημένου προγραμματισμού]]. Πρόκειται για μία μεθοδολογία ανάπτυξης [[πρόγραμμα υπολογιστή|προγραμμάτων]], υποστηριζόμενη από κατάλληλες [[γλώσσα προγραμματισμού|γλώσσες προγραμματισμού]], όπου ο χειρισμός σχετιζόμενων [[δεδομένα|δεδομένων]] και των [[διαδικασία (υπολογιστές)|διαδικασιών]] που επενεργούν σε αυτά γίνεται από κοινού, μέσω μίας [[δομή δεδομένων|δομής δεδομένων]] που τα περιβάλλει ως αυτόνομη οντότητα με ταυτότητα και δικά της χαρακτηριστικά. Αυτή η δομή δεδομένων καλείται ''αντικείμενο'' και αποτελεί πραγματικό στιγμιότυπο στη [[Μνήμη υπολογιστή|μνήμη]] ενός σύνθετου, και πιθανώς οριζόμενου από τον χρήστη, [[τύπος δεδομένων|τύπου δεδομένων]] ονόματι ''κλάση''. Η κλάση προδιαγράφει τόσο δεδομένα όσο και τις διαδικασίες οι οποίες επιδρούν επάνω τους· αυτή υπήρξε η πρωταρχική καινοτομία του ΑΠ.
 
Έτσι μπορεί να οριστεί μία προδιαγραφή δομής αποθήκευσης (π.χ. μία κλάση «τηλεόραση») η οποία να περιέχει τόσο ιδιότητες (π.χ. μία [[Μεταβλητή (Πληροφορική)|μεταβλητή]] «τρέχον κανάλι») όσο και πράξεις ή χειρισμούς επί αυτών των ιδιοτήτων (π.χ. μία διαδικασία «άνοιγμα της τηλεόρασης»). Στο εν λόγω παράδειγμα κάθε υλική τηλεόραση (κάθε αντικείμενο αποθηκευμένο πραγματικά στη μνήμη) αναπαρίσταται ως ξεχωριστό, «φυσικό» στιγμιότυπο αυτής της πρότυπης, ιδεατής κλάσης. Επομένως μόνο τα αντικείμενα καταλαμβάνουν χώρο στη μνήμη του υπολογιστή ενώ οι κλάσεις αποτελούν απλώς «καλούπια». Οι αιτίες που ώθησαν στην ανάπτυξη του ΑΠ ήταν οι ίδιες με αυτές που οδήγησαν στην ανάπτυξη του δομημένου προγραμματισμού (ευκολία συντήρησης, οργάνωσης, χειρισμού και [[επαναχρησιμοποίηση κώδικα|επαναχρησιμοποίησης κώδικα]] μεγάλων και πολύπλοκων εφαρμογών), όμως τελικώς η αντικειμενοστρέφεια επικράτησε καθώς μπορούσε να αντεπεξέλθει σε προγράμματα πολύ μεγαλύτερου όγκου και πολυπλοκότητας.
 
== Ετυμολογία ==
Είναι προφανές ότι δεν θα έπρεπε να υπάρχει καμία διχογνωμία στην απόδοση του όρου.παρότι το ευρετήριο του Google Search περιέχει ελαφρώς περισσότερες αναφορές για σελίδες με το «αντικειμενοστραφής» από ό,τι με για «αντικειμενοστρεφής»<ref>Αναζήτηση «[https://www.google.com/search?newwindow=1&client=firefox-b&ei=Bnk6XMSpN4LkgweUtZEI&q=%CE%B1%CE%BD%CF%84%CE%B9%CE%BA%CE%B5%CE%B9%CE%BC%CE%B5%CE%BD%CE%BF%CF%83%CF%84%CF%81%CE%B1%CF%86%CE%AE%CF%82&oq=%CE%B1%CE%BD%CF%84%CE%B9%CE%BA%CE%B5%CE%B9%CE%BC%CE%B5%CE%BD%CE%BF%CF%83%CF%84%CF%81%CE%B1%CF%86%CE%AE%CF%82&gs_l=psy-ab.3..35i39j0i67j0j0i67j0l6.3855093.3857558..3858428...0.0..0.122.235.0j2......0....1..gws-wiz.......0i71.6CH03eiHYFs αντικειμενοστραφής]» και «[https://www.google.com/search?newwindow=1&client=firefox-b&ei=Y3c6XOnGG4e-aM-UrvAB&q=%CE%B1%CE%BD%CF%84%CE%B9%CE%BA%CE%B5%CE%B9%CE%BC%CE%B5%CE%BD%CE%BF%CF%83%CF%84%CF%81%CE%B5%CF%86%CE%AE%CF%82&oq=%CE%B1%CE%BD%CF%84%CE%B9%CE%BA%CE%B5%CE%B9%CE%BC%CE%B5%CE%BD%CE%BF%CF%83%CF%84%CF%81%CE%B5%CF%86%CE%AE%CF%82&gs_l=psy-ab.3..35i39l2j0.4199032.4201812..4202732...0.0..0.134.254.0j2......0....1..gws-wiz.......0i71.eQ49EoRNqks αντικειμενοστρεφής]» στο google στις 13 Ιανουαρίου 2019. Τα αποτελέσματα της αναζήτησης είναι στο περίπου. Προσωπική έρευνα εύκολα επαληθεύσιμη.</ref>
 
* Ο όρος object-oriented αποδόθηκε από τις ορολογικές ομάδες ΜΟΤΟ και ΕΛΟΤ/ΤΕ48/ΟΕ1 στα ελληνικά ως αντικειμενοστρεφής, από την ορθή ετυμολογία αντικείμενο + στρέφω.
* Φιλολογική παρερμηνεία: Η<nowiki/> μετοχή του παθητι<nowiki/>κού αορίστου Β΄ είναι "''αντικειμενοστραφείς/είσα/έν",'' και δεν έχει καμία θέση στην απόδοση του όρου.<ref>«[https://www2.dmst.aueb.gr/dds/faq/academic.html#oo Γιατί χρησιμοποιείτε τον όρο αντικειμενοστρεφής και όχι αντικειμενοστραφής;]» από ιστοσελίδα του [[Διομήδης Σπινέλλης|Διομήδη Σπινέλλη]]. [https://web.archive.org/web/20161211172713/https://www2.dmst.aueb.gr/dds/faq/academic.html Αρχειοθετήθηκε] 13/01/2019. Ανακτήθηκε 13/01/2019.</ref>
 
== Ιστορικό ==
Οι περισσ<nowiki/>ότερεςπερισσότερες αντικειμενοστρεφείς έννοιες εμφανίστηκαν αρχικά στη [[γλώσσα προγραμματισμού]] [[Simula 67]], η οποία ήταν προσανατολισμένη στην εκτέλεση [[προσομοίωση|προσομοιώσεων]] του πραγματικού κόσμου. Οι ιδέες της Simula 67 επηρέασαν κατά τη δεκαετία του '70 την ανάπτυξη της [[Smalltalk]], της γλώσσας που εισήγαγε τον όρο αντικειμενοστρεφής προγραμματισμός. Η Smalltalk αναπτύχθηκε από τον [[Άλαν Κέι]] της εταιρείας [[Xerox]] στο πλαίσιο μίας εργασίας με στόχο τη δημιουργία ενός χρήσιμου, αλλά και εύχρηστου, [[προσωπικός υπολογιστής|προσωπικού υπολογιστή]]. Όταν η τελική έκδοση της Smalltalk έγινε διαθέσιμη το [[1980]] η έρευνα για την αντικατάσταση του δομημένου προγραμματισμού με ένα πιο σύγχρονο υπόδειγμα ήταν ήδη εν εξελίξει. Στη γλώσσα αυτή όλοι οι τύποι δεδομένων ήταν κλάσεις (δεν υπήρχαν δηλαδή πια παραδοσιακές δομές δεδομένων παρά μόνο αντικείμενα).
 
Την ίδια περίπου εποχή, και επίσης με επιρροές από τη Simula, ολοκληρωνόταν η ανάπτυξη της [[C++]] ως μίας ισχυρής επέκτασης της δημοφιλούς γλώσσας προγραμματισμού [[C (γλώσσα προγραμματισμού)|C]] στην οποία είχαν "μεταμοσχευθεί" αντικειμενοστρεφή χαρακτηριστικά. Η επιρροή της C++ καθ' όλη της δεκαετία του '80 ήταν καταλυτική με αποτέλεσμα τη σταδιακή κυκλοφορία αντικειμενοστρεφών εκδόσεων πολλών γνωστών διαδικαστικών γλωσσών προγραμματισμού. Κατά το πρώτο ήμισυ της δεκαετίας του '90 η βαθμιαία καθιέρωση στους μικροϋπολογιστές των γραφικών διασυνδέσεων χρήστη ([[GUI]]), για την ανάπτυξη των οποίων ο ΑΠ φαινόταν ιδιαιτέρως κατάλληλος, και η επίδραση της C++ οδήγησαν στην επικράτηση της αντικειμενοστρέφειας ως βασικού προγραμματιστικού υποδείγματος.
37.955

επεξεργασίες