Σχόλιο (προγραμματισμός)

Στον προγραμματισμό, σχόλιο ονομάζεται μια δομή[1] που χρησιμοποιείται για να ενσωματώνονται σημειώσεις προς τον προγραμματιστή στον πηγαίο κώδικα ενός προγράμματος υπολογιστή.[2] Αυτές οι σημειώσεις μπορεί να είναι σημαντικές για τον προγραμματιστή αλλά συνήθως αγνοούνται από το μεταγλωττιστή ή το διερμηνέα[3][4]. Τα σχόλια προστίθενται συνήθως για να κάνουν κατανοητό τον κώδικα ενώ η σύνταξη και οι κανόνες τους διαφέρουν και ορίζονται από κάποιο πρότυπο μιας γλώσσας προγραμματισμού.

Παράδειγμα πηγαίου κώδικα σε Java με σχόλια προλόγου σε κόκκινο χρώμα και εμβόλιμα σχόλια σε πράσινο χρώμα. Ο κώδικας του προγράμματος είναι σε μπλε χρώμα.

Τα σχόλια μπορούν να χρησιμοποιούνται για πολλούς σκοπούς: από την προσθήκη βασικών περιγραφών στον κώδικα του προγράμματος, μέχρι την παραγωγή εξωτερικής τεκμηρίωσης.[5] Τα σχόλια επίσης χρησιμοποιούνται για τη σύνδεση με συστήματα διαχείρισης πηγαίου κώδικα και άλλα εξωτερικά προγραμματιστικά εργαλεία.

Η ευελιξία των σχολίων συνήθως επιτρέπει ένα μεγάλο εύρος και ποικιλία πληροφορίας στον πηγαίο κώδικα, η οποία μπορεί να μην είναι πάντα χρήσιμη. Για αυτόν το λόγο, πολλοί σχολιαστές και αναλυτές λογισμικού υιοθετούν διάφορες "φιλοσοφίες" και κανόνες για τη σωστή χρήση των σχολίων.

Γενικά Επεξεργασία

Τα σχόλια συνήθως μορφοποιούνται σαν ενότητες σχολίων (block comments), γνωστά και σαν σχόλια προλόγου (prologue comments), ροές σχολίων (stream comments), σχόλια γραμμής (line comments) ή εμβόλιμα σχόλια (inline comments).[6]

Οι ενότητες σχολίων αποτελούν μια περιοχή του πηγαίου κώδικα που μπορεί να καταλαμβάνει πάνω από μια γραμμές. Η περιοχή αυτή ορίζεται από ένα διαχωριστικό αρχής και ένα διαχωριστικό τέλους. Κάποιες γλώσσες προγραμματισμού (όπως η MATLAB) επιτρέπουν στις ενότητες σχολίων να βρίσκονται η μία μέσα στην άλλη, ενώ άλλες δεν το επιτρέπουν.[7][8][9]

Τα σχόλια γραμμής είτε ξεκινούν με ένα διαχωριστικό σχολίου και συνεχίζονται μέχρι το τέλος της γραμμής, ή, σε κάποιες περιπτώσεις, αρχίζουν σε μια συγκεκριμένη στήλη (character line offset) του πηγαίου κώδικα και συνεχίζουν μέχρι το τέλος της γραμμής.[9]

Κάποιες γλώσσες προγραμματισμού περιλαμβάνουν τόσο ενότητες σχολίων, όσο και γραμμές σχολίων, με διαφορετικά διαχωριστικά. Για παράδειγμα η C++ χρησιμοποιεί τα διαχωριστικά /* και */ στις ενότητες σχολίων της που μπορούν να καταλαμβάνουν πολλές γραμμές, και το διαχωριστικό // για τα σχόλια γραμμής. Άλλες γλώσσες υποστηρίζουν μόνο ένα είδος σχολίων. Για παράδειγμα τα σχόλια της Ada είναι σχόλια γραμμής: αρχίζουν με -- και συνεχίζουν μέχρι το τέλος της γραμμής.[9]

Χρήση Επεξεργασία

Υπάρχουν διαφωνίες σχετικά με τη σωστή χρήση των σχολίων - οι απόψεις διαφέρουν, πολλές φορές σε βαθμό που να συγκρούονται μεταξύ τους.[10][11][11]

Περιγραφή του κώδικα Επεξεργασία

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

"Μην τεκμηριώνετε κακό κώδικα - ξαναγράψτε τον."[12]
"Τα καλά σχόλια δεν επαναλαμβάνουν τον κώδικα και δεν τον εξηγούν. Ξεκαθαρίζουν αυτό που προτίθεται να κάνει. Τα σχόλια θα έπρεπε να εξηγούν, σε ένα επίπεδο αφαίρεσης που να είναι υψηλότερο από τον κώδικα, αυτό που προσπαθείτε να κάνετε."[13]

Τα σχόλια μπορούν επίσης να χρησιμοποιηθούν για να εξηγήσουν γιατί μια ενότητα κώδικα φαίνεται να μη συμμορφώνεται με συμβάσεις ή γνωστές καλές πρακτικές. Αυτό συμβαίνει ιδιαίτερα σε εγχειρήματα που έχουν πολύ λίγο χρόνο ανάπτυξης ή στη διόρθωση σφαλμάτων. Για παράδειγμα:

' Δεύτερη μεταβλητή λόγω σφαλμάτων εξυπηρετητή κατά την επαναλαμβανόμενη χρήση
' δεδομένων φόρμας. Δεν υπάρχει διαθέσιμη τεκμηρίωση, παρακάμπτεται μέσω κώδικα.
vtx = server.mappath("local settings")

Αλγοριθμική περιγραφή Επεξεργασία

Κάποιες φορές ο πηγαίος κώδικας περιέχει μια νέα ή άξια αναφοράς λύση σε ένα συγκεκριμένο πρόβλημα. Σε αυτές τις περιπτώσεις, τα σχόλια μπορούν να περιέχουν μια περιγραφή της μεθοδολογίας. Αυτές οι εξηγήσεις μπορεί να περιέχουν διαγράμματα ή τυπικές μαθηματικές αποδείξεις. Αυτό μπορεί να αποτελεί επεξήγηση του κώδικα και όχι ξεκαθάρισμα των προθέσεών του - άλλοι άνθρωποι όμως που πρέπει να συντηρούν τον κώδικα μπορεί να θεωρούν σημαντική αυτήν την επεξήγηση. Αυτό μπορεί να ισχύει στην περίπτωση ιδιαίτερα εξειδικευμένων πεδίων ή σε σπάνια χρησιμοποιούμενες βελτιστοποιήσεις, δομές ή κλήσεις συναρτήσεων.[14]

Για παράδειγμα, ένας προγραμματιστής μπορεί να προσθέσει ένα σχόλιο για να εξηγήσει γιατί μια ταξινόμηση εισαγωγής (insertion sort) επιλέχθηκε αντί για ταξινόμηση quicksort, καθώς η πρώτη είναι θεωρητικά πιο αργή. Αυτό θα μπορούσε να γραφεί ως εξής:

 list = [f (b), f (b), f (c), f (d), f (a), ...];
 // Χρειάζεται μια σταθερή (stable) ταξινόμηση. Επίσης, η ταχύτητα εδώ δεν έχει σημασία.
 insertion_sort (list);

Συμπερίληψη πόρων Επεξεργασία

Στον πηγαίο κώδικα μπορούν να τοποθετηθούν λογότυπα, διαγράμματα (απλά και διαγράμματα ροής), σαν δομές τέχνης ASCII (ASCII art) σε σχόλια.[15] Επιπλέον, σε σχόλια μπορούν να βρίσκονται κείμενα σχετικά με την πνευματική ιδιοκτησία του κώδικα. Στα σχόλια μπορούν να κωδικοποιηθούν και δυαδικά δεδομένα με μια διαδικασία γνωστή σαν "κωδικοποίηση δυαδικό-σε-κείμενο" ("binary-to-text encoding"), αν και κάτι τέτοιο δε συνηθίζεται γιατί προτιμώνται τα εξωτερικά αρχεία.

Αποσφαλμάτωση Επεξεργασία

Μια συνηθισμένη τακτική των προγραμματιστών είναι να απενεργοποιούν τμήματα κώδικα με τη χρήση σχολίων (αγγλικα: comment out), για να μην εκτελεστούν στο τελικό πρόγραμμα. Για παράδειγμα, κάποιος μπορεί να γράψει:

 if (opt.equals ("e"))
   opt_enabled = true;
 /*
  if (opt.equals ("d"))
   opt_debug = true;
 // */
 //*
 if (opt.equals ("v"))
    opt_verbose = true;
 // */

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

Αυτόματη παραγωγή τεκμηρίωσης Επεξεργασία

τα προγραμματιστικά εργαλεία κάποιες φορές αποθηκεύουν την τεκμηρίωση και τα μεταδεδομένα στα σχόλια.[16] Αυτά μπορεί να περιλαμβάνουν θέσεις για αυτόματη συμπερίληψη αρχείων επικεφαλίδας, εντολές που ορίζουν το χρωματισμό της σύνταξης του αρχείου,[17] ή τον αριθμό της έκδοσης του αρχείου.[18] Αυτά τα λειτουργικά σχόλια πολλές φορές ονομάζονται και σημειώσεις (annotations). Η διατήρηση της τεκμηρίωσης σε σχόλια στον πηγαίο κώδικα θεωρείται ένας τρόπος να απλοποιείται η διαδικασία της ανάπτυξης του λογισμικού και να αυξάνονται οι πιθανότητες να ακολουθεί η τεκμηρίωση τις αλλαγές στον κώδικα.[19]

Παραδείγματα γεννητριών τεκμηρίωσης είναι το πρόγραμμα javadoc, που σχεδιάστηκε για χρήση με τη Java, το Ddoc για τη γλώσσα προγραμματισμού D, το PHPDoc για την PHP και το doxygen, που χρησιμοποιείται με τη C++, τη C, τη Java και την IDL.

Η C# και η Visual Basic υλοποιούν ένα παρόμοιο χαρακτηριστικό που ονομάζεται "Σχόλια XML" ("XML Comments"), τα οποία διαβάζονται από το μηχανισμό IntelliSense από το μεταγλωττισμένο αρχείο (assembly) του .NET.[20]

Ρυθμιστικές απόψεις Επεξεργασία

Υπάρχουν πολλές απόψεις σχετικά με τη σωστή χρήση των σχολίων σε πηγαίο κώδικα.[21] Κάποιες από αυτές είναι άτυπες και βασισμένες σε προσωπικές προτιμήσεις ενώ άλλες δημοσιεύονται και προωθούνται σαν τυπικές οδηγίες.[22]

Σημασία των σχολίων Επεξεργασία

Οι σχολιαστές τεχνικού περιεχομένου έχουν υποστηρίξει διάφορες απόψεις σχετικά με το αν και πότε τα σχόλια είναι απαραίτητα στον πηγαίο κώδικα.[12] [23] Κάποιοι από αυτούς πιστεύουν ότι ο κώδικας θα έπρεπε να γράφεται με όσο το δυνατό λιγότερα σχόλια, γιατί η λειτουργία του θα έπρεπε να είναι προφανής.[12] Άλλοι πιστεύουν ότι πρέπει να τεκμηριώνεται εκτεταμένα (δεν είναι ασυνήθιστο πάνω από το 50% των χαρακτήρων κενού του πηγαίου κώδικα να βρίσκονται μέσα σε σχόλια).[24][25]

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

Βαθμός λεπτομέρειας Επεξεργασία

Το πόσο λεπτομερές και περιγραφικό μπορεί να είναι ένα σχόλιο διαφέρει ανάλογα με το επιθυμητό κοινό και άλλους παράγοντες.

Για παράδειγμα, το εξής σχόλιο σε Java θα μπορούσε να ταιριάζει σε ένα εισαγωγικό κείμενο στον προγραμματισμό:

    String s = "Wikipedia"; /* Αναθέτει την τιμή "Wikipedia" στη μεταβλητή s. */

Αυτός ο βαθμός λεπτομέρειας όμως, δεν είναι κατάλληλος για κώδικα παραγωγής ή όταν ο κώδικας απευθύνεται σε πεπειραμένους προγραμματιστές. Αυτές οι απλοϊκές περιγραφές δε συμφωνούν με την αρχή ότι "Τα καλά σχόλια ... ξεκαθαρίζουν το σκοπό του κώδικα."[13] Επιπλέον, σε επαγγελματικά περιβάλλοντα προγραμματισμού, ο βαθμός της λεπτομέρειας ορίζεται ανάλογα με τις επιχειρηματικές απαιτήσεις.[25]

Στυλ Επεξεργασία

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

Τα παρακάτω κομμάτια κώδικα σε C δείχνουν ένα μικρό παράδειγμα σχετικά με το πόσο μπορεί να διαφέρουν στυλιστικά σχόλια, ενώ παρέχουν την ίδια πληροφορία:

/* 
     Τα σώμα των σχολίων.
     Παραλλαγή πρώτη.
*/
/***************************\
*                           *
* Τα σώμα των σχολίων.      *
* Παραλλαγή δεύτερη.        *
*                           *
\***************************/

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

Μια άποψη είναι η στοίχιση των αριστερών άκρων των σχολίων:[29]

 /* Στυλ για τη C και τη C++.
  * Εμφανίζεται στο βιβλίο ''Enough Rope'',<ref name="Holub001" /> στον κανόνα 29.
  */
 /* Ένας άλλος τρόπος να γίνει το ίδιο πράγμα,επίσης σε C.
 ** Είναι πιο εύκολο να γίνει σε διορθωτές που δε στοιχίζουν αυτόματα από τη δεύτερη
 ** ως την τελευταία γραμμή των σχολίων κατά ένα κενό σε σχέση με την πρώτη.
 ** Χρησιμοποιείται επίσης στο προαναφερθέν βιβλίο, στον κανόνα 31.
 */

Σχόλια μέχρι το τέλος της γραμμής Επεξεργασία

Σύμφωνα με αυτήν την άποψη, αγνοείται όλο το κείμενο από τους χαρακτήρες ASCII // μέχρι το τέλος της γραμμής.

/// Παραλλαγή τρίτη.
/// --------------------
/// Το σώμα των σχολίων.
/// --------------------

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

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

Ετικέτες Επεξεργασία

Υπάρχουν κάποιες ετικέτες (tags) που χρησιμοποιούνται στα σχόλια για να βοηθούν την ανάλυση κάποιων συνηθισμένων θεμάτων. Αυτές οι ετικέτες συνήθως μορφοποιούνται με χρώματα στο διορθωτή και μπορεί να γίνει αναζήτησή τους με κλασικά προγραμματιστικά εργαλεία, όπως το εργαλείο grep του UNIX. Παραδείγματα συμβάσεων για ετικέτες:

  • FIXME που δείχνει κώδικα που πιθανόν να έχει πρόβλημα και χρειάζεται αναθεώρηση.
  • NOTE που τεκμηριώνει εσωτερικές λειτουργίες του κώδικα και δείχνει πιθανά προβλήματα.
  • TODO για προγραμματισμένες βελτιώσεις.
  • XXX που προειδοποιεί άλλους προγραμματιστές για προβληματικό ή παραπλανητικό κώδικα.

Υπάρχει το πρόβλημα της συσσώρευσης των ετικετών καθώς περνάει ο χρόνος, για αυτό συνίσταται να περιλαμβάνεται η ημερομηνία και ο ιδιοκτήτης της ετικέτας στο σχόλια για να διευκολύνεται η παρακολούθησή της.[30]

Παραδείγματα Επεξεργασία

C Επεξεργασία

Το παρακάτω μέρος κώδικα σε C δείχνει τη χρήση των σχολίων προλόγου ή "ενοτήτων σχολίων" για την περιγραφή μιας εντολής υπό συνθήκη. Το σχόλιο εξηγεί βασική ορολογία και έννοιες και περιλαμβάνει μια μικρή υπογραφή του προγραμματιστή που έγραψε τον κώδικα.

 /*
  * Ελέγχει αν είμαστε πάνω από το μέγιστο όριο διεργασιών, χωρίς όμως
  * να περιλαμβάνει το root. Αυτό χρειάζεται ώστε η login και οι παρόμοιες
  * με αυτήν να μπορούν να ορίζουν το όριο διεργασιών ανά χρήστη σε κάτι μικρότερο
  * από τις διεργασίες που τρέχει ο root. -- Rik
  */
 if (atomic_read(&p->user->processes) >= p->rlim[RLIMIT_NPROC].rlim_cur
     && !capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE))
     goto bad_fork_free;

Το παραπάνω απόσπασμα είναι από το αρχείο fork.c από τον πηγαίο κώδικα του πυρήνα Linux.

Κλασική BASIC Επεξεργασία

Αυτό το απόσπασμα κώδικα σε BASIC είναι ένα πλήρες πρόγραμμα στο οποίο τα σχόλια περιγράφουν τη λειτουργία του στους αρχάριους προγραμματιστές.

10 REM Αυτό το πρόγραμμα σε BASIC δείχνει τη χρήση των εντολών PRINT και GOTO.
15 REM Γεμίζει την οθόνη με τη λέξη "WIKIPEDIA".
20 PRINT "WIKIPEDIA"
30 GOTO 20

Όταν εκτελεστεί, το πρόγραμμα τυπώνει συνέχεια (σε ατέρμονα βρόχο) τη λέξη "WIKIPEDIA" (χωρίς τα εισαγωγικά).

ColdFusion Επεξεργασία

Το ColdFusion χρησιμοποιεί σχόλια παρόμοια με αυτά της HTML/XML, αλλά αντί για δύο παύλες χρησιμοποιεί τρεις. Τα σχόλια ανιχνεύονται από τη μηχανή του ColdFusion και δεν εμφανίζονται στο φυλλομετρητή.

 <!--- Τυπώνει "Hello World" στο φυλλομετρητή. --->
 <cfoutput>
   Hello World<br />
 </cfoutput>

Fortran 90 Επεξεργασία

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

!* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!* Όλοι οι χαρακτήρες μετά το θαυμαστικό θεωρούνται σχόλια             *
!* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 
       PRINT "WIKIPEDIA" ! Η Fortran 90 εισήγαγε τα εμβόλιμα σχόλια.
       END

Java Επεξεργασία

Το παρακάτω απόσπασμα κώδικα σε Java δείχνει μια ενότητα σχολίων που χρησιμοποιείται για να περιγράψει τη μέθοδο setToolTipText. Η μορφοποίηση συμφωνεί με τα πρότυπα του Javadoc της Sun Microsystems. Το σχόλιο με αυτήν τη μορφή είναι έτοιμο για να αναγνωριστεί από τον επεξεργαστή του javadoc.

 /**
  * Καταχωρεί το κείμενο που θα εμφανίζεται σε ένα "tool tip". Το κείμενο
  * εμφανίζεται όταν ο δείκτης βρίσκεται πάνω σε ένα στοιχείο.
  *
  * @param text  το κείμενο που θα εμφανιστεί. Αν δε δίνεται κείμενο (null), 
  *              το "tool tip" απενεργοποιείται για αυτό το στοιχείο.
  */
 public void setToolTipText(String text) {

Perl Επεξεργασία

Τα σχόλια γραμμής στην Perl, και σε άλλες γλώσσες σεναρίων, αρχίζουν με ένα σύμβολο δίεσης (#). Ένα σχόλιο στην αρχή, λέει στο σύστημα ποιόν διερμηνέα να χρησιμοποιήσει.

#!/usr/bin/perl
my $s = "Wikipedia"; # Θέτει τη μεταβλητή s ίση με "Wikipedia".
print $s . "\n";     # Προσθέτει ένα χαρακτήρα νέας γραμμής μετά από την εκτύπωση για κελύφη που δεν το κάνουν αυτόματα.

PHP Επεξεργασία

Τα σχόλια στην PHP μπορούν να είναι είτε στο στυλ της C++ (εμβόλιμα και ενότητες), ή στο στυλ της Perl. Το PHPDoc είναι ένα στυλ που μεταφέρθηκε από το javadoc και αποτελεί κοινό πρότυπο για την τεκμηρίωση κώδικα PHP.

Python Επεξεργασία

Τα σχόλια στην Python μπορεί να είναι μίας γραμμής ή πολλαπλών γραμμών χρησιμοποιούν το χαρακτήρα της δίεσης.

Σχολιασμός μιας γραμμής:(αρχίζει με το σύμβολο "#")

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# αυτό το πρόγραμμα τυπώνει "Hello World" στην οθόνη και τερματίζει.
print "Hello World!"#TODO:Να προσθέσω και μία ακόμα γραμμή κάποια στιγμή
Προσοχή! Τα προγράμματα σε Python μπορεί να αρχίζουν με το σύμβολο "#!" που λέει στο λειτουργικό σύστημα ποιoν διερμηνέα να χρησιμοποιήσει και έτσι να μπορούν να οριστούν σαν εκτελέσιμα.

Σχολιασμός πολλαπλών γραμμών: (τα σχόλια βρίσκονται ανάμεσα σε τριπλά εισαγωγικά, μονά ή διπλά)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
''' Αυτό το πρόγραμμα τυπώνει "Hello World" στην οθόνη και τερματίζει.

    Μπορείτε να το χρησιμοποιήσετε κατά βούληση.
'''
print "Hello World!"

Ο σχολιασμός πολλαπλών γραμμών στην Python χρησιμοποιείται από διάφορα προγράμματα για την παραγωγή τεκμηρίωσης.

Ruby Επεξεργασία

Τα σχόλια σε Ruby

Σχολιασμός μιας γραμμής: (η γραμμή αρχίζει με το σύμβολο "#")

Αυτό δεν είναι σχόλιο

#αυτό είναι σχόλιο

Αυτό δεν είναι σχόλιο

Σχολιασμός πολλαπλών γραμμών: (τα σχόλια βρίσκονται μεταξύ των λέξεων-κλειδιών "begin" και "end")

Αυτό δεν είναι σχόλιο

=begin

οτιδήποτε τοποθετείται εδώ

αγνοείται :)

=end

Αυτό δεν είναι σχόλιο

SQL Επεξεργασία

Τα σχόλια στην SQL είναι μόνο μιας γραμμής, όταν χρησιμοποιούνται δύο παύλες:

-- Ένα σχόλιο μιας γραμμής
-- ακολουθούμενο από άλλη μια γραμμή
SELECT COUNT(*) 
       FROM Authors
       WHERE Authors.name = 'Smith'; -- Σημείωση: θέλουμε μόνο το 'smith'
                                     -- αυτό το σχόλιο εμφανίζεται μετά τον κώδικα της SQL

Η σύνταξη της Transact-SQL υποστηρίζει επίσης εναλλακτικούς τρόπους μορφοποίησης για τον ορισμό σχολίων.[31] Μια μορφή αυτής της σύνταξης είναι ίδια με το στυλ "ενότητα σχολίων" που χρησιμοποιείται στη σύνταξη της C++ και της Java.

/*
Γραμμή σχολίου 1
Γραμμή σχολίου 2
*/
SELECT COUNT(*)
       FROM Authors

OCaml Επεξεργασία

Η OCaml χρησιμοποιεί σχόλια που μπορούν να περιέχονται σε άλλα σχόλια, κάτι που είναι χρήσιμο για το σχολιασμό μιας ενότητας κώδικα.

γραμμή με κώδικα (* σχόλιο επιπέδου 1(*σχόλιο επιπέδου 2*)*)

Σημειώσεις και παραπομπές Επεξεργασία

  1. Σε αυτό το άρθρο, τα σχόλια των γλωσσών προγραμματισμού θεωρούνται διαφορετικά από τα σχόλια σε γλώσσες σήμανσης (markup languages), αρχεία ρυθμίσεων (configuration files) και άλλες παρόμοιες περιπτώσεις. Επιπλέον, οι γλώσσες σήμανσης συνήθως ενσωματώνονται στον κώδικα μιας γλώσσας προγραμματισμού, ειδικά όταν πρόκειται για παραγωγή κώδικα (code generation). Δείτε π.χ. Ganguli, Madhushree (2002). Making Use of Jsp. New York: Wiley. ISBN 0471219746. , Hewitt, Eben (2003). Java for Coldfusion Developers. Upper Saddle River: Pearson Education. ISBN 0130461806. .
  2. Ο πηγαίος κώδικας μπορεί να χωριστεί σε κώδικα προγράμματος (που αποτελείται από εντολές που πρόκειται να μεταφραστούν σε γλώσσα μηχανής) και σε σχόλια (που περιλαμβάνουν σημειώσεις για ανάγνωση από τον άνθρωπο και άλλες σημειώσεις υποστήριξης του κώδικα προγράμματος).Penny Grubb, Armstrong Takang (2003). Software Maintenance: Concepts and Practice. World Scientific. σελίδες 7, 120-121. ISBN 981-238-426-X. 
  3. Κάποια περιβάλλοντα προγραμματισμού περιλαμβάνουν τα σχόλια στα στοιχεία της σύνταξης της γλώσσας που μπορεί να υπόκεινται σε περαιτέρω επεξεργασία, αντί απλά να αγνοούνται από τον επεξεργαστή της γλώσσας την πρώτη φορά που εμφανίζονται.
  4. Τα σχόλια πρέπει να δηλώνονται με τρόπο τέτοιο που ο επεξεργαστής του πηγαίου κώδικα να μπορεί να τα αναγνωρίσει. Συνήθως λέγεται ότι τα σχόλια "αγνοούνται" (όταν έχουν αναγνωριστεί και απορριφθεί) από τον επεξεργαστή.
  5. Η επεξεργασία των σχολίων μπορεί να γίνει με πολλούς τρόπους για την παραγωγή τεκμηρίωσης, εξωτερικής σε σχέση με τον ίδιο τον πηγαίο κώδικα.
  6. Dixit, J.B. (2003). Computer Fundamentals and Programming in C. Laxmi Publications. ISBN 8170088828. 
  7. Higham, Desmond (2005). MATLAB Guide. SIAM. ISBN 0898715784. 
  8. Vermeulen, Al (2000). The Elements of Java Style . Cambridge University Press. ISBN 0521777682. 
  9. 9,0 9,1 9,2 «Using the right comment in Java». Ανακτήθηκε στις 24 Ιουλίου 2007. 
  10. Το W. R., Dietrich (2003). Applied Pattern Recognition: Algorithms and Implementation in C++. Springer. ISBN 3528355581.  offers viewpoints on proper use of comments in source code. p. 66.
  11. 11,0 11,1 Keyes, Jessica (2003). Software Engineering Handbook. CRC Press. ISBN 0849314798.  αναλύει τα σχόλια και την "Επιστήμη της Τεκμηρίωσης" ("Science of Documentation") σελ. 256.
  12. 12,0 12,1 12,2 The Elements of Programming Style, Kernighan & Plauger
  13. 13,0 13,1 Code Complete, Steve McConnell
  14. Σπινέλλης, Διομήδης (2003). Code reading: The Open Source Perspective. Addison-Wesley. ISBN 0201799405. 
  15. «CodePlotter 1.6 - Add and edit diagrams in your code with this 'Visio-like' tool». Αρχειοθετήθηκε από το πρωτότυπο στις 14 Ιουλίου 2007. Ανακτήθηκε στις 24 Ιουλίου 2007. 
  16. Δείτε π.χ., Wynne-Powell, Rod (2008). Mac Os X for Photographers: Optimized Image Workflow for the Mac User . Oxford: Focal Press. ISBN 0240520270.  σελ. 243
  17. Το Lamb, Linda (1998). Learning the VI Editor . Sebastopol: O'Reilly & Associates. ISBN 1565924266.  περιγράφει τη σύνταξη modeline σε αρχεία ρυθμίσεων του Vim.
  18. Δείτε π.χ., Berlin, Daniel (2006). Practical Subversion, Second Edition. Berkeley: APress. ISBN 1590597532.  σελ. 168.
  19. Ambler, Scott (2004). The Object Primer: Agile Model-Driven Development with UML 2.0. Cambridge University Press. ISBN 1397805218. 
  20. Murach. C# 2005. σελ. 56. 
  21. Goodliffe, Pete (2006). Code Craft. San Francisco: No Starch Press. ISBN 1593271190. , Smith, T. (1991). Intermediate Programming Principles and Techniques Using Pascal. Belmont: West Pub. Co. ISBN 0314663142. 
  22. See e.g., Koletzke, Peter (2000). Oracle Developer Advanced Forms & Reports. Berkeley: Osborne/McGraw-Hill. ISBN 0072120487.  page 65.
  23. «Worst Practice - Bad Comments». Ανακτήθηκε στις 24 Ιουλίου 2007. 
  24. Morelli, Ralph (2006). Java, Java, Java: object-oriented problem solving. Prentice Hall College. ISBN 0131474340. 
  25. 25,0 25,1 «How to Write Doc Comments for the Javadoc Tool». Ανακτήθηκε στις 24 Ιουλίου 2007.  Οι οδηγίες του JavaDoc δηλώνουν ότι τα σχόλια είναι πολύ σημαντικά για την πλατφόρμα, ενώ ορίζεται το πόσο λεπτομερή πρέπει να είναι.
  26. Your, Edward (2007). Techniques of Program Structure and Design. University of Michigan. 013901702X.  Η κατανόηση κώδικα γίνεται δύσκολη αν δεν υπάρχουν σχόλια, αλλά τα σχόλια μπορούν να προκαλούν σοβαρά προβλήματα αν είναι ξεπερασμένα, λάθος ή γενικά δε διευκολύνουν την κατανόηση της επιθυμητής λειτουργίας του πηγαίου κώδικα.
  27. Dewhurst, Stephen C (2002). C++ Gotchas: Avoiding Common Problems in Coding and Design. Addison-Wesley Professional. ISBN 0321125185. 
  28. «Coding Style». Αρχειοθετήθηκε από το πρωτότυπο στις 8 Αυγούστου 2007. Ανακτήθηκε στις 24 Ιουλίου 2007. 
  29. Allen Holub, Enough Rope to Shoot Yourself in the Foot, ISBN 0-07-029689-8, 1995, McGraw-Hill
  30. «TODO or not TODO». Ανακτήθηκε στις 8 Φεβρουαρίου 2009. 
  31. Talmage, Ronald R. (1999). Microsoft SQL Server 7 . Prima Publishing. ISBN 0761513892. 

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