Παράλληλη Αναζήτηση

Αναζήτηση

Βρες
Εμφάνιση

Διεθνή :: Ανεπτυγμένη είδηση-λόγος

( "τι θα κάνετε, κ. υπουργοί για την έλλειψη υποδομών;" :: 8/2/2006 21:34:06) 

"Τι θα κάνετε, κ. υπουργοί για την έλλειψη υποδομών;"

7.3.8 Μεταφραστές

Ερώτηση του βουλευτή Δ. Γαλαμάτη για την αντιμετώπιση της ραγδαίας αύξηση του πληθυσμού γύρω από τη Θεσσαλονίκη

Όπως ήδη αναφέραμε, η ΚΜΕ αναγνωρίζει και εκτελεί εντολές σε γλώσσα μηχανής.

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

Το ερώτημα λοιπόν είναι: πώς τα προγράμματα, που είναι γραμμένα σε οποιαδήποτε άλλη μορφή εκτός της γλώσσας μηχανής, εκτελούνται από την ΚΜΕ του υπολογιστή;

"Στους δήμους και τις κοινότητες περιφερειακά της Θεσσαλονίκης, ο πληθυσμός τους από 204.834 κατοίκους στην απογραφή του 1991 έφτασε στους 308.045 στην απογραφή του 2001, ενώ σήμερα τα ανεπίσημα στοιχεία των υπηρεσιών τους αναφέρουν πληθυσμό περίπου 517.500 κατοίκων", αναφέρει ο κ. Γαλαμάτης.

Θα πρέπει τα προγράμματα που είναι γραμμένα σε κάποια γλώσσα υψηλού επιπέδου να "μεταφραστούν" σε γλώσσα μηχανής.

Ο βουλευτής σημειώνει ακόμη ότι η ολοκλήρωση της κατασκευής της Εγνατίας οδού εκτιμάται ότι θα δημιουργήσει ένα νέο ρεύμα επιλογής μόνιμης κατοικίας σε περιοχές που μέχρι σήμερα η απόστασή τους από τη Θεσσαλονίκη και η κατάσταση των οδικών δικτύων δεν το επέτρεπε (π.χ. δήμος Λαγκαδά, δήμος Εγνατίας, δήμος Ρεντίνας, δήμος Αγίου Γεωργίου κτλ.).

Το ρόλο αυτό τον αναλαμβάνουν ειδικά προγράμματα.

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

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

Τα ερωτήματα που απευθύνονται στους υπουργούς Εσωτερικών, Δημόσιας Διοίκησης και Αποκέντρωσης, Περιβάλλοντος, Χωροταξίας και Δημοσίων έργων, Εθνικής Παιδείας και Θρησκευμάτων και Υγείας και Κοινωνικής Αλληλεγγύης είναι:

Συμβολομεταφραστές

Tι μέτρα έχουν πάρει και τι σκοπεύουν να πάρουν στο μέλλον, προκειμένου να καλυφθούν οι τεράστιες αυτές ανάγκες.

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

Μεταγλωτιστές - Διερμηνευτές

Υπάρχουν δύο τρόποι για την εκτέλεση από τον υπολογιστή προγραμμάτων που είναι γραμμένα σε γλώσσες υψηλού επιπέδου: - με τη χρήση μεταγλωττιστή (compiler) - με τη χρήση διερμηνευτή (interpreter).

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

- Γραφή του προγράμματος σε γλώσσα υψηλού επιπέδου -π.χ. PASCAL- με τη βοήθεια ενός συντάκτη κειμένων (editor). Αυτό είναι το πηγαίο πρόγραμμα (source code, source program). - Το πηγαίο αυτό πρόγραμμα μεταγλωττίζεται, από το μεταγλωττιστή της συγκεκριμένης γλώσσας, σε γλώσσα μηχανής. Αυτό είναι το αντικείμενο (object) πρόγραμμα. Κατά τη διαδικασία της μεταγλώττισης, το πρόγραμμα ελέγχεται για συντακτικά λάθη, δηλαδή κατά πόσο το πηγαίο πρόγραμμα είναι γραμμένο σύμφωνα με τους συντακτικούς κανόνες τις γλώσσας. Για να ολοκληρωθεί η μεταγλώττιση το πρόγραμμα πρέπει να είναι συντακτικά σωστό, διαφορετικά η διαδικασία της μεταγλώττισης διακόπτεται. - Το αντικείμενο πρόγραμμα, παρ’ όλο που είναι σε γλώσσα μηχανής, δεν μπορεί να εκτελεστεί από την ΚΜΕ, γιατί δεν είναι αυτόνομο. Συνήθως του λείπει κάποιος κώδικας κοινής χρήσης, που βρίσκεται σε βιβλιοθήκες αντικειμένων προγραμμάτων. Όταν λέμε κώδικα κοινής χρήσης, συνήθως εννοούμε κώδικα που διαχειρίζεται τις λειτουργίες εισόδου εξόδου ή κώδικα που αφορά μαθηματικές συναρτήσεις (sin, cos, κλπ.). Τη σύνδεση του αντικειμένου προγράμματος με τα απαραίτητα προγράμματα από τις βιβλιοθήκες αναλαμβάνει ο συνδέτης (linker), ο οποίος παράγει και το αυτόνομο εκτελέσιμο πρόγραμμα. Αυτό το τελευταίο είναι που εκτελείται από την ΚΜΕ.

Προγραμματισμός υπολογιστή Στο περιβάλλον του ΜS-DOS και των MS-Windows τα εκτελέσιμα προγράμματα διακρίνονται από την επέκταση com ή exe στο όνομα του αρχείου.

Τα βήματα δηλαδή είναι: - Συγγραφή - Μεταγλώττιση - Σύνδεση - Εκτέλεση.

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

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

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