Γλώσσες Πργραμματισμού

 

Γλώσσες Προγραμματισμού

C++

Fortran

Java

Visual Basic

Pascal

C++ 

Η C++ (C Plus Plus, ελληνική προφ. Σι Πλας Πλας, φωνητική [siː plʌs plʌs]) είναι μια γενικού σκοπού γλώσσα προγραμματισμού Η/Υ. Θεωρείται μέσου επιπέδου γλώσσα, καθώς περιλαμβάνει έναν συνδυασμό χαρακτηριστικών από γλώσσες υψηλού και χαμηλού επιπέδου. Είναι μια μεταγλωττιζόμενη γλώσσα πολλαπλών παραδειγμάτων, με τύπους. Υποστηρίζει δομημένο, αντικειμενοστρεφή και γενικό προγραμματισμό.

Η γλώσσα αναπτύχθηκε από τον Bjarne Stroustrup το 1979 στα εργαστήρια Bell της AT&T, ως βελτίωση της ήδη υπάρχουσας γλώσσας προγραμματισμού C, και αρχικά ονομάστηκε "C with Classes", δηλαδή C με Κλάσεις. Μετονομάστηκε σε C++ το 1983. Οι βελτιώσεις ξεκίνησαν με την προσθήκη κλάσεων, και ακολούθησαν, μεταξύ άλλων, εικονικές συναρτήσεις, υπερφόρτωση τελεστών, πολλαπλή κληρονομικότητα, πρότυπα κ.α.

Η γλώσσα ορίστηκε παγκοσμίως, το 1998, με το πρότυπο ISO/IEC 14882:1998. Η τρέχουσα έκδοση αυτού του προτύπου είναι αυτή του 2003, η ISO/IEC 14882:2003. Μια καινούρια έκδοση είναι υπό ανάπτυξη, γνωστή ανεπίσημα με την ονομασία C++0x.

       Φιλοσοφία

Στο βιβλίο του "The Design and Evolution of C++ (1994), ο Bjarne Stroustrup περιγράφει κάποιους κανόνες που χρησιμοποιεί για το σχεδιασμό της C++:

  • η C++ είναι σχεδιασμένη ως μια γενικής χρήσης γλώσσα με στατικούς τύπους, που είναι όσο αποτελεσματική και φορητή, όσο η C
  • η C++ είναι σχεδιασμένη να υποστηρίζει άμεσα και σφαιρικά πολλά είδη προγραμματισμού (δομημένος προγραμματισμός, αντικειμενοστρεφής προγραμματισμός, γενικός προγραμματισμός)
  • η C++ είναι σχεδιασμένη να δίνει επιλογές στον προγραμματιστή, ακόμα κι αν του επιτρέπει να επιλέξει λανθασμένα
  • η C++ είναι σχεδιασμένη να είναι όσο το δυνατόν συμβατή με τη C, ώστε να διευκολύνει τη μετάβαση από τη C
  • η C++ αποφεύγει χαρακτηριστικά που αναφέρονται σε συγκεκριμένες πλατφόρμες ή δεν είναι γενικής χρήσης
  • η C++ δεν έχει κόστος για χαρακτηριστικά της γλώσσας που δεν χρησιμοποιούνται
  • η C++ είναι σχεδιασμένη να λειτουργεί χωρίς κάποιο εξελιγμένο προγραμματιστικό περιβάλλον

Το βιβλίο Inside the C++ Object Model (Lippman, 1996) περιγράφει πως οι μεταγλωττιστές μπορούν να μετατρέψουν εντολές ενός προγράμματος C++ σε μια διάταξη στη μνήμη. Παρ' όλα αυτά, οι συγγραφείς μεταγλωττιστών είναι γενικά ελεύθεροι να υλοποιήσουν το πρότυπο με δικό τους τρόπο.

       Χαρακτηριστικά

Η C++ κληρονόμησε το μεγαλύτερο μέρος της σύνταξης της C και τον προεπεξεργαστή της C. Το παρακάτω είναι ένα πρόγραμμα hello world που χρησιμοποιεί την λειτουργία stream της πρότυπης βιβλιοθήκης της C++ για να γράψει ένα μήνυμα στην κύρια έξοδο. Το παρακάτω πρόγραμμα χρησιμοποιεί την βιβλιοθήκη εισόδου/εξόδου iostream

# include <iostream>      // αρχείο επικεφαλίδας για την βιβλιοθήκη εισόδου/εξόδου iostream
 
int main() {
   std::cout << "Hello, world!\n";
}

       Τελεστές και υπερφόρτωση τελεστών

Η C++ παρέχει περισσότερους από 30 τελεστές, που καλύπτουν τη βασική αριθμητική, το χειρισμό bit, αναφορά δεικτών, συγκρίσεις, λογικές πράξεις κ.α. Σχεδόν όλοι οι τελεστές μπορούν να υπερφορτωθούν για τύπους ορισμένους από το χρήστη, με λίγες εξαιρέσεις όπως πρόσβαση μέλους (. και .*). Το πλούσιο σύνολο από τελεστές που μπορούν να υπερφορτωθούν είναι βασικό για τη χρήση της C++ ως γλώσσα ειδικού πεδίου (domain specific language). Οι υπερφορτώσιμοι τελεστές είναι ακόμα βασικό μέρος πολλών προχωρημένων τεχνικών προγραμματισμού της C++, όπως οι έξυπνοι δείκτες. Η υπερφόρτωση ενός τελεστή δεν αλλάζει την προτεραιότητα των υπολογισμών όπου χρησιμοποιείται, ούτε τον αριθμό των τελεστέων που χρησιμοποιεί ο τελεστής (αν και οποιοσδήποτε τελεστέος μπορεί απλά να αγνοείται).

 

Fortran

Η γλώσσα FORTRAN (από τα αρχικά FORmulae TRANslator - μεταφραστής τύπων) είναι μία από τις πρώτες γλώσσες προγραμματισμού υψηλού επιπέδου, η οποία χρησιμοποιήθηκε κυρίως σε επιστημονικές αλλά και σε εμπορικές εφαρμογές. Δημιουργήθηκε τη δεκαετία του 1950 από την ΙΒΜ και χρησιμοποιείται μέχρι και σήμερα. Αρχικά η FORTRAN ήταν προσανατολισμένη στην επίλυση μαθηματικών προβλημάτων.

    Εκδόσεις

Υπάρχουν οι εξής τυποποιημένες εκδόσεις της FORTRAN:

  • FORTRAN-66
  • FORTRAN-77
  • FORTRAN-90
  • FORTRAN-95
  • FORTRAN 2000
  • FORTRAN 2003
  • FORTRAN 2008

Βάση για την περιγραφή της FORTRAN παρακάτω θα είναι η έκδοση FORTRAN-77.

    Αλφάβητο

Ένα πρόγραμμα γραμμένο σε έκδοση της FORTRAN μέχρι και την FORTRAN-77 μπορεί να χρησιμοποιήσει οποιουδήποτε από τους εξής χαρακτήρες:

  • Τα 26 κεφαλαία γράμματα του αγγλικού αλφαβήτου: A, B, ..., Z
  • Τους 10 αραβικούς αριθμούς: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • Τους 12 ειδικούς χαρακτήρες: + - * / = ( ) ' . , $ :
  • Το κενό διάστημα.

Από την έκδοση FORTRAN-90 και μετά, προστέθηκαν επιπλέον ειδικοί χαρακτήρες:

  •  ! " & ; < > ?
  • Τα 26 μικρά γράμματα του αγγλικού αλφαβήτου: a, b, ..., z

    Τύποι εντολών

Οι εντολές της FORTRAN-77 είναι δηλωτικές ή εκτελέσιμες:

   Δηλωτικές εντολές

  • PROGRAM, FUNCTION, SUBROUTINE, BLOCKDATA
  • IMPLICIT
  • PARAMETER
  • INTEGER, REAL, DOUBLEPRECISION, COMPLEX, LOGICAL, CHARACTER
  • DIMENSION
  • COMMON, EQUIVALENCE
  • EXTERNAL, INTRINSIC, ENTRY
  • Ορισμός συνάρτησης – πρότασης
  • SAVE
  • DATA
  • FORMAT

    Δηλωτική εντολή τέλους κειμένου προγράμματος

  • END

   Εκτελέσιμες εντολές

  • OPEN, CLOSE, INQUIRE, READ, WRITE, PRINT, PUNCH
  • REWIND, BACKSPACE, ENDFILE
  • (ανάθεση τιμής) =
  • ASSIGN .. TO
  • ανάθεση GOTO, χωρίς συνθήκη GOTO, υπολογιζόμενο GOTO
  • αριθμητικό IF, λογικό IF, IF .. THEN .. ELSEIF .. ELSE .. ENDIF
  • DO .. CONTINUE
  • CALL, RETURN
  • PAUSE, STOP

Σε επόμενη έκδοση της γλώσσας προστέθηκαν οι END DO και WHILE.

   Κατηγορίες εντολών

Οι εντολές της FORTRAN-77 κατατάσσονται σε 4 κατηγορίες:

  • Εντολές εκχώρησης ή αντικατάστασης (assignment statements)
  • Εντολές εισόδου/εξόδου (input/output statements)
  • Εντολές ελέγχου και λογικής (control statements)
  • Πληροφοριακές εντολές και εντολές οργάνωσης (specification statements)

   Δομή προγραμμάτων

          Κατά στήλες

Ένα αρχείο που περιέχει ένα πρόγραμμα FORTRAN χωρίζεται νοητά σε τρεις ομάδες στηλών:

  • Η πρώτη ομάδα, που περιέχει τις στήλες 1-6, χρησιμοποιείται για την εισαγωγή των συμβόλων σχολίων (* και c), των αριθμών εντολών και χαρακτήρων συνέχισης γραμμής. Ειδικότερα:
  1. Τα σύμβολα * ή c είναι προαιρετικά και εισάγονται στην πρώτη στήλη. Ο μεταγλωττιστής αναγνωρίζει έτσι την αντίστοιχη γραμμή ως σχόλιο, και την προσπερνάει. Τα σχόλια δεν έχουν επίδραση στον εκτελέσιμο κώδικα, αλλά βοηθάνε τον προγραμματιστή στην κατανόηση και αποσφαλμάτωση του προγράμματος.
  2. Οι αριθμοί εντολών είναι προαιρετικοί 5-ψήφιοι αριθμοί, που εισάγονται στις στήλες 1 ως 5. Είναι χρήσιμοι για εντολές ανακατεύθυνσης της ροής του προγράμματος, αν και σπάνια πια χρησιμοποιούνται μετά την εισαγωγή της έννοιας του δομημένου προγραμματισμού.
  3. Ένας οποιοσδήποτε χαρακτήρας, εκτός του κενού διαστήματος και του μηδέν, υποδεικνύει στον μεταγλωττιστή ότι η αντίστοιχη γραμμή είναι συνέχεια της προηγούμενης. Καθίσταται έτσι δυνατή η συνέχιση μιας πολύ μεγάλης εντολής σε περισσότερες της μίας γραμμής. Ο μέγιστος αριθμός γραμμών για μια εντολή είναι 40.
  • Στην δεύτερη, κύρια ομάδα στηλών 7-72, εισάγονται οι εντολές της FORTRAN.
  • Τέλος η τρίτη ομάδα, στήλες 73-80, περιέχει κείμενο που αγνοείται από τον μεταγλωττιστή, εκτός αν πρόκειται για δεδομένα του προγράμματος.

Σημείωση: Στην FORTRAN-90, δεν υπάρχουν οι περιορισμοί των ομάδων στηλών 7-72 και 73-80. Κάθε γραμμή έχει 132 χαρακτήρες. Η συνέχιση γραμμής γίνεται με τον χαρακτήρα &. Επίσης τα σχόλια γίνονται με την τοποθέτηση του συμβόλου ! σε οποιαδήποτε στήλη, ακολουθούμενο από το σχόλιο.

          Κατά γραμμές

Ένα πρόγραμμα FORTRAN μπορεί επίσης να χωριστεί κατά 4 τμήματα ως εξής:

            Επικεφαλίδα (heading)

Η επικεφαλίδα σε ένα πρόγραμμα είναι προαιρετική και εισάγεται στην πρώτη γραμμή. Προσδιορίζει την αρχή του προγράμματος και το όνομά του. Έχει την εξής συγκεκριμένη μορφή:

PROGRAM [όνομα προγράμματος]

Οι αγκύλες δεν εισάγονται. Προσδιορίζουν μια παράμετρο, όπως και στις υπόλοιπες εντολές παρακάτω.

          Τεκμηρίωση (documentation)

Ακολουθεί η τεκμηρίωση. Είναι επίσης προαιρετικό τμήμα, το οποίο περιέχει σχόλια σχετικά με το πρόγραμμα, όπως:

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

Σχόλια τεκμηρίωσης μπορεί να βρίσκονται και ανάμεσα από τις εκτελέσιμες εντολές.

         Τμήμα προδιαγραφών/Τμήμα δηλώσεων (specification part)

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

         Εκτελέσιμο τμήμα (execution part)

Τέλος, το σημαντικότερο τμήμα είναι το εκτελέσιμο. Περιέχει τις εκτελέσιμες εντολές, με τις οποίες τα δεδομένα της εισόδου μετατρέπονται σε αποτελέσματα.

         Τέλος του προγράμματος

Το τέλος του προγράμματος δηλώνεται με την εντολή END.

 

Java

    Ιστορία

Στις αρχές του 1991, η Sun αναζητούσε το κατάλληλο εργαλείο για να αποτελέσει την πλατφόρμα ανάπτυξης λογισμικού σε μικρο-συσκευές (έξυπνες οικιακές συσκευές έως πολύπλοκα συστήματα παραγωγής γραφικών). Τα εργαλεία της εποχής ήταν γλώσσες όπως η C++ και η C. Μετά από διάφορους πειραματισμούς προέκυψε το συμπέρασμα ότι οι υπάρχουσες γλώσσες δεν μπορούσαν να καλύψουν τις ανάγκες τους. Ο "πατέρας" της Java, James Gosling, που εργαζόταν εκείνη την εποχή για την Sun, έκανε ήδη πειραματισμούς πάνω στη C++ και είχε παρουσιάσει κατά καιρούς κάποιες πειραματικές γλώσσες (C++ ++) ως πρότυπα για το νέο εργαλείο που αναζητούσαν στην Sun. Τελικά μετά από λίγο καιρό κατέληξαν με μια πρόταση για το επιτελείο της εταιρίας, η οποία ήταν η γλωσσα Oak. Το όνομά της το πήρε από το ομώνυμο δένδρο (βελανιδιά) το οποίο ο Gosling είχε έξω από το γραφείο του και έβλεπε κάθε μέρα.

   Από την Oak στη Java

H Oak ήταν μία γλώσσα που διατηρούσε μεγάλη συγγένεια με την C++. Παρόλα αυτά είχε πολύ πιο έντονο αντικειμενοστρεφή (object oriented) χαρακτήρα σε σχέση με την C++ και χαρακτηριζόταν για την απλότητα της. Σύντομα οι υπεύθυνοι ανάπτυξης της νέας γλώσσας ανακάλυψαν ότι το όνομα Oak ήταν ήδη κατοχυρωμένο οπότε κατά την διάρκεια μιας εκ των πολλών συναντήσεων σε κάποιο τοπικό καφέ αποφάσισαν να μετονομάσουν το νέο τους δημιούργημα σε Java που εκτός των άλλων ήταν το όνομα αγαπητού καφέ για τους δημιουργούς της (Java στην αγγλική γλώσσα είναι το φυτό που βγάζει τον καφέ). Η επίσημη εμφάνιση της Java αλλα και του HotJava (πλοηγός με υποστήριξη Java) στη βιομηχανία της πληροφορικής έγινε το Μάρτιο του 1995 όταν η Sun την ανακοίνωσε στο συνέδριο Sun World 1995. O πρώτος μεταγλωττιστής (compiler) της ήταν γραμμένος στη γλώσσα C από τον James Gosling. Το 1994, ο A.Van Hoff ξαναγράφει τον μεταγλωττιστή της γλώσσας σε Java, ενώ το Δεκέμβριο του 1995 πρώτες οι IBM, Borland, Mitsubishi Electronics, Sybase και Symantec ανακοινώνουν σχέδια να χρησιμοποιήσουν τη Java για την δημιουργία λογισμικού. Από εκεί και πέρα η Java ακολουθεί μία ανοδική πορεία και είναι πλέον μία από τις πιο δημοφιλείς γλώσσες στον χώρο της πληροφορικής. Στις 13 Νοεμβρίου του 2006 η Java έγινε πλέον μια γλώσσα ανοιχτού κώδικα (GPL) όσον αφορά το μεταγλωττιστή (javac) και το πακέτο ανάπτυξης (JDK, Java Development Kit).

   H εξαγορά από την Oracle και το μέλλον της Java

Στις 27 Απριλίου 2010 η εταιρία λογισμικού Oracle Corporation ανακοίνωσε ότι μετά από πολύμηνες συζητήσεις ήρθε σε συμφωνία για την εξαγορά της Sun Microsystems και των τεχνολογιών (πνευματικά δικαιώματα/ πατέντες) που η δεύτερη είχε στην κατοχή της ή δημιουργήσει. Η συγκεκριμένη συμφωνία θεωρείται σημαντική για το μέλλον της Java και του γενικότερου οικοσυστήματος τεχνολογιών γύρω απο αυτή μιας και ο έμμεσος έλεγχος της τεχνολογίας και η εξέλιξη της περνάει σε άλλα χέρια.

    Τα χαρακτηριστικά της Java

Ένα από τα βασικά πλεονεκτήματα της Java έναντι των περισσότερων άλλων γλωσσών είναι η ανεξαρτησία του λειτουργικού συστήματος και πλατφόρμας. Τα προγράμματα που είναι γραμμένα σε Java τρέχουνε ακριβώς το ίδιο σε Windows, Linux, Unix και Macintosh (σύντομα θα τρέχουν και σε Playstation καθώς και σε άλλες κονσόλες παιχνιδιών) χωρίς να χρειαστεί να ξαναγίνει μεταγλώττιση (compiling) ή να αλλάξει ο πηγαίος κώδικας για κάθε διαφορετικό λειτουργικό σύστημα. Για να επιτευχθεί όμως αυτό χρειαζόταν κάποιος τρόπος έτσι ώστε τα προγράμματα γραμμένα σε Java να μπορούν να είναι «κατανοητά» από κάθε υπολογιστή ανεξάρτητα του είδους επεξεργαστή (Intel x86, IBM, Sun SPARC, Motorola) αλλά και λειτουργικού συστήματος (Windows, Unix, Linux, BSD, MacOS). Ο λόγος είναι ότι κάθε κεντρική μονάδα επεξεργασίας κατανοεί διαφορετικό κώδικα μηχανής. Ο συμβολικός κώδικας (assembly) που μεταφράζεται και εκτελείται σε Windows είναι διαφορετικός από αυτόν που μεταφράζεται και εκτελείται σε έναν υπολογιστή Macintosh. Η λύση δόθηκε με την ανάπτυξη της Εικονικής Mηχανής (Virtual Machine ή VM ή ΕΜ στα ελληνικά).

    Η εικονική μηχανή της Java

Αφού γραφεί κάποιο πρόγραμμα σε Java, στη συνέχεια μεταγλωτίζετται μέσω του μεταγλωττιστή javac, ο οποίος παράγει έναν αριθμό από αρχεία .class (κώδικας byte ή bytecode). Ο κώδικας byte είναι η μορφή που παίρνει ο πηγαίος κώδικας της Java όταν μεταγλωττιστεί. Όταν πρόκειται να εκτελεστεί η εφαρμογή σε ένα μηχάνημα, το Java Virtual Machine που πρέπει να είναι εγκατεστημένο σε αυτό θα αναλάβει να διαβάσει τα αρχεία .class. Στη συνέχεια τα μεταφράζει σε γλώσσα μηχανής που να υποστηρίζεται από το λειτουργικό σύστημα και τον επεξεργαστή, έτσι ώστε να εκτελεστεί (να σημειωθεί εδώ ότι αυτό συμβαίνει με την παραδοσιακή Εικονική Μηχανή (Virtual Machine). Πιο σύγχρονες εφαρμογές της εικονικής Μηχανής μπορούν και μεταγλωττίζουν εκ των προτέρων τμήματα bytecode απευθείας σε κώδικα μηχανής (εγγενή κώδικα ή native code) με αποτέλεσμα να βελτιώνεται η ταχύτητα). Χωρίς αυτό δε θα ήταν δυνατή η εκτέλεση λογισμικού γραμμένου σε Java. Πρέπει να σημειωθεί ότι η JVM είναι λογισμικό που εξαρτάται από την πλατφόρμα, δηλαδή για κάθε είδος λειτουργικού συστήματος και αρχιτεκτονικής επεξεργαστή υπάρχει διαφορετική έκδοση του. Έτσι υπάρχουν διαφορετικές JVM για Windows, Linux, Unix, Macintosh, κινητά τηλέφωνα, παιχνιδομηχανές κλπ.

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

    Ο συλλέκτης απορριμμάτων (Garbage Collector)

Ακόμα μία ιδέα που βρίσκεται πίσω από τη Java είναι η ύπαρξη του συλλέκτη απορριμμάτων (Garbage Collector). Συλλογή απορριμμάτων είναι μία κοινή ονομασία που χρησιμοποιείται στον τομέα της πληροφορικής για να δηλώσει την ελευθέρωση τμημάτων μνήμης από δεδομένα που δε χρειάζονται και δε χρησιμοποιούνται άλλο. Αυτή η απελευθέρωση μνήμης στη Java είναι αυτόματη και γίνεται μέσω του συλλέκτη απορριμμάτων. Υπεύθυνη για αυτό είναι και πάλι η εικονική μηχανή η οποία μόλις «καταλάβει» ότι ο σωρός (heap) της μνήμης (στη Java η συντριπτική πλειοψηφία των αντικειμένων αποθηκεύονται στο σωρό σε αντίθεση με τη C++ όπου αποθηκεύονται κυρίως στη στοίβα) κοντεύει να γεμίσει ενεργοποιεί το συλλέκτη απορριμμάτων. Έτσι ο προγραμματιστής δε χρειάζεται να ανησυχεί για το πότε και αν θα ελευθερώσει ένα συγκεκριμένο τμήμα της μνήμης, ούτε και για σφάλματα δεικτών. Αυτό είναι ιδιαίτερα σημαντικό γιατί είναι κοινά τα σφάλματα προγραμμάτων που οφείλονται σε λανθασμένο χειρισμό της μνήμης

     Eπιδόσεις

Παρόλο που η εικονική μηχανή προσφέρει όλα αυτά (και όχι μόνο) τα πλεονεκτήματα, η Java αρχικά ήταν πιο αργή σε σχέση με άλλες προγραμματιστικές γλώσσες υψηλού επιπέδου (high-level) όπως η C και η C++. Εμπειρικές μετρήσεις στο παρελθόν είχαν δείξει ότι η C++ μπορούσε να είναι αρκετές φορές γρηγορότερη από την Java. Ωστόσο γίνονται προσπάθειες από τη Sun για τη βελτιστοποίηση της εικονικής μηχανής, ενώ υπάρχουν και άλλες υλοποιήσεις της εικονικής μηχανής από διάφορες εταιρίες (όπως της IBM), οι οποίες μπορεί σε κάποια σημεία να προσφέρουν καλύτερα και σε κάποια άλλα χειρότερα αποτελέσματα. Επιπλέον με την καθιέρωση των μεταγλωττιστών JIT (Just In Time), οι οποίοι μετατρέπουν τον κώδικα byte απευθείας σε γλώσσα μηχανής, η διαφορά ταχύτητας από τη C++ έχει μικρύνει κατά πολύ.

Οι τελευταίες εκδόσεις του javac με τη χρήση της τεχνολογίας Hot Spot έχουν καταφέρει αξιόλογες επιδόσεις που πλησιάζουν ή και ξεπερνούν σε μερικές περιπτώσεις τον εγγενή κώδικα.

    Εργαλεία ανάπτυξης

Όλα τα εργαλεία που χρειάζεται κάποιος για να γράψει Java προγράμματα έρχονται δωρεάν, από το περιβάλλον ανάπτυξης μέχρι εργαλεία build όπως το Apache Ant και βιβλιοθήκες, ενώ υπάρχουν πολλές διαφορετικές υλοποιήσεις της Εικονικής Μηχανής και του μεταγλωττιστή (πχ the GNU Compiler for Java) της Java.


Visual Basic

Η Visual Basic (VB) είναι γλώσσα προγραμματισμού τρίτης γενιάς, οδηγούμενη από συμβάντα (event driven) και έχει ολοκληρωμένο περιβάλλον ανάπτυξης (IDE) από τη Microsoft για το μοντέλο προγραμματισμού COM. Η VB θεωρείται επίσης μία σχετικά εύκολη γλώσσα προγραμματισμού στην εκμάθηση και τη χρησιμοποίηση, λόγω των χαρακτηριστικών της, καθώς έχει Γραφικό Περιβάλλον Χρήστη και συγγένεια με την γλώσσα προγραμματισμού BASIC. Η Visual Basic προέρχεται από τη BASIC και επιτρέπει την ταχεία ανάπτυξη εφαρμογών (RAD) με Γραφικό Περιβάλλον Χρήστη (GUI), πρόσβαση σε βάσεις δεδομένων χρησιμοποιώντας αντικείμενα (Data Access Objects, Remote Data Objects, ή ActiveX Data Objects), και τη δημιουργία στοιχείων ελέγχου ActiveX και αντικειμένων. Οι γλώσσες προγραμματισμού τύπου "scripting", όπως η VBA και VBScript συντακτικά είναι παρόμοιες με τη Visual Basic, αλλά έχουν διαφορετικές επιδόσεις. Ένας προγραμματιστής μπορεί να ολοκληρώσει μια εφαρμογή χρησιμοποιώντας τα στοιχεία που παρέχονται με την Visual Basic. Προγράμματα γραμμένα σε Visual Basic μπορούν, επίσης, να χρησιμοποιήσουν το Windows API, αλλά κάτι τέτοιο απαιτεί δηλώσεις εξωτερικών συναρτήσεων.

Η τελική έκδοση 6 βγήκε το 1998. Η εκτεταμένη υποστήριξη της Microsoft έληξε το Μάρτιο του 2008 και ορίστηκε διάδοχος της η Visual Basic.NET (γνωστή απλά ως Visual Basic).

      Χαρακτηριστικά της Γλώσσας

Όπως και η γλώσσα προγραμματισμού BASIC, η Visual Basic έχει σχεδιαστεί για να είναι εύκολη στην εκμάθηση και το χειρισμό. Η γλώσσα δεν επιτρέπει στους προγραμματιστές να δημιουργήσουν μόνο απλές εφαρμογές GUI , αλλά μπορούν, επίσης, να αναπτύξουν πολύπλοκες εφαρμογές. Ο προγραμματισμός σε VB συνίσταται από τον οπτικό συνδυασμό στοιχείων ή ελέγχων σε μια φόρμα, τον προσδιορισμό χαρακτηριστικών και ενεργειών αυτών των στοιχείων και την σύνταξη επιπλέον γραμμών κώδικα για αυξημένη λειτουργικότητα. Καθώς υπάρχουν προεπιλεγμένα χαρακτηριστικά και ενέργειες για τα επιμέρους στοιχεία, μπορεί να δημιουργηθεί ένα απλό πρόγραμμα χωρίς ο προγραμματιστής να γράψει πολλές γραμμές κώδικα. Στις προηγούμενες εκδόσεις υπήρχαν προβλήματα επιδόσεων, αλλά με τους ταχύτερους υπολογιστές και τη μεταγλώττιση εγγενούς κώδικα αυτό παύει να είναι ένα τόσο σημαντικό ζήτημα.

Αν και τα προγράμματα μπορούν να μετατραπούν σε εγγενή εκτελέσιμο κώδικα από την έκδοση 5 και μετά, αυτά εξακολουθούν να απαιτούν την παρουσία των βιβλιοθηκών χρόνου εκτέλεσης (runtime) με μέγεθος περίπου 1 MB. Οι βιβλιοθήκες runtime υπάρχουν στα Windows 2000 και αργότερα, αλλά στις παλαιότερες εκδόσεις των Windows όπως τα 95/98/NT πρέπει να διανέμονται μαζί με το εκτελέσιμο αρχείο.

Οι φόρμες δημιουργούνται χρησιμοποιώντας τεχνικές "σύρε κι άσε" (drag-and-drop). Χρησιμοποιείται ένα εργαλείο για την τοποθέτηση στοιχείων ελέγχου (π.χ. πλαίσια κειμένου, κουμπιά, κλπ.) στη φόρμα (παράθυρο). Τα στοιχεία ελέγχου έχουν χαρακτηριστικά και χειριστές συμβάντων συνδεδεμένους με αυτά. Οι προεπιλεγμένες τιμές παρέχονται όταν δημιουργείται το στοιχείο ελέγχου, αλλά μπορούν να τροποποιηθούν από τον προγραμματιστή. Πολλές τιμές χαρακτηριστικών είναι δυνατό να τροποποιηθούν κατά το χρόνο εκτέλεσης από ενέργειες του χρήστη ή αλλαγές του περιβάλλοντος, παρέχοντας έτσι μια δυναμική εφαρμογή. Για παράδειγμα, μπορεί να εισαχθεί κώδικας στον χειριστή συμβάντων αλλαγής διαστάσεων της φόρμας, ώστε ένα στοιχείο ελέγχου να παραμένει πάντα στο κέντρο της φόρμας ή να μεγαλώσει ώστε να την γεμίσει, κλπ. Με την προσθήκη κώδικα μέσα σε ένα χειριστή συμβάντων για το πάτημα των πλήκτρων σε ένα πλαίσιο κειμένου, το πρόγραμμα μπορεί αυτόματα να μετατρέψει το εισαγόμενο κείμενο σε κεφαλαία ή πεζά ή ακόμα και να εμποδίσει ορισμένους από τους χαρακτήρες να εμφανιστούν.

Με τη Visual Basic είναι δυνατή η δημιουργία εκτελέσιμων (EXE) αρχείων, στοιχείων ελέγχου ActiveX ή αρχείων DLL, αλλά χρησιμοποιείται κυρίως για την ανάπτυξη εφαρμογών για τα Windows και τη διασύνδεση συστημάτων βάσεων δεδομένων. Πλαίσια διαλόγου με λιγότερες λειτουργίες μπορούν να χρησιμοποιηθούν για pop-up δυνατότητες. Τα στοιχεία ελέγχου παρέχουν τις βασικές λειτουργίες της εφαρμογής, ενώ οι προγραμματιστές μπορούν να εισαγάγουν επιπλέον λογική μέσα στο κατάλληλο χειριστή γεγονότων. Για παράδειγμα, ένα πτυσσόμενο πλαίσιο θα εμφανίζει αυτόματα μια λίστα που θα επιτρέπει στο χρήστη να επιλέξει οποιοδήποτε στοιχείο. Ένας χειριστής γεγονότων καλείται όταν ένα αντικείμενο είναι επιλεγμένο, και στη συνέχεια μπορεί να εκτελεστεί πρόσθετος κώδικας που δημιουργείται από τον προγραμματιστή για να εκτελεστεί κάποια ενέργεια που βασίζεται στο στοιχείο που έχει επιλεχθεί.

Εναλλακτικά, ένα συστατικό της Visual Basic μπορεί να μην έχει Γραφικό Περιβάλλον Χρήστη, αλλά, αντ' αυτού, να παρέχει αντικείμενα ActiveX σε άλλα προγράμματα μέσω Component Object Model (COM). Αυτό επιτρέπει επεξεργασία στην πλευρά του διακομιστή (server-side processing) ή τη δημιουργία πρόσθετων μορφωμάτων (add-in module).

Η γλώσσα έχει αυτόματη διαχείριση μνήμης με την τεχνική της συλλογής σκουπιδιών (garbage collection) χρησιμοποιώντας υπολογισμό αναφορών και έχει μια μεγάλη βιβλιοθήκη με βοηθητικά αντικείμενα καθώς και βασική αντικειμενοστραφή υποστήριξη. Από τα πιο κοινά στοιχεία που περιλαμβάνονται στο προεπιλεγμένο πρότυπο έργου, ο προγραμματιστής σπάνια χρειάζεται να καθορίσει πρόσθετες βιβλιοθήκες. Αντίθετα με πολλές άλλες γλώσσες προγραμματισμού η Visual Basic γενικά δεν διαχωρίζει τους πεζούς από τους κεφαλαίους χαρακτήρες, αν και θα μετατρέψει τις λέξεις-κλειδιά σε μία τυπική διαμόρφωση. Οι συγκρίσεις συμβολοσειρών διαχωρίζουν τα πεζά από τα κεφαλαία από προεπιλογή, αλλά μπορεί να αλλάξει αυτό, εφόσον το επιθυμείτε.

Ο μεταγλωττιστής της Visual Basic είναι κοινός με τις άλλες γλώσσες του Visual Studio (C#, C++), αλλά οι περιορισμοί στον IDE δεν επιτρέπουν τη δημιουργία ορισμένων στόχων (μοντέλα Windows DLL) και σε μοντέλα νημάτων.

      Χαρακτηριστικά της Visual Basic

Visual Basic έχει τα εξής χαρακτηριστικά που διαφέρουν από τις γλώσσες που προέρχονται από τη C:

  • Η πολλαπλή ανάθεση που διατίθεται στη C δεν είναι δυνατή. Το A = B = C, δεν σημαίνει ότι οι τιμές των Α, Β και C είναι ίδιες. Το αποτέλεσμα της boolean "B = C;" αποθηκεύεται στην μεταβλητή A. Το αποτέλεσμα που αποθηκεύεται στην Α θα μπορούσε συνεπώς να είναι ψευδές (0) ή αληθές (-1).
  • Οι λογικοί και δυαδικοί τελεστές είναι ενοποιημένοι. Αυτό έρχεται σε αντίθεση με ορισμένες γλώσσες προερχόμενες από τη C (όπως η γλώσσα Perl), οι οποίες έχουν ξεχωριστούς λογικούς και δυαδικούς τελεστές. Αυτό είναι ένα παραδοσιακό χαρακτηριστικό της γλώσσας BASIC.

Pascal

Η γλώσσα Pascal (προφέρεται Πασκάλ) δημιουργήθηκε στο Πανεπιστήμιο της Γενεύης από τον Νικλάους Βιρτ (Nicklaus Wirth). Πήρε το όνομά της προς τιμή του μαθηματικού και φιλοσόφου Μπλεζ Πασκάλ (Blaise Pascal). Είναι μία δομημένη γλώσσα με ιδιαίτερο χαρακτηριστικό τη δυνατότητα ορισμού από τον προγραμματιστή δικών του δομών δεδομένων.

Ο Νικλάους Βιρτ συμμετείχε στις σχεδιαστικές ομάδες των γλωσσών ALGOL, Pascal, Modula, Modula-2 και Oberon. Η Pascal θεωρείται ως μία επιτυχημένη επέκταση της επιστημονικής γλώσσας προγραμματισμού ALGOL, που αναπτύχθηκε στην Ευρώπη τη δεκαετία του '60.

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

Η Pascal μπορεί να θεωρηθεί ως γλώσσα γενικής χρήσης (όχι μόνο επιστημονικών εφαρμογών, όχι μόνο εμπορικών εφαρμογών). Αρχικά δεν διέθετε εξελιγμένο σύστημα χειρισμού αρχείων, (και γι΄ αυτό δεν εκτόπισε την COBOL στις εμπορικές εφαρμογές), αλλά, όπως οι περισσότερες γλώσσες, πέρασε από πολλές εκδόσεις που κάθε μια βελτίωνε την προηγούμενη. Διάφορες εκδόσεις της Pascal είναι σήμερα σε χρήση.

Διάφορα λειτουργικά συστήματα, (όπως το Macintosh της Apple), είχαν μέρη τους γραμμένα σε Pascal. Το τυπογραφικό λογισμικό ΤΕΧ, που δημιούργησε ο Ντόναλντ Κναθ (Donald E. Knuth), γράφτηκε σε μια διάλεκτο Pascal, την WEB. Η εταιρεία Borland έχει εκδώσει μία σειρά από ταχύτατους μεταφραστές Pascal με το όνομα Τurbo Pascal. Η τελευταία έκδοση της Pascal για τα Windows θεωρείται μία από τις καλύτερες εκδόσεις της στο χώρο των μικροϋπολογιστών.

   Γειά σου, κόσμε!

Τα προγράμματα σε γλώσσα Pascal έχουν πρώτη εντολή την

Program όνομα

που ακολουθείται από μια προαιρετική λίστα αναφορών σε εξωτερικά αρχεία, και μετά υπάρχει ένα μπλοκ εντολών, που αρχίζει με την εντολή

"Begin"

και τελειώνει με την εντολή

"End".

Το σημείο στίξης [;] (Semicolon, ελληνικό ερωτηματικό) είναι το διαχωριστικό των εντολών, και η τελεία [.] δείχνει το τέλος της προγραμματιστικής ενότητας (program module). Η Pascal δεν διακρίνει κεφαλαία ή πεζά γράμματα στο πηγαίο πρόγραμμα (έξω από τα νήματα (strings) χαρακτήρων).

Ακολουθεί το συνηθισμένο παράδειγμα απλού προγράμματος που γράφει "Γειά σου, κόσμε!" (hello world!):

program HelloWorld;
begin
  writeln('Γεια σου, κόσμε!');
  readln;
end.

 

 

Λύκειο Σίφνου 2011-2012 Νικήτας Κακάκης