Μη Συνδεδεμενος Παρακαλώ συνδεθείτε ή εγγραφείτε

Επισκόπηση προηγούμενης Θ.Ενότητας Επισκόπηση επόμενης Θ.Ενότητας Πήγαινε κάτω  Μήνυμα [Σελίδα 1 από 1]

Δημοσίευση:1Τι είναι μεταγλωττιστής[compiler]; Empty Τι είναι μεταγλωττιστής[compiler]; Τετ Ιαν 22, 2014 1:56 pm



Argyris13

Argyris13
Admin
Τι είναι μεταγλωττιστής[compiler];

Μεταγλωττιστής ή μεταφραστής (στα αγγλικά compiler) ονομάζεται ένα πρόγραμμα που μετατρέπει/μεταφράζει κείμενο γραμμένο σε μια γλώσσα προγραμματισμού (πηγαία γλώσσα) σε μια άλλη γλώσσα προγραμματισμού (τη γλώσσα στόχο). Το κείμενο της εισόδου ονομάζεται πηγαίος κώδικας (source code) και η έξοδος του προγράμματος αντικειμενικός κώδικας (object code). Ο μεταγλωττιστής συνηθως χρησιμοποιείται για τη μετατροπή ενός προγράμματος (με τη μορφή αρχείων κειμένου που περιέχουν τον πηγαίο κώδικα) από μια γλώσσα υψηλού επιπέδου σε μια γλώσσα χαμηλότερου επιπέδου όπως π.χ. είναι η συμβολική γλώσσα ή η γλώσσα μηχανής. Οι μεταγλωττιστές συνήθως αποτελούνται από τα εξής στάδια: έναν προεπεξεργαστή που αναλαμβάνει να επεξεργαστεί κάποιες ειδικές εντολές ή άλλα χαρακτηριστικά του πηγαίου κώδικα, ώστε να είναι σε κατάλληλη μορφή για τη μεταγλώττιση ένα λεκτικό αναλυτή (lexer) που τεμαχίζει τον πηγαίο κώδικα σε λεκτικές μονάδες (tokens), ξεχωρίζοντας για παράδειγμα τις λέξεις-κλειδιά, τις εντολές της γλώσσας και τις τιμές του προγράμματος ένα συντακτικό αναλυτή (parser) που συνθέτει τις λεκτικές μονάδες με βάση τη σύνταξη της γλώσσας, ώστε να προκύψει μια αφηρημένη μορφή του προγράμματος (συντακτικό δέντρο), κατάλληλη για περαιτέρω επεξεργασία ένα ή περισσότερα στάδια μετατροπής και εφαρμογής βελτιστοποιήσεων (optimizations) και μετασχηματισμών (transformations) ένα τελικό στάδιο παραγωγής κώδικα στην τελική γλώσσα, όπως η γλώσσα μηχανής, η συμβολική γλώσσα, η C ή κώδικας για κάποια αφηρημένη μηχανή (abstract machine) όπως ο κώδικας byte (bytecode) Τα τμήματα του λεκτικού αναλυτή και του συντακτικού αναλυτή είναι καθιερωμένο να υλοποιούνται με ειδικά εργαλεία για αυτό το σκοπό, τις γεννήτριες λεκτικών και συντακτικών αναλυτών. Στις γεννήτριες της πρώτης κατηγορίας, όπως το Lex, ο προγραμματιστής του μεταγλωττιστή ορίζει τις λεκτικές μονάδες που μπορεί να συναντηθούν στον πηγαίο κώδικα (όπως οι δεσμευμένες λέξεις και τα αλφαριθμητικά) και η γεννήτρια αναλαμβάνει να παράγει το αντίστοιχο τμήμα του μεταγλωττιστή. Αντίστοιχα, στις γεννήτριες της δεύτερης κατηγορίας, όπως το Yacc, ο προγραμματιστής ορίζει τη γραμματική της πηγαίας γλώσσας σε μια κατάλληλη μορφή (όπως η μορφή Μπάκους-Νάουρ) και στη συνέχεια παράγεται ο συντακτικός αναλυτής που διαβάζει αυτή τη γραμματική.

[Πρέπει να είστε εγγεγραμμένοι και συνδεδεμένοι για να δείτε αυτόν το σύνδεσμο.]

https://greekdev.forumgreek.com

Επιστροφή στην κορυφή  Μήνυμα [Σελίδα 1 από 1]

« Προηγούμενο θέμα | Eπόμενο θέμα »

GreekDev

Μοιράσου το θέμα

URL Direct
BBcode
HTML
 » Τι είναι μεταγλωττιστής[compiler];

Παρόμοια θέματα

-

» Τι είναι το BBCode;

Δικαιώματα σας στην κατηγορία αυτή
Δεν μπορείτε να απαντήσετε στα Θέματα αυτής της Δ.Συζήτησης

 

Ελληνικά(GR) || GreekDev Copyright © 2014.Skin design by Administrator