Προγραμματισμός FORTRAN > Μαθήματα > Διαδικασία του Προγραμματισμού
Αρχική-HomeΠαραδείγματαΕντολές-ΣυναρτήσειςΟδηγίες-FAQsΣυνδέσεις-Links

ΜΑΘΗΜΑ: Η ΔΙΑΔΙΚΑΣΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Η διαδικασία της δημιουργίας ενός προγράμματος είναι σχεδόν ίδια σε όλα τα συστήματα Η/Υ και όλες τις γλώσσες προγραμματισμού και έχει δυο στάδια: τη Σχεδίαση και την Υλοποίηση.

Κατά τη Σχεδίαση θα πρέπει:

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

Μετά τη σχεδίαση, περνάμε στην Υλοποίηση του προγράμματος όπου:

  1. Συντάσσουμε (edit) ένα πρόγραμμα που να λύνει το δεδομένο πρόβλημα με τον αλγόριθμο και τις απαιτήσεις εισόδου/εξόδου που προσδιορίσαμε.
  2. Μεταγλωττίζουμε (compile) το πρόγραμμα σε γλώσσα μηχανής και διορθώνουμε τυχόν συντακτικά σφάλματα.
  3. Εκτελούμε (run) και δοκιμάζουμε διεξοδικά το πρόγραμμα για λογικά ή άλλα λάθη που μπορεί να έχει.

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


αρχή

ΣΧΕΔΙΑΣΗ

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

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

Η διατύπωση του αργορίθμου γίνεται συνήθως με δύο άλλους τρόπους,

  • με τη χρήση ψευδοκώδικα, ή,
  • με τη χρήση διαγράμματος ροής.

Και οι δυο τρόποι είναι ανεξάρτητοι της γλώσσας που χρησιμοποιούμε, βασίζονται, αντίστοιχα, στη φραστική ή τη συμβολική περιγραφή του αλγορίθμου, και χρησιμοποιούν ειδικές λέξεις ή σύμβολα για να παρουσιάσουν κάθε βήμα και ενέργειά του (βλ. Μάθημα: Λογικό Διάγραμμα).


αρχή

ΣΥΝΤΑΞΗ

Αφού σκεφτούμε και σχεδιάσουμε μια εφαρμογή, ανοίγουμε έναν επεξεργαστή κειμένου (notepad, word, text editor, κλπ.) και συντάσσουμε το πρόγραμμά μας γράφοντας με τη σειρά τις εντολές που το αποτελούν. Οι εντολές που γράφουμε δεν είναι φυσικά σε γλώσσα μηχανής. Για να είναι κατανοητές από τον άνθρωπο περιέχουν, αγγλικές λέξεις, αραβικούς αριθμούς, λατινικά γράμματα και μαθηματικά σύμβολα. Όλα αυτά τα στοιχεία υπακούουν στους συντακτικούς κανόνες της κάθε γλώσσας, ώστε οι εντολές να είναι σαφείς και αποτελεσματικές.

Παράδειγμα: Πρόγραμμα με εντολή ελέγχου που βρίσκει τον μέγιστο δυο αριθμών (a & b).

read(*,*) a, b
  if ( a > b ) then
      write(*,*) ' Max = ', a
  elseif ( a < b ) then
      write(*,*) ' Max = ', b
  else
      write(*,*) ' Einai Isa '
  end if
end

Το σύνολο των εντολών αποθηκεύεται σε ένα αρχείο το οποίο καλούμε πηγαίο (ή πρωτότυπο) κώδικα (source code) του προγράμματος. Το αρχείο αυτό έχει συνήθως μετά το όνομα μια επέκταση που δηλώνει ποια υψηλού επιπέδου γλώσσα χρησιμοποιήθηκε στη σύνταξή του (π.χ.: .f, .f90, .for, .bas, .c, .pas, κλπ.). Φυσικά, το αρχείο με το πηγαίο κώδικα μιας γλώσσας ανωτέρου επιπέδου δεν είναι άμεσα κατανοητό (εκτελέσιμο) από τη μηχανή.


αρχή

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

Για να γίνουν κατανοητές οι εντολές του προγράμματος από τον υπολογιστή, στέλνουμε το αποθηκευμένο αρχείο με το πηγαίο κώδικα στο μεταφραστικό πρόγραμμα της γλώσσας, το μεταγλωττιστή ή σύμβολο-μεταφραστή (compiler). Το αποτέλεσμα που μας δίνει ο μεταγλωττιστής είναι ένα νέο αρχείο σε γλώσσα μηχανής, κατανοητό πλέον από τον Η/Υ και συνεπώς εκτελέσιμο (executable). Το αρχείο αυτό έχει συνήθως την επέκταση .exe (ή .out) και εκτελείται όπως όλες οι άλλες εφαρμογές του Η/Υ μας.

Στη πραγματικότητα η διαδικασία της μεταγλώττισης είναι συνήθως λίγο πιο σύνθετη. Καθώς τα προγράμματα γίνονται όλο και πιο μεγάλα και πολύπλοκα, διαιρούνται αναγκαστικά σε μικρότερα τμήματα πηγαίου κώδικα, τα οποία και ολοκληρώνονται χωριστά. Κάθε τμήμα που τελειώνει μεταγλωττίζεται (compile) σε γλώσσα μηχανής και ονομάζεται τελικό (object) πρόγραμμα ή ρουτίνα, αλλά δεν είναι ακόμη εκτελέσιμο. Το αρχείο αυτό έχει συνήθως την επέκταση .obj (ή .o). Αφού συγκεντρωθούν όλα τα επί μέρους τμήματα της εφαρμογής, τα συνδέουμε (link) μεταξύ τους και με ότι άλλο υλικό χρειάζεται από τις βιβλιοθήκες της γλώσσας σε ένα ανεξάρτητο και εκτελέσιμο πρόγραμμα (.exe). Η σύνθετη αυτή διαδικασία (compile + link) έχει πλέον καθιερωθεί για όλα τα προγράμματα και συχνά αναφέρεται με ένα όνομα και σαν build ή make.


αρχή

ΕΚΤΕΛΕΣΗ

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


αρχή

ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗΣ

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

  • ενσωματωμένο επεξεργαστή κειμένου (editor) προσαρμοσμένο στις ανάγκες της γλώσσας προγραμματισμού
  • έγχρωμη απεικόνιση του κώδικα, ώστε να διακρίνονται άμεσα οι διάφορες κατηγορίες εντολών, τα σχόλια, οι λέξεις κλειδιά, οι σειρές χαρακτήρων, κ.ά.
  • προέλεγχο σύνταξης όπως το ταίριασμα των παρενθέσεων, των εισαγωγικών, η αναγνώριση των δεσμευμένων λέξεων της γλώσσας, κ.ά.
  • έλεγχο σύνταξης (syntax checker) κατά τη μεταγλώττιση, που συνδέεται με τον κώδικα και τη πιθανότερη θέση του λάθους,
  • εντοπισμό λαθών κατά την εκτέλεση (debug), με σταδιακή εκτέλεση του προγράμματος και λεπτομερή παρουσίαση των ενεργειών του σε κάθε βήμα.
  • αναλυτικό εγχειρίδιο της γλώσσας (reference manual), που συνοδεύεται από οδηγίες χρήσης και πολλά παραδείγματα για κάθε εντολή της γλώσσας
  • σύστημα οργάνωσης των προγραμμάτων σε φακέλους με την έννοια του έργου (project) και διαχείριση διαφορετικών εκδόσεων (version) μιας εφαρμογής.
  • όλα τα παραπάνω, σε παραθυρικό περιβάλλον με εύχρηστα μενού και τη δυνατότητα ταυτόχρονης παρουσίασης τους στην οθόνη.

Η ύπαρξη ολοκληρωμένου παραθυρικού περιβάλλοντος ανάπτυξης δεν αποκλείει την ταυτόχρονη λειτουργία του κλασικού συστήματος στη γραμμή εντολών του UNIX ή του DOS. Αντίθετα το κλασικό σύστημα είναι απαραίτητο σε επαγγελματικό επίπεδο όπου, η δημιουργία των τελικών εκτελέσιμων προγραμμάτων αυτοματοποιείται με τη χρήση αρχείων με δέσμες εντολών (batch, make, κλπ.) και τα οποία εκτελούνται ταχύτατα και έξω από το παραθυρικό περιβάλλον των Η/Υ.


αρχή

Prev Μάθημα Next


Παραδείγματα

Ερωτήσεις


©2006 Δρ. Β. Χ. Μούσας, Επικ. Καθ., e-mail Τ.Ε.Ι. ΑθήναςΤμήμα Πολιτικών Έργων Υποδομής