Δομημένος προγραμματισμός: Διαφορά μεταξύ των αναθεωρήσεων

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Lady 6thofAu (συζήτηση | συνεισφορές)
Lady 6thofAu (συζήτηση | συνεισφορές)
μ Το θυμήθηκα :Ρ
Γραμμή 5: Γραμμή 5:
heading =Αυτό το άρθρο ή η ενότητα δεν αναφέρει τις [[Βικιπαίδεια:Επαληθευσιμότητα|'''πηγές''']] του ή δεν περιέχει επαρκείς [[Βικιπαίδεια:Παράθεση παραπομπών|'''παραπομπές''']].|
heading =Αυτό το άρθρο ή η ενότητα δεν αναφέρει τις [[Βικιπαίδεια:Επαληθευσιμότητα|'''πηγές''']] του ή δεν περιέχει επαρκείς [[Βικιπαίδεια:Παράθεση παραπομπών|'''παραπομπές''']].|
message = Μπορείτε να βοηθήσετε την Βικιπαίδεια προσθέτοντας κατάλληλες πηγές και παραπομπές που να υποστηρίζουν το άρθρο.}}[[Κατηγορία:Άρθρα που χρειάζονται παραπομπές|{{PAGENAME}}]]
message = Μπορείτε να βοηθήσετε την Βικιπαίδεια προσθέτοντας κατάλληλες πηγές και παραπομπές που να υποστηρίζουν το άρθρο.}}[[Κατηγορία:Άρθρα που χρειάζονται παραπομπές|{{PAGENAME}}]]
Στην [[επιστήμη υπολογιστών]] '''δομημένος προγραμματισμός''' (structured programming) ή '''διαδικαστικός προγραμματισμός''' (procedural programming) είναι ένα [[προγραμματιστικό υπόδειγμα]] το οποίο βασίζεται στην έννοια της ''κλήσης διαδικασίας''. Η [[διαδικασία (υπολογιστές)|διαδικασία]], γνωστή επίσης και ως ρουτίνα, υπορουτίνα, μέθοδος ή συνάρτηση είναι ένα αυτοτελές σύνολο εντολών προς εκτέλεση.


Στην [[επιστήμη υπολογιστών]] '''δομημένος προγραμματισμός''' (structured programming) ή '''διαδικαστικός προγραμματισμός''' (procedural programming) είναι μία προσέγγιση στον προγραμματισμό<ref name="sams">Jesse Liberty, Bradley Jones, ''Sams Teach Yourself C++ in 21 Days'', Sams Publishing, 2004, σελ. 8, ISBN 9780672327117</ref>, η οποία βασίζεται στην ''κλήσης διαδικασίας''.
Ομαδοποιούμε λοιπόν τις [[εντολή (υπολογιστές)|εντολές]] ενός [[πρόγραμμα υπολογιστή|προγράμματος]] σε σύνολα που τα ονομάζουμε διαδικασίες, με κάθε μια από αυτές να εκτελεί έναν καλά ορισμένο υπολογισμό που μπορούμε να θυμόμαστε μνημονικά με το όνομα της διαδικασίας.
Αυτή η μέθοδος έχει σαν αποτέλεσμα να μπορούμε να διαχειριζόμαστε-συντηρούμε-[[αποσφαλμάτωση προγράμματος|αποσφαλματώνουμε]] ευκολότερα και ταχύτερα ένα μεγάλο πρόγραμμα, χειριζόμενοι μεγαλύτερες και πολυπλοκότερες μονάδες όπως οι διαδικασίες αντί για μεμονωμένες εντολές. Πράγματι, ο δομημένος προγραμματισμός εμφανίστηκε στα τέλη της δεκαετίας του '60 ακριβώς για να βοηθήσει στην ευκολότερη συντήρηση και συγγραφή πολύπλοκων προγραμμάτων. Η έννοια της διαδικασίας βέβαια ήταν προγενέστερη αλλά δεν έπαιζε τόσο σημαντικό ρόλο στην αρχιτεκτονική των υπό συγγραφή εφαρμογών.


Ο δομημένος προγραμματισμός βασίζεται στην αρχή του [[διαίρει και βασίλευε (υπολογιστές)|διαίρει και βασίλευε]], διασπά το κυρίως πρόβλημα σε μικρότερα υποπροβλήματα (γνωστά επίσης και ως εργασίες - (tasks)). Κάθε εργασία που έχει πολύπλοκη περιγραφή διαιρείται σε μικρότερες έως ότου οι εργασίες είναι αρκετά μικρές και περιεκτικές, αλλά και εύκολες προς κατανόηση.
Ιστορικά ο δομημένος προγραμματισμός αναπτύχθηκε ως βελτίωση του παλαιότερου διαδικαστικού προγραμματισμού, υπό την έννοια ότι στην έννοια της διαδικασίας που εμπεριείχε ο τελευταίος προσέθεσε την αναγκαιότητα της ανάλυσης ενός προγράμματος σε θεμελιώδεις διαδικασίες και της ομαδοποίησης αποδεδειγμένα ορθών διαδικασιών σε [[Επαναχρησιμοποίηση κώδικα|επαναχρησιμοποιήσιμα]] πακέτα λογισμικού ([[βιβλιοθήκη (υπολογιστές)|βιβλιοθήκες]]). Καθώς όμως οι περισσότερες διαδικαστικές γλώσσες γρήγορα υιοθέτησαν στοιχεία ώστε να υποστηρίζουν δομημένο προγραμματισμό, οι δύο όροι σήμερα έχουν πρακτικώς ταυτιστεί. Με τον καιρό οι δομημένες γλώσσες έφτασαν να μην επαρκούν για τους σκοπούς της εύκολης συντήρησης, διαχείρισης και αποσφαλμάτωσης, καθώς η πολυπλοκότητα και το μέγεθος σε γραμμές κώδικα των προγραμμάτων όλο και αυξανόταν. Έτσι υιοθετήθηκε ως λύση το υπόδειγμα του [[αντικειμενοστρεφής προγραμματισμός|αντικειμενοστρεφούς προγραμματισμού]], το οποίο είχε αρχίσει να αναπτύσσεται περίπου την ίδια εποχή με το δομημένο προγραμματισμό.

==Ιστορική διαδρομή==

Ιστορικά ο δομημένος προγραμματισμός αναπτύχθηκε ως βελτίωση του παλαιότερου διαδικαστικού προγραμματισμού. Η [[διαδικασία (υπολογιστές)|διαδικασία]], γνωστή επίσης και ως ρουτίνα, υπορουτίνα, μέθοδος ή συνάρτηση είναι ένα αυτοτελές σύνολο εντολών προς εκτέλεση. Η έννοια της διαδικασίας βέβαια ήταν προγενέστερη αλλά δεν έπαιζε τόσο σημαντικό ρόλο στην αρχιτεκτονική των υπό συγγραφή εφαρμογών, καθώς τα δεδομένα ήταν αρκετά διαχωρισμένα από τις διαδικασίες και έπρεπε ο προγραμματιστής να θυμάται ποια διαδικασία καλούσε ποια άλλη και ποια δεδομένα διαφοροποιούνταν<ref name="sams"/>. Καθώς όμως οι περισσότερες διαδικαστικές γλώσσες γρήγορα υιοθέτησαν στοιχεία ώστε να υποστηρίζουν δομημένο προγραμματισμό, οι δύο όροι σήμερα έχουν πρακτικώς ταυτιστεί.

Με τον καιρό οι δομημένες γλώσσες έφτασαν να μην επαρκούν για τη συγγραφή προγραμμάτων, επεκτάθηκαν και ως λύση υιοθετήθηκε ο [[αντικειμενοστρεφής προγραμματισμός]].

==Πλεονεκτήματα==
Ο δομημένος προγραμματισμός βοηθάει την ευκολότερη συγγραφή πολύπλοκων προγραμμάτων. Με το δομημένο προγραμματισμό γίνεται πιο εύκολη και ταχύτερη η διαχείριση, η συντήρηση και η [[αποσφαλμάτωση προγράμματος|αποσφαλμάτωση]], καθώς βασίζεται σε μεγαλύτερες, πολυπλοκότερες και περιεκτικότερες μονάδες όπως οι διαδικασίες αντί για μεμονωμένες εντολές.


==Παράδειγμα==
==Παράδειγμα==
Γραμμή 31: Γραμμή 38:
return k+l;
return k+l;
}
}

==Παραπομπές==
{{Παραπομπές}}


[[κατηγορία:Γλώσσες προγραμματισμού]]
[[κατηγορία:Γλώσσες προγραμματισμού]]

Έκδοση από την 21:02, 8 Σεπτεμβρίου 2008

Στην επιστήμη υπολογιστών δομημένος προγραμματισμός (structured programming) ή διαδικαστικός προγραμματισμός (procedural programming) είναι μία προσέγγιση στον προγραμματισμό[1], η οποία βασίζεται στην κλήσης διαδικασίας.

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

Ιστορική διαδρομή

Ιστορικά ο δομημένος προγραμματισμός αναπτύχθηκε ως βελτίωση του παλαιότερου διαδικαστικού προγραμματισμού. Η διαδικασία, γνωστή επίσης και ως ρουτίνα, υπορουτίνα, μέθοδος ή συνάρτηση είναι ένα αυτοτελές σύνολο εντολών προς εκτέλεση. Η έννοια της διαδικασίας βέβαια ήταν προγενέστερη αλλά δεν έπαιζε τόσο σημαντικό ρόλο στην αρχιτεκτονική των υπό συγγραφή εφαρμογών, καθώς τα δεδομένα ήταν αρκετά διαχωρισμένα από τις διαδικασίες και έπρεπε ο προγραμματιστής να θυμάται ποια διαδικασία καλούσε ποια άλλη και ποια δεδομένα διαφοροποιούνταν[1]. Καθώς όμως οι περισσότερες διαδικαστικές γλώσσες γρήγορα υιοθέτησαν στοιχεία ώστε να υποστηρίζουν δομημένο προγραμματισμό, οι δύο όροι σήμερα έχουν πρακτικώς ταυτιστεί.

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

Πλεονεκτήματα

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

Παράδειγμα

Παράδειγμα δομημένου προγραμματισμού σε γλώσσα C:

#include <stdio.h>
  int sum(int,int);
   
  int main() {
      int x,y;

      puts("Δύο ακέραιοι με κενό ενδιάμεσα:");
      scanf("%d %d",&x,&y);
      printf("Sum is %d\n", sum(x,y));

      return 0;
  }

  int sum(int k, int l) {
      return k+l;
  }

Παραπομπές

  1. 1,0 1,1 Jesse Liberty, Bradley Jones, Sams Teach Yourself C++ in 21 Days, Sams Publishing, 2004, σελ. 8, ISBN 9780672327117