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

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

Οι σύγχρονες γλώσσες προγραμματισμού υψηλού επιπέδου όπως οι Pascal, C, Ada, Java, C++, C# και άλλες εξακολουθούν να είναι το πιο κοινό και ισχυρό εργαλείο για προγραμματιστές που ασχολούνται με την ανάπτυξη λογισμικού τόσο συστημάτων όσο και εφαρμογών. Με την εμφάνιση νέων εργασιών και αναγκών, η λειτουργικότητα αυτών των γλωσσών επεκτείνεται συνεχώς δημιουργώντας όλο και πιο προηγμένες εκδόσεις.

Μια άλλη κατεύθυνση στην ανάπτυξη γλωσσών προγραμματισμού σχετίζεται με τη δημιουργία εξειδικευμένων (προβληματικών) συστημάτων και περιβαλλόντων λογισμικού για χρήστες μη προγραμματιστές (τεχνολόγους, σχεδιαστές, οικονομολόγους κ.λπ.). Παραδείγματα τέτοιων συστημάτων και περιβαλλόντων είναι το CAD για διάφορους σκοπούς, τα αυτοματοποιημένα συστήματα εκμάθησης, τα συστήματα εξ αποστάσεως εκπαίδευσης, τα συστήματα ειδικών και μοντελοποίησης στην οικονομία κ.λπ. Ο σκοπός των αντίστοιχων γλωσσών που προσανατολίζονται στο πρόβλημα που χρησιμοποιούνται σε τέτοια συστήματα αντικατοπτρίζεται συχνά στα ονόματά τους, για παράδειγμα: "Γλώσσα για την περιγραφή των σχημάτων τεχνολογικού εξοπλισμού", "Γλώσσα για την περιγραφή του σεναρίου εκπαίδευσης", "Γλώσσα μοντελοποίησης κατάστασης" , και τα λοιπά.

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

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

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

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

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

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

Υπάρχουν διάφοροι τρόποι για να περιγράψετε τη σύνταξη των επίσημων γλωσσών (το δεύτερο κεφάλαιο του σεμιναρίου είναι αφιερωμένο σε τρόπους περιγραφής του). Οι πιο χρησιμοποιούμενες σε γλώσσες προγραμματισμού είναι φόρμα backus - Naura(BNF) και συντακτικά διαγράμματα.

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

Τα παρακάτω είναι παραδείγματα BNF που ορίζουν τη σύνταξη για δεκαδικούς ακέραιους και τη σύνταξη για αριθμητικές εκφράσεις που περιέχουν τους τελεστές "+" και "*".

Δεκαδικοί ακέραιοι BNF:

= 0|1|...|9

BNF αριθμητικών παραστάσεων:

:= () ένα

Στις παραπάνω εκφράσεις ένασημαίνει οποιοδήποτε αναγνωριστικό και αντιμετωπίζεται ως χαρακτήρας του αλφαβήτου από το οποίο είναι χτισμένη η έκφραση.

Στην αριστερή πλευρά του BNF, τα ονόματα των καθορισμένων παραμέτρων είναι γραμμένα σε γωνιακές αγκύλες. συντακτικές κατηγορίες(έννοιες, μονάδες), το σύμβολο «:=» σημαίνει «είναι», «αυτό», «ορίζεται ως», το σύμβολο «|» σημαίνει «ή».

Το δεξί μέρος του BNF ορίζει πιθανές επιλογές για την κατασκευή συγκεκριμένων τιμών αυτών των κατηγοριών, σε αυτήν την περίπτωση, τις τιμές των δεκαδικών αριθμών και συγκεκριμένων αριθμητικών παραστάσεων. Το BNF περιέχει επίσης το αλφάβητο των χαρακτήρων από τους οποίους συντίθενται αυτές οι τιμές. Για δεκαδικούς ακέραιους, το αλφάβητο είναι το σύνολο (+,-, 0, 1,..., 9) και για τις εκφράσεις είναι το σύνολο (ένα, *, +, (,)}.

Η διαδικασία κατασκευής των νοημάτων μιας συντακτικής κατηγορίας συνίσταται στο απόσυρσηαυτές οι τιμές με διαδοχικές αντικαταστάσεις των δεξιών τμημάτων των κανόνων BNF στα αριστερά. Ακολουθούν οι παράγωγοι του αριθμού "-320" και της έκφρασης "α+α*α"χρησιμοποιώντας το αντίστοιχο BNF:

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

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

Αν στο εξεταζόμενο BNF κάθε συντακτική κατηγορία από την αριστερή πλευρά των κανόνων συμβολίζεται με Α, Βκαι ΑΠΟαντίστοιχα, και αντί για το σύμβολο:= χρησιμοποιήστε -τότε θα ληφθούν οι ακόλουθες μορφές:

Για δεκαδικούς ακέραιους:

A->B+B-B B^>CBC C->0 | 11... | 9

Για αριθμητικές εκφράσεις:

A^A+BB

Β->Β*ΣΣ

Γ^>(Α)α

Έτσι γράφονται οι κανόνες τυπικές γραμματικές.Σύμβολα που δηλώνουν συντακτικές κατηγορίες, σε αυτήν την περίπτωση, ΠΡΟ ΧΡΙΣΤΟΥστις τυπικές γραμματικές λέγονται μη τερματικά σύμβολακαι οι χαρακτήρες του αλφαβήτου είναι τερματικό.

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

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

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

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

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

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

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

θα είναι σημασιολογικά λανθασμένο εάν το a είναι 10,5 (a = 10,5) και το b είναι ψευδές (b = false).

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

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

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

Όσον αφορά τις προβλέψεις για τις προοπτικές περαιτέρω ανάπτυξης των γλωσσών προγραμματισμού, υπάρχει ένα αρκετά μεγάλο εύρος απόψεων, έως και εκ διαμέτρου αντίθετες. Ορισμένοι συγγραφείς πιστεύουν ότι κάθε μία από τις γλώσσες έχει τα δικά της σημασιολογικά χαρακτηριστικά που την καθιστούν βολική και ελκυστική για μια συγκεκριμένη περιοχή προγραμματισμού (για παράδειγμα, η Prolog και η Lisp επικεντρώνονται στην επίλυση προβλημάτων τεχνητής νοημοσύνης· το Fortran είναι το πιο αποτελεσματικό σε επίλυση υπολογιστικών προβλημάτων· Cobol - χρησιμοποιείται για οικονομικούς υπολογισμούς κ.λπ.). Επομένως, θα πρέπει να δημιουργήσετε όλες τις νέες γλώσσες που έχουν συγκεκριμένα χαρακτηριστικά ή να ενημερώνετε περιοδικά τις υπάρχουσες εκδόσεις και να μην προσπαθείτε να δημιουργήσετε μια καθολική γλώσσα. Προς υποστήριξη αυτής της άποψης, διατυπώνεται το επιχείρημα ότι όλα τα φιλόδοξα έργα για τη δημιουργία μιας καθολικής γλώσσας απέτυχαν (αρκεί να υπενθυμίσουμε τις ανεκπλήρωτες ελπίδες που σχετίζονται με την ανάπτυξη των γλωσσών ADAiPL-1).

Ένα άλλο μέρος των συγγραφέων πιστεύει ότι από τη δημοσίευση των προτύπων των πρώτων γλωσσών προγραμματισμού - Fortran, Algol κ.λπ. - στη δεκαετία του '60. Τον 20ο αιώνα, υπήρξε μια «σταθεροποίηση» των γλωσσών με την έννοια ότι οι γλωσσικές κατασκευές παρόμοιες ως προς τον σκοπό σε διαφορετικές γλώσσες έχουν πρακτικά την ίδια σημασιολογική βάση, παρά τις διαφορές στο λεξιλόγιο και τη σύνταξη. Επομένως, μόλις καταστεί δυνατός ο επίσημος ορισμός αυτής της κοινής σημασιολογικής βάσης, θα είναι δυνατό να ξεκινήσει η δημιουργία μιας καθολικής γλώσσας, η οποία δεν θα είναι πλέον μια γλώσσα προγραμματισμού με την παραδοσιακή έννοια, αλλά κενά σημασιολογικών δομών. Το πρόγραμμα θα παρουσιαστεί ως ένα σύνολο από αυτές τις κατασκευές και ο επεξεργαστής κειμένου θα δώσει τη θέση του στον επεξεργαστή δομής. Ως παράδειγμα μερικής εφαρμογής αυτής της προσέγγισης, δίνονται περιβάλλοντα οπτικού προγραμματισμού όπως Delphi, C ++ Builder κ.λπ.

Τέλος

Αρχή

Επαναλαμβάνω

Αρχή

Ψευδοκώδικες

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

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

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

αλγόριθμος Ο αλγόριθμος του Ευκλείδη;

αντίοο πρώτος αριθμός δεν είναι ίσος με τον δεύτερο

ανοι αριθμοί είναι ίσοι

έπειτανα σταματήσει όλα;

σε διαφορετική περίπτωσηΠροσδιορίστε τον μεγαλύτερο από δύο αριθμούς.

ηΑλλάξτε τον μεγαλύτερο αριθμό στη διαφορά μεταξύ του μεγαλύτερου και του μικρότερου αριθμού

το τέλος;

πάρτε τον πρώτο αριθμό ως απάντηση

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

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

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


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

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

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

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

Η πρώτη γλώσσα μηχανής επινοήθηκε το 1941 από τον Konrad Zuse, ο οποίος είναι ο εφευρέτης της Αναλυτικής Μηχανής. Λίγο αργότερα, το 1943, ο Howard Aiken δημιούργησε τη μηχανή Mark-1, ικανή να διαβάζει οδηγίες σε επίπεδο κώδικα μηχανής.

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

Ταξινόμηση γλωσσών προγραμματισμού

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

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

Προγραμματισμός για αρχάριους

Πολλοί ρωτούν τι είναι προγραμματισμός; Βασικά, είναι ένας τρόπος επικοινωνίας με έναν υπολογιστή. Χάρη στις γλώσσες προγραμματισμού, μπορούμε να ορίσουμε συγκεκριμένες εργασίες για διάφορες συσκευές δημιουργώντας ειδικές εφαρμογές ή προγράμματα. Όταν μελετάτε αυτήν την επιστήμη στο αρχικό στάδιο, το πιο σημαντικό πράγμα είναι να επιλέξετε κατάλληλες (ενδιαφέρουσες για εσάς) γλώσσες προγραμματισμού. Η λίστα για αρχάριους είναι η παρακάτω:

  • Η Basic εφευρέθηκε το 1964, ανήκει στην οικογένεια των γλωσσών υψηλού επιπέδου και χρησιμοποιείται για τη σύνταξη προγραμμάτων εφαρμογών.
  • Το Python ("Python") είναι αρκετά εύκολο στην εκμάθηση λόγω της απλής, ευανάγνωστης σύνταξης, αλλά το πλεονέκτημα είναι ότι μπορεί να χρησιμοποιηθεί για τη δημιουργία τόσο συνηθισμένων προγραμμάτων επιφάνειας εργασίας όσο και εφαρμογών web.
  • Pascal ("Pascal") - μία από τις παλαιότερες γλώσσες (1969) που δημιουργήθηκε για τη διδασκαλία μαθητών. Η σύγχρονη τροποποίησή του έχει αυστηρή πληκτρολόγηση και δομή, αλλά το "Pascal" είναι μια εντελώς λογική γλώσσα που είναι κατανοητή σε διαισθητικό επίπεδο.

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

Οι αρχάριοι έχουν την ευκαιρία να επιταχύνουν την εκμάθηση του προγραμματισμού και των βασικών του, χάρη σε ειδικά εργαλεία. Ο κύριος βοηθός είναι το ολοκληρωμένο περιβάλλον ανάπτυξης της Visual Basic για προγράμματα και εφαρμογές (η "Visual Basic" είναι επίσης μια γλώσσα προγραμματισμού που κληρονόμησε το στυλ της Βασικής γλώσσας της δεκαετίας του 1970).

Επίπεδα γλώσσας προγραμματισμού

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

Οι γλώσσες χαμηλού επιπέδου έχουν σχεδιαστεί για να δημιουργούν οδηγίες μηχανής για επεξεργαστές. Το κύριο πλεονέκτημά τους είναι ότι χρησιμοποιούν μνημονική σημειογραφία, δηλαδή, αντί για μια ακολουθία μηδενικών και μονάδων (από το δυαδικό σύστημα αριθμών), ο υπολογιστής θυμάται μια συντομευμένη λέξη με νόημα από την αγγλική γλώσσα. Οι πιο διάσημες γλώσσες χαμηλού επιπέδου είναι η "Assembler" (υπάρχουν πολλά υποείδη αυτής της γλώσσας, καθένα από τα οποία έχει πολλά κοινά, αλλά διαφέρει μόνο σε ένα σύνολο πρόσθετων οδηγιών και μακροεντολών), CIL (διαθέσιμο στο .Net πλατφόρμα) και JAVA Bytecode.

Γλώσσες προγραμματισμού υψηλού επιπέδου: λίστα

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

Η ακόλουθη λίστα γλωσσών προγραμματισμού: C ("C"), C # ("C-sharp"), "Fortran", "Pascal", Java ("Java") - είναι από τις πιο χρησιμοποιούμενες συντακτικές υψηλού επιπέδου. Έχει τις ακόλουθες ιδιότητες: αυτές οι γλώσσες λειτουργούν με πολύπλοκες δομές, υποστηρίζουν τύπους δεδομένων συμβολοσειρών και λειτουργίες εισόδου/εξόδου αρχείων και έχουν επίσης το πλεονέκτημα ότι είναι πολύ πιο εύκολο να εργαστείτε λόγω της αναγνωσιμότητας και της κατανοητής σύνταξης.

Οι πιο χρησιμοποιούμενες γλώσσες προγραμματισμού

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

  • Γλώσσες OOP: Java, C++, Python, PHP, VisualBasic και JavaScript.
  • ομάδα δομικών γλωσσών: Basic, Fortran και Pascal.
  • πολλαπλό παράδειγμα: C#, Delphi, Curry και Scala.

Πεδίο εφαρμογής προγραμμάτων και εφαρμογών

Η επιλογή της γλώσσας στην οποία είναι γραμμένο αυτό ή εκείνο το πρόγραμμα εξαρτάται σε μεγάλο βαθμό από την περιοχή εφαρμογής του. Έτσι, για παράδειγμα, για να εργαστείτε με το ίδιο το υλικό του υπολογιστή (εγγραφή προγραμμάτων οδήγησης και υποστήριξη προγραμμάτων), η καλύτερη επιλογή θα ήταν η C ("C") ή η C ++, οι οποίες περιλαμβάνονται στις κύριες γλώσσες προγραμματισμού (δείτε τη λίστα πάνω από). Και για την ανάπτυξη εφαρμογών για κινητά, συμπεριλαμβανομένων παιχνιδιών, θα πρέπει να επιλέξετε Java ή C # ("C-sharp").

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

Σχετικά με τη γλώσσα των σιδηροδρόμων «Το τρένο θα περάσει την πλατφόρμα Krasnye Zori χωρίς να σταματήσει». Σημειώστε ότι ο οδηγός χρησιμοποίησε το ουσιαστικό «σταμάτα» και όχι το ρήμα «σταμάτα». Η στάση είναι μια πολύ σημαντική έννοια για τους σιδηροδρόμους. Ένα τρένο μπορεί να «σταματά», αλλά όχι «να έχει στάσεις». Ο Turchin [Turchin 2000], δίνοντας ένα παρόμοιο παράδειγμα, επισημαίνει την επισημοποίηση της γλώσσας που χρησιμοποιείται για στενούς επαγγελματικούς σκοπούς.

Μια επίσημη γλώσσα μπορεί να οριστεί ως εξής [Turchin 2000]. Σκεφτείτε ένα διώροφο γλωσσικό μοντέλο πραγματικότητας (Εικ. 4. 4). Η κατάσταση si κωδικοποιείται από το γλωσσικό αντικείμενο Li. Το αντικείμενο L1 είναι το όνομα του si. Λίγο αργότερα, η κατάσταση S1 αντικαθίσταται από την κατάσταση S2. Εκτελώντας κάποια γλωσσική δραστηριότητα, μετατρέπουμε το L1 σε ένα άλλο αντικείμενο - L2. Εάν το μοντέλο μας είναι σωστό, τότε το L2 είναι το όνομα του S2. Ως αποτέλεσμα, χωρίς να γνωρίζουμε την πραγματική κατάσταση S2, μπορούμε να πάρουμε μια ιδέα για αυτήν αποκωδικοποιώντας το γλωσσικό αντικείμενο L2. Η εκτέλεση του μετασχηματισμού L1->L2 καθορίζει εάν η γλώσσα θα επισημοποιηθεί.

    Για μια επισημοποιημένη γλώσσα, ο μετασχηματισμός L1->L2 καθορίζεται αποκλειστικά από τα γλωσσικά αντικείμενα Li που συμμετέχουν σε αυτήν και δεν εξαρτώνται από τις γλωσσικές αναπαραστάσεις si που αντιστοιχούν σε αυτά στη σημασιολογία της γλώσσας.

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

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

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

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

Γλώσσες μοντελοποίησης

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

    στοιχεία μοντέλου - θεμελιώδεις έννοιες της μοντελοποίησης και η σημασιολογία τους.

    σημειογραφία - οπτική αναπαράσταση στοιχείων μοντελοποίησης.

    οδηγός χρήσης - κανόνες για τη χρήση στοιχείων στο πλαίσιο κατασκευής μοντέλων τομέα.

Γλώσσες προγραμματισμού και ολοκληρωμένα περιβάλλοντα

    Σύμφωνα με τον δημιουργό του πρώτου ολοκληρωμένου περιβάλλοντος FRAMEWORK, ένα ολοκληρωμένο περιβάλλον είναι ένα τέτοιο πρόγραμμα εφαρμογής που ο χρήστης, έχοντας το εκκινήσει στην αρχή της εργάσιμης ημέρας, βρίσκει όλους τους απαραίτητους πόρους για εργασία σε αυτό και επομένως δεν βγαίνει από το ενσωματωμένο περιβάλλον μέχρι το τέλος της εργάσιμης ημέρας. Φυσικά, αυτός ο ορισμός δεν είναι πολύ σωστός και εξιδανικεύει κάπως την κατάσταση, αλλά το γενικό νόημά του είναι αρκετά σαφές. Το κύριο χαρακτηριστικό των ενσωματωμένων περιβαλλόντων είναι ο υψηλός βαθμός διαδραστικότητας. Επιτυγχάνεται με την ενσωμάτωση διαφόρων πόρων λογισμικού σε ένα ενιαίο σύνολο, εξ ου και το όνομα. Έτσι, το ενσωματωμένο περιβάλλον ενός μεταγλωττιστή γλώσσας προγραμματισμού (ένα πρόγραμμα που δημιουργεί ένα εκτελέσιμο πρόγραμμα από το κείμενο αυτής της γλώσσας προγραμματισμού) περιέχει συνήθως έναν επεξεργαστή κειμένου και τον ίδιο τον μεταγλωττιστή με ένα σύστημα διάγνωσης σφαλμάτων μεταγλώττισης. Επιπλέον, συνήθως διαθέτει επίσης έναν εντοπισμό σφαλμάτων - έναν διερμηνέα αυτής της γλώσσας, ο οποίος εκτελεί το πρόγραμμα γραμμή προς γραμμή και έχει μια σειρά από άλλα ειδικά χαρακτηριστικά. Ένας από τους ενεργά αναπτυσσόμενους τομείς, ο οπτικός σχεδιασμός, βασίζεται πλήρως στη χρήση των δυνατοτήτων ενός ολοκληρωμένου περιβάλλοντος. Ο χρήστης επιλέγει διαδραστικά τα αντικείμενα γλώσσας προγραμματισμού που είναι απαραίτητα για το πρόγραμμά του και δημιουργεί συνδέσμους μεταξύ τους. Η δημοτικότητα γλωσσών όπως η Visual BASIC (Microsoft), καθώς και το Object PASCAL (περιβάλλοντα Delphi και Kylix, Borland) δεν είναι τυχαία. Ακόμη και ένας άπειρος προγραμματιστής που δεν γνωρίζει άλλες γλώσσες προγραμματισμού εκτός από τη BASIC και δεν έχει προγραμματίσει ποτέ στα Windows μπορεί να δημιουργήσει ένα πρόγραμμα εφαρμογής που τρέχει στα Windows χρησιμοποιώντας τη Visual BASIC σε δύο ή τρεις ημέρες. Αλλά ένας προγραμματιστής υψηλής κλάσης που δεν έχει προγραμματίσει στα Windows στο παρελθόν, χρησιμοποιώντας C ++, συχνά πρέπει να ξοδέψει εβδομάδες ή και μήνες για να δημιουργήσει το ίδιο πρόγραμμα. Είναι αλήθεια ότι η Visual BASIC έχει ορισμένους σημαντικούς περιορισμούς. Με τη βοήθεια περιβαλλόντων οπτικής σχεδίασης, μπορείτε να δημιουργήσετε πολύ περίπλοκα προγράμματα χωρίς να πληκτρολογήσετε ούτε μια γραμμή κώδικα στο πληκτρολόγιο. Ωστόσο, όλα τα προγράμματα που βασίζονται σε παραδοσιακές διαδικαστικές γλώσσες προγραμματισμού υποφέρουν από το ίδιο μειονέκτημα. Για αυτούς, ο εκτελέσιμος κώδικας είναι άλλο πράγμα και τα δεδομένα που επεξεργάζεται το πρόγραμμα είναι ένα άλλο πράγμα. Πράγματι, ο κώδικας του προγράμματος περιέχεται σε ένα αρχείο με την επέκταση EXE και τα δεδομένα βρίσκονται είτε σε ειδικά αρχεία δεδομένων (συνήθως σε κείμενο ή δυαδική μορφή στην εσωτερική αναπαράσταση του υπολογιστή), είτε εισάγονται από το πληκτρολόγιο ή από κάποιο άλλο εξωτερική συσκευή. Και τώρα ας θέσουμε το ερώτημα: τι γίνεται αν ο χρήστης πρέπει να δώσει στο εκτελέσιμο πρόγραμμα πληροφορίες που μπορούν να θεωρηθούν ως «προσθήκη» στο κείμενο του προγράμματος; Για παράδειγμα, θέλουμε να χτιστεί ένα γράφημα συνάρτησης στην οθόνη και σε ένα τέτοιο πρόγραμμα παρέχουμε όλες τις απαραίτητες δυνατότητες εξυπηρέτησης. Ωστόσο, ο τύπος για τη συνάρτηση πρέπει να οριστεί από τον ίδιο τον χρήστη και δεν είναι γνωστό εκ των προτέρων ποια θα είναι. Είναι προφανές ότι τέτοιες εργασίες μπορούν να επιλυθούν μόνο με τη βοήθεια ενός συστήματος διερμηνέα. Αλλά «πρέπει να πληρώσεις για τα πάντα». Ο μεταγλωττιστής μεταφράζει το κείμενο του προγράμματος σε εκτελέσιμο κώδικα που μπορεί να λειτουργήσει χωρίς πρόγραμμα μεταγλωττιστή. Προγράμματα που δημιουργούνται βάσει γλωσσών τύπων διερμηνείας μπορούν να εκτελεστούν μόνο υπό τον έλεγχο ενός προγράμματος διερμηνέα. Είναι επίσης πιο αργά από τα μεταγλωττισμένα επειδή χρειάζονται επιπλέον χρόνο για να ερμηνευτούν. Ωστόσο, σε πολλές περιπτώσεις αυτό δεν είναι σημαντικό.

Ημερομηνία δημιουργίας: 1963 Επηρέασε:ΚΕΡΔ Πληκτρολόγηση:άτυπο Διάλεκτοι:

    Applesoft BASIC

    Commodore BASIC

    Microsoft BASIC

Υλοποιήσεις και εκδόσεις:

  • Applesoft BASIC Interpreter σε Javascript

    Atari Microsoft BASIC I/II

  • Commodore BASIC

    Γαλαξία ΒΑΣΙΚΟ

    Microsoft Visual Basic

  • Visual Basic για εφαρμογές

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

Το BASIC σχεδιάστηκε το 1963 από τους καθηγητές του Dartmouth College John Kemeny και Thomas Kurtz και εφαρμόστηκε υπό την καθοδήγησή τους από μια ομάδα φοιτητών κολεγίου. Με τον καιρό, καθώς άρχισαν να εμφανίζονται άλλες διάλεκτοι, αυτή η «πρωτότυπη» διάλεκτος έγινε γνωστή ως Dartmouth BASIC.

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

Στο σχεδιασμό της γλώσσας χρησιμοποιήθηκαν οι ακόλουθες οκτώ αρχές:

    να είναι εύκολο στη χρήση για αρχάριους.

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

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

    να είναι διαδραστική.

    παρέχετε σαφή μηνύματα σφάλματος.

    εργάζονται γρήγορα σε μικρά προγράμματα.

    δεν απαιτούν κατανόηση της λειτουργίας του υλικού.

    να είναι ενδιάμεσος μεταξύ του χρήστη και του λειτουργικού συστήματος.

Η γλώσσα βασίστηκε εν μέρει στο Fortran II και εν μέρει στο Algol-60, με προσθήκες που την καθιστούν κατάλληλη για κοινή χρήση χρόνου, επεξεργασία κειμένου και αριθμητική μήτρας. Το BASIC εφαρμόστηκε αρχικά στο GE-265 με υποστήριξη πολλαπλών τερματικών. Σε αντίθεση με τη δημοφιλή πεποίθηση, την εποχή της ίδρυσής της ήταν μια μεταγλωττισμένη γλώσσα. Η γλώσσα κέρδισε γενική δημοτικότητα από την εμφάνισή της στον μικροϋπολογιστή Altair 8800. Πολλές γλώσσες προγραμματισμού ήταν πολύ περίπλοκες για να χωρέσουν σε μικρή μνήμη. Για μηχανήματα με αργά μέσα όπως χαρτοταινία, κασέτα ήχου και χωρίς κατάλληλο πρόγραμμα επεξεργασίας κειμένου, μια μικρή γλώσσα όπως η BASIC ήταν θεϊκό δώρο. Το 1975, η Microsoft (τότε ήταν μόνο δύο - ο Bill Gates και ο Paul Allen, με τη συμμετοχή του Monte Davidov) κυκλοφόρησε το Altair BASIC. Για το λειτουργικό σύστημα CP / M, δημιουργήθηκε η διάλεκτος BASIC-80, η οποία καθόρισε την ανάπτυξη της γλώσσας για μεγάλο χρονικό διάστημα. Κατά τη διάρκεια αυτής της περιόδου δημιουργήθηκαν αρκετές νέες εκδόσεις του BASIC. Η Microsoft πούλησε πολλές εκδόσεις του BASIC για MS-DOS/PC-DOS, συμπεριλαμβανομένων των BASICA, GWBASIC και Quick BASIC (QBASIC).Η Borland κυκλοφόρησε το Turbo BASIC 1.0 το 1985 (οι διάδοχοί του πωλήθηκαν στη συνέχεια από άλλη εταιρεία με το όνομα PowerBASIC). Διάφορες επεκτάσεις BASIC εμφανίστηκαν σε οικιακούς υπολογιστές, που συνήθως περιλαμβάνουν εργαλεία για εργασία με γραφικά, ήχο, εκτέλεση εντολών DOS, καθώς και εργαλεία δομικού προγραμματισμού. Ορισμένες άλλες γλώσσες χρησιμοποίησαν τη γνωστή σύνταξη BASIC ως βάση πάνω στην οποία χτίστηκε ένα εντελώς διαφορετικό σύστημα (βλ., για παράδειγμα, GRASS). Ωστόσο, ξεκινώντας από τα τέλη της δεκαετίας του '80, οι νέοι υπολογιστές έγιναν πολύ πιο περίπλοκοι και παρείχαν χαρακτηριστικά (όπως μια γραφική διεπαφή χρήστη) που έκαναν το BASIC να μην είναι πλέον τόσο βολικό για προγραμματισμό. Η BASIC άρχισε να χάνει έδαφος, παρά το γεγονός ότι ένας τεράστιος αριθμός εκδόσεων της εξακολουθούσε να χρησιμοποιείται και να πωλείται. Η BASIC έλαβε μια δεύτερη ζωή με την εμφάνιση της Visual Basic της Microsoft. Έχει γίνει μια από τις πιο χρησιμοποιούμενες γλώσσες στην πλατφόρμα Microsoft Windows. Αργότερα, δημιουργήθηκε μια παραλλαγή που ονομάζεται WordBasic, η οποία χρησιμοποιήθηκε στο MS Word μέχρι την εμφάνιση του Word 97. Η παραλλαγή της Visual Basic for Applications (VBA) ενσωματώθηκε στο Excel 5.0 το 1993, στη συνέχεια στην Access 95 το 1995 και μετά από όλα τα άλλα εργαλεία , περιλαμβάνεται στο πακέτο του Office - το 1997. Ο Internet Explorer 3.0 και νεότερη έκδοση, καθώς και το Microsoft Outlook περιελάμβαναν έναν διερμηνέα γλώσσας VBScript. Η πλήρης έκδοση του πακέτου OpenOffice.org περιλαμβάνει επίσης διερμηνέα BASIC.

Γεια, Κόσμος!: Παράδειγμα για QBasic 1.1, QuickBasic 4.50

ΤΥΠΩΝΩ " Χαίρετε , Κόσμος !"

Factorial: Παράδειγμα για QBasic 1.1, QuickBasic 4.50

Χρησιμοποιείται επαναληπτικός ορισμός του παραγοντικού. Υπολογίζοντας το 13! εμφανίζεται μια αριθμητική υπερχείλιση και εδώ η συμπεριφορά διαφορετικών υλοποιήσεων διαφέρει: το QBasic αναφέρει μια υπερχείλιση, ενώ το QuickBasic απλώς εκτυπώνει αρνητικές τιμές. Επιπλέον, η εντολή PRINT εκτυπώνει ένα διάστημα πριν και μετά από έναν αριθμό από προεπιλογή.

DIM f AS LONG f = 1 PRINT "0 !="; f ΓΙΑ i = 1 ΕΩΣ 16:

f = f*i:

PRINTi; "!="; φά

ΕΠΙΣΗΜΩΜΕΝΗ ΓΛΩΣΣΑ- ένα τεχνητό σύστημα σημαδιών που έχει σχεδιαστεί για να αντιπροσωπεύει κάποια θεωρία. Μια τυπική γλώσσα διαφέρει από τις φυσικές (εθνικές) γλώσσες της ανθρώπινης επικοινωνίας και σκέψης, από τις τεχνητές γλώσσες όπως η εσπεράντο, από τις «τεχνικές» γλώσσες της επιστήμης, που συνδυάζουν τα μέσα ενός συγκεκριμένου μέρους της φυσικής γλώσσα με τα αντίστοιχα επιστημονικά σύμβολα (η γλώσσα της χημείας, η γλώσσα των συνηθισμένων μαθηματικών κ.λπ.), από αλγοριθμική γλώσσα γενικός τύπος προγραμματισμού κ.λπ. πρώτα απ 'όλα, από το γεγονός ότι το καθήκον του είναι να χρησιμεύσει ως μέσο καθορισμού (επισημοποίησης) ενός συγκεκριμένου λογικού περιεχομένου, το οποίο επιτρέπει την εισαγωγή της σχέσης της λογικής συνέπειας και της έννοιας της αποδεικτικότητας (ή των αναλόγων τους). Ιστορικά, η πρώτη επισημοποιημένη γλώσσα ήταν συλλογιστικός Αριστοτέλης, υλοποιήθηκε με χρήση τυποποιημένου τμήματος φυσικής (ελληνικής) γλώσσας. Η γενική ιδέα μιας επισημοποιημένης γλώσσας διατυπώθηκε από τον Leibniz (characteristica universalis), ο οποίος προέβλεψε την επέκτασή της στον «λογισμό των συμπερασμάτων» - calculus ratiocinator. Στη σύγχρονη εποχή, διάφορες παραλλαγές επισημοποιημένων γλωσσών αναπτύχθηκαν με βάση την αναλογία μεταξύ λογικής και άλγεβρας. Το ορόσημο εδώ ήταν το έργο Μοργκάνα , Boole και ιδιαίτερα τους οπαδούς τους Σρέντερ και Πορέτσκι . Οι σύγχρονες επισημοποιημένες γλώσσες - στις πιο κοινές τους μορφές - επιστρέφουν στην εργασία. Φρέγκε "Begriffsschrift" - "Record in Concepts" (1879), από το οποίο προέρχεται η κύρια γραμμή ανάπτυξης της γλώσσας της προτασιακής λογικής και (ασπάζοντάς την) η λογική των κατηγορημάτων (πολλών τόπων), καθώς και η εφαρμογή αυτών των λογικών γλωσσικά εργαλεία στα προβλήματα τεκμηρίωσης των μαθηματικών.

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

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

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

Μια επισημοποιημένη γλώσσα μπορεί να είναι μια «καθαρή μορφή», δηλ. να μην φέρει καμία εξωλογική πληροφορία. αν το φέρει, τότε γίνεται μια εφαρμοσμένη τυποποιημένη γλώσσα, η ιδιαιτερότητα της οποίας είναι η παρουσία σταθερών κατηγορημάτων και όρων (περιγραφών) - για παράδειγμα. αριθμητική - που αντικατοπτρίζει τις ιδιότητες της περιοχής εφαρμογής. Για να επισημοποιηθούν οι θεωρίες υψηλού επιπέδου αφαίρεσης, μια επισημοποιημένη γλώσσα μπορεί να τροποποιηθεί, να επεκταθεί ή να «χτιστεί» με διάφορους τρόπους. Παράδειγμα: επισημοποίηση του κλασικού λογισμού ως αριθμητικής δεύτερης τάξης (δηλαδή με ποσοτικούς δείκτες πάνω από μεταβλητές κατηγόρησης). Σε πολλές περιπτώσεις, μια τυπική γλώσσα περιέχει λογικές δομές πολλών – ακόμη και απείρως πολλών – παραγγελιών (όπως, για παράδειγμα, ο «πύργος των γλωσσών» του A.A. Markov, ο οποίος χρησιμεύει στην επισημοποίηση των εποικοδομητικών μαθηματικών ή στην ερμηνεία των τροπολογιών στη μορφή μιας ιεραρχίας «πιθανών κόσμων»). Η σημασιολογική βάση μιας τυποποιημένης γλώσσας λογικής μπορεί να είναι η θεωρητική των συνόλων, η αλγεβρική, η πιθανολογική, η θεωρητική παιγνίων κ.λπ. προκύπτει μια επισημοποιημένη γλώσσα «ασαφής λογικής» (με την έννοια Zade). Στη συνέχεια, η γλώσσα αποκτά συγκεκριμένη πραγματιστική, λαμβάνοντας υπόψη τον παράγοντα του φυσικού ομιλητή (δίνοντας μια αξιολόγηση της «λειτουργίας που ανήκει» του θέματος στο πεδίο εφαρμογής αυτής της έννοιας). Εδώ εκδηλώνεται η αυξανόμενη πλέον τάση να λαμβάνεται υπόψη ο «ανθρώπινος παράγοντας» στις επισημοποιημένες γλώσσες, με τη μια ή την άλλη μορφή, που εκδηλώνεται ξεκάθαρα σε ορισμένες επισημοποιημένες γλώσσες της λογικής της κβαντικής μηχανικής. Σε μια άλλη κατεύθυνση, υπάρχει η ανάπτυξη τυποποιημένων γλωσσών, η σημασιολογία των οποίων συνεπάγεται την απόρριψη υπαρξιακών υποθέσεων ή ορισμένων οντολογικών προϋποθέσεων - το παραδεκτό κανόνων με άπειρο αριθμό υποθέσεων, το «πολλαπλό» θεματικών περιοχών, ακόμη και αντιφατικές. αυτά, κλπ.

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

Βιβλιογραφία:

1. Εκκλησία Α.Εισαγωγή στη μαθηματική λογική, τ. 1. Μ., 1960;

2. Kleene Σ.Κ.Εισαγωγή στα μεταμαθηματικά. Μ., 1957;

3. Κάρι Χ.Θεμέλια της μαθηματικής λογικής. Μ., 1969;

4. Freudenthal H.Η γλώσσα της λογικής. Μ., 1969;

5. Smirnova E.D.Τυποποιημένες γλώσσες και προβλήματα λογικής σημασιολογίας. Μ., 1982.