Ανάπτυξη γλώσσες
Τετάρτη, 5 Μαρτίου 2008I "exhumed" το άρθρο μου γραπτή λίγα "χρόνια πριν. I ελαφρώς αναθεωρημένη επικαιροποίηση κάτι εδώ και εκεί, αλλά πιστεύω ότι εξακολουθεί να είναι σημαντική και ενδιαφέρουσα.
ΕΙΣΑΓΩΓΗ
Τι είναι η ανάπτυξη της γλώσσας; Ένας υπολογιστής, γνωστός και ως PC (προσωπικός υπολογιστής), έχει μια προσωπική γλώσσα. Η γλώσσα αυτή ονομάζεται μηχανή κώδικα, να σημαίνει ότι κάθε μηχάνημα, ώστε οποιοδήποτε υπολογιστή (PC Compatible, Apple, Unix, κλπ. ...), αλλά έχει και την αποκλειστική ιδιοσκευασμάτων. Τα προγράμματα που θα "για τη σειρά μας είναι κυρίως προσωπικοί υπολογιστές που διενεργούνται από το μυστηριώδες αντικείμενο που ονομάζεται μικροεπεξεργαστή. Αυτή είναι η καρδιά, η μετάδοση της κίνησης έξυπνα, κάθε υπολογιστή. Στην πραγματικότητα, δεν είναι μόνο μια εφαρμογή που εκτελείται από τον μικροεπεξεργαστή, αλλά υποστηρίζει, ας πούμε, σε αυτό που ονομάζεται το λειτουργικό σύστημα: ένα στρώμα λογισμικού που παρέχεται από τον κατασκευαστή του μηχανήματος (βλέπε, για παράδειγμα, Apple Macintosh). Η PC-συμβατή, για παράδειγμα, ότι το φημισμένο βουνό Pentium μικροεπεξεργαστών, μπορεί να είναι διαφορετικό λειτουργικό σύστημα των Windows που παρέχεται από την εταιρεία του Redmond Bill Gates της Microsoft (Windows 95, 98, 2000 ... κλπ) και, πιο πρόσφατα, τα λειτουργικά συστήματα εντελώς δωρεάν εναλλακτικές λύσεις όπως η Linux και παράγωγα. Μία εφαρμογή, κατά συνέπεια, πρέπει να είναι γραπτή, για ένα συγκεκριμένο λειτουργικό σύστημα, και όχι για μια συγκεκριμένη μικροεπεξεργαστή. Αυτό συμβαίνει επειδή το λογισμικό είναι γραμμένο σήμερα είναι σε υψηλότερο επίπεδο από το ίδιο το μηχάνημα (το hardware).
Επιπλέον, το λειτουργικό σύστημα παρέχει μια σειρά από χαρακτηριστικά για την απλοποίηση της ζωής του έργου, οι οποίοι δεν θα πρέπει, συνεπώς, να αρχίσει από το μηδέν για την κατάρτιση ενός προγράμματος.
Γλώσσες προγραμματισμού όπως C, Pascal, η Συνέλευση, έχουν εφεύρει τον τρόπο να μιλάμε για τα ανθρώπινα όντα για τον τρόπο με τον οποίο, αντίθετα, "πιστεύω" ενός υπολογιστή.
ASSEMBLY LANGUAGE
Συνέλευση τη γλώσσα ήταν το πρώτο βήμα για την απλοποίηση της ζωής για προγραμματιστές. Ο κώδικας μηχανής, η γλώσσα των μικροεπεξεργαστών, άρχισε ο μόνος τρόπος για να γράψουν "απλά" εφαρμογές. Ο κώδικας έχει γραφτεί από τη συμπερίληψη της "οδηγίες" που δεν ήταν ότι διαφορετικούς αριθμούς: 21, 45, 77. Η σημασία αυτών των αριθμών ήταν τεκμηριωμένη στο λεγόμενο δελτίο δεδομένων: Τα έγγραφα που εκδίδονται από τον κατασκευαστή του μικροεπεξεργαστή, όπου αναγράφονται οι οδηγίες του δυνατού, τη λειτουργία τους και άλλες πληροφορίες importat. Το πληκτρολόγιο ήταν το μόνο πράγμα που χρησιμοποιήθηκε για τον κύριο του έργου. Με την έλευση Συνέλευσης, τελικά, θα μπορούσε να συνδεθεί με αυτούς τους αριθμούς αρκτικόλεξων, προκειμένου να επιταχύνει τη σύνταξη κώδικα. Για να πάρουμε ένα απλό παράδειγμα, φανταστείτε να πρέπει να φορτώσετε ένα δεδομένο, για παράδειγμα 1, με μεταβλητό, και να προσθέσετε την τιμή 5 και, στη συνέχεια την έξοδο. Αυτή ήταν η αρχή:
- 46 01, Γραφείο 1
- 34 05? Προσθέτει 5
- 96? Esce
Συνέλευση σε όλους τους οδήγησε σε πιο κατανοητό:
- LDA # 1, γραφείο 1 στο "συσσωρευτής
- ADDA # 5, προστίθενται 5 σε «συσσωρευτής
- RTS? Esce
Στη συνέχεια ήταν η "επινοημένη" η πρώτη γλώσσα προγραμματισμού. Μια γλώσσα ακόμη και "χαμηλού επιπέδου", τότε πολύ κοντά σε κώδικα μηχανής, ωστόσο, που έδωσε μια ανάγνωση των πιο κώδικα. Η εφεύρεση της γλώσσας δεν θα πρέπει να σημαίνει ότι η δημιουργία ενός ειδικού προγράμματος που μπορεί να οδηγήσει "λέξεις" (ή οδηγίες) ως LDA σε αριθμούς.
Σε αυτό το πρόγραμμα είχε δοθεί το όνομα του μεταγλωττιστή.
Ο μεταγλωττιστής
Ο μεταγλωττιστής είναι μια εφαρμογή που μπορεί να μεταφράσει ένα κείμενο, γραμμένο με μια γλώσσα, σε κώδικα μηχανής. Όλες οι αιτήσεις, ανεξάρτητα από τη γλώσσα με τις οποίες έχουν συνταχθεί για χρήση σε υπολογιστή θα πρέπει να "μετατραπεί" σε κώδικα μηχανής ή, πιο απλά, στη συνέλευση. Ο σκοπός ενός μεταγλωττιστή είναι να μετατρέψουμε τα σύμβολα (ή οδηγίες) σε αριθμούς. Υπάρχουν, πράγματι, συμβολομεταφραστές Συνέλευση, Γ συμβολομεταφραστές, Pascal μεταγλωττιστές, κλπ. ... Η γλώσσα είναι πάντα συνδέεται με ένα μεταγλωττιστή και ενός μεταγλωττιστή είναι συνδεδεμένη με έναν υπολογιστή. Αυτό σημαίνει ότι για να ενισχυθεί η Συνέλευση, δεν αρκεί να έχουμε ένα μεταγλωττιστή κάθε συνέλευση, αλλά, μάλλον, ένα μεταγλωττιστή Συνέλευση για το μηχάνημα - και λειτουργικό σύστημα - που θα λειτουργούν με μια αίτηση.
Υπάρχουν επίσης τα ενδιάμεσα στοιχεία, σημειώνονται με το όνομα των διερμηνέων. Αυτά, εν ολίγοις, είναι σαν το συμβολομεταφραστές με τη διαφορά ότι η θέση της λειτουργίας της μετατροπής (από την εκπαίδευση στην κώδικα μηχανής) on the fly, φυσικά, χωρίς να δημιουργούν οποιοδήποτε εκτελέσιμο αρχείο. Παραδείγματα αυτού του τύπου, από τη στιγμή που διαδεδομένη, είναι η βασική του Commodore 64! Ακόμη και σήμερα, σε άλλη μορφή, διερμηνείς διαδραματίζουν βασικό ρόλο, Java, Flash Player ή το Adobe AIR, αποτελούν παραδείγματα - στην πραγματικότητα - ως διερμηνέας.
ΦΟΡΗΤΟΤΗΤΑ ΤΟΥ ΚΩΔΙΚΑ
Συνέλευση γλώσσα ήταν σίγουρα ένα βήμα προς τον προγραμματισμό, αλλά είμαστε ακόμη μακριά από τη γλώσσα για την οποία είμαστε συνηθισμένοι σήμερα. Ένα από τα προβλήματα του συγκροτήματος δεν είναι η δυνατότητα μεταφοράς του κώδικα.
Για τη φορητότητα του κώδικα: η δυνατότητα ενός πηγή - που είναι το εξής:
- LDA # 1, γραφείο 1 στο "συσσωρευτής
- ADDA # 5, προστίθενται 5 σε «συσσωρευτής
- RTS? Esce
να καταρτιστούν εκ νέου, καθώς και για (ή με ελάχιστες αλλαγές) σε ένα άλλο μηχάνημα (λειτουργικού συστήματος) χωρίς να αλλάζει ο ίδιος ο κώδικας, με την προϋπόθεση ότι έχετε το μεταγλωττιστή για αυτό το μηχάνημα για το λειτουργικό σύστημα.
Διαφορετικές μηχανές έχουν, πιθανότατα, διαφορετικά κώδικα μηχανής. Αυτό σημαίνει ότι η εκπαίδευση LDA οποία μετατρέπεται λαμβάνει την αξία 46, είναι λογικό για μια συγκεκριμένη μηχανή, αλλά δεν σε άλλη. Η συνέλευση, που συνδέονται με το μικροεπεξεργαστή, την απλοποίηση της ανάπτυξης απλά για να το μικροεπεξεργαστή. Όταν έπρεπε να φέρουν ένα τσιπ για άλλη μία είχε, στην ουσία, το σύνολο του ξαναγράψουμε κώδικα. Όλα αυτά έχουν γίνει, με την πάροδο του χρόνου, απαράδεκτο. Και γι 'αυτό ήταν ότι άρχισε να αναπτύσσεται μεταγλωττιστή με βάση τη γλώσσα που θα μπορούσε να είναι οποιοδήποτε είδος μικροεπεξεργαστή.
ΜΕΤΑ ΤΟ Β Γ FU
Μετάβαση θρύλους, τα προοίμια και εισαγωγές από το κλασικό βιβλίο. Αν θέλετε να χαμογελά και να βυθίζεται στον εαυτό σας την χρυσή εποχή των υπολογιστών, μπορείτε να πάτε με τη βιβλιοθήκη και ένα μεγάλο απόθεμα των βιβλίων σε γλώσσα C. Εγώ, ωστόσο, θα meditated για τη γλώσσα C
Η C είναι σίγουρα οι πιο γνωστές γλώσσες προγραμματισμού, και χρησιμοποιούνται τα πλέον κατάχρηση. Από την εποχή του συνέρχεσθαι και Γ διαπιστώθηκε χρόνια δοκιμές, τροποποιήσεις, τις εμφανίσεις και εξαφανίσεις και άλλων γλωσσών. Η C ήταν επιτυχής διότι είχε πάντα φαίνεται ότι απουσιάζει από την εν λόγω περίοδο. Είναι, αντίθετα με του συνέρχεσθαι είναι εντελώς επινοημένη, υπό την έννοια ότι είναι αποτέλεσμα της μελέτης και τη φαντασία των δύο "απλά" προγραμματιστές. Η Συνέλευση, όπως είδαμε στις προηγούμενες παραγράφους, είναι στενά συνδεδεμένο με το μικροεπεξεργαστή. Τις οδηγίες του, ή τα πλήκτρα έχουν συντακτικό - αθέλητα - ενδεικτικό του μικροεπεξεργαστή που χρησιμοποιείται:
Μικροεπεξεργαστές 6502
- LDA # 1, γραφείο 1 στο "συσσωρευτής
- ADDA # 5, προστίθενται 5 σε «συσσωρευτής
- RTS? Esce
Μικροεπεξεργαστών Intel 80x86
- bit AX MOV AX, # 1, γραφείο 1 εγγραφή σε 16-bit AX
- ADD AX, # 5, προστίθενται 5 έως μητρώο AX
- RET? Esce
Motorola 680x0 μάρκες
- MOVEQ # 1, D0, 1 έδρα στο μητρώο D0
- ADDQ # 5, D0? Προσθέτει 5 έως μητρώο D0
- RTS? Esce
Εν ολίγοις, αν και υπάρχει ένα μεταγλωττιστή ότι η Συνέλευση δεν είναι μια πραγματική γλώσσα προγραμματισμού. Αν θέλουμε να το Συνέλευσης του κώδικα για την αρχιτεκτονική Motorola 680x0 και να προσπαθήσει να συγκεντρώσει με το μεταγλωττιστή για μικροεπεξεργαστών Intel, μια σειρά - άπειρο - Σύνταξη του λάθους θα αλλάξουν αμέσως ιδέα! Η Συνέλευση, κατά συνέπεια, σε αντίθεση με την C μεταγλωττιστή είναι μια ανωμαλία. Αντί της "Συνέλευσης γλώσσα" να μπορούμε να μιλάμε για "ένα μέσο για την απλοποίηση του κώδικα μηχανής" - κωδικούς αριθμούς δει στις προηγούμενες παραγράφους.
ΓΛΩΣΣΑ C
Η γλώσσα C είναι πιο διαδεδομένη, δεν υπάρχει κανένας υπολογιστής στον κόσμο που έχει την μεταγλωττιστή Γ. Στην πραγματικότητα, η C είναι η γλώσσα στην οποία είχε αντικείμενο τον προγραμματισμό, και έχει, τον καλύτερό του γυμναστηρίου. Η C είναι η αλήθεια πρότυπο φορητής γλώσσα: μια μόνο πηγή μπορεί να καταρτίζονται με διαφορετικά μηχανήματα, χωρίς να χρειάζεται να αλλάξετε μια γραμμή κώδικα. Η πρακτική, δυστυχώς, μας έχει διδάξει ότι, σε ειδικές περιπτώσεις, αυτή η φορητότητα εξαφανιστούν ως δια μαγείας. Το γεγονός παραμένει ότι η C έχει τη δική του σύνταξη, έχει ένα πρότυπο που αναγνωρίζεται σε όλο τον κόσμο. Η C είναι μια γλώσσα της ανάπτυξης. Τα κείμενα που ασχολούνται τίθενται από το μηχάνημα για το οποίο για την εκτέλεση των ασκήσεων. Αν πάτε σε ένα βιβλιοπωλείο και να αγοράσουν κείμενο - ακόμη πανεπιστήμιο - για τη γλώσσα C, θα παρατηρήσετε ότι υπάρχουν αναφορές για το περιβάλλον κατά την οποία για τη διενέργεια τέτοιων ασκήσεων. Ίσως κάποιο κείμενο μπορεί να τονισθεί ότι το παράδειγμα που θα έχουν κατασκευαστεί για αυτό το μηχάνημα και αυτή την περιοχή, αλλά είναι άσχετο με τους περισσότερους αναγνώστες. Το ενδιαφέρον είναι ότι ο καθένας μπορεί να επαληθεύσει τον κωδικό ένα "σπίτι", χωρίς να διαθέτει ένα τέτοιο μηχάνημα ή το λειτουργικό σύστημα. Όλα αυτά, βέβαια, εξακολουθεί να ισχύει γενικά, αλλά όταν κατεβαίνω σε λεπτομέρειες και υπάρχουν περιορισμοί των μηχανών και των λειτουργικών συστημάτων.
Ένα καλό κείμενο C, για εκείνους που είναι αρχάριοι, είναι ένα γενικό, με την έννοια ότι δεν έχει τη γλώσσα και την εφαρμογή της. Ποιος έχει τα βασικά για την γλώσσα C μπορεί να βελτιώσει - ή ειδικεύονται - ιδιαίτερα τις γνώσεις του σχετικά με τις εφαρμογές της C. Αν έχετε ποτέ δεν ανέπτυξε λογισμικό ποτέ και επιπλέον σε C, να αποφεύγουν, για παράδειγμα, την αγορά βιβλίων, όπως το Microsoft Γλώσσας C! Είναι προφανές ότι το κείμενο έχει σκοπό να παρέχει πληροφορίες σχετικά με την εξέλιξη του σπιτιού - Microsoft - και δεν σε C ίδια. Rimarrei ασφαλώς δεν εκπλήσσει το θέμα, "αλλά η C δεν έχει εφεύρει η Microsoft;". Οχι! Η Microsoft, στην πραγματικότητα, εφευρέθηκε λίγο, τουλάχιστον σε σύγκριση με τους προκατόχους του. Αλλά αυτό είναι μια άλλη ιστορία ...
Επιπλέον, πολλές άλλες γλώσσες που χρησιμοποιούνται σήμερα είναι, αλλά η ίδια η εξέλιξη της C, ή τουλάχιστον να προσφέρει μια βασική σύνταξη πολύ παρόμοια - αν δεν ταυτίζεται - με την Γ! Ε, λοιπόν, είναι η μητέρα πολλών νέων τεχνολογιών. Javascript, PHP, Actionscript, Java, και άλλων, αν και είναι πραγματικά αντικειμενοστρεφών γλωσσών, έχει την σύνταξη της C από τα 60!
ΓΛΏΣΣΕΣ OBJETCT Oriented
Ποια είναι αντικειμενοστραφή γλώσσα; Μπορεί να είναι δύσκολο να απαντηθεί αυτό το ερώτημα του γιατί η σύγχυση και παρανοήσεις είναι κοινές σε αυτόν τον τομέα. Ξεκινήστε με το άγχος ότι το αντικείμενο του προγραμματισμού είναι, πρώτα από όλα, μια φιλοσοφία. Ποιος αντικείμενο δεν αναπτύσσει μόνο το μεταγλωττιστή αλλαγές αλλά και πώς να αναλύσουμε το πρόβλημα. Στην αντικειμενοστραφή προγραμματισμό φιλοσοφία άλλαξε ριζικά και δεν υπάρχει πραγματική κύρια ροή όπως στο παραδοσιακό δομημένο προγραμματισμό. Ανάπτυξη αντικειμένου προσανατολισμένη προϊόντα (Visual Basic, C + +, Java, ...) δεν μπορεί να μπερδεύουν λίγο τα πράγματα για εκείνους που δεν έχουν γερά θεμέλια των παλαιών προγραμματισμού. Η C + +, για παράδειγμα, πρέπει να αντιμετωπιστεί μόνο από εκείνους που έχουν μια καλή προετοιμασία από C πρότυπο. Στο πλαίσιο του προγραμματισμού αντικειμένου, ακόμη και σε μεγαλύτερο βαθμό από το δομημένο, δεν εισάγεται τελειώσει το έργο, αλλά με επιτυχία, σε ένα πολύ συγκεκριμένο τρόπο.
Η συνολική εικόνα της εξέλιξης γλώσσες σταματά εδώ. Για περισσότερα μπορείτε να κάνετε ρητό αίτημα από επικοινωνία με τον συντάκτη. Η ανάπτυξη γλώσσες είναι διαθέσιμες σήμερα είναι ποικίλα και συχνά επιλέγονται σύμφωνα με ιδιαίτερες ανάγκες. Ένας προγραμματιστής, κατά συνέπεια, πρέπει να είναι σε θέση να αναπτυχθεί σε οποιαδήποτε γλώσσα, που εστιάζονται σε ένα ή περισσότερα απαραίτητα εργαλεία ανάπτυξης. Σήμερα, αυτό που λείπει σε κάποιο προγραμματιστές, είναι η έννοια του προγραμματισμού με την ουσία του. Γνωρίζοντας C είναι τελείως διαφορετικό από το να γνωρίζουμε πώς να το πρόγραμμα σε C!






















Αφήστε ένα σχόλιο