You are on page 1of 36

Λογισµικό (Software – SW)

Γλώσσες
Προγραµµατισµού
Οι γενιές των γλωσσών προγραµµατισµού

Προβλήµατα που επιλύονται σε ένα Προβλήµατα που επιλύονται σε ένα


περιβάλλον στο οποίο ο άνθρωπος περιβάλλον στο οποίο η µηχανή
πρέπει να προσαρµόζεται στα πρέπει να προσαρµόζεται στα
χαρακτηριστικά της µηχανής χαρακτηριστικά του ανθρώπου

Γενιές
Η εξέλιξη των υποδειγµάτων προγραµµατισµού
(programming paradigms)
Μία συνάρτηση
(function) που
υπολογίζει το
µέσο όρο µιας
σειράς αριθµών
και η οποία έχει
κατασκευαστεί
από τις
απλούστερες
συναρτήσεις
Sum, Count, και
Divide
Η σύνθεση ενός τυπικού προστακτικού
προγράµµατος (imperative program) ή µονάδας
προγράµµατος (program unit)

Πρόγραµµα

Το πρώτο µέρος αποτελείται από


γραµµές δηλώσεων που
περιγράφουν τα δεδοµένα που
χειρίζεται το πρόγραµµα.

Το δεύτερο µέρος αποτελείται


από γραµµές εντολών που
περιγράφουν την ενέργεια που
πρέπει να εκτελεστεί.
Οι ίδιες δηλώσεις µεταβλητών σε διαφορετικές
γλώσσες
α. ∆ηλώσεις µεταβλητών σε Pascal

β. ∆ηλώσεις µεταβλητών σε C, C++, C#, και Java

γ. ∆ηλώσεις µεταβλητών σε FORTRAN


Ενας πίνακας δύο διαστάσεων µε δύο γραµµές και
εννέα στήλες

Scores (2,4) σε Scores [1][3] σε C και


FORTRAN όπου οι στις παράγωγες αυτής
δείκτες αρχίζουν από όπου οι δείκτες αρχίζουν
το ένα. από το µηδέν.
∆ήλωση ετερογενών πινάκων σε Pascal και C
(συνεχίζεται)
α. Η δήλωση πίνακα σε Pascal

β. Η δήλωση πίνακα σε C
∆ήλωση ετερογενών πινάκων σε Pascal και C

γ. Η εννοιολογική οργάνωση του πίνακα


∆οµές ελέγχου
και η
αναπαράστασή
τους σε C,
C++, C#, και
Java
(συνεχίζεται)
∆οµές ελέγχου και η αναπαράστασή τους σε C,
C++, C#, και Java
Η δοµή for loop και η αναπαράστασή της σε
Pascal, C++, C#, και Java (συνεχίζεται)
Η δοµή for loop και η αναπαράστασή της σε
Pascal, C++, C#, και Java
Η ροή ελέγχου που εµπλέκεται σε µία διαδικασία
(procedure)

Ο έλεγχος
µεταφέρεται
στην
procedure.
Το calling program Η procedure
unit απαιτεί µία εκτελείται.
procedure.

Το calling program
unit συνεχίζει.

Ο έλεγχος επιστρέφει στο


περιβάλλον που έκανε
την κλήση όταν η
procedure ολοκληρωθεί.
Η procedure Project Population γραµµένη σε γλώσσα
προγραµµατισµού C
Αρχίζοντας µε τον όρο “void” Η λίστα των τυπικών παραµέτρων.
είναι ο τρόπος µε τον οποίο Η C όπως και πολλές άλλες
ένας προγραµµατιστής C γλώσσες προγραµµατισµού,
προσδιορίζει ότι το πρόγραµµα απαιτεί τον τύπο των δεδοµένων
είναι µία procedure παρά µία κάθε παραµέτρου να
function. προσδιοριστεί.

∆ήλωση µίας τοπικής


µεταβλητής µε το όνοµα Year.

Οι γραµµές αυτές περιγράφουν τον τρόπο


µε τον οποίο πρέπει να υπολογιστούν οι
πληθυσµοί και να αποθηκευτούν σε έναν
καθολικό πίνακα (global array) µε το όνοµα
Population.
Εκτελώντας την procedure Demo και περνώντας
παραµέτρους τιµής (parameters by value) (συνεχίζεται)

α. Οταν καλείται η procedure, ένα αντίγραφο των δεδοµένων


δίδεται στην procedure

Το περιβάλλον που καλεί Το περιβάλλον της procedure


Εκτελώντας την procedure Demo και περνώντας
παραµέτρους τιµής (parameters by value) (συνεχίζεται)

β. και η procedure χειρίζεται το αντίγραφό της.

Το περιβάλλον που καλεί Το περιβάλλον της procedure


Εκτελώντας την procedure Demo και περνώντας
παραµέτρους τιµής (parameters by value)

γ. Με τον τρόπο αυτό, όταν η procedure έχει τερµατίσει, το


περιβάλλον που καλεί δεν έχει αλλάξει.

Το περιβάλλον που καλεί


Εκτελώντας την procedure Demo και περνώντας
παραµέτρους αναφοράς (parameters by reference)
(συνεχίζεται)

α. Οταν η procedure καλείται, η formal παράµετρος γίνεται µία


αναφορά στην actual παράµετρο.

Το περιβάλλον που καλεί Το περιβάλλον της procedure


Εκτελώντας την procedure Demo και περνώντας
παραµέτρους αναφοράς (parameters by reference)
(συνεχίζεται)

β. Με τον τρόπο αυτό, αλλαγές που κατευθύνονται από την


procedure γίνονται στην actual παράµετρο

Το περιβάλλον που καλεί Το περιβάλλον της procedure


Εκτελώντας την procedure Demo και περνώντας
παραµέτρους αναφοράς (parameters by reference)

γ. και για το λόγο αυτό διατηρούνται µετά τον τερµατισµό της


procedure.

Το περιβάλλον που καλεί


Η function CylinderVolume γραµµένη σε γλώσσα
προγραµµατισµού C
Η κεφαλίδα της function αρχίζει µε
τον τύπο δεδοµένων που θα
επιστραφεί.

∆ήλωση µιας τοπικής


µεταβλητής (local variable)
µε το όνοµα Volume.

Υπολόγισε τον όγκο του


κυλίνδρου.

Τερµάτισε τη function και


επίστρεψε την τιµή της
µεταβλητής Volume.
Ενα παράδειγµα µορφοποιηµένης εξόδου
(formatted output)

Εισήγαγε κατάλληλη τιµή, 16


Εισήγαγε κατάλληλη τιµή, 25

Εντολή

Πρώτη Αρχισε
γραµµή νέα
γραµµή

Τελική έξοδος ∆εύτερη


στην οθόνη γραµµή
Η διαδικασία της µετάφρασης
Ενα διάγραµµα σύνταξης του γνωστού if-then-else
ως εντολή ψευδοκώδικα
∆ιαγράµµατα
σύνταξης που
περιγράφουν
τη δοµή µιας
απλής
αλγεβραϊκής
έκφρασης
Το parse tree
για το string
x+y×z
βασισµένο
στα
προηγούµενα
διαγράµµατα
σύνταξης
∆ύο διακριτά parse trees για το statement
if B1 then if B2 then S1 else S2 (συνεχίζεται)
∆ύο διακριτά parse trees για το statement
if B1 then if B2 then S1 else S2
Μία αντικειµενοστραφής προσέγγιση (object-
oriented approach) για τη διαδικασία της
µετάφρασης
Η ολοκληρωµένη διαδικασία προετοιµασίας του
προγράµµατος
Η δοµή µιας κλάσης (class) που περιγράφει ένα
όπλο µε laser σε ένα παιχνίδι υπολογιστή

Περιγραφή των δεδοµένων που


θα ανήκουν µέσα σε κάθε ένα
αντικείµενο αυτού του τύπου.

Μέθοδοι που περιγράφουν τον


τρόπο µε τον οποίο ένα
αντικείµενο αυτού του «τύπου»
θα πρέπει να ανταποκρίνεται
σε διάφορα µηνύµατα.
Μία κλάση (class) µε έναν κατασκευαστή
(constructor)
Ο constructor εκχωρεί µία τιµή
στη RemainingPower όταν ένα
αντικείµενο δηµιουργείται.
Ο ορισµός για το LaserClass χρησιµοποιώντας
encapsulation όπως θα εµφανιζόταν σε ένα
πρόγραµµα Java ή C#

Τα µέρη (components)
σε µία κλάση ορίζονται
ως δηµόσια (public) ή
ιδιωτικά (private)
ανάλογα µε το αν θα
πρέπει να είναι
προσβάσιµα από άλλες
µονάδες προγράµµατος.
Επιλύοντας τα statements (P OR Q) και
(R OR ¬ Q) για την παραγωγή του (P OR R)
Επιλύοντας τα statements (P OR Q),(R OR ¬Q),
¬R, και ¬P

You might also like