Skip to main content

Τι είναι η υπό όρους συλλογή;

Στον προγραμματισμό υπολογιστών, η υπό όρους συλλογής περιγράφει την ικανότητα ενός μεταγλωττιστή λογισμικού ή επεξεργαστή πηγαίου κώδικα για να συμπεριλάβει ή να αγνοήσει ορισμένες εντολές ή μπλοκ κώδικα με βάση τις οδηγίες που δεν αποτελούν τεχνικά μέρος της βασικής προδιαγραφής της γλώσσας προγραμματισμού.Οι εντολές που χρησιμοποιούνται για την ενεργοποίηση της συλλογής υπό όρους σε ένα πρόγραμμα συχνά ονομάζονται οδηγίες προ-επεξεργαστή, αν και μπορούν επίσης να είναι γνωστές ως οδηγίες μεταγλωττιστή, υπό όρους σχόλια ή υπό όρους ορίζει.Ανάλογα με τον μεταγλωττιστή ή τη γλώσσα που χρησιμοποιείται, οι οδηγίες υπό όρους μπορούν να είναι καθορισμένες από το χρήστη μεταβλητές ή μακροεντολές ή θα μπορούσαν επίσης να είναι μεταβλητές συστήματος που ορίζονται από τον μεταγλωττιστή ή το λειτουργικό σύστημα.Η υπό όρους συλλογής χρησιμοποιείται συχνά για τη διαμόρφωση ενός μόνο συνόλου αρχείων πηγαίου κώδικα, ώστε να μπορούν να καταρτισθούν σε διαφορετικά περιβάλλοντα ή λειτουργικά συστήματα χωρίς να χρειάζεται να ανταλλάσσουν ή να αλλάζουν αρχεία προέλευσης.Μια γλώσσα σε μια άλλη, αλλά γενικά είναι μακροεντολές ή άλλες εκφράσεις μετα-δεδομένων εκτός του πεδίου εφαρμογής των κανονικών μεταβλητών προγράμματος.Σε γλώσσες όπως το C, οι μεταβλητές συνήθως είναι μακροεντολές που διαβάζονται από έναν προ-επεξεργαστή.Τις περισσότερες φορές, οι μακροεντολές δεν είναι προσβάσιμες από τον πραγματικό εκτελέσιμο πηγαίο κώδικα προγράμματος, παρόλο που υπάρχουν στα ίδια αρχεία προέλευσης.-η δήλωση.Οι βασικές δοκιμές που μπορούν να πραγματοποιηθούν για τη συλλογή υπό όρους είναι εάν ορίζεται μια τιμή, δεν καθορίζεται ή, σε ορισμένες περιπτώσεις, αν δύο καθορισμένες μεταβλητές είναι ισοδύναμες.Οι μεταβλητές ή οι μακροεντολές γενικά δεν έχουν καμία αξία σημαντικής, επειδή η πράξη του καθορισμού τους είναι αυτό που ελέγχουν οι οδηγίες.Ωστόσο, με ορισμένες γλώσσες και μεταγλωττιστές, η αξία μιας καθορισμένης μεταβλητής μπορεί να έχει σημασία εάν αξιολογούνται για την κατάσταση Boolean. Όταν ένας μεταγλωττιστής συναντά οδηγίες που χρησιμοποιούνται για τη συλλογή υπό όρους, οι οδηγίες αξιολογούνται για να δουν αν δοκιμάζονται ως αληθινές ή ψευδείς.Εάν είναι αλήθεια, ο κώδικας που ακολουθεί την οδηγία καταρτίζεται κανονικά.Διαφορετικά, ο μεταγλωττιστής θα παραλείψει πλήρως τον κώδικα που περιέχεται στην οδηγία.Αυτό είναι σε αντίθεση με τις υπό όρους λογικές δηλώσεις εντός του ίδιου του εκτελέσιμου κώδικα του προγράμματος, επειδή, ακόμη και αν η λογική έχει ένα μπλοκ κώδικα που δεν μπορεί να εκτελεστεί, θα εξακολουθεί να ερμηνεύεται και να καταρτιστεί στις περισσότερες περιπτώσεις.Με οδηγίες προ-επεξεργαστή υπό όρους, ο κώδικας που παραλείπονται δεν περιλαμβάνεται ποτέ, ερμηνεύεται ή καταρτίζεται.Θα πρέπει επίσης να σημειωθεί ότι μόλις ο προ-επεξεργαστής έχει αξιολογήσει όλες τις μεταβλητές και τις οδηγίες υπό όρους, δεν έχουν καταρτιστεί με το υπόλοιπο πρόγραμμα, επειδή προορίζονται μόνο για να παρέχουν κατεύθυνση στον μεταγλωττιστή.Χρησιμοποιείται για να συμπεριλάβει ή να αποκλείσει κώδικα που είναι συγκεκριμένο για ένα συγκεκριμένο λειτουργικό σύστημα ή περιβάλλον.Αυτό σημαίνει ότι οι βιβλιοθήκες που υπάρχουν σε ένα λειτουργικό σύστημα μπορούν να συμπεριληφθούν υπό όρους εάν οι οδηγίες καθορίσουν το πρόγραμμα καταρτίζεται βάσει αυτού του λειτουργικού συστήματος.Εναλλακτικά, οι οδηγίες μπορούν επίσης να χρησιμοποιηθούν για να συμπεριλάβουν ή να αποκλείσουν τον κώδικα βάσει μεταβλητών που ορίζονται από το χρήστη.Αυτό μπορεί να γίνει έτσι ώστε ο κώδικας εντοπισμού σφαλμάτων ή προφίλ δεν περιλαμβάνεται στην τελική έκδοση ενός προγράμματος, ή έτσι ορισμένα χαρακτηριστικά μπορούν να ενεργοποιηθούν ή να απενεργοποιηθούν χωρίς να χρειάζεται να διατηρηθούν ξεχωριστά αντίγραφα του κώδικα.