Εμένα αυτό που δε μου αρέσει είναι ότι σε λειτουργικά ισοδύναμες μεταβλητές για έναν αλγόριθμο τη μια φορά τις θεωρούμε είσοδο την άλλη όχι. Αν υπάρχει στα δεδομένα δηλαδή είναι είσοδος, αν υπάρχει σε εκχώρηση δεν είναι, ενώ για την λειτουργία του αλγορίθμου έχει ακριβώς τον ίδιο ρόλο.
Όχι. Η διαφορά είναι ότι η εκχώρηση είναι μέσα στο .exe, ενώ η είσοδος είναι έξω από το .exe. Το λέει και η λέξη, αν είναι μέσα στον αλγόριθμο δεν μπορεί να είναι είσοδος. Είσοδος σημαίνει κάτι που είναι απ' έξω και μπαίνει μέσα.
Παράδειγμα.
Ποια είναι η είσοδος της εντολής type, που τυπώνει ένα αρχείο;
Το όνομα του αρχείου και το περιεχόμενο του αρχείου.
Αυτό που λες είναι ότι θα μπορούσες να βάλεις το ίδιο περιεχόμενο σε μια εντολή εκχώρησης, και να έχεις το ίδιο αποτέλεσμα.
Αυτό που λέω είναι ότι:
1) Ως χρήστης, μπορείς να δώσεις αρχεία σαν είσοδο, αλλά δεν έχεις καν τον κώδικα της type και ούτε compiler για να πειράξεις το εκτελέσιμο (μην κολλάμε στα τεχνικά, αυτό που εννοώ είναι ότι ο αλγόριθμος είναι μαύρο κουτί για τον χρήστη).
2) Αν επικοινωνούσες με τον προγραμματιστή και το έκανε για σένα, τότε θα έφτιαχνε ένα πρόγραμμα που θα λεγόταν "type_a_specific_book" και ΔΕΝ θα ήταν ο αλγόριθμος "type" αλλά ένα συγκεκριμένο instance του.
Πόσο χρήσιμος είναι ο αλγόριθμος "Τυπώνω_τα_άπαντα_του_Κρυστάλλη";
Μήπως για instances δεν χρειάζονται αλγόριθμοι, αλλά σταθερές;
Προφανώς ή θα δεχτούμε ότι οι εκχωρήσεις δεν είναι είσοδος οπότε ένας αλγόριθμος μπορεί να μην έχει και καθόλου εισόδους, ή θα δεχτούμε ότι αποτελούν είσοδο οπότε ένας αλγόριθμος θα έχει τουλάχιστον μία είσοδο.
Το να θεωρηθούν οι εκχωρήσεις ως είσοδοι δεν βοηθάει κάπου. Παράδειγμα, ο αλγόριθμος «Hello world».
(για το αν ονομάζεται αλγόριθμος ή υπολογιστική διαδικασία ή οτιδήποτε άλλο, είναι φιλοσοφική η συζήτηση και δεν με πολυενδιαφέρει, ενώ την έννοια και τη χρησιμότητα της εισόδου τις θεωρώ πιο σημαντικές).