Ανάκλαση (υπολογιστές): Διαφορά μεταξύ των αναθεωρήσεων
Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Xqbot (συζήτηση | συνεισφορές) μ Bot: Replace deprecated <source> tag and "enclose" parameter. |
μ Μορφοποίηση πηγών |
||
Γραμμή 1:
Στην [[πληροφορική]], ο όρος '''ανάκλαση''' ([[Αγγλική γλώσσα|αγγλ.]] '''reflection''') αναφέρεται στη δυνατότητα ενός [[Πρόγραμμα υπολογιστή|προγράμματος υπολογιστή]] να παρατηρεί και να μεταβάλλει τη δομή και τη συμπεριφορά του κατά την εκτέλεση.<ref>{{Cite web |url=http://www2.parc.com/csl/groups/sda/projects/reflection96/docs/malenfant/malenfant.pdf |title=A Tutorial on Behavioral Reflection and its Implementation by Jacques Malenfant et al. |accessdate=2014-05-17 |archiveurl=https://web.archive.org/web/20160222051331/http://www2.parc.com/csl/groups/sda/projects/reflection96/docs/malenfant/malenfant.pdf |archivedate=2016-02-22 |url-status=dead }}</ref><ref>{{cite book|last=Flanagan|first=David|title=The Ruby programming language|year=2008|publisher=O'Reilly|location=Beijing|isbn=978-0-596-51617-8|pages=266|url=http://books.google.gr/books?id=jcUbTcr5XWwC&pg=PA266#v=onepage&q&f=false|edition=
Σε στατικές γλώσσες όπως η C/C++ όταν γράφουμε το πρόγραμμα πρώτα το μεταγλωττίζουμε σε γλώσσα μηχανής και στην συνέχεια το τρέχουμε. Καθώς το πρόγραμμα εκτελείται δεν είναι δυνατό να τροποποιηθεί το πρόγραμμα και κάθε αλλαγή θα πρέπει να γίνει στο πηγαίο κώδικα ο οποίος στην συνέχεια θα πρέπει να μεταγλωττιστεί σε γλώσσα μηχανής και να εκτελεστεί. Η ιδέα της ανάκλασης είναι ότι κάνουμε αλλαγές στο κώδικα του προγράμματος την ώρα που αυτό εκτελείται. Για παράδειγμα αν έχουμε μια κλάση μπορούμε την ώρα που το πρόγραμμα τρέχει, μέσω της ανάκλασης, να πάρουμε πληροφορίες για την κλάση και να τροποποιήσουμε την λειτουργία της (π.χ. να τροποποιήσουμε τον κώδικα των συναρτήσεων-μεθόδων).<ref name="reflexion_ruby">{{cite book|last=Cooper|first=Peter|title=Beginning Ruby : from novice to professional|year=2009|publisher=Apress|location=New York|isbn=978-1-4302-2363-4|pages=129-130|url=http://books.google.gr/books?id=A78bYfzYKZ4C&pg=PA129#v=onepage&q&f=false|edition=
| last = Fox | first = Armando | title = All Programming is Metaprogramming | url = https://www.youtube.com/watch?v=e9RgRYe9ioQ | time = 00:00 | publisher = University of Berkley |
Η ανάκλαση εφαρμόζεται συνήθως σε γλώσσες υψηλού επιπέδου που τρέχουν σε κάποια εικονική μηχανή όπως η [[Smalltalk]] και άλλες [[Γλώσσα προγραμματισμού σεναρίων|γλώσσες σεναρίων]] όπως η [[Ruby]] <ref name="reflexion_ruby"/>, και λιγότερο σε στατικές γλώσσες όπως η [[Java]], η [[C (γλώσσα προγραμματισμού)|C]], η [[ML]] ή η [[Haskell]].
|