Κεφάλαιο 3

Cards (48)

  • Ρόλος διαφορετικών προσεγγίσεων στη λύση προβλημάτων
    Η λύση σε ένα πρόβλημα μπορεί να προέλθει από ποικίλες και διαφορετικές προσεγγίσεις, τεχνικές και μεθόδους. Είναι απαραίτητη μία καλή ανάλυση του κάθε προβλήματος και η πρόταση συγκεκριμένης μεθοδολογίας και ακολουθίας βημάτων. Βασικός στόχος είναι η πρόταση έξυπνων και αποδοτικών λύσεων.
  • Ανάλυση προβλήματος σε υπολογιστικό περιβάλλον
    1. Καταγραφή υπάρχουσας πληροφορίας
    2. Αναγνώριση ιδιαιτεροτήτων προβλήματος
    3. Αποτύπωση συνθηκών και προϋποθέσεων υλοποίησης
    4. Πρόταση επίλυσης με χρήση μεθόδου
    5. Τελική επίλυση με χρήση υπολογιστικών συστημάτων
  • Σημασία ανάλυσης προβλήματος
    Αναζήτηση της πλέον κατάλληλης μεθόδου που παρέχει τη ζητούμενη λύση, όσο γίνεται ταχύτερα και με το λιγότερο δυνατό κόστος σε υπολογιστικούς πόρους
  • Μέθοδοι ανάλυσης και επίλυσης προβλημάτων
    • Παρέχουν ένα γενικό πρότυπο κατάλληλο για την επίλυση προβλημάτων ευρείας κλίμακας
    • Μπορούν να αναπαρασταθούν με κοινές δομές δεδομένων και ελέγχου
    • Παρέχουν τη δυνατότητα καταγραφής των χρονικών και "χωρικών" απαιτήσεων της μεθόδου επίλυσης
  • Στάδια επίλυσης προβλήματος με υπολογιστή
    1. Ακριβής προσδιορισμός προβλήματος
    2. Ανάπτυξη αντίστοιχου αλγορίθμου
    3. Διατύπωση αλγορίθμου σε κατανοητή μορφή από υπολογιστή
  • Προγραμματισμός
    Διατύπωση αλγορίθμων σε μορφή που μπορεί να υλοποιηθεί από υπολογιστή, δηλαδή δημιουργία προγράμματος
  • Γλώσσες προγραμματισμού αναπτύχθηκαν για επικοινωνία ανθρώπου (προγραμματιστή) με μηχανή (υπολογιστή)
  • Ενέργειες που εκτελεί ο υπολογιστής
    Αποθηκεύει στη μνήμη ακολουθίες δυαδικών ψηφίων, τις ανακτά, κάνει στοιχειώδεις αριθμητικές πράξεις και τις συγκρίνει
  • Στοιχεία που προσδιορίζουν μία γλώσσα
    • Αλφάβητο
    • Λεξιλόγιο
    • Γραμματική
    • Σημασιολογία
  • Αλφάβητο γλώσσας
    Σύνολο στοιχείων που χρησιμοποιείται από τη γλώσσα
  • Λεξιλόγιο γλώσσας
    Υποσύνολο ακολουθιών που δημιουργούνται από τα στοιχεία του αλφαβήτου (λέξεις) που είναι δεκτές από τη γλώσσα
  • Γραμματική γλώσσας

    Τυπικό (κανόνες μορφών αποδεκτών λέξεων) και Συντακτικό (κανόνες νομιμότητας διάταξης και σύνδεσης λέξεων για δημιουργία προτάσεων)
  • Σημασιολογία γλώσσας
    Σύνολο κανόνων που καθορίζει το νόημα των λέξεων και των εκφράσεων και προτάσεων
  • Διαφορές φυσικών και τεχνητών γλωσσών
    Φυσικές γλώσσες εξελίσσονται συνεχώς, τεχνητές γλώσσες χαρακτηρίζονται από στασιμότητα
  • Γλώσσες προγραμματισμού βελτιώνονται και μεταβάλλονται από τους δημιουργούς τους, για διόρθωση αδυναμιών, κάλυψη μεγαλύτερου εύρους εφαρμογών ή ακολούθηση νέων εξελίξεων
  • Ιεραρχική σχεδίαση
    Σχεδίαση "από επάνω προς τα κάτω" (top-down), λύση γενικού προβλήματος με συνεχή διάσπαση σε κατώτερα επίπεδα
  • Φυσικές γλώσσες
    Χαρακτηρίζονται από ρίγυρο
  • Τεχνητές γλώσσες
    Χαρακτηρίζονται από στασιμότητα, καθώς κατασκευάζονται συνειδητά για ένα συγκεκριμένο σκοπό
  • Οι γλώσσες προγραμματισμού βελτιώνονται και μεταβάλλονται από τους δημιουργούς τους, με σκοπό να διορθωθούν αδυναμίες ή να καλύψουν μεγαλύτερο εύρος εφαρμογών ή να ακολουθήσουν τις νέες εξελίξεις
  • Αλλαγές σε γλώσσες προγραμματισμού
    • Σε επίπεδο διαλέκτου (π.χ. GW-Basic και QuickBasic)
    • Σε επίπεδο επέκτασης (π.χ. Basic και Visual Basic)
  • Ιεραρχική σχεδίαση

    Σχεδίαση από επάνω προς τα κάτω, όπου λύνουμε το γενικό πρόβλημα με συνεχή διάσπαση σε κατώτερα επίπεδα
  • Ιεραρχική σχεδίαση
    1. Καθορισμός βασικών λειτουργιών προγράμματος σε ανώτερο επίπεδο
    2. Διάσπαση λειτουργιών σε όλο και μικρότερες λειτουργίες
    3. Επίλυση απλών λειτουργιών στο τελευταίο επίπεδο
  • Σκοπός ιεραρχικής σχεδίασης
    Διάσπαση προβλήματος σε απλούστερα υποπροβλήματα που είναι εύκολο να επιλυθούν, οδηγώντας στην επίλυση του αρχικού προβλήματος
  • Τμηματικός προγραμματισμός
    Τεχνική σχεδίασης και ανάπτυξης προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα προγραμμάτων, υλοποιώντας την ιεραρχική σχεδίαση
  • Τμηματικός προγραμματισμός
    • Μετά την ανάλυση του προβλήματος σε υποπροβλήματα, κάθε υποπρόβλημα αποτελεί ανεξάρτητη ενότητα (module) που γράφεται ξεχωριστά
  • Πλεονεκτήματα τμηματικού προγραμματισμού
    • Διευκόλυνση δημιουργίας προγράμματος
    • Μείωση λαθών
    • Ευκολότερη παρακολούθηση, κατανόηση και συντήρηση από τρίτους
  • Δομημένος προγραμματισμός
    Μεθοδολογία σύνταξης και ανάπτυξης προγραμμάτων που περιέχει την ιεραρχική σχεδίαση και τον τμηματικό προγραμματισμό, χρησιμοποιεί τις δομές ακολουθίας, επιλογής και επανάληψης αλλά όχι το goto
  • Σκοπός δομημένου προγραμματισμού
    Να βοηθήσει τον προγραμματιστή στην ανάπτυξη σύνθετων προγραμμάτων, να μειώσει τα λάθη, να εξασφαλίσει την εύκολη κατανόηση και να διευκολύνει τις διορθώσεις και αλλαγές
  • Η εντολή goto που αλλάζει τη ροή εκτέλεσης ενός προγράμματος δεν χρειάζεται στο δομημένο προγραμματισμό και είναι περιττή
  • Πλεονεκτήματα δομημένου προγραμματισμού
    • Δημιουργία απλούστερων προγραμμάτων
    • Άμεση μεταφορά αλγορίθμων σε προγράμματα
    • Διευκόλυνση ανάλυσης προγράμματος σε τμήματα
    • Περιορισμός λαθών κατά την ανάπτυξη
    • Διευκόλυνση ανάγνωσης και κατανόησης από τρίτους
    • Ευκολότερη διόρθωση και συντήρηση
  • Μεταγλωττιστής
    Δέχεται πρόγραμμα σε γλώσσα υψηλού επιπέδου και παράγει ισοδύναμο πρόγραμμα σε γλώσσα μηχανής, το οποίο μπορεί να εκτελεστεί ανεξάρτητα από το αρχικό
  • Διερμηνευτής
    Διαβάζει μία προς μία τις εντολές του αρχικού προγράμματος και εκτελεί αμέσως μια ισοδύναμη ακολουθία εντολών μηχανής
  • Πλεονεκτήματα-μειονεκτήματα μεταγλωττιστή και διερμηνευτή
    • Μεταγλωττιστής: Πιο γρήγορη εκτέλεση προγράμματος, μειονέκτημα ότι απαιτείται μεταγλώττιση και σύνδεση πριν την εκτέλεση
    • Διερμηνευτής: Πιο γρήγορη υλοποίηση, πλεονέκτημα άμεσης εκτέλεσης και διόρθωσης
  • Στάδια μεταγλώττισης και σύνδεσης
    1. Αρχικό πρόγραμμα (πηγαίο)
    2. Μεταγλώττιση σε αντικείμενο πρόγραμμα
    3. Σύνδεση αντικειμένου προγράμματος με βιβλιοθήκες για εκτέλεση
  • Μετάφραση και εκτέλεση προγράμματος σε διερμηνευτή
    1. Ο διερμηνευτής διαβάζει μία προς μία τις εντολές του αρχικού προγράμματος
    2. Για κάθε εντολή εκτελεί αμέσως μια ισοδύναμη ακολουθία εντολών μηχανής
  • Δημιουργία εκτελέσιμου προγράμματος
    1. Αρχικό πρόγραμμα (πηγαίο πρόγραμμα)
    2. Μεταγλωττιστής παράγει αντικείμενο πρόγραμμα
    3. Συνδέτης-φορτωτής παράγει εκτελέσιμο πρόγραμμα
  • Πηγαίο πρόγραμμα
    Το αρχικό πρόγραμμα
  • Αντικείμενο πρόγραμμα
    Το πρόγραμμα που παράγεται από το μεταγλωττιστή, σε μορφή κατανοητή από τον υπολογιστή αλλά συνήθως δεν είναι σε θέση να εκτελεστεί
  • Εκτελέσιμο πρόγραμμα

    Το τελικό πρόγραμμα που εκτελείται από τον υπολογιστή
  • Συντάκτης
    Ένας μικρός επεξεργαστής κειμένου που διευκολύνει τη γρήγορη γραφή και διόρθωση των εντολών των προγραμμάτων