Πρόγραμμα υπολογιστή

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

Στους σύγχρονους υπολογιστές το πρόγραμμα εγγράφεται σε κάποιο αποθηκευτικό μέσο προσβάσιμο από τον υπολογιστή. Ο υπολογιστής "διαβάζει" από εκεί μια εντολή, την εκτελεί και επανέρχεται διαβάζοντας την επόμενη κ.ο.κ. Η περιοχή αποθήκευσης μπορεί, επίσης, να περιέχει τα δεδομένα, τα οποία κάποια ή κάποιες από τις εντολές οφείλει να επεξεργαστεί. Η εκτέλεση ενός προγράμματος από τον υπολογιστή συνηθίζεται να ονομάζεται "τρέξιμο" (run).

Ένα πρόγραμμα μπορεί να χαρακτηριστεί ως δέσμης (batch) ή αλληλεπιδραστικό (interactive), από την άποψη του ποιος το καθοδηγεί και του πώς εκτελείται (τρέχει). Το αλληλεπιδραστικό (με το χρήστη) πρόγραμμα λαμβάνει δεδομένα είτε από το χρήστη είτε από κάποιο άλλο πρόγραμμα που προσομοιώνει το χρήστη. Αντίθετα, ένα πρόγραμμα δέσμης τρέχει και εκτελεί την αποστολή του αυτοτελώς, χωρίς να δεχθεί δεδομένα ή εντολές από κάποιο χρήστη και σταματά να εκτελείται μόνον όταν ολοκληρώσει την ομάδα εντολών από την οποία αποτελείται. Χαρακτηριστικά παραδείγματα αλληλεπιδραστικών προγραμμάτων είναι οι πλοηγοί του World Wide Web (web browser), ενώ ένα πρόγραμμα το οποίο υπολογίζει και εκτυπώνει τις αμοιβές του προσωπικού μιας εταιρείας είναι πρόγραμμα δέσμης.

Όπως είναι αναμενόμενο ένα πρόγραμμα δεν μπορεί να εκτελεί πολλαπλές διαφορετικές εργασίες. Έτσι, για να είναι χρήσιμος ένας υπολογιστής, συνήθως πρέπει να συνδυαστούν περισσότερα του ενός προγράμματα. Π.χ. τα προγράμματα που αναφέρθηκαν πιο πάνω περιέχουν και ένα επιπλέον πρόγραμμα, αυτό που αναλαμβάνει την εκτύπωση των αποτελεσμάτων. Αλληλεπιδραστικά και προγράμματα δέσμης μπορούν να συνυπάρχουν και να συνεργάζονται: το πρόγραμμα εκτύπωσης ενός πλοηγού Web, για παράδειγμα, είναι πρόγραμμα δέσμης.

Το πρόγραμμα δημιουργείται από ειδικευμένα άτομα, τους προγραμματιστές. Για την κατασκευή ενός προγράμματος χρησιμοποιείται μια κατάλληλη γλώσσα που επιτρέπει την επικοινωνία προγραμματιστή και υπολογιστή. Η γλώσσα αυτή, που στις περισσότερες περιπτώσεις είναι η ίδια ένα πρόγραμμα, ονομάζεται γλώσσα προγραμματισμού. Η διαδικασία δημιουργίας ενός προγράμματος ονομάζεται προγραμματισμός. Οι εντολές που γράφει ο προγραμματιστής αποτελούν τον πηγαίο κώδικα (source code). Συνήθως, οι εντολές του προγράμματος χρειάζεται να "μεταφραστούν" στη γλώσσα που αντιλαμβάνεται ο υπολογιστής και αυτό γίνεται δυνατό με τη χρήση ενός άλλου προγράμματος που ονομάζεται, ανάλογα με τον τρόπο λειτουργίας του, μεταγλωττιστής (compiler) ή διερμηνέας (interpreter). Το παραγόμενο αποτέλεσμα λέγεται ότι αποτελεί τον αντικειμενικό κώδικα. Αυτός αποτελείται από μια μακροσκελή σειρά από δυαδικά ψηφία, 0 και 1, η οποία αποτελεί τη γλώσσα μηχανής (machine code), τη μόνη που αντιλαμβάνεται ο επεξεργαστής ενός υπολογιστή.

Τα προγράμματα, το σύνολο των οποίων λέγεται και λογισμικό (software) κατ' αντιδιαστολή με το υλικό του υπολογιστή (hardware), ταξινομούνται ανάλογα με τη χρήση τους σε κατηγορίες όπως για παράδειγμα, μεταξύ άλλων, το λογισμικό εφαρμογών, τα λειτουργικά συστήματα, τα βιντεοπαιχνίδια και οι μεταγλωττιστές. Προγράμματα που είναι ενσωματωμένα σε συσκευές υλικού λέγονται υλικολογισμικό (firmware).

Εξωτερικοί σύνδεσμοι 

 Whatis.com: σχετικά με την έννοια του προγράμματος 
 Whatis.com: σχετικά με την έννοια του λογισμικού 

Λογισμικό
Γλώσσες προγραμματισμού
Προγραμματισμός