ΔΙΑΦΟΡΕΣ ΜΕΤΑΓΛΩΤΤΙΣΤΗ ΔΙΕΡΜΗΝΕΥΤΗ

Ξεκίνησε από landreou, 08 Φεβ 2013, 11:21:07 ΠΜ

« προηγούμενο - επόμενο »

landreou

Γειά σας φίλοι του Στπ.
Θα ήθελα να σας ρωτήσω για το ποιες είναι οι διαφορες μεταγλωττιστή διερμηνευτή συμφωνα με αυτά που λέει το σχολικό βιβλίο .
Στις σημειώσεις που δίνει ο φίλος stavrax λέει
39.Ομοιότητες – Διαφορές  διερμηνευτή-μεταγλωττιστή
Ομοιότητες:
•Και οι δύο μεταφράζουν το πηγαίο πρόγραμμα (υψηλού επιπέδου) σε γλώσσα μηχανής.
•Και οι δύο ανιχνεύουν τα συντακτικά λάθη.
Διαφορές:
•Ο μεταγλωττιστής μεταγλωττίζει όλο το πρόγραμμα και με την βοήθεια του συνδέτη – φορτωτή παράγεται το εκτελέσιμο.
•Ο διερμηνευτής  εκτελεί μία μία τις εντολές και δεν χρειάζεται συνδέτη-φορτωτή

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


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

Σας ευχαριστώ πολυ .

nikolasmer

Νομίζω πως η απάντηση στην ερώτηση φίλε μου  landreou είναι η εξής:
Ο μεταγλωττιστής παίρνει ολόκληρο το πηγαίο πρόγραμμα και το μεταγλωττίζει παράγοντας πρόγραμμα σε γλώσσα μηχανής ισοδύναμο με το πηγαίο το οποίο και εκτελείται στη συνέχεια.
Ενώ ο Διερμηνευτής "τσιμπάει" μια μια τις εντολές του πηγαίου προγράμματος. Αυτή τη μια κάθε φορά τη μετατρέπει σε ισοδύναμη σε γλώσσα μηχανής και στη συνέχεια την εκτελεί. έπειτα ξαναεπιστρέφει στο πηγαίο για την επόμενη κλπ κλπ.  Άρα στο Διερμηνευτή είναι απαραίτητη η παρουσία του πηγαίου σε όλη τη διαδικασία.

Νομίζω πως αυτό συμβαίνει.
Μερεντίτης Νικόλαος
Πληροφορικός

Νίκος Αδαμόπουλος

Παράθεση από: landreou στις 08 Φεβ 2013, 11:21:07 ΠΜ
•Η εκτέλεση ενός προγράμματος με τον διερμηνευτή είναι πιο αργή, γιατί για να εκτελεστεί το πρόγραμμα, πρέπει κάθε φορά να ξαναγίνεται η διερμηνεία από την αρχή, ενώ ο μεταγλωττιστής παράγει μια φορά το αντικείμενο πρόγραμμα και δεν χρειάζεται ξανά μεταγλώττιση αφού είναι σχεδόν εκτελέσιμο (θυμήσου τον συνδέτη)
Για να εκτελεστεί ένα προγράμμα με τον διερμηνευτή είναι απαραίτητη η παρουσία του πηγαίου προγράμματος ενώ με τον μεταγλωττιστή μόνο την πρώτη φορά.


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

Η 1η διαφορά έχει να κάνει με την ταχύτητα εκτέλεσης.
Η 2η διαφορά έχει να κάνει με την αναγκαιότητα παρουσίας του πηγαίου κώδικα στον υπολογιστή του χρήστη. Δηλαδή θα πρέπει ο κώδικας να είναι φανερός στα μάτια του ίδιου του χρήστη...

Θα έλεγα, ως επιπλέον διαφορά: ότι με τον διερμηνευτή είναι αναγκαία η παρουσία/εγκατάστασή του στον υπολογιστή του χρήστη. Με τον μεταγλωττιστή δεν υπάρχει τέτοια απαίτηση αφού αρκεί να βρίσκεται μόνο στον υπολογιστή του προγραμματιστή.