Οι υπολογιστές και ο προγραμματισμός τους

Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr

Καλώς ήρθατε

Σχεδιασμός και υλοποίηση λογισμικού

Τι περιλαμβάνει το μάθημα

  1. Οι υπολογιστές και ο προγραμματισμός τους
  2. Η γλώσσα C, το πρώτο πρόγραμμα
  3. Υπολογισμοί με μεταβλητές, είσοδος και έξοδος
  4. Τελεστές σύγκρισης, λογικής και επαναλήψεις
  5. Προγραμματισμός με χαρακτήρες, αποφάσεις
  6. Πρόσθετες δομές ελέγχου: switch for break continue
  7. Ορισμός συναρτήσεων
  8. Παράδειγμα: μορφοποίηση προγραμμάτων
  9. Πίνακες
  10. Οργάνωση δεδομένων: δομές, ενώσεις, απαριθμήσεις, τύποι
  11. Δείκτες και δυναμικές δομές δεδομένων
  12. Προσδιορισμός απαιτήσεων, ανάλυση και σχεδίαση
  13. Οργάνωση προγραμμάτων: σχεδιασμός σε τμήματα αφηρημένοι τύποι δεδομένων
  14. Συμβολοσειρές
  15. Η πρότυπη βιβλιοθήκη
  16. Ανασκόπηση - επανάληψη

Τρόπος διδασκαλίας

Οι σημειώσεις

Υλικό και λογισμικό

Ιστορική ανασκόπηση

Χαρακτηριστικές αλγοριθμικές γλώσσες

Σε μια αλγοριθμική (imperative) γλώσσα το πρόγραμμα εκφράζει άμεσα τα βήματα που επιθυμούμε να εκτελέσει ο υπολογιστής.

Χαρακτηριστικές δηλωτικές γλώσσες

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

Γλώσσες βασισμένες στη λογική

Γλώσσες βασισμένες σε συναρτήσεις

Βασικά γλωσσικά εργαλεία

Προετοιμαστής/Διορθωτής (Editor)
Επιτρέπει τη συγγραφή και την αλλαγή του προγράμματος.
Προεπεξεργαστής (Preprocessor)
Επεξεργάζεται το πρόγραμμα εκτελώντας απλούς συμβολικούς μετασχηματισμούς και παράγει ένα αντίστοιχο πρόγραμμα. Χρησιμοποιείται σε συμβολικές γλώσσες, τη Fortran (Ratfor), τη C, και τη C++.
Συμβολομεταφραστής (Assembler)
Μετατρέπει τη συμβολική γλώσσα του επεξεργαστή σε γλώσσα μηχανής.
Μεταγλωττιστής (Compiler)
Μεταφράζει μια γλώσσα υψηλού επιπέδου σε γλώσσα επιπέδου μηχανής.
Διερμηνευτής (Interpreter)
Εκτελεί άμεσα ένα πρόγραμμα σε γλώσσα υψηλού επιπέδου.
Συνδέτης (Linker)
Συρράφει τμήματα ενός προγράμματος που έχουν μεταγλωττιστεί ξεχωριστά σε ένα συνεχές πρόγραμμα.
Φορτωτής (Loader)
Φορτώνει το πρόγραμμα στη μνήμη του επεξεργαστή διορθώνοντας αναφορές σε σχετικές θέσεις μνήμης. Συνήθως τμήμα του λειτουργικού συστήματος.
Αποσφαλματωτής (Debuger)
Επιτρέπει την εκτέλεση του προγράμματος βήμα-βήμα, την εξέταση και αλλαγή μεταβλητών του και γενικά ενέργειες που αποσκοπούν στην ανίχνευση λαθών που μπορεί να περιέχει το πρόγραμμα.

Η διεργασία του προγραμματισμού

Βιβλιογραφία

Ασκήσεις

Εξοικείωση με τον υπολογιστή και το διορθωτή

  1. Σχεδιάστε με το διορθωτή του περιβάλλοντος της C και με τη χρήση των συμβόλων του πληκτρολογίου ένα χαμογελαστό πρόσωπο όπως για παράδειγμα το παρακάτω:
                      -----------------
                    /                   \
                    |                   |
                    |    O         O    |
                    |                   |
                    |                   |
                    |        II         |
                    |    \        /     |
                    |     \------/      |
                    |                   |
    	        \                  /
                      -----------------