Κεφ6 ερωτήσεις απαντήσεις

Page 1

6ο -1 ΚΕΦΑΛΑΙΟ 6ο: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 1. Ποια είναι τα στάδια αντιμετώπισης και επίλυσης προβλήματος με υπολογιστή; Α. ΚΑΤΑΝΟΗΣΗ Β. ΑΝΑΛΥΣΗ

Γ. ΕΠΙΛΥΣΗ -Α. ΚΑΤΑΝΟΗΣΗ: ο επακριβής προσδιορισμός των απαιτήσεων του προβλήματος. Η σωστή επίλυση ενός προβλήματος α) προϋποθέτει τον επακριβή προσδιορισμό των δεδομένων, που παρέχει το πρόβλημα. β) απαιτεί την λεπτομερειακή καταγραφή των ζητουμένων που αναμένονται σαν αποτελέσματα της επίλυσης του προβλήματος. -Β. ΑΝΑΛΥΣΗ: η διάσπαση του αρχικού προβλήματος σε άλλα επιμέρους απλούστερα προβλήματα. Η ανάλυση ενός προβλήματος περιλαμβάνει τα εξής 5 βήματα …. (βλέπε Κεφ. 4 ο) ………………………………………………………………………………………. -Γ. ΕΠΙΛΥΣΗ: υλοποίηση της λύσης του προβλήματος μέσω της λύσης των επιμέρους προβλημάτων. Η επίλυση περιλαμβάνει: 1. Την ανάπτυξη αλγορίθμου 2. Την διατύπωση του αλγορίθμου σε κατανοητή μορφή για τον υπολογιστή. 2. Τι είναι πρόγραμμα υπολογιστή; Ένα πρόγραμμα υπολογιστή είναι η σύνθεση: Α. ενός προσδιορισμένου με σαφήνεια συνόλου εντολών Β. Της περιγραφής των δεδομένων που συμμετέχουν. ΑΛΓΟΡΙΘΜΟΙ +ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ = ΠΡΟΓΡΑΜΜΑΤΑ Η ανάπτυξη ενός προγράμματος αποσκοπεί στην αναπαράσταση ενός αλγορίθμου σε μια μορφή κατανοητή από τον υπολογιστή, που δεν είναι άλλη από τη γλώσσα μηχανής. Η διαδικασία ανάπτυξης ενός προγράμματος ονομάζεται προγραμματισμός του Η/Υ. Από την αρχή της εμφάνισης των υπολογιστών γίνονται προσπάθειες μεθοδολογιών και τεχνικών προγραμματισμού, που θα εξασφάλιζαν τη δημιουργία απλών και κομψών προγραμμάτων. 3. Σε ποιες βασικές κατηγορίες κατατάσσονται οι γλώσσες προγραμματισμού; 1. Γλώσσες μηχανής 2. Συμβολικές γλώσσες ή γλώσσες χαμηλού επιπέδου; 3. Γλώσσες υψηλού επιπέδου 4. Γλώσσες 4ης γενιάς 4. Τι γνωρίζετε για τη γλώσσα μηχανής; Η γλώσσα μηχανής είναι μια γλώσσα προγραμματισμού, η οποία κατανοείται άμεσα από τον υπολογιστή. Περιλαμβάνει εντολές, που αποτελούνται από συγκεκριμένες ακολουθίες 0 και 1 και με τις οποίες επιτυγχάνεται η επικοινωνία του προγράμματος και του υπολογιστή. Οι εντολές της γλώσσας μηχανής ενεργοποιούν τον επεξεργαστή του Η/Υ με σκοπό αυτός να εκτελέσει στοιχειώδεις λειτουργίες.


6ο -2

Μειονέκτημα αποτελεί η αυξημένη πολυπλοκότητά της, καθώς και το γεγονός ότι ο προγραμματισμός στη γλώσσα μηχανής απαιτεί πολύ καλή γνώση του υλικού (Hardware) του Η/Υ. 5. Τι γνωρίζετε για τη συμβολική γλώσσα; Η συμβολική γλώσσα είναι μια γλώσσα προγραμματισμού χαμηλού επιπέδου, η οποία αποτελείται από περιορισμένο αριθμό στοιχειωδών εντολών υπολογισμών και επεξεργασίας δεδομένων, απλών κατά βάση. Ο προγραμματισμός σε συμβολική γλώσσα θεωρείται εξέλιξη σε σχέση με τον προγραμματισμό σε γλώσσα μηχανής. Μειονέκτημα αποτελεί το γεγονός ότι και η συμβολική γλώσσα είναι συνδεδεμένη με την αρχιτεκτονική του Η/Υ, όπως και η γλώσσα μηχανής. 6. Τι είναι συμβολομεταφραστής (assembler) ; Συμβολομεταφραστής είναι ένα ειδικό πρόγραμμα που αναλαμβάνει το έργο της μετάφρασης δηλαδή της μετατροπής των εντολών από τη συμβολική γλώσσα σε γλώσσα μηχανής. 7. Τι είναι γλώσσα προγραμματισμού υψηλού επιπέδου; Μια γλώσσα προγραμματισμού υψηλού επιπέδου είναι μια τεχνητή γλώσσα της οποίας οι εντολές και η σύνταξη είναι αυστηρά καθορισμένες και χρησιμοποιούνται για την ακριβή περιγραφή προγραμμάτων υπολογιστή. Οι εντολές των γλωσσών αυτών μοιάζουν με λέξεις της αγγλικής γλώσσας, αλλά δεν επικοινωνούν άμεσα με τον Η/Υ. Κάθε πρόγραμμα γραμμένο σε γλώσσα υψηλού επιπέδου χρειάζεται πρώτα να μετατραπεί σ’ ένα αντίστοιχο πρόγραμμα σε γλώσσα μηχανής με τη βοήθεια ενός ειδικού μεταφραστικού προγράμματος (τύπου μεταγλωττιστή ή τύπου διερμηνευτή). 8. Ποια είναι τα πλεονεκτήματα και ποια τα μειονεκτήματα των 3 βασικών κατηγοριών γλωσσών προγραμματισμού; Γλώσσα μηχανής: Πλεονεκτήματα • •

Ταχύτατη εκτέλεση εντολών Δεν απαιτείται μεταφραστικό πρόγραμμα

Μειονεκτήματα •

Η συγγραφή προγράμ/τος είναι ιδιαίτερα επίπονη και χρονοβόρα διαδικασία • Το πρόγραμμα τρέχει σε συγκεκριμένο τύπο Η/Υ.

Συμβολική γλώσσα • •

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

• •

• • •

Μειονεκτήματα Παρέμεινε η αντιστοιχία 1-1 με τις εντολές της γλώσσας μηχανής Απαιτείται χρήση μεταφραστικού προγράμματος, ώστε οι συμβολικές εντολές να μετατραπούν σε αντίστοιχες δυαδικές. Το ειδικό πρόγραμμα ονομάζεται συμβολομεταφραστής. Η συγγραφή του προγράμματος εξακολουθεί να είναι μια ιδιαίτερα επίπονη και χρονοβόρα διαδικασία Απαιτείται βαθιά γνώση της αρχιτεκτονικής του Η/Υ. Το πρόγραμμα τρέχει σε συγκεκριμένο τύπο Η/Υ.


6ο -3 Γλώσσα υψηλού επιπέδου Πλεονεκτήματα •

• • •

• •

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

Μειονεκτήματα •

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

Τελικά οι γλώσσες υψηλού επιπέδου ελάττωσαν σημαντικά το χρόνο και το κόστος παραγωγής νέων προγραμμάτων (δηλαδή απαιτούνται λιγότεροι προγραμματιστές προκειμένου σε λιγότερο χρόνο να αναπτύξουν πρόγραμμα, που θα χρησιμοποιηθεί σε περισσότερους υπολογιστές). 9. Τι γνωρίζετε για τις γλώσσες 4ης γενιάς; Οι γλώσσες αυτές είναι εφοδιασμένες με εργαλεία προγραμματισμού, που αποκρύπτουν πολλές λεπτομέρειες από τις τεχνικές και τις εντολές υλοποίησης των προγραμμάτων. Οι γλώσσες αυτές είναι κατάλληλες για να υποβληθούν ερωτήματα από τον χρήστη στον Η/Υ, τα οποία αφορούν συνήθως στη διαχείριση των πληροφοριών μιας βάσης δεδομένων. Παράδειγμα τέτοιας γλώσσας είναι η SQL (Query Language) 10. Ποιες είναι οι σημαντικότερες γλώσσες προγραμματισμού υψηλού επιπέδου που γνωρίζετε; FORTRAN (Fonnula Translation) - 1957 Κατάλληλη για επίλυση μαθηματικών και επιστημονικών προβλημάτων. COBOL (Common Business Oriented Language) - 1960 Κατάλληλη για ανάπτυξη εμπορικών και διαχειριστικών εφαρμογών. Χρησιμοποιείται ακόμα από πολλές επιχειρήσεις και την Δημόσια Διοίκηση. ALGOL (Algorithm Language) - 1960 Μια από τις σημαντικότερες γλώσσες, που είχε ελάχιστη πρακτική εφαρμογή, αλλά άσκησε επιρροή σε επόμενες γλώσσες. ΡL/1 (Programming Language / 1 ) - 1960 Προσπάθησε ανεπιτυχώς να καλύψει όλους τους τομείς προγραμματισμού για να αντικαταστήσει την FORTRAN και την COBOL. LISP (LISt Processor) - PROLOG (PROgramming LOGic) - 1965, 1970


6ο -4 Γλώσσες που χρησιμοποιούνται στον χώρο της Τεχνητής Νοημοσύνης (Έμπειρα Συστήματα, παιχνίδια, επεξεργασία φυσικών γλωσσών). BASIC (Beginner' s All Purpose Symbolic Instruction Code ) – 1964 Αρχικά αναπτύχθηκε για εκπαίδευση αρχαρίων. Τα προγράμματά της είναι σύντομα και εκτελούνται με τη βοήθεια διερμηνευτή (interpreter) ή μεταφραστή (compiler). Έγινε σύντομα η δημοφιλέστερη γλώσσα στους μικροϋπολογιστές. Η Microsoft την καθιέρωσε μέσα από τις εκδόσεις QuickBasic και Visual Basic σαν πρότυπο ανάπτυξης εφαρμογών σε PC. PASCAL - 1970 Βασίστηκε πάνω στην Algol. Είναι κατάλληλη για εκπαίδευση και για τη δημιουργία ισχυρών προγραμμάτων χρήσης. Υπηρετεί τις αρχές του δομημένου προγραμματισμού. Αποτέλεσε τη βάση για την ανάπτυξη ισχυρότερων γλωσσών όπως η ADA και η Modu1a-2. ADA – 1979 Γλώσσα γενικής χρήσης με έμφαση στην αξιοπιστία προγραμμάτων. Χρησιμοποιήθηκες σε στρατιωτικές εφαρμογές. C - αρχές ‘70 Αναπτύχθηκε από την εταιρία BELL. Χρησιμοποιήθηκε για τη δημιουργία του λειτουργικού συστήματος UNIX. Έχει κοινά χαρακτηριστικά με τη Pascal . Κατάλληλη για την ανάπτυξη δομημένων εφαρμογών και με δυνατότητες γλώσσας χαμηλού επιπέδου. Ήταν η αφετηρία ώστε τη δεκαετία του ΄80 για την ανάπτυξη της γλώσσας C++, που είναι γλώσσα αντικειμενοστραφούς Προγραμματισμού. JAVA – 1994 Είναι αντικειμενοστραφής γλώσσα. Αναπτύχθηκε από την εταιρία SUN. Είναι κατάλληλη για εφαρμογές που εκτελούνται σε Κατανεμημένα Περιβάλλοντα (δηλαδή σε διαφορετικούς υπολογιστές που συνδέονται στο Διαδίκτυο και έχουν διαφορετικά λειτουργικά συστήματα). ΓΛΩΣΣΕΣ ΓΡΑΦΙΚΩΝ ΠΕΡΙΒΑΛΛΟΝΤΩΝ Εκμεταλλεύονται τη γραφική επικοινωνία μεταξύ χρήστη και υπολογιστή. Υλοποιούν τις έννοιες του Οπτικού Προγραμματισμού (δηλαδή ολόκληρη η εφαρμογή δημιουργείται με γραφική υποστήριξη (π.χ. menu, πλαίσια διαλόγου). Υλοποιούν τις έννοιες του object driven programming (δηλαδή ενεργοποίηση πρoγραμμάτων από εκτέλεση ενός γεγονότος π .χ. κλικ ποντικιού ). Τέτοιες γλώσσες είναι οι VisualBasic, η Visua1C, η Java κλπ.


6ο -5 11. Τι γνωρίζετε για τις βασικές ταξινομήσεις των γλωσσών προγραμματισμού υψηλού επιπέδου; ΟΝΟΜΑ ΓΛΩΣΣΑΣ

Fortran Cobol Algol PL/1 Prolog Lisp Parsal Basic C, C++ Java SQL Autocad

ΤΟΜΕΑΣ ΧΡΗΣΗΣ

Επιστημονικός Εμπορικός Γενικής Χρήσης Γενικής Χρήσης Τεχνητής Νοημοσύνης Τεχνητής Νοημοσύνης Γενικής Χρήσης, Εκπαιδευτικός Γενικής Χρήσης, Εκπαιδευτικός Προγραμματισμού συστημάτων Γενικής Χρήσης Προγραμματισμού Διαδικτύου Ερωταπαντήσεων Ειδικής Χρήσης (Γραφικά , Αρχ.)

ΕΙΔΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Διαδικασιακή Διαδικασιακή Διαδικασιακή Διαδικασι Διαδικασιακή ακός Μη Διαδικασιακή Συναρτησιακή Διαδικασιακή Διαδικασιακή Διαδικασιακή Διαδικασιακή, αντικειμενοσταφής Διαδικασιακή, αντικειμενοσταφής Διαδικασιακή Αντικειμενοσταφής

12. Ποια είναι η καλύτερη γλώσσα προγραμματισμού και πως γίνεται η επιλογή της για την ανάπτυξη μιας εφαρμογής; Δεν υπάρχει γλώσσα που να είναι αντικειμενικά καλύτερη από τις άλλες, αλλά καταλληλότερη ανάλογα με το είδος της εφαρμογής. Η επιλογή της γλώσσας προγραμματισμού γίνεται με βάση : 1. Το είδος εφαρμογής 2. Το υπολογιστικό περιβάλλον στο οποίο θα «τρέξει» 3. Το Διαθέσιμο Προγραμματιστικό περιβάλλον ή τη διαθέσιμη γλώσσα 4. Τις γνώσεις και την εμπειρία του προγραμματιστή. 13. Ποια είναι τα χαρακτηριστικά μιας γλώσσας προγραμματισμού • •

Το αλφάβητο, το λεξιλόγιο, τα

η γραμματική και

τη σημασιολογία.

ΑΛΦΑΒΗΤΟ Είναι το σύνολο των στοιχείων που χρησιμοποιεί η γλώσσα. Παράδειγμα: Μια γλώσσα περιέχει 52 γράμματα (πεζά και κεφαλαία), 10 ψηφία από 0 έως 9 και τα σημεία στίξης. ΛΕΞΙΛΟΓΙΟ Είναι το υποσύνολο όλων των ακολουθιών που δημιουργούνται από τα στοιχεία του αλφαβήτου που είναι δεκτές από τη γλώσσα. Παράδειγμα: Οι λέξεις ΟΣΟ, ΓΙΑ, ΔΙΑΒΑΣΕ κλπ είναι δεκτές από τη γλώσσα, ενώ οι λέξεις ΔΙΑΒΒΑΣΕ, ΟΣΣΟ δεν αναγνωρίζονται ως έγκυρες.


6ο -6 ΓΡΑΜΜΑΤΙΚΗ Αποτελείται από δύο μέρη, το τυπικό και το συντακτικό : • Τυπικό είναι το σύνολο των κανόνων που ορίζουν αν μια λέξη είναι ορθογραφικά αποδεκτή. Παράδειγμα: Η λέξη ΓΡΑΨΕ είναι δεκτή, ενώ η ΓΡΑΠΣΕ δεν είναι). • Συντακτικό είναι το σύνολο των κανόνων που ορίζει τη νομιμότητα της σύνδεσης και διάταξης των λέξεων για τη δημιουργία προτάσεων. Αφορά δηλαδή στην ορθή σύνταξη των εντολών). Παράδειγμα: Η εντολή ΑΝ (Χ = 0) ΤΟΤΕ είναι σωστή, ενώ η ΑΝ (Χ = 0) ΕΠΑΝΕΛΑΒΕ είναι λάθος. ΣΗΜΑΣΙΟΛΟΓΙΑ Είναι το σύνολο των κανόνων που καθορίζει το νόημα των λέξεων, εκφράσεων και προτάσεων σε μια γλώσσα. Είναι δηλαδή η εσωτερική σημασία των εντολών. Παράδειγμα: Η σημασιολογία της εντολής ΓΡΑΨΕ Χ θα προκαλέσει την εμφάνιση της τιμής της Χ στην οθόνη. 14. Ποιες είναι οι βασικές διαφορές φυσικών και τεχνητών γλωσσών; Οι φυσικές Γλώσσες είναι αυτές που χρησιμοποιούν οι άνθρωποι για να επικοινωνήσουν μεταξύ τους. Χαρακτηριστικό τους είναι ότι εξελίσσονται συνεχώς αφού συνέχεια νέες λέξεις δημιουργούνται και οι κανόνες γραμματικής και σύνταξης αλλάζουν. Οι τεχνητές Γλώσσες, όπως είναι οι γλώσσες Προγραμματισμού, χρησιμοποιούνται για να επικοινωνεί ο άνθρωπος με τη μηχανή. Αυτές χαρακτηρίζονται από στασιμότητα, αφού κατασκευάζονται συνειδητά για συγκεκριμένο λόγο. Οι αλλαγές που δέχονται είναι συνήθως σε επίπεδο διαλέκτου (GW Basic, Quick Basic, Visual Basic). 15. Τι είναι ιεραρχική σχεδίαση (Top down design); Είναι μια τεχνική σχεδίασης προγραμμάτων κατά την οποία το πρόβλημα αναλύεται σε μια σειρά από απλούστερα υποπροβλήματα των οποίων η λύση ή εύκολη ή προφανής. 16. Τι είναι τμηματικός προγραμματισμός; Τμηματικός Προγραμματισμός λέγεται η τεχνική σχεδίασης και ανάπτυξης προγραμμάτων ως σύνολο από απλούστερα τμήματα προγραμμάτων. Τα προγράμματα αυτά συνδέονται στη συνέχεια μεταξύ τους, μεταφέροντας δεδομένα και αντλώντας αποτελέσματα το ένα από το άλλο, προκειμένου να οδηγήσουν στη λύση του αρχικού σύνθετου προβλήματος. 17. Τι είναι δομημένος προγραμματισμός; Δομημένος προγραμματισμός είναι μια μεθοδολογία σύνταξης και ανάπτυξης προγραμμάτων, βασίζεται στην μελέτη του καθηγητή Edsger Dijkstra (1968) με τίτλο "GO TO Statement Considered Harmful = Η εντολή GO TO θεωρείται βλαβερή", και σκοπό έχει: 1. 2. 3. 4.

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


6ο -7 18. Ποια τα χαρακτηριστικά του δομημένου προγραμματισμού;

Α) Ο δομημένος προγραμματισμός στηρίζεται στη χρήση 3 στοιχειωδών λογικών δομών: 1)Ακολουθία 2)Επιλογή και 3)Επανάληψη. Β) Όλα τα προγράμματα γράφονται χρησιμοποιώντας αυτές τις δομές ή και συνδυασμό τους. Γ)Ο δομημένος προγραμματισμός ως τεχνική εμπεριέχει τις λογικές του ιεραρχικού και του τμηματικού προγραμματισμού και κάθε ενότητα ή τμήμα του έχει 1 είσοδο και 1 έξοδο. Δ) Αποφεύγει τη χρήση της από παλιά γνωστής εντολής GOTO. 19. Ποια τα πλεονεκτήματα του δομημένου προγραμματισμού;

1. Δημιουργία απλών προγραμμάτων 2. Άμεση μεταφορά των αλγορίθμων σε προγράμματα 3. Διευκόλυνση της ανάλυσης του προγράμματος κατά τμήματα ανεξάρτητα μεταξύ τους 4. Διευκόλυνση στην ανάγνωση του προγράμματος από τρίτους 5. Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος 6. Ευκολότερη διόρθωση και συντήρηση του προγράμματος. 20. Τι γνωρίζετε για τον αντικειμενοστραφή προγραμματισμό;

Αποτελεί ένα είδος προγραμματισμού που ασχολείται περισσότερο με δεδομένα – αντικείμενα και λιγότερο με την επεξεργασία που πρέπει να υποστούν. Δηλαδή το βασικό δομικό στοιχείο του αντικειμενοστραφούς προγραμματισμού είναι το δεδομένο που μαζί με τις αποδεκτές ενέργειες, που μπορούν να γίνουν σ’ αυτό θεωρείται ως ένα ενιαίο αντικείμενο. Η αντικειμενοστραφής σχεδίαση εκλαμβάνει ως πρωτεύοντα δομικά στοιχεία του προγράμματος τα αντικείμενα (=μορφοποιημένα δεδομένα), που είναι περισσότερο ευέλικτα και επαναχρησιμοποιήσιμα. Ο αντικειμενοστραφής προγραμματισμός χρησιμοποιεί την ιεραρχική σχεδίαση, τον τμηματικό προγραμματισμό και ακολουθεί τις αρχές του δομημένου προγραμματισμού. 21. Τι γνωρίζετε για τον οπτικό προγραμματισμό;

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

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


6ο -8

23. Τι γνωρίζετε για τον παράλληλο προγραμματισμό;

Είναι ο προγραμματισμός που υλοποιείται σε υπολογιστές με 2 τουλάχιστον επεξεργαστές. Οι επεξεργαστές αυτοί μοιράζονται την ίδια μνήμη και λειτουργούν παράλληλα. Τα προγράμματα που δημιουργούνται είναι διαρθρωμένα σε τμήματα εντολών, που μπορούν να εκτελεστούν ταυτόχρονα με την χρήση ενός επεξεργαστή για κάθε τμήμα εντολών. Για τον σκοπό αυτό έχουν αναπτυχθεί και ειδικές γλώσσες προγραμματισμού (π.χ. OCCAM) Πλεονέκτημα του παράλληλου προγραμματισμού είναι η επίτευξη μεγάλης ταχύτητας. 24. Πως επιτυγχάνεται η μετατροπή ενός προγράμματος, που είναι γραμμένο σε γλώσσα προγραμματισμού υψηλού επιπέδου σε μορφή αναγνωρίσιμη και εκτελέσιμη από τον Η/Υ;

Η μετατροπή επιτυγχάνεται με τη χρήση ειδικών μεταφραστικών προγραμμάτων όπως είναι: Α)οι μεταγλωττιστές και Β)οι διερμηνευτές 25. Τι είναι μεταγλωττιστής;

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

Διερμηνευτής είναι το μεταφραστικό πρόγραμμα που δέχεται ως είσοδο ένα πρόγραμμα γλώσσας υψηλού επιπέδου και διαβάζει μια προς μια τις εντολές του αρχικού προγράμματος (πηγαίου) και στη περίπτωση που η εντολή είναι σωστή συντακτικά εκτελεί αμέσως μια ισοδύναμη ακολουθία εντολών μηχανής. Στην περίπτωση που η εντολή είναι λανθασμένη εμφανίζει μήνυμα «ΛΑΘΟΥΣ» και όταν ο προγραμματιστής τη διορθώσει εκτελεί μια ισοδύναμη ακολουθία εντολών γλώσσας μηχανής. Η λειτουργία του διερμηνευτή μοιάζει με αυτή του διερμηνέα, που μεταφράζει επί τόπου κάθε πρόταση. 27. Τι είναι συντάκτης;

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

Πηγαίο (Source program) = το αρχικό πρόγραμμα, που γράφει ο προγραμματιστής σε γλώσσα προγραμματισμού υψηλού επιπέδου.


6ο -9 Αντικείμενο (Object program) = το πρόγραμμα που έχει παραχθεί μετά τη διαδικασία της μεταγλώττισης, είναι σε μορφή γλώσσας μηχανής, αλλά δεν είναι εκτελέσιμο. Εκτελέσιμο (Executable program) = το πρόγραμμα που είναι σε γλώσσα μηχανής και είναι έτοιμο πια να εκτελεστεί. Έχει προκύψει από το αντικείμενο πρόγραμμα και μετά τη σύνδεσή του με διάφορα προγράμματα από τις βιβλιοθήκες της γλώσσας προγραμματισμού. Τη σύνδεση έκανε ειδικό πρόγραμμα που λέγεται συνδέτηςφορτωτής. 29. Τι είναι συνδέτης-φορτωτής;

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

Στις βιβλιοθήκες της γλώσσας προγραμματισμού βρίσκονται αποθηκευμένα τμήματα προγραμμάτων ή προγράμματα, που συνδέονται με το αντικείμενο πρόγραμμα, προκειμένου αυτό να γίνει εκτελέσιμο. 31. Ποια η διαδικασία μεταγλώττισης και σύνδεσης προγράμματος; ΣΥΝΔΕΤΗΣΣΥΝΔΕΤΗΣΦΟΡΤΩΤΗΣ

ΜΕΤΑΓΛΩΤΤΙΣΤΗ Σ

ΣΥΝΤΑΚΤΗ Σ

Λ Α Θ Η ; ΠΗΓΑΙΟ ΠΡΟΓΡΑΜΜ Α

Ν ΑΙ

Ο ΧΙ

ΑΝΤΙΚΕΙΜΕΝ ΟΠΡΟΓΡΑΜΜ Α

ΕΚΤΕΛΕΣΙΜΟ ΠΡΟΓΡΑΜΜΑ

ΔΙΟΡΘΩΣΗ ΛΑΘΩΝ

ΕΙΔΙΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΑΠΌ ΒΙΒΛΙΟΘΗΚΕΣ

32. Ποια τα στάδια μετάφρασης προγράμματος με τη χρήση διερμηνευτή;

Οι εντολές του προγράμματος που έχει αναπτυχθεί με γλώσσα ΥΨΗΛΟΎ ΕΠΙΠΈΔΟΥ διαβάζεται μία-μία από τον διερμηνευτή. Κάθε εντολή ελέγχεται από τον διερμηνευτή και αν είναι απαλλαγμένη από συντακτικά λάθη εκτελείται αμέσως μια ισοδύναμη ακολουθία εντολών γλώσσας μηχανής.


6ο -10 Στην περίπτωση που η εντολή δεν είναι ορθή ο διερμηνευτής εμφανίζει μήνυμα λάθους και ο προγραμματιστής θα πρέπει να τη διορθώσει και να ζητήσει επανεκτέλεση του προγράμματος.

33. Ποια προγράμματα απαιτούνται για τη συγγραφή, τη μετάφραση και την εκτέλεση ενός προγράμματος;

Απαιτούνται 2 προγράμματα: 1)ο συντάκτης για τη συγγραφή του προγράμματος και 2)το μεταφραστικό πρόγραμμα (μεταγλωττιστής ή διερμηνευτής). Στην περίπτωση που χρησιμοποιείται μεταγλωττιστής απαιτείται επίσης και ο συνδέτης-φορτωτής, που παράγει ένα ακόμη πρόγραμμα, το τελικό, αφού συνδέσει το αντικείμενο πρόγραμμα με απαραίτητα προγράμματα από τις βιβλιοθήκες της γλώσσας. Το τελικό πρόγραμμα λέγεται εκτελέσιμο (executable). Στα σύγχρονα προγραμματιστικά περιβάλλοντα όλα τα παραπάνω προγράμματα παρέχονται σαν μια ολοκληρωμένη ενότητα. 34. Να περιγράψετε με διάγραμμα ροής τη διαδικασίας μεταγλώττισης προγράμματος

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


6ο -11

Σήμερα σε πολλά προγραμματιστικά περιβάλλοντα υπάρχουν μεικτές υλοποιήσεις


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.