Παρασκευή 7 Νοεμβρίου 2014

Γ' Γυμνασίου - ΚΕΦΑΛΑΙΟ 1 - 1.4 Υλοποίηση Αλγορίθμου με υπολογιστή - 1.5 γλώσσες προγραμματισμού


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

Όταν χρησιμοποιούμε ένα μηχάνημα, όπως ο ηλεκτρονικός υπολογιστής, τότε οι εντολές του αλγορίθμου πρέπει να διατυπωθούν μ' ένα συγκεκριμένο τρόπο για να μπορέσει το μηχάνημα να το εκτελέσει και να παρουσιάσει τα αποτελέσματα. Αυτή η διαδικασία αναπαράστασης ενός αλγορίθμου σε γλώσσα κατανοητή για έναν υπολογιστή ονομάζεται πρόγραμμα.

Η εργασία σύνταξης των προγραμμάτων ονομάζεται προγραμματισμός, ενώ τα άτομα που γράφουν και συντάσσουν ένα πρόγραμμα ονομάζονται προγραμματιστές.

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

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

Κάθε φορά που χρειαζόμαστε ένα πρόγραμμα από έναν υπολογιστή, ένα σύνολο εντολών αποθηκεύεται («φορτώνεται προσωρινά») στη μνήμη RAM του υπολογιστή και στη συνέχεια εκτελείται από την Κεντρική Μονάδα Επεξεργασίας.

Πατήστε εδώ για να δείτε πως εκτελείται ένα πρόγραμμα
στο εσωτερικό του υπολογιστή

Οι υπολογιστές δεν είναι έξυπνες μηχανές. Το μόνο που ξέρουν να κάνουν είναι πολλές πράξεις πάρα πολύ γρήγορα. Οι προγραμματιστές με τα προγράμματα που έχουν δημιουργήσει μας δίνουν την εντύπωση ότι είναι έξυπνα μηχανήματα.
Εικόνα 1.2. Το γνωστό παιχνίδι ΤΕΤΡΙΣ είναι ένα πρόγραμμα το οποίο περιλαμβάνει μια σειρά εντολών (ένα μικρό υποσύνολο των εντολών του μπορείτε να δείτε στα δεξιά της εικόνας).
Στην παραπάνω εικόνα αριστερά φαίνεται το περιβάλλον παιχνιδιού του ηλεκτρονικού παιχνιδιού TETRIS και στη δεξιά πλευρά φαίνεται το πρόγραμμα που έχει γράψει ένας προγραμματιστής και εκτελείται στην Κεντρική Μονάδα Επεξεργασίας του υπολογιστή.
 
Μερικές γνωστές γλώσσες προγραμματισμού είναι η Visual Basic, η Logo, η Pascal, η C++, η Java και άλλες.

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

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

Μπορεί ακόμα να φοιτήσει σε κάποια σχολή (Δημόσια ή Ιδιωτική, ΙΕΚ, ΤΕΙ, ΑΕΙ) και να μάθει το λεξιλόγιο, το αλφάβητο και το συντακτικό και τη χρήση μιας ή πολλών διαφορετικών γλωσσών.

Ένας προγραμματιστής ανάλογα με την εφαρμογή που έχει να δημιουργήσει (ηλεκτρονικά παιχνίδια, εφαρμογές γραφείου, on-Line Shops, ιστοσελίδες) μπορεί να επιλέξει και την κατάλληλη γλώσσα προγραμματισμού. Δεν υπάρχει γλώσσα προγραμματισμού που να είναι η μία καλύτερη από την άλλη. Κάθε γλώσσα προγραμματισμού είναι κατάλληλη για τη δημιουργία διαφορετικών εφαρμογών.

Ένας προγραμματιστής, εκτός από τη γλώσσα προγραμματισμού που θα διαλέξει για να δημιουργήσει μια εφαρμογή, πρέπει να λάβει επίσης υπόψη του τα εξής :
Μνήμες RAM
  • Σε τι είδους υπολογιστές θα λειτουργήσει η εφαρμογή που θα φτιάξει
  • Πόση μνήμη RAM απαιτείται για τη σωστή εκτέλεση της εφαρμογής και
  • Πόση υπολογιστική ισχύς χρειάζεται (δηλαδή τι ταχύτητα έχει ο επεξεργαστής του υπολογιστή - πόσα GHz και ίσως πόσους πυρήνες, πόση μνήμη cache κ.α.)

Σύγχρονοι Επεξεργαστές της AMD και της Intel
(είναι οι κυριότερες εταιρείες κατασκευής μικροεπεξεργαστών)

Για αρχάριους εύκολες γλώσσες γενικού προγραμματισμού είναι η BASIC, PASCAL κ.α.


Για εφαρμογές στο διαδίκτυο ένας προγραμματιστής θα χρησιμοποιήσει την JAVA, JAVASCRIPT, PYTHON, HTML, XML, CSS.

Μαθήματα JAVA μπορείτε να βρείτε εδώ.
Για την HTML μαθήματα μπορείτε να βρείτε εδώ.


Πολύ σημαντική είναι η γλώσσα προγραμματισμού C και C++, η οποία είναι πλήρης και ευρύτατα διαδεδομένη. Για περισσότερα από 30 χρόνια εξελίσσεται και έχει γίνει πλήρως αποδεκτή από την κοινότητα των προγραμματιστών. Χρησιμοποιείται παντού από την δημιουργία απλών προγραμμάτων έως και την δημιουργία λειτουργικών συστημάτων όπως τα Windows XP, το Linux ή το Unix. Ένα manual για τη γλώσσα C μπορείτε να βρείτε εδώ ή εδώ.

Αν θέλετε να ασχοληθείτε με το hacking διαβάστε τι συμβουλεύει ένας ειδικός, σχετικά με τη γνώση γλωσσών προγραμματισμού, εδώ.

Το ολοκληρωμένο προγραμματιστικό περιβάλλον





Οι σύγχρονες γλώσσες προγραμματισμού μας προσφέρουν ένα φιλικό περιβάλλον, έτσι ώστε γρήγορα να αναπτύσσουμε τα προγράμματά μας.



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


Τα κύρια εργαλεία είναι:
  • ένας εξειδικευμένος κειμενογράφος όπου μπορεί να γράψει ένα προγραμματιστής το σύνολο των εντολών ενός προγράμματος σε μια γλώσσα προγραμματισμού και
  • ένα πρόγραμμα που μεταφράζει τις εντολές του προγράμματος σε 0 και 1.
Τμήμα
προγράμματος
σε γλώσσα
μηχανής
 Ο υπολογιστής για να κατανοήσει και να εκτελέσει τις εντολές μιας γλώσσας προγραμματισμού πρέπει να τις μετατρέψει σε 0 και 1.
Η γλώσσα αυτή λέγεται γλώσσα μηχανής.

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

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

Δεν ήταν όμως πάντα έτσι τα πράγματα!  



  • Τη δεκαετία του 1950-60 που άρχισαν να δημιουργούνται τα πρώτα προγράμματα οι εντολές ενός προγράμματος γράφονταν, με τη βοήθεια ειδικής γραφομηχανής, σε κάρτες από χαρτόνι αφού δημιουργούσαν τρύπες σε κάποια σημεία (διάτρητες κάρτες), ανάλογα με τα σύμβολα που περιείχαν.
  • Ακολούθησε ένα περιβάλλον που μπορούσε ένας προγραμματιστής να γράφει σε μορφή κειμένου τις εντολές ενός προγράμματος.
  • Σήμερα υπάρχουν γραφικά περιβάλλοντα που βοηθούν τον προγραμματιστή να συντάξει το περιεχόμενο ενός προγράμματος, να το εκτελέσει και να δει αποτελέσματα μέσα από την ίδια εφαρμογή. 

Κάνε κλικ εδώ για να δεις την εξέλιξη του προγραμματιστικού περιβάλλοντος από τη δεκαετία του 1960 μέχρι σήμερα.

Κάποτε οι προγραμματιστές μετέφραζαν οι ίδιοι τις εντολές ενός προγράμματος σε γλώσσα μηχανής (0 και 1). Τις τελευταίες δεκαετίες δημιουργήθηκαν ειδικά  προγράμματα:



  • οι μεταγλωττιστές και
  • οι διερμηνείς.

  • Οι μεταγλωττιστές μεταφράζουν το σύνολο των εντολών ενός προγράμματος σε 0 και 1 και εμφανίζουν συνολικά τα λάθη που μπορεί να έχει ένα πρόγραμμα. Οι μεταγλωττιστές είναι κατάλληλοι για εκτεταμένα και μεγάλα προγράμματα.

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



    ----------------------------------------------------------------------------------------
    Τα λάθη που προκύπτουν κατά την μετάφραση και εκτέλεση ενός προγράμματος μπορεί να είναι: 

    1. Συντακτικά - αυτά τα λάθη συμβαίνουν όταν έχουμε πληκτρολογήσει λάθος ένα γράμμα, ένα σύμβολο,μια λέξη, όταν δεν έχουμε βάλει σε σωστή σειρά τις λέξεις (εντολές) κ.α.
    2. Λογικά - αυτά τα λάθη τα ανακαλύπτουμε όταν ελέγχουμε ένα πρόγραμμα και βλέπουμε ότι δεν βγάζει σωστά αποτελέσματα, όπως αυτά που περιμένουμε. 

    -----------------------------------------------------------------------------------------


    Στην εικόνα που ακολουθεί φαίνονται τα στάδια δημιουργίας ενός προγράμματος από μια σκέψη που είναι στο μυαλό μας μέχρι να το δούμε εκτελέσιμο πρόγραμμα στην οθόνη του υπολογιστή μας:


    Κάντε κλικ εδώ για να δείτε τα στάδια δημιουργίας ενός προγράμματος
    (ή αλλιώς τον κύκλο ζωής ενός προγράμματος)