Μετάβαση στο περιεχόμενο

Δυναμική γλώσσα προγραμματισμού

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια

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

Οι περισσότερες δυναμικές γλώσσες έχουν δυναμικούς τύπους.

Περιορισμοί και ασάφειες στον ορισμό

[Επεξεργασία | επεξεργασία κώδικα]

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

Ορισμένα παραδείγματα γλωσσών προγραμματισμού που θεωρούνται δυναμικές:[1][2]

Κάποιες από αυτές τις γλώσσες υποστηρίζονται και στο .NET Framework από το Microsoft Dynamic Language Runtime.

  1. http://www.eclipse.org/dltk/
  2. «Αρχειοθετημένο αντίγραφο». Αρχειοθετήθηκε από το πρωτότυπο στις 12 Ιουνίου 2010. Ανακτήθηκε στις 15 Ιανουαρίου 2011. 
  3. http://static.springsource.org/spring/docs/2.0.x/reference/dynamic-language.html
  4. <http://groovy.codehaus.org/ Αρχειοθετήθηκε 2012-02-11 στο Wayback Machine.