Μεταπρογραμματισμός: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
μ Ο CubicStar μετακίνησε τη σελίδα Μεταπρογραμματισμός (metaprogramming) στη Μεταπρογραμματισμός: Δεν χρειάζεται επεξήγηση
μ διόρθωση ορισμού
Γραμμή 1:
Ο όρος '''Μεταπρογραμματισμός''' ([[Αγγλικά]]: ''Metaprogramming'') χαρακτηρίζει τα προγράμματα υπολογιστών τα οποία μπορούν να τροποποιούν τον εαυτό τουςπρογράμματα. Για παράδειγμα ένα πρόγραμμα μπορεί κατά την διάρκεια της μεταγλώττισης να παράγει κώδικα ο οποίος στην συνέχεια μεταγλωττίζεται και δημιουργείται το εκτελέσιμο αρχείο σε γλώσσα μηχανής. <ref>{{cite web|title=Boost – MetaProgramming Library (MPL)|url=http://mmlab.ceid.upatras.gr/attachments/article/95/Boost.pdf|publisher=Εργαστήριο Γραφικών, Πολυμέσων & Γεωγραφικών Συστημάτων - Πανεπιστήμιο Πατρών|accessdate=19 Μαΐου 2014}}</ref> Ο ''μεταπρογραμματισμός'' είναι όρος που χαρακτηρίζει τα «προγράμματα που παράγουν προγράμματα», δηλαδή προγράμματα τα οποία τροποποιούν/δημιουργούν πηγαίο κώδικα. Στην γλώσσα [[C++]] ο μεταπρογραμματισμός συσχετίζεται με τον προγραμματισμό με χρήση πρότυπων ''templates''. <ref>{{cite book|last=Gurtovoy|first=David Abrahams, Aleksey|title=C++ template metaprogramming concepts, tools, and techniques from boost and beyond|year=2004|publisher=Safari Tech Books Online|location=Boston, MA|isbn=978-0321227256|pages=3|edition=[Nachdr.].}}</ref> Σε γλώσσες σεναρίων (scripting languages) όπως η [[Ruby]] ο μεταπρογραμματισμός αναφέρεται στην δυνατότητα να προσθέτουμε νέο εκτελέσιμο κώδικα ο οποίος τροποποιεί την συμπεριφορά του προγράμματος κατά την εκτέλεση (runtime). <ref name="armando_metaprogramming_ruby">{{cite video | last = Fox | first = Armando | title = All Programming is Metaprogramming | url = https://www.youtube.com/watch?v=e9RgRYe9ioQ | time = 00:00 | publisher = University of Berkley | hostsite = youtube | year =2013 | month = 09| work = Software as a Service διάλεξη στο μάθημα CS169 | language = Αγγλικά | accessdate = 19 Μαΐου 2014}}</ref> Στην γλώσσα [[Ruby]] ο μεταπρογραμματισμός βασίζεται στο API που επιτρέπει [[Ανάκλαση (υπολογιστές)|ανάκλαση]]. <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=1st ed.|coauthors=Matsumoto, Yukihiro}}</ref>
 
==Παραδείγματα==