Διδακτικά Βιβλία του Παιδαγωγικού Ινστιτούτου

Αναζήτηση

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

6.2.3 Γλώσσες υψηλού επιπέδου

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

Το 1957 η IBM ανάπτυξε την πρώτη γλώσσα υψηλού επιπέδου τη FORTRAN. Το όνομα FORTRAN προέρχεται από τις λέξεις FORmula TRANslation, που σημαίνουν μετάφραση τύπων. Η FORTRAN αναπτύχθηκε ως γλώσσα κατάλληλη για την επίλυση μαθηματικών και επιστημονικών προβλημάτων. Το πρόγραμμα που γράφεται σε FORTRAN ή σε οποιαδήποτε άλλη γλώσσα υψηλού επιπέδου, μεταφράζεται από τον ίδιο τον υπολογιστή στις ακολουθίες των εντολών της μηχανής με τη βοήθεια ενός ειδικού προγράμματος, που ονομάζεται μεταγλωττιστής. Το ίδιο πρόγραμμα FORTRAN μπορεί να εκτελεστεί σε οποιοδήποτε άλλο υπολογιστή, αρκεί να υπάρχει ο αντίστοιχος μεταγλωττιστής για τον υπολογιστή αυτό. Η γλώσσα FORTRAN μετά από πολλές αλλαγές, προσθήκες και βελτιώσεις χρησιμοποιείται ακόμη και σήμερα για επιστημονικές εφαρμογές.

C PROGRAM EQUATION READ(*,1) A,B 1 FORMAT(F5.1) IF (A.EQ.0) GO TO 20 X=(-1.)*B/A WRITE(*,2) X 2 FORMAT(`X=',F10.2) GO TO 50 20 IF (B.EQ.0) WRITE(*,3) IF (B.NE.0) WRITE(*,4) 3 FORMAT(`ΑΟΡΙΣΤΗ') 4 FORMAT(`ΑΔΥΝΑΤΗ') 50 STOP END Σχ. 6.2. Η γλώσσα FORTRAN υπήρξε η πρώτη γλώσσα προγραμματισμού υψηλού επιπέδου. Πρόκειται για γλώσσα κατάλληλη για υπολογισμούς, ενώ υστερεί στη διαχείριση αρχείων δεδομένων και γενικότερα αλφαριθμητικών πληροφοριών. Γνώρισε πολλές βελτιώσεις με κυριότερους σταθμούς τις εκδόσεις 4, 77, 90/95 και Visual FORTRAN. Το πρόγραμμα του παραδείγματος επιλύει την εξίσωση α' βαθμού.

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

Το 1960 αναπτύχθηκε μία άλλη γλώσσα, σταθμός στον προγραμματισμό η γλώσσα COBOL. Η COBOL όπως δηλώνει και το όνομα της (CΟm mon Business Oriented Language -Κοινή γλώσσα προσανατολισμένη στις επιχειρήσεις) είναι κατάλληλη για ανάπτυξη εμπορικών εφαρμογών, και γενικότερα διαχειριστικών εφαρμογών, τομέας όπου η FORTRAN υστερούσε. Η COBOL καθιερώθηκε ως πρότυπο και χρησιμοποιήθηκε από πολλές επιχειρήσεις καθώς και από όλη τη δημόσια διοίκηση. Η γλώσσα γνώρισε πολλές εκδόσεις και πάρα πολλές εφαρμογές βρίσκονται σε χρήση ακόμη και σήμερα.

Μια από τις σημαντικότερες γλώσσα προγραμματισμού με ελάχιστη πρακτική εφαρμογή αλλά που επηρέασε ιδιαίτερα τον προγραμματισμό και τις επόμενες γλώσσες, είναι η ALGOL (ALGOrithmic Language ­ Αλγοριθμική γλώσσα). Αναπτύχθηκε από Ευρωπαίους επιστήμονες, αρχικά το 1960, με σκοπό τη δημιουργία γενικής φύσης προγραμμάτων που να μη συνδέονται με συγκεκριμένες εφαρμογές.

IDENTIFICATION DIVISION. PROGRAM-ID. EQUATION. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-PC. OBJECT-COMPUTER. IBM-PC. SPECIAL-NAMES. DECIMAL-POINT IS COMMA. DATA DIVISION. WORKING-STORAGE SECTION. 77 XPIC S9(6)V9. 77 APIC S9(6). 77 BPIC S9(6). 77 W-X PIC -(6),-. PROCEDURE DIVISION. ARXH. DISPLAY ` ΔΩΣΕ Α'. ACCEPT A. DISPLAY ` ΔΩΣΕ Β'. ACCEPT B. DISPLAY ` `. IF A = 0 GO TO ROYT-1. COMPUTE X = B * (- 1) / A. MOVE X TO W-X. DISPLAY ` H ΛΥΣΗ ΕΙΝΑΙ : ` W-X. STOP RUN. ROYT-1. IF B = 0 DISPLAY ` ΑΟΡΙΣΤΗ' ELSE DISPLAY ` ΑΔΥΝΑΤΗ'. STOP RUN. Σχ. 6.3. Η γλώσσα COBOL δημιουργήθηκε από την Grace Marray Hopper αξιωματικό του πολεμικού ναυτικού των ΗΠΑ το 1960. Η COBOL έκανε δυνατή την αξιοποίηση των υπολογιστών από τις επιχειρήσεις και τους οργανισμούς παρέχοντας ισχυρότατες δυνατότητες διαχείρισης αρχείων δεδομένων. Ένα πρόγραμμα COBOL διαθέτει τέσσερις υποδιαιρέσεις (divisions). Η γλώσσα χρησιμοποιεί περιγραφικό τρόπο για τη σύνταξη των εντολών με χρήση ρημάτων της αγγλικής γλώσσας, όπως ADD, MULTIPLY, MOVE κ.λπ. με αποτέλεσμα τη δημιουργία γενικά μακροσκελών προγραμμάτων. - Κάθε εντολή της γλώσσας τερματίζεται με τελεία. Το πρόγραμμα του παραδείγματος επιλύει την εξίσωση α' βαθμού. 10 REM ΕΠΙΛΥΣΗ ΕΞΙΣΩΣΗΣ Α ΒΑΘΜΟΥ 20 INPUT "A=",A 30 INPUT "B=",B 40 IF A=0 THEN 100 50 X=-B/A 60 PRINT "X=";X 70 END 100 IF B=0 THEN PRINT "ΑΟΡΙΣΤΗ" ELSE PRINT "ΑΔΥΝΑΤΗ" 110 END Σχ. 6.4. Η γλώσσα BASIC δημιουργήθηκε το 1964 στο Dartmouth College από τους καθηγητές Kemeny και Kurtz. Στόχος των δημιουργών της ήταν η υλοποίηση μιας απλής γλώσσας προγραμματισμού για εκπαιδευτικούς σκοπούς. Η BASIC γνώρισε εκπληκτική διάδοση με την εμφάνιση των μικροϋπολογιστών (1975). Ο πρώτος διερμηνευτής της γλώσσας σε 8Κ ROM ήταν έργο των Bill Gates και Paul Allen. Ας σημειωθεί ότι, η εταιρία Microsoft ιδρύθηκε από τον Bill Gates για την εμπορική εκμετάλλευση αυτού του διερμηνευτή. Η έκδοση GWBASIC παρουσιάζεται το 1981 με τον IBM PC. Κύριο χαρακτηριστικό της γλώσσας είναι η ύπαρξη αριθμών των γραμμών του προγράμματος, οι οποίοι χρησιμοποιούνται και ως θέσεις προορισμού εντολών διακλάδωσης. Εξέλιξη της γλώσσας είναι οι εκδόσεις QuickBASIC και Visual BASIC. Το πρόγραμμα του παραδείγματος επιλύει την εξίσωση α' βαθμού.

Στα μέσα της δεκαετίας του 60 αναπτύχθηκε η γλώσσα PL/1 (Programming Language/1 ­ Γλώσσα Προγραμματισμού υπ΄ αριθμόν 1) που προσπάθησε, χωρίς επιτυχία να καλύψει όλους τους τομείς του προγραμματισμού, επιστημονικούς και εμπορικούς, αντικαθιστώντας τόσο τη FORTRAN όσο και την COBOL . Στο χώρο της Τεχνητής Νοημοσύνης αναπτύχθηκαν δύο γλώσσες αρκετά διαφορετικές από όλες τις άλλες. Στα μέσα του 60 αναπτύχθηκε στο ΜΙΤ η LISP (LISt Processor-Επεξεργαστής Λίστας), γλώσσα η οποία προσανατολίζεται σε χειρισμό λιστών από σύμβολα και η PROLOG (PROgramming LOGic ­Λογικός Προγραμματισμός) στις αρχές του 70. Οι δύο αυτές γλώσσες χρησιμοποιούνται σε προβλήματα Τεχνητής νοημοσύνης (έμπειρα συστήματα, παιγνίδια, επεξεργασία φυσικών γλωσσών κ.λπ.). Δύο σημαντικότατες γλώσσες γενικού σκοπού, οι οποίες αναπτύχθηκαν τη δεκαετία του 60 αλλά χρησιμοποιούνται πάρα πολύ στις ημέρες μας, είναι η BASIC και η PASCAL.

TO KYBOS : A REPEAT 4 [FD : A RT 90] PU SETPOS [20 20] PD REPEAT 4 [FD : A RT 90] PU HOME PD REPEAT 2 [FD : A RT 45 FD 29 RT 135] PU SETX : A SETY 0 PD REPEAT 2 [FD : A RT 45 FD 29 RT 135] HOME END Σχ. 6.5. Η γλώσσα προγραμματισμού LOGO ολοκληρώθηκε το 1967 στη Βοστώνη από τον Seymoyr Papert. Το όνομά της προέρχεται από την ελληνική λέξη "λόγος". - Πρόκειται για γλώσσα κατάλληλη για την εισαγωγή στον προγραμματισμό μαθητών - μικρής ηλικίας. Το πρόγραμμα του παραδείγματος σχεδιάζει έναν κύβο ακμής Α με διαδοχικές κινήσεις της χελώνας.

Η γλώσσα προγραμματισμού BASIC (Beginner's All Purpose Symbolic Instruction Code ­ Συμβολικός Κώδικας Εντολών Γενικής Χρήσης για Αρχάριους) αρχικά αναπτύχθηκε, όπως δηλώνει και το όνομα της, ως γλώσσα για την εκπαίδευση αρχαρίων στον προγραμματισμό. Σχεδιάστηκε για να γράφονται σύντομα προγράμματα, τα οποία εκτελούνται με τη βοήθεια διερμηνευτή (interpreter). Η ανάπτυξη όμως των μικροϋπολογιστών και οι συνεχείς εκδόσεις της γλώσσας βοήθησαν στην εξάπλωσή της, τόσο ώστε να γίνει ίσως η δημοφιλέστερη γλώσσα στους προσωπικούς υπολογιστές.

Η τυποποίηση της δε από τη Microsoft με τις εκδόσεις QuickBasic και κύρια με τη Visual Basic, καθιέρωσε τη γλώσσα ως πρότυπο για ανάπτυξη εφαρμογών σε προσωπικούς υπολογιστές Η γλώσσα PASCAL (δημιούργημα του καθηγητή Niklaus Wirth) έφερε μεγάλες αλλαγές στον προγραμματισμό. Παρουσιάστηκε το 1970 και στηρίχτηκε πάνω στην ALGOL. Είναι μία γλώσσα γενικής χρήσης, η οποία είναι κατάλληλη τόσο για την εκπαίδευση όσο και τη δημιουργία ισχυρών προγραμμάτων κάθε τύπου. Χαρακτηριστικό της γλώσσας είναι η η καταλληλότητα για τη δημιουργία δομημένων προγραμμάτων. Η PASCAL γνώρισε και συνεχίζει να γνωρίζει τεράστια εξάπλωση ειδικά στο χώρο των μικροϋπολογιστών και αποτέλεσε τη βάση για την ανάπτυξη άλλων ισχυρότερων γλωσσών όπως η ADA και η Modula-2.

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

(DEFUN a-exisosi (a b) (setf apot (- (/ b a))) (princ "Η εξίσωση ") (princ a) (princ "x + ") (princ b) (princ " = 0 έχει σαν λύση χ = ") (princ apot)) Σχ. 6.6. Η γλώσσα LISP δημιουργήθηκε το 1959 στο ΜΙΤ. Πρόκειται για μη-διαδικασία κή γλώσσα που προορίζεται για την επεξεργασία συμβολικών δεδομένων. Βασικός τύπος δεδομένων, από τον οποίο εξ άλλου πήρε και το όνομά της, είναι η συνδεδεμένη λίστα. Στο παράδειγμα φαίνεται μια συνάρτηση της γλώσσας, που επιλύει την εξίσωση α’ βαθμού. Το πρόγραμμα εκτελείται δίνοντας στη γραμμή εντολών π.χ. (a-exisosi 2 5).

Μία ακόμη γλώσσα που γνώρισε μεγάλη διάδοση είναι η γλώσσα C. Η C αναπτύχθηκε στα εργαστήρια της εταιρείας BELL και χρησιμοποιήθηκε για την ανάπτυξη του λειτουργικού συστήματος Unix, γλώσσα με ισχυρά χαρακτηριστικά, μερικά από αυτά κοινά με την Pascal κατάλληλη για ανάπτυξη δομημένων εφαρμογών αλλά και με πολλές δυνατότητες γλώσσας χαμηλού επιπέδου. Η C εξελίχτηκε στη γλώσσα C++, που είναι αντικειμενοστραφής. Η ιδέα του αντικειμενοστραφούς προγραμματισμού παρουσιάστηκε για πρώτη φορά στη δεκαετία του 70 και συνεχίζει ακόμη να απλώνεται αλλάζοντας τον παραδοσιακό προγραμματισμό. Λόγω της σημασίας του αντικειμενοστραφούς προγραμματισμού μερικά στοιχεία του παρουσιάζονται σε ξεχωριστή παράγραφο.

Τα τελευταία χρόνια χρησιμοποιείται ιδιαίτερα, ειδικά για προγραμματισμό στο Διαδίκτυο (Internet), η JAVA. H JAVA είναι μία αντικειμενοστραφής γλώσσα που αναπτύχθηκε από την εταιρεία SUN με σκοπό την ανάπτυξη εφαρμογών, που θα εκτελούνται σε κατανεμημένα περιβάλλοντα, δηλαδή σε διαφορετικούς υπολογιστές οι οποίοι είναι συνδεδεμένοι στο Διαδίκτυο. Τα προγράμματα αυτά μπορούν να εκτελούνται από διαφορετικούς υπολογιστές, προσωπικούς ή μεγάλα συστήματα με διαφορετικά λειτουργικά συστήματα χωρίς αλλαγές.

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

#include int main(int argc, char* argv[]) [ float a, b; printf("A = "); scanf("%f", &a); printf("B = "); scanf("%f", &b); if (a == 0) [ if (b == 0) [ printf("ΑΟΡΙΣΤΗ\n"); ] else [ printf("ΑΔΥΝΑΤΗ\n"); ] ] else [ printf("X = %f\n", -b/a); ] return 0; ] Σχ. 6.7. Η γλώσσα προγραμματισμού C αναπτύχθηκε στα εργαστήρια Bell της αμερικανικής εταιρίας Ατ&Τ το 1972 από τον Dennis Ritchie. Η γλώσσα C είναι μια δομημένη διαδικασιακή γλώσσα γενικής χρήσης που χαρακτηρίζεται από λιτότητα στην έκφρα ση και μια πλούσια συλλογή τελεστών και τύπων δεδομένων. Στενά συνδεδεμένη με το UNIX, η γλώσσα C χρησιμοποιείται ευρύτατα για τη δημιουργία λειτουργικών συστημάτων και άλλων πακέτων λογισμικού. Το πρόγραμμα του παραδείγματος επιλύει την εξίσωση α' βαθμού.

Έτσι εμφανίστηκαν γλώσσες ή νέες εκδόσεις των γλωσσών που υλοποιούσαν τις έννοιες του οδηγούμενου από το γεγονός προγραμματισμού (object driven programming) και του οπτικού προγραμματισμού (visual programming).

CLEAR ? "1. ΕΙΣΑΓΩΓΗ ΣΤΟΙΧΕΙΩΝ" ? "2. ΕΚΤΥΠΩΣΗ ΕΤΙΚΕΤΩΝ" ? "3. ΠΡΟΒΟΛΗ" ? "4. ΤΕΛΟΣ" INPUT "Επιλέξτε [1..4] : " TO CHOICE DO CASE CASE CHOICE=1 APPEND CASE CHOICE=2 LABEL FORM PELATES CASE CHOICE=3 BROWSE OTHERWISE QUIT END CASE Σχ. 6.8. Η dBASE παρουσιάστηκε στα τέλη της δεκαετίας του 70 από την εταιρία Ashton-Tate αρχικά για μικρουπολογιστές 8-bit και αργότερα για προσωπικούς υπολογιστές. Η dBASE υπήρξε ο σπουδαιότερος εκπρόσωπος εξελιγμένων γλωσσών και εργαλείων προγραμματισμού της εποχής με κύριο χαρακτηριστικό τις εξαιρετικές δυνατότητες διαχείρισης αρχείων (βάσεων) δεδομένων. Η dBASE μπορούσε να λειτουργεί με άμεση εκτέλεση των εντολών της μέσα από μια διαλογική διεπαφή χρήστη, με συνέπεια να μπορεί να χρησιμοποιηθεί και από άτομα με ελάχιστες γνώσεις προγραμματισμού. Το γεγονός αυτό συνέβαλε στην ευρεία διάδοση των προσωπικών υπολογιστών. Η πλέον διαδεδομένη έκδοση ήταν η dBASE III Plus. Εξέλιξή της υπήρξε ο Clipper μεταγλωττιζόμενη γλώσσα, με την οποία δημιουργήθηκαν πλήθος εμπορικών εφαρμογών σε προσωπικούς υπολογιστές. Τα προϊόντα αυτά, που συχνά επονομάζονται xBASE, υπήρξαν προάγγελοι των σημερινών πακέτων διαχείρισης βάσεων δεδομένων όπως η Access. Το απόσπασμα προγράμματος του παραδείγματος παρουσιάζει ένα μενού επιλογών και εκτελεί διακλάδωση στην αντίστοιχη λειτουργία.

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

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

Οι πιο διαδεδομένες γλώσσες προγραμματισμού σε γραφικό περιβάλλον για προσωπικούς υπολογιστές είναι η Visual Basic, η Visual C++ και η

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