Matryoshka C. Επίπεδο σύστημα γλώσσας προγράμματος

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

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

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

Matryoshka C. Επίπεδο σύστημα γλώσσας προγράμματος


Το βιβλίο «Matryoshka C. Επίπεδο σύστημα γλώσσας προγράμματος» παρουσιάζει όλες τις μονάδες της γλώσσας C με μια ματιά. Αυτό σας επιτρέπει να τα οργανώσετε, να διορθώσετε παλιές πληροφορίες και ακόμη και να διευκρινίσετε την ίδια την έννοια του προγράμματος.

Σήμερα, οι πληροφορίες προγραμματισμού χρειάζονται συστηματοποίηση ακόμη περισσότερο από ό,τι τα χημικά στοιχεία πριν από 150 χρόνια.

Η πρώτη ανάγκη είναι η διδασκαλία. Ο Mendeleev άρχισε να δημιουργεί το σύστημά του όταν αντιμετώπισε το ερώτημα με ποιο στοιχείο να αρχίσει να δίνει διαλέξεις: O, H, N, He, Au... Ταυτόχρονα, ήταν πιο εύκολο γι 'αυτόν - δίδασκε χημεία στους καλύτερους - μαθητές του Πανεπιστήμιο της Αγίας Πετρούπολης. Και ο προγραμματισμός διδάσκεται ήδη στο σχολείο και σύντομα θα ξεκινήσει στο νηπιαγωγείο.

Η δεύτερη ανάγκη είναι μια επιστημονική προσέγγιση. Με τη βοήθεια του Περιοδικού Πίνακα ανακαλύφθηκαν νέα στοιχεία και διορθώθηκαν πληροφορίες για παλιά. Βοήθησε στη δημιουργία του μοντέλου του ατόμου (1911). Και ούτω καθεξής.

Η τρίτη ανάγκη είναι να αποσαφηνιστεί η έννοια του προγράμματος.

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

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

Κάτι που μας επαναφέρει στην πρώτη διάλεξη του Privatdozent Mendeleev. Τι να πω στους πρωτοετείς; Πού είναι η αλήθεια; Αυτη ειναι Η ερωτηση.

Το βιβλίο «Matryoshka C» προσφέρει την απάντησή του σε αυτό το ερώτημα. Επίπεδο σύστημα γλώσσας προγράμματος». Επιπλέον, δεν απευθύνεται μόνο σε φοιτητές, αλλά και σε εκπαιδευμένους προγραμματιστές, αφού αυτοί, δηλαδή εμείς, πρέπει να αναζητήσουμε την αλήθεια και να αλλάξουμε την κοσμοθεωρία.

Αυτό που ακολουθεί είναι μια περίληψη του βιβλίου.

1. Εισαγωγή

Το 1969 δημιουργήθηκε η γλώσσα C, η οποία έγινε η θεμελιώδης γλώσσα προγραμματισμού και παραμένει έτσι για 50 χρόνια. Γιατί είναι έτσι; Πρώτα απ 'όλα, επειδή το C είναι εφαρμοστεί τη γλώσσα που έδωσε το πρόγραμμα ανθρώπινος αντί για προβολή μηχανή. Αυτό το επίτευγμα εξασφαλίστηκε από γλώσσες από την οικογένεια C: C++, JavaScript, PHP, Java, C# και άλλες. Δεύτερον, είναι μια σύντομη και όμορφη γλώσσα.

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

Η αλήθεια βρίσκεται στη μέση, και για τη γλώσσα C είναι αυστηρά στη μέση μεταξύ φιλοσοφικής και μηχανικής αντίληψης.

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

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

Το σύστημα είναι κατασκευασμένο λαμβάνοντας υπόψη κοινότητες εφαρμοζόμενων γλωσσών, που προκύπτουν από την υποταγή του λόγου τους. Ένα σύνολο μονάδων Matryoshka C σάς επιτρέπει να περιγράφετε και να συγκρίνετε διαφορετικές γλώσσες, δημιουργώντας μια σειρά από Matryoshka: C++, PHP, JavaScript, C#, MySQL, Python και ούτω καθεξής. Είναι άξιο και σωστό ότι διαφορετικές γλώσσες περιγράφονται από μονάδες της θεμελιώδης γλώσσας.

2. ΚΕΦΑΛΑΙΟ 1. Μοντέλο ομιλίας του προγράμματος. Καθαρίστε το C

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

  1. ομιλία - άμεση ομιλία του προγραμματιστή που λύνει το πρόβλημα,
  2. κωδικοποιημένο - κωδικοποίηση λύσης σε μαθηματική μορφή σε γλώσσα C (ή οποιαδήποτε άλλη)
  3. και εντολή - άμεσες εντολές μηχανής.

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

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

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

Matryoshka C. Επίπεδο σύστημα γλώσσας προγράμματος

Είναι περίεργο ότι η αντανάκλαση εμφανίζεται πολύ απλά - με μόνο δύο τύπους εκφράσεων.

Ωστόσο, η σύγχρονη περιγραφή της γλώσσας C (από το 1978) δεν περιέχει επαρκή κατάλογο ονομάτων είτε για την περιγραφή της γλώσσας γενικά είτε για την εργασία αναστοχασμού ειδικότερα. Επομένως, αναγκαζόμαστε να γίνουμε δημιουργικοί και να εισαγάγουμε αυτά τα ονόματα.

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

Η αντανάκλαση εκτελείται με δύο τύπους εκφράσεων:

  1. υπολογισμός (HF) - αντικατοπτρίζει μια αλλαγή στις ιδιότητες ενός αντικειμένου. Η ιδιότητα ενός αντικειμένου εκφράζεται με έναν αριθμό, τότε μια ενέργεια σε μια ιδιότητα είναι μια ενέργεια σε έναν αριθμό - μια πράξη.
  2. υποταγή (Pch) - αντικατοπτρίζει μια αλλαγή στη σειρά των ενεργειών. Το πρωτότυπο του Pch είναι μια σύνθετη πρόταση ομιλίας, επομένως οι περισσότεροι τύποι Pch ξεκινούν με δευτερεύοντες συνδέσμους "αν", "αλλιώς", "ενώ", "για". Άλλοι τύποι Η/Υ τους συμπληρώνουν.

Παρεμπιπτόντως, μπορείτε να πιστέψετε ότι στην περιγραφή C δεν υπάρχει όνομα για εκφράσεις υπολογισμού - ονομάζονται απλώς "εκφράσεις"; Μετά από αυτό, δεν θα εκπλήσσει πλέον το γεγονός ότι δεν υπάρχει όνομα και συσχετισμός για το είδος της υποταγής, και μάλιστα η έλλειψη ονομάτων, ορισμών και γενικεύσεων γενικότερα. Αυτό συμβαίνει γιατί το περίφημο K/R (“The C Language”, Kernighan/Ritchie, 1978) δεν είναι περιγραφή, αλλά οδηγός χρήσης της γλώσσας.

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

3. ΚΕΦΑΛΑΙΟ 2. Σύστημα στρώσεων. Σύντομη Γ

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

Εδώ έχουμε ένα πρόγραμμα. Αποτελείται από ενότητες. Οι ενότητες αποτελούνται από υπορουτίνες και συλλογές (δομή). Οι υπορουτίνες αποτελούνται από μεμονωμένες εκφράσεις: δηλώσεις, υπολογισμοί, υποταγή. Υπάρχουν έως και δέκα είδη υποταγής. Η υποταγή συνδέει υποεπίπεδα και υπορουτίνες. Υπάρχουν επίσης αρκετές διαφημίσεις. Ωστόσο, οι δηλώσεις περιλαμβάνονται όχι μόνο σε υπορουτίνες και υποεπίπεδα, αλλά και σε ενότητες και συλλογές. Και οι περισσότερες εκφράσεις αποτελούνται από λέξεις που είναι τόσο δύσκολο να περιγραφούν που συνήθως δίνονται απλώς σε δύο λίστες - πρωτότυπες και παράγωγες λέξεις, με τις οποίες θα εξοικειωθείτε κατά τη διάρκεια της εκμάθησης και της χρήσης της γλώσσας. Ας προσθέσουμε σημεία στίξης και μια σειρά από άλλες εκφράσεις σε αυτό.

Σε μια τέτοια παρουσίαση δεν είναι εύκολο να καταλάβει κανείς ποιος στάθηκε σε ποιον.

Μια άμεση ιεραρχική προσέγγιση για την περιγραφή μιας γλώσσας θα ήταν υπερβολικά περίπλοκη. Μια κυκλική αναζήτηση οδηγεί σε μια περιγραφή της γλώσσας με βάση τη φύση της ομιλίας και την πλευρά της εντολής. Έτσι, γεννήθηκε το Σύστημα Επίπεδων, το οποίο συμπίπτει εν μέρει με το Περιοδικό Σύστημα του Μεντελέεφ, το οποίο είναι επίσης φύλλο. Όπως αποδείχθηκε 42 χρόνια μετά τη δημοσίευσή του (1869), η περιοδικότητα του συστήματος συνδέεται με την ηλεκτρονική στρώματα (1911, Bohr-Rutherford μοντέλο του ατόμου). Επίσης, τα Layered και Periodic συστήματα είναι παρόμοια στην πίνακα διάταξης όλων των ενοτήτων σε μία σελίδα.

Η περιγραφή των γλωσσικών ενοτήτων είναι σύντομη - μόνο 10 τύποι εκφράσεων και 8 τύποι άλλων ενοτήτων, καθώς και ουσιαστική και οπτική. Αν και ασυνήθιστο για την πρώτη γνωριμία.

Οι γλωσσικές ενότητες χωρίζονται σε 6 επίπεδα:

  1. μονάδες - σειρές πίνακα
  2. τμήματα - ειδικές ομάδες γενών (τμήματα πρώτης γραμμής)
  3. γένος - κύτταρα (κύριο επίπεδο διαίρεσης)
  4. υπερείδη - διαχωριστές ειδών (σπάνιο επίπεδο)
  5. τύποι - τύποι μονάδων στο κάτω μέρος του κελιού ή ξεχωριστά
  6. μοτίβα - οι ίδιες οι μονάδες (μόνο για λέξεις)

Δείγματα λέξεων περιγράφει λεξικό - ένα ξεχωριστό υποσύστημα που αποτελείται από τα ίδια έξι επίπεδα.

Η συνιστώσα ομιλίας της γλώσσας C είναι αρκετά προφανής, αν και εξακολουθεί να αξίζει περιγραφή. Αλλά το τμήμα εντολών της γλώσσας σχετίζεται ακριβώς με τον έλεγχο μεταγλώττισης, κατά τον οποίο δημιουργείται ο τρίτος τύπος προγράμματος - εντολή. Εδώ ερχόμαστε στην πιο συναρπαστική πτυχή της γλώσσας C: την ομορφιά.

4. ΑΚΟΛΟΥΘΑ ΚΕΦΑΛΑΙΑ. Όμορφος Σι

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

Τι ακριβώς πρότεινε ο Σι; Εικόνα και στρώμα.

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

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

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

Ένα από τα δυσάρεστα χαρακτηριστικά του ιστορικού προγραμματισμού είναι ότι οι περισσότερες έννοιες, συμπεριλαμβανομένων των βασικών, δίνονται χωρίς ορισμούς. «Η γλώσσα προγραμματισμού (όνομα ποταμών) έχει τύπους ακέραιων και αιωρούμενων αριθμών...» και γρατζουνίστηκαν περαιτέρω. Δεν είναι απαραίτητο να ορίσουμε τι είναι ένας «τύπος» (εικόνα), επειδή οι ίδιοι οι συγγραφείς δεν το καταλαβαίνουν πλήρως και θα το αποσιωπήσουν «για λόγους σαφήνειας». Αν καρφωθούν στον τοίχο, θα δώσουν έναν αόριστο και άχρηστο ορισμό. Βοηθά πολύ να κρύβεσαι πίσω από ξένες λέξεις: για Ρώσους συγγραφείς - πίσω από τα αγγλικά (τύπος), για τους Άγγλους - πίσω από τα γαλλικά (υπορουτίνα), τα ελληνικά (πολυμορφισμός), τα λατινικά (ενθυλάκωση) ή τους συνδυασμούς τους (ad-hoc πολυμορφισμός).

Αλλά δεν είναι αυτή η μοίρα μας. Η επιλογή μας είναι ορισμοί με υπερυψωμένο γείσο στα καθαρά ρωσικά.

Εικόνα

Εικόνα είναι μια προκαθορισμένη ονομασία μιας ποσότητας, που ορίζει 1) τις εγγενείς ιδιότητες της ποσότητας και 2) την επιλογή των πράξεων για την ποσότητα.

Η λέξη «τύπος» (τύπος) αντιστοιχεί στο πρώτο μέρος του ορισμού: «εγγενείς ιδιότητες μιας ποσότητας». Αλλά το κύριο νόημα της εικόνας βρίσκεται στο δεύτερο μέρος: «επιλογή πράξεων σε ποσότητες».

Το σημείο εκκίνησης για την εισαγωγή μιας εικόνας στο C είναι ένας κανονικός υπολογισμός, όπως η πράξη πρόσθεσης.

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

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

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

Ένας σαφής ορισμός της εικόνας της έννοιας μας επιτρέπει να μιλήσουμε οπωσδήποτε για δύο άλλες έννοιες: ποσό и λειτουργία.

Μέγεθος και λειτουργία

Αξία — ο αριθμός υπό επεξεργασία.

Λειτουργία — επεξεργασία των τιμών των αρχικών τιμών (επιχειρήματα) για να ληφθεί ο τελικός αριθμός (σύνολο).

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

Η μηχανική προσέγγιση διαίρεσε όλους τους αριθμούς που χρησιμοποίησε ο προγραμματιστής σε εντολές и δεδομένα. Προηγουμένως, και οι δύο ήταν αριθμοί, για παράδειγμα, οι εντολές γράφονταν σε αριθμητικούς κωδικούς. Ωστόσο, στις εφαρμοσμένες γλώσσες, οι εντολές έπαψαν να είναι αριθμοί και έγιναν με λόγια и σημάδια δράσης. Μόνο τα «δεδομένα» παραμένουν ως αριθμοί, αλλά είναι παράλογο να συνεχίσουμε να τα αποκαλούμε έτσι, γιατί κατά τη μετάβαση από μια μηχανή σε μια μαθηματική άποψη, οι αριθμοί είναι ποσότητες που διαιρούνται με την αρχική (δεδομένα) και τελικό (απαιτείται). Το "άγνωστο δεδομένο" θα ακούγεται ηλίθιο.

Οι ομάδες χωρίστηκαν επίσης σε δύο είδη ενεργειών: μαθηματικές και υπηρεσιακές. Μαθηματικές ενέργειες – πράξεις. Θα πάμε στα επίσημα πράγματα αργότερα.

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

Πολλαπλές πράξεις είναι πολλές πράξεις με το ίδιο όνομα με διαφορετικούς τύπους ορισμάτων και διαφορετικές, παρόμοιες στη σημασία, ενέργειες.

Τα ακέραια ορίσματα αντιστοιχούν σε μια ολόκληρη πράξη και τα κλασματικά ορίσματα αντιστοιχούν σε μια κλασματική πράξη. Αυτή η διαφορά είναι ιδιαίτερα σαφής κατά τη λειτουργία διαίρεσης, όταν η έκφραση 1/2 δίνει συνολικά 0, όχι 0,5. Μια τέτοια σημείωση δεν αντιστοιχεί στους κανόνες των μαθηματικών σε χαρτί, αλλά η γλώσσα C δεν προσπαθεί να συμμορφωθεί με αυτούς (σε αντίθεση με το Fortran) - παίζει σύμφωνα με τους δικούς της εφαρμοσμένος κανόνες.

Στην περίπτωση ανάμειξης ακεραίων και κλασμάτων, περιλαμβάνεται το μόνο σωστό ρίψη τιμών επιχειρήματος — επιλεκτική μετατροπή μιας τιμής από μια εικόνα σε άλλη. Πράγματι, όταν προσθέτουμε έναν ακέραιο και έναν κλασματικό αριθμό, το αποτέλεσμα είναι κλασματικό, άρα η εικόνα της πράξης σηκώνει η λειτουργία μετατροπής ενός ακέραιου ορίσματος σε κλασματική τιμή.

Απομένει ένας αριθμός επεμβάσεων πληθυντικόςΚαι μονόκλινο. Τέτοιες πράξεις ορίζονται μόνο για έναν τύπο ορισμάτων: υπόλοιπο διαίρεσης - ορίσματα ακέραιου αριθμού, στοίβαξη (πράξεις bitwise) - φυσικοί ακέραιοι. Το Ma3 υποδηλώνει την πολλαπλότητα των πράξεων με πρόσημα (#^) που υποδεικνύουν τις εικόνες για τις οποίες έχει οριστεί η πράξη. Αυτή είναι μια σημαντική αλλά προηγουμένως παραβλεφθείσα ιδιότητα κάθε λειτουργίας.

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

Βοήθεια

Βοήθεια - δράση που συνοδεύει την επιχείρηση.

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

Εδώ πρέπει να παρεκκλίνουμε και να πούμε ξεχωριστά για τις ρωσικές μεταφράσεις των εγχειριδίων προγραμματισμού. Μια νέα λέξη εισήχθη στο κείμενο του Κ/Ρ για την καταγραφή ενεργειών δήλωση (έκφραση), η οποία προσπάθησε να χωρίσει τις έννοιες της εντολής μηχανής σε διαφορετικές ενέργειες: 1) λειτουργία, 2) δήλωση και 3) υποταγή (που ονομάζονται "κατασκευές ελέγχου"). Αυτή η προσπάθεια θάφτηκε από Ρώσους μεταφραστές, αντικαθιστώντας την «έκφραση» με τη λέξη «χειριστής», η οποία:

  1. έχει γίνει συνώνυμο της λέξης μηχανής "εντολή",
  2. αποδείχθηκε συνώνυμο με τη φράση "σημάδι δράσης",
  3. και έλαβε επίσης απεριόριστο αριθμό πρόσθετων τιμών. Δηλαδή, έχει μετατραπεί σε κάτι παρόμοιο με το αγγλικό άρθρο "Uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"

Εξετάστε τις συνοδευτικές ενέργειες ή βοήθεια.

Μεταβλητός έλεγχος

Μεταβλητός έλεγχος (UP) - δημιουργία/διαγραφή μεταβλητών κελιών.
Το UE εμφανίζεται σιωπηρά κατά τη δήλωση μιας μεταβλητής, η οποία είναι ήδη γραμμένη για έναν άλλο λόγο - για να υποδείξει την εικόνα της τιμής. Μόνο μία προβολή γίνεται ρητά πρόσθετες μεταβλητές χρησιμοποιώντας τις συναρτήσεις malloc() και free().

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

Υποταγή

Υποταγή — σύνδεση/απενεργοποίηση τμημάτων στρώματος.

Η γλώσσα C προσέφερε μια εφαρμοσμένη μέθοδο ελέγχου της σειράς των ενεργειών, διαφορετική από το assembler - subordination. Αντικατοπτρίζει και αναπτύσσει μια σύνθετη πρόταση ομιλίας με σαφή διαίρεση στο κύριο μέρος (ρήτρα υποταγής) και στο δευτερεύον μέρος (ενότητες υποεπίπεδο/υπορουτίνα).

Τόσο η δήλωση όσο και η υποβολή βασίζονται εξ ολοκλήρου στην ιδέα στρώμα.

Στρώμα

Στρώμα είναι ένα περιορισμένο επιλεκτικό σύνολο εκφράσεων ενός επιπέδου.

Το επίπεδο ρητά και σιωπηρά ανέλαβε πολλές εργασίες ταυτόχρονα:

  1. οργάνωση του προγράμματος
  2. περιορισμός της ορατότητας των ονομάτων (σιωπηρά),
  3. διαχείριση μεταβλητών (κελιά μνήμης) (σιωπηρή),
  4. ορισμός δευτερευουσών προτάσεων για τη δευτερεύουσα,
  5. ορισμοί συναρτήσεων και επιλογών και άλλα.

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

Χωρίς ένα επίπεδο, είναι αδύνατο να εξηγηθούν συνοπτικά και ξεκάθαρα πολλές από τις ενέργειες και τους κανόνες του προγράμματος. Για παράδειγμα, γιατί το goto είναι τόσο απλό όσο τρία καπίκια κακό, και το δύσκολο ενώ είναι καλό. Μπορείτε μόνο να ορκιστείτε αβοήθητοι, όπως έκανε ο Dijkstra («η ικανότητα των προγραμματιστών είναι μια συνάρτηση που εξαρτάται αντιστρόφως από τη συχνότητα εμφάνισης δηλώσεων goto στα προγράμματά τους». Εν ολίγοις, μόνο οι κατσίκες χρησιμοποιούν goto. Το επίπεδο δικαιολόγησης είναι ο Θεός.) Είναι αλήθεια ότι αυτό δεν είναι τόσο τρομακτικό εάν τα βιβλία σας Δεν χρειάζεται να εξηγήσουμε τίποτα απολύτως, αλλά, όπως έχουμε ήδη πει, δεν είναι αυτή η μοίρα μας.

Παρεμπιπτόντως, μπορεί να υποτεθεί ότι ο Dan Ritchie άφησε το goto ακριβώς ως κλειδί για την αναζήτηση κάποιας ανώνυμης έννοιας, επειδή δεν υπήρχε ανάγκη ή ομορφιά στην έκφραση goto. Υπήρχε όμως ανάγκη για μια απλή και κατανοητή εξήγηση των νέων αρχών της γλώσσας, τις οποίες ο ίδιος ο Ρίτσι δεν ήθελε να δώσει και οι οποίες βασίζονται ακριβώς στην έννοια στρώμα.

Απόκλιση

Απόκλιση — αλλαγή των συνηθισμένων ιδιοτήτων του νέου ονόματος.

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

5. ΤΟ ΤΕΛΕΥΤΑΙΟ ΚΕΦΑΛΑΙΟ. Κοινότητα εφαρμοσμένων γλωσσών

Οι εφαρμοσμένες γλώσσες είναι εικονικός γλώσσες (με εικόνα, «πληκτρολογημένη»). Βασίζονται στη ρητή ή σιωπηρή χρήση της εικόνας. Επιπλέον, εδώ εμφανίζεται πάλι μια αντίφαση: μια ρητή εικόνα είναι πιο κατανοητή, αλλά λιγότερο βολική, και το αντίστροφο.

Matryoshka C. Επίπεδο σύστημα γλώσσας προγράμματος

(Η διάταξη του πίνακα δεν έχει παραδοθεί ακόμη, επομένως ο πίνακας εμφανίζεται με μια εικόνα.)

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

Υπερφόρτωση και πολυμορφισμός

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

Προγραμματιστές μηχανών (συστήματος). πλειονοψηφία οι πράξεις θα μπορούσαν κάλλιστα να είναι ενοχλητικές: «Τι σημαίνει αυτό το σύμβολο (+): προσθήκη ακεραίων, προσθήκη κλασμάτων ή ακόμα και μετατόπιση;! Στην εποχή μας δεν έγραφαν έτσι!». Εξ ου και η αρνητική χροιά της επιλεγμένης λέξης ("υπερβολή", "κουρασμένος"). Για έναν προγραμματιστή εφαρμογών, οι πολλαπλές λειτουργίες είναι ο ακρογωνιαίος λίθος, το κύριο επίτευγμα και η κληρονομιά της γλώσσας C, τόσο φυσικές που συχνά δεν αναγνωρίζονται.

Σε γλώσσα C++ πλειονοψηφία επεκτάθηκε όχι μόνο στις αρχικές λειτουργίες, αλλά και στις συναρτήσεις - τόσο μεμονωμένες όσο και συνδυασμένες σε κλάσεις - μεθόδους. Με πολλαπλές μεθόδους προέκυψε η δυνατότητα παράκαμψής τους σε εκτεταμένες τάξεις, η οποία ονομαζόταν αόριστα «πολυμορφισμός». Ο συνδυασμός πολυμορφισμού και υπερφόρτωσης παρήγαγε ένα εκρηκτικό μείγμα που χωρίστηκε σε δύο πολυμορφισμούς: «αληθινό» και «ad-hoc». Αυτό είναι δυνατό να το καταλάβουμε μόνο παρά τα ονόματα που έχουν εκχωρηθεί. Ο δρόμος προς τη διαφήμιση είναι στρωμένος με ξένα ονόματα.

Μια δήλωση του εντύπου "υπερφόρτωση" εκφράζεται καλύτερα στη λέξη συμπληρωματική ανακοίνωση — προσθήκη δήλωσης μιας συνάρτησης με το ίδιο όνομα με ορίσματα διαφορετικής εικόνας.

Μια δήλωση της μορφής "πολυμορφισμός" ονομάζεται καλύτερα εκ νέου ανακοίνωση — μια επικαλυπτόμενη δήλωση σε ένα νέο επίπεδο επέκτασης μιας συνάρτησης με το ίδιο όνομα με ορίσματα της ίδιας εικόνας.

Τότε θα είναι εύκολο να καταλάβουμε ότι οι ίδιες μέθοδοι διαφορετικών εικόνων (επιχειρήματα) - ανακοινώθηκε επιπλέονκαι μια εικόνα - ανακοινώθηκε.

Οι ρωσικές λέξεις αποφασίζουν.

Διάδρομος αεροδρομίου

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

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

Επομένως, θα πρέπει να αρχίσετε να μαθαίνετε γλώσσες προγραμματισμού με τη γλώσσα C και να προχωρήσετε περαιτέρω με τη σειρά με την οποία εμφανίζονται οι γλώσσες της οικογένειας C.

Το ίδιο ισχύει και για την περιγραφή των γλωσσών. Διαφορετικές γλώσσες έχουν το ίδιο ή μικρότερο σύνολο μοναδιαίων φύλων από τη γλώσσα C. Ο αριθμός των τύπων και των δειγμάτων μπορεί να διαφέρει και προς τις δύο κατευθύνσεις: η C++ έχει περισσότερους τύπους από τον C, ενώ η JavaScript έχει λιγότερους.

Η γλώσσα MySQL αξίζει ιδιαίτερης αναφοράς. Φαίνεται ότι δεν υπάρχει τίποτα κοινό, αλλά περιγράφεται τέλεια από τον Matryoshka και η γνωριμία του γίνεται πιο γρήγορη και ευκολότερη. Κάτι που είναι σημαντικό, δεδομένης της σημασίας του για τον ιστό - την τραπεζαρία του σύγχρονου προγραμματισμού. Και όπου υπάρχει MySQL, υπάρχουν και άλλες SQL. Λοιπόν, κάθε είδους Fortran-Pascal-Python περιγράφονται και από τον Matryoshka, μόλις το πιάσουν στα χέρια τους.

Έτσι, μας περιμένουν σπουδαία πράγματα - μια εφαρμοσμένη περιγραφή της γλώσσας C και μια ενοποιημένη περιγραφή των γλωσσών που την ακολουθούν. «Οι στόχοι μας είναι ξεκάθαροι, τα καθήκοντά μας καθορισμένα. Λάβετε δουλειά, σύντροφοι! (Θυελλώδη, παρατεταμένο χειροκρότημα, μετατρέπεται σε επευφημίες. Όλοι σηκώνονται όρθιοι.)».

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο