Τρίτη, 4 Ιουνίου 2013

Τι είναι ο προστακτικός (imperative) προγραμματισμός;

Ο προστακτικός προγραμματισμός (imperative programming) είναι ένα προγραμματιστικό υπόδειγμα (programming paradigm) στο οποίο τα προγράμματα αποτελούνται από μία αρχική κατάσταση και από εντολές που αλλάζουν αυτή την κατάσταση (Weisskopf, 2012). Αυτό μπορεί να γίνει αντιληπτό και από την ίδια τη λέξη "προστακτικός", η οποία σημαίνει ότι προστάζουμε, δίνουμε δηλαδή εντολές στον υπολογιστή και αυτός στη συνέχεια υπακούει και τις εκτελεί.Θα μπορούσε επομένως να ειπωθεί ότι το προγραμματιστικό αυτό υπόδειγμα είναι το εξής (Nørmarks, 2010):

Πρώτα κάνε αυτό. Μετά κάνε εκείνο.

Στους περισσότερους προγραμματιστές είναι βέβαια αυτονόητο ότι η σειρά εκτέλεσης των εντολών παίζει σημαντικό ρόλο όπως επίσης είναι προφανές ότι υπάρχουν μεταβλητές των οποίων οι τιμές μεταβάλλονται. Ωστόσο υπάρχουν και πολλές άλλες γλώσσες προγραμματισμού στις οποίες τα παραπάνω δεν έχουν κανένα απολύτως νόημα (Webber, 2005). Ένα τέτοιο παράδειγμα είναι η γλώσσα Prolog.

Σχήμα 1: Σχέσεις μεταξύ κάποιων προστακτικών γλωσσών (Πηγή: Wikipedia)

Χαρακτηριστικά των προστακτικών γλωσσών
Οι "προσταγές" προς τον υπολογιστή συνήθως περιλαμβάνουν εντολές εκχώρησης τιμών και επανάληψης που αποτελούν τις δύο "σφραγίδες γνησιότητας" για κάθε προστακτική γλώσσα προγραμματισμού (Webber, 2005).

Άλλα χαρακτηριστικά των προστακτικών γλωσσών είναι τα εξής (Nørmarks, 2010):
  • Αντιστοίχηση με τον τρόπο λειτουργίας μίας μηχανής Von-Neumann.
  • Έλεγχος της σειράς εκτέλεσης των εντολών με τη χρήση δομών ελέγχου.
  • Η αλλαγή της κατάστασης του προγράμματος είναι συνάρτηση του χρόνου. 

Η Weisskopf (2012) αναφέρει επίσης ότι μία προστακτική γλώσσα προγραμματισμού είναι Turing complete αν υποστηρίζει ακεραίους, βασικούς αριθμητικούς τελεστές, τιμοδότηση, ακολουθιακή εκτέλεση εντολών, δομή επανάληψης και δομή επιλογής.  


Παραδείγματα προστακτικών γλωσών
Το προγραμματιστικό αυτό υπόδειγμα ακολουθούν οι περισσότερες σύγχρονες γλώσσες προγραμματισμού που χρησιμοποιούν οι επαγγελματίες προγραμματιστές όπως π.χ. οι C, C++, Java, Python, Pascal και πολλές άλλες.

Πηγές
Nørmarks, K. (2010). Overview of the four main programming paradigms. Διαθέσιμο στο δικτυακό τόπο http://people.cs.aau.dk/~normark/prog3-03/html/notes/paradigms_themes-paradigm-overview-section.html.
Webber, A. (2005). Σύγχρονες γλώσσες προγραμματισμού. Ηράκλειο: Πανεπιστημιακές εκδόσεις Κρήτης.
Weisskopf, A. (2012). Imperative Programming - Chapter 12. Διαθέσιμο στο δικτυακό τόπο http://www.cs.uah.edu/~weisskop/Notes424-524/ch12.ppt.


0 σχόλια:

Δημοσίευση σχολίου