Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Γλωσσάριο

Όλοι οι όροι του οδηγού, από τους πίνακες «Ορολογία» των κεφαλαίων, με τον αγγλικό όρο, σύντομο ορισμό και τα κεφάλαια όπου εμφανίζονται.

Ελληνικά English Ορισμός Κεφάλαια
bitwise τελεστής bitwise operator &, \|, ^, ~, <<, >>, bit προς bit 5
byte, οκτάδα byte, octet Ομάδα (συνήθως 8) bits σε ένα κελί μνήμης 2
camelCase / snake_case camelCase / snake_case Στυλ ονομάτων: piApprox / pi_approx. 9
include guard include guard #ifndef/#define/#endif γύρω από ένα .h. 23
lvalue / rvalue lvalue / rvalue Αριστερός (μεταβλητή) / δεξιός (τιμή) τελεστέος της ανάθεσης 4
null byte null byte / null terminator Ο χαρακτήρας '\0' (τιμή 0) που σημειώνει το τέλος ενός string. 10
null byte null byte Ο χαρακτήρας '\0' που σημαδεύει το τέλος. 14
variadic συνάρτηση variadic function συνάρτηση με μεταβλητό αριθμό ορισμάτων (...) 24
ακέραια διαίρεση integer division / μεταξύ ακεραίων, που κρατάει μόνο το πηλίκο 5
ακολουθία διαφυγής escape sequence \ και ένας χαρακτήρας, π.χ. \n 2, 3
αλγόριθμος algorithm Σαφής διαδικασία από εκτελέσιμα βήματα που τερματίζει 0
αλλαγή γραμμής newline Ο χαρακτήρας \n 0
αλφαριθμητικό μορφοποίησης format string Η πρώτη παράμετρος της printf 2, 3, 9, 10
αμφισημία ambiguity Όταν μια λέξη ή πρόταση έχει περισσότερες από μία σημασίες 0
αναδρομή recursion Μια συνάρτηση καλεί τον εαυτό της. 11
αναδρομική περίπτωση recursive case Το σημείο όπου η συνάρτηση καλεί τον εαυτό της. 11
αναδρομική σχέση recurrence Τύπος που εκφράζει τη λύση ενός προβλήματος μέσω λύσεων μικρότερων στιγμιοτύπων. 25
αναζήτηση search Εύρεση ενός στοιχείου (και της θέσης του) σε μια συλλογή. 17
αναζήτηση κατά βάθος depth-first search (DFS) Εξερεύνηση όσο πιο βαθιά γίνεται, μετά οπισθοδρόμηση. 21, 22
αναζήτηση κατά πλάτος breadth-first search (BFS) Εξερεύνηση επίπεδο-επίπεδο. 21, 22
ανάθεση assignment Αποθήκευση τιμής σε μεταβλητή (x = 42;) 2, 3
ανοχή σε σφάλματα fault tolerance Ικανότητα ενός συστήματος να λειτουργεί σωστά παρά την αποτυχία κάποιου μέρους του. 7
αντικειμενικό αρχείο object file (.o) Αποτέλεσμα μεταγλώττισης ενός .c με gcc -c. 23, 24, 26
αντιμετάθεση swap Ανταλλαγή των τιμών δύο θέσεων. 17, 18
αντιστάθμισμα χρόνου–μνήμης time–space tradeoff Ταχύτερη λύση με περισσότερη μνήμη, ή το αντίστροφο. 16
άνω όριο upper bound, Big-O $g = O(f)$: η $g$ δεν ξεπερνά τη $c \cdot f$ για μεγάλα $n$. 15
ανώνυμη δομή anonymous struct Δομή χωρίς ετικέτα, συνήθως με typedef. 19
απαρίθμηση enumeration (enum) Τύπος με ονομασμένες ακέραιες σταθερές. 20
απλά συνδεδεμένη λίστα singly linked list Αλυσίδα κόμβων, ο καθένας δείχνει στον επόμενο, ο τελευταίος στο NULL. 20
απλά συνδεδεμένη λίστα single linked list Κόμβοι όπου ο καθένας δείχνει στον επόμενο και ο τελευταίος στο NULL. 21
άπληστος αλγόριθμος greedy algorithm Αλγόριθμος που κάνει σε κάθε βήμα την τοπικά καλύτερη επιλογή χωρίς να την αναθεωρεί. 25
αποαναφορά dereference Πρόσβαση με * στη μεταβλητή όπου δείχνει ο δείκτης. 11, 12
αποθετήριο repository Φάκελος αρχείων μαζί με το ιστορικό τους 4, 7
αποθήκευση κατά γραμμές row-major order Οι γραμμές αποθηκεύονται η μία μετά την άλλη. 12
αποκλειστικό Ή XOR (^) Bit 1 όταν τα δύο bits διαφέρουν· $x \oplus x = 0$. 16
απομνημόνευση memoization Αποθήκευση αποτελεσμάτων ώστε να μην ξαναϋπολογίζονται. 16, 25
αποσφαλμάτωση debugging Εντοπισμός και διόρθωση λαθών σε πρόγραμμα 0, 24
απροσδιόριστη συμπεριφορά undefined behavior Περίπτωση όπου η C δεν ορίζει τι θα συμβεί 8, 10
αριθμητική δεικτών pointer arithmetic Το p + n δείχνει n στοιχεία (όχι bytes) μετά. 11
αρχείο file Πόρος για αποθήκευση δεδομένων, συνήθως στον δίσκο 1, 18
αρχείο επικεφαλίδας header file Αρχείο με δηλώσεις, π.χ. stdio.h 0, 15, 23, 24
αρχείο υλοποίησης implementation file (.c) Περιέχει τον κώδικα των συναρτήσεων. 23
αρχικοποίηση initialization Ανάθεση κατά τον ορισμό (int x = 42;) 2
αρχικοποίηση / βήμα initialization / step Το πρώτο και το τρίτο μέρος της for 6
αρχικοποίηση δομής struct initialization Τιμές σε { } με τη σειρά των πεδίων. 19
ατέρμονας βρόχος infinite loop Βρόχος που δεν τερματίζει ποτέ 6
αυτοαναφορά self-reference Όταν κάτι αναφέρεται στον εαυτό του. 20
αυτοαναφορική δομή self-referential struct Δομή με μέλος-δείκτη σε δομή του ίδιου τύπου. 20
αυτόματη μεταβλητή automatic variable $@, $^, $<: αλλάζουν τιμή ανά rule 26
αφαίρεση abstraction Περιγραφή του τι κάνει ένα κομμάτι, κρύβοντας το πώς. 23, 24
αφηρημένος τύπος δεδομένων abstract data type (ADT) Τύπος που ορίζεται από τις λειτουργίες του, όχι από την υλοποίηση. 21, 22
βάθος depth Ο μέγιστος αριθμός συνδέσμων από τη ρίζα ως ένα φύλλο. 20
βάθος / ύψος depth / height Μέγιστος αριθμός συνδέσμων από τη ρίζα ως τα φύλλα / από τα φύλλα ως τη ρίζα. 21, 22
βασική αιτία root cause Το αρχικό σφάλμα από το οποίο ξεκίνησε μια αποτυχία. 7
βασική περίπτωση base case Η συνθήκη όπου η αναδρομή σταματά. 11
βήμα step Η έκφραση που αλλάζει τη μεταβλητή του βρόχου στο τέλος κάθε επανάληψης της for. 7
βρόχος loop Εντολή που επαναλαμβάνει ένα σώμα 6, 7
γεμάτο δυαδικό δέντρο full binary tree Κάθε κόμβος έχει 0 ή 2 παιδιά. 22
γέμισμα padding Αχρησιμοποίητα bytes που προσθέτει ο μεταγλωττιστής. 19
γλώσσα προγραμματισμού programming language Γλώσσα χωρίς αμφισημίες για εντολές σε υπολογιστή 0
γονικός φάκελος parent folder Ο φάκελος που περιέχει έναν άλλο φάκελο. 20
γραμμές κώδικα lines of code (LOC) μετρική μεγέθους ενός προγράμματος 24
γραμμή κώδικα line of code (LOC / SLOC) Εντολές μέχρι την αλλαγή γραμμής· μετρική μεγέθους. 23
γραμμική / σειριακή αναζήτηση linear / serial search Έλεγχος των στοιχείων ένα προς ένα· $O(n)$. 17
γραμμικό πέρασμα linear pass Διάσχιση των δεδομένων μία φορά, σε χρόνο $O(n)$. 25
γραφική διεπαφή χρήστη GUI Αλληλεπίδραση με παράθυρα και ποντίκι 1
γράφος graph Κόμβοι συνδεδεμένοι με ακμές, π.χ. πόλεις και δρόμοι. 20
δεδομένα εισόδου / εξόδου input / output data Ό,τι δίνεται στο πρόγραμμα / ό,τι παράγει. 9
δεδομένο εξόδου output Ό,τι παράγει ένα πρόγραμμα όταν τελειώσει 1
δείκτης pointer Μεταβλητή που κρατά τη διεύθυνση ενός δεδομένου. 11
δείκτης σε δείκτη pointer to pointer Δείκτης που κρατά διεύθυνση δείκτη, π.χ. int **. 12
δείκτης σε κενό void * Pointer σε «κάτι»: σκέτη διεύθυνση. 13
δείκτης σε συνάρτηση function pointer μεταβλητή με τη διεύθυνση μιας συνάρτησης 24
δείχνει σε points to Ο δείκτης κρατά τη διεύθυνση της μεταβλητής. 11
δεκαεξαδικό σύστημα hexadecimal Αρίθμηση με βάση το 16 (0–9, A–F) 2
δεσμευμένη λέξη reserved keyword Λέξη της C που δεν γίνεται όνομα (int, if, …) 2, 3
δευτερεύουσα μνήμη secondary memory Μόνιμη αποθήκευση: δίσκοι, flash, DVD 2
δήλωση declaration Εισαγωγή μεταβλητής με τύπο και όνομα 2
δήλωση / ορισμός declaration / definition Ενημερώνει για τον τύπο / δεσμεύει μνήμη ή δίνει κώδικα. 23
διάγραμμα ενεργοποίησης activation record / stack frame Ο χώρος στη στοίβα για μία κλήση συνάρτησης. 13
διάγραμμα ροής flowchart Σχήμα με ρόμβους (συνθήκες) και ορθογώνια (εντολές) 6
διαίρει και βασίλευε divide and conquer Διαίρεση σε υποπροβλήματα, αναδρομική λύση, συνδυασμός. 17, 18
διαρροή μνήμης memory leak Μνήμη που δεσμεύτηκε και δεν αποδεσμεύτηκε ποτέ. 13, 25
διάσχιση traversal Επίσκεψη όλων των κόμβων με μια συγκεκριμένη σειρά. 21, 22
διαχειριστής root Χρήστης με πλήρη δικαιώματα στο σύστημα 1, 20, 22
διεπαφή interface Τι προσφέρει ένα κομμάτι του προγράμματος στα άλλα. 23, 24
διεπαφή γραμμής εντολών CLI, terminal, console Αλληλεπίδραση με εντολές κειμένου 1
διεύθυνση address Η θέση ενός κελιού (byte) στη μνήμη 2, 9, 10, 11
διπλή αποδέσμευση double free Δεύτερη free στον ίδιο pointer. 13
δισδιάστατος πίνακας two-dimensional array Πίνακας από πίνακες, a[γραμμές][στήλες]. 12
δομή / εγγραφή struct / record Συλλογή πεδίων που περιγράφουν μια οντότητα· νέος τύπος. 19
δομή δεδομένων data structure Τρόπος οργάνωσης δεδομένων στη μνήμη για αποδοτική χρήση. 10
δομημένος προγραμματισμός structured programming Προγράμματα μόνο από ακολουθία, επιλογή, επανάληψη 8
δυαδική αναζήτηση binary search Σύγκριση με το μέσο και συνέχεια στο μισό· $O(\log n)$. 17
δυαδικό δέντρο binary tree Δενδρική διάταξη κόμβων με 0 έως 2 παιδιά ο καθένας. 20, 21, 22
δυαδικό δέντρο αναζήτησης binary search tree (BST) Δέντρο με μικρότερα αριστερά και μεγαλύτερα δεξιά σε κάθε κόμβο. 21, 22
δυαδικό σύστημα binary Αρίθμηση με βάση το 2 2
δυαδικό ψηφίο bit (binary digit) Η μικρότερη μονάδα πληροφορίας: 0 ή 1 2
δυναμική βιβλιοθήκη dynamic library (.so) Βιβλιοθήκη που φορτώνεται στην εκτέλεση, π.χ. libm.so 26
δυναμικός πίνακας dynamic array Πίνακας με μέγεθος που αποφασίζεται κατά την εκτέλεση. 12, 13
δυναμικός προγραμματισμός dynamic programming Επίλυση υποπροβλημάτων από τα μικρότερα στα μεγαλύτερα, με αποθήκευση των λύσεων σε πίνακα. 25
δύο δείκτες two pointers Δύο θέσεις που κινούνται στα δεδομένα για να αποφύγουν εμφωλευμένους βρόχους. 25
εκτελέσιμο executable Αρχείο που μπορεί να τρέξει ο επεξεργαστής 0
εκτελέσιμο, δυαδικό executable, binary Το πρόγραμμα σε κώδικα μηχανής, π.χ. a.out 1
έκφραση expression Συνδυασμός τελεστών και τελεστέων με τιμή 5
εκφυλισμένο δυαδικό δέντρο degenerate binary tree Κάθε κόμβος έχει έως ένα παιδί. 22
έλεγχος εκδόσεων version control Σύστημα που κρατάει το ιστορικό όλων των αλλαγών 4
εμβέλεια scope Το μέρος του προγράμματος όπου ένα όνομα είναι ορατό. 14
εμφωλευμένες if nested if if μέσα στο σώμα άλλης if ή else 6
ενδιάμεση μνήμη buffer Όπου περιμένουν οι χαρακτήρες πριν φτάσουν στο πρόγραμμα. 9
ένθετη / εμφωλευμένη δομή nested struct Δομή που είναι πεδίο άλλης δομής. 19
ενσωματωμένος κανόνας built-in rule Rule που το Make ξέρει ήδη (π.χ. .o από .c) 26
εντολή statement Συντακτική δομή που εκτελείται 5, 6
εντολή break break statement Τερματίζει αμέσως τον βρόχο ή τη switch 8
εντολή continue continue statement Προχωρά στην επόμενη επανάληψη του βρόχου 8
εντολή goto goto statement Άλμα σε εντολή με ετικέτα στην ίδια συνάρτηση 8
εντολή switch switch statement Επιλογή περίπτωσης με βάση μια ακέραια τιμή 8
εντολή έκφρασης expression statement Μια έκφραση που τελειώνει με ; 6
ένωση union Τύπος σαν τη δομή, όπου όλα τα μέλη μοιράζονται την ίδια μνήμη. 20
εξάρτηση dependency Ένα αρχείο χρειάζεται ένα άλλο για να χτιστεί. 23, 24
έξοδος σφάλματος standard error Το ρεύμα stderr, για μηνύματα λάθους. 18
επανάληψη iteration Μία εκτέλεση του σώματος του βρόχου 6
επέκταση extension Το τέλος του ονόματος (.txt, .c) που δείχνει τον τύπο 1, 18
επεξεργαστής κειμένου editor Πρόγραμμα για τη σύνταξη του κώδικα (π.χ. vim, VS Code). 7
επιθεματικός / προθεματικός postfix / prefix a++ (παλιά τιμή) / ++a (νέα τιμή) 4
επίπεδο κόμβου node level Πόσοι κόμβοι μεσολαβούν ως τη ρίζα· η ρίζα είναι στο 1. 21, 22
επισκίαση shadowing Εσωτερική δήλωση με ίδιο όνομα κρύβει την εξωτερική. 14
ετικέτα label Όνομα με : μπροστά από εντολή, στόχος της goto 8
ετικέτα δομής struct tag Το όνομα μετά το struct, π.χ. student. 19
ευθυγράμμιση μνήμης memory alignment Διευθύνσεις πεδίων πολλαπλάσιες του 4 ή του 8. 19
θέση index Ο αριθμός (από 0) που επιλέγει ένα στοιχείο του πίνακα. 10
ισορροπημένο / εκφυλισμένο δέντρο balanced / degenerate binary tree Ύψη υποδέντρων που διαφέρουν ≤ 1 / κάθε κόμβος με ≤ 1 παιδί. 21
ισορροπημένο δυαδικό δέντρο balanced binary tree Σε κάθε κόμβο τα ύψη των υποδέντρων διαφέρουν έως 1. 22
κανόνας rule target: prerequisites μαζί με το recipe 26
κανόνας μοτίβου wildcard / pattern rule Rule με % που ορίζει οικογένεια rules 26
κανονική λειτουργία canonical mode Το τερματικό στέλνει την είσοδο ανά γραμμή. 9
κατάλογος, φάκελος directory, folder Περιέχει αρχεία και άλλους καταλόγους 1
κατάσταση ροής flow Κατάσταση πλήρους απορρόφησης και συγκέντρωσης σε μια δραστηριότητα. 7
καταχώρηση commit Αποθήκευση των αλλαγών στο τοπικό repository 4
καταχωρητής register ταχύτατη θέση αποθήκευσης μέσα στη CPU 24
κάτω όριο lower bound, $\Omega$ $g = \Omega(f)$: η $g$ είναι τουλάχιστον $c \cdot f$ για μεγάλα $n$. 15
κέλυφος shell Πρόγραμμα που τρέχει τις εντολές που πληκτρολογούμε 1
κενή εντολή empty / null statement Το σκέτο ;, που δεν κάνει τίποτα (no-op) 6
κενοί χαρακτήρες whitespace Κενά, tabs και αλλαγές γραμμής. 10
κενός δείκτης null pointer (NULL) Δείκτης με τιμή 0 που δεν δείχνει πουθενά. 11, 12, 13
κενός τύπος void Τύπος χωρίς τιμές· π.χ. συνάρτηση που δεν επιστρέφει τίποτα. 13
κεφαλή / ουρά head / tail Το πρώτο / (συνήθως) το τελευταίο στοιχείο της λίστας. 21
κινητή υποδιαστολή floating point Αναπαράσταση πραγματικών (float, double), κατά προσέγγιση. 9
κλήση κατά τιμή call by value Η συνάρτηση παίρνει αντίγραφα των ορισμάτων. 16
κλήση συνάρτησης function call Εκτέλεση της συνάρτησης με συγκεκριμένα ορίσματα 3
κόμβος node Ένα στοιχείο λίστας ή δέντρου (μια δομή). 20
κόμβος / παιδί node / child Στοιχείο του δέντρου / κόμβος ακριβώς κάτω από έναν άλλο. 22
κρεμασμένο else dangling else Αμφισημία για το σε ποια if ανήκει ένα else 6
κύρια μνήμη primary memory (RAM) Προσωρινή μνήμη με άμεση πρόσβαση από τον επεξεργαστή 2
κώδικας-μακαρονάδα spaghetti code Κώδικας με μπερδεμένη ροή, δύσκολος στην ανάγνωση 8
κωδικός εξόδου exit code Η τιμή που επιστρέφει η main· 0 = επιτυχία 1, 3
λάθος κατά ένα off-by-one error Βρόχος που κάνει μία επανάληψη παραπάνω ή λιγότερο λόγω λάθους στο όριο. 7
λειτουργικό σύστημα operating system (OS) Λογισμικό που διαχειρίζεται υλικό και πόρους και εξυπηρετεί τα προγράμματα 1
λογικός τελεστής logical operator &&, \|\|, ! 5
λογισμικό / υλικό software / hardware Τα προγράμματα / η ίδια η συσκευή 0
μακροεντολή macro Όνομα (με ή χωρίς παραμέτρους) που αντικαθίσταται με κείμενο. 15, 26
μέγεθος size Πόσα στοιχεία έχει ο πίνακας· στατικό μετά τη δήλωση. 10
μέση / χειρότερη περίπτωση average / worst case Κόστος κατά μέσο όρο / για τη χειρότερη είσοδο. 18
μεταβλητή variable Τμήμα της μνήμης με όνομα και τύπο 2
μεταβλητή-σημαία flag Μεταβλητή 0/1 που καταγράφει αν συνέβη κάτι 8, 16
μεταγλώττιση υπό συνθήκη conditional compilation Κράτημα ή αφαίρεση κώδικα με #if / #ifdef. 15
μεταγλωττιστής compiler Μετατρέπει πηγαίο κώδικα σε γλώσσα μηχανής (π.χ. gcc) 0, 1, 3, 15
μέτωπο frontier / worklist Οι κόμβοι που περιμένουν επεξεργασία στη BFS. 21, 22
μη έγκυρος δείκτης invalid pointer Δείκτης που δεν κρατά έγκυρη διεύθυνση. 11
μη προσημασμένος unsigned Ακέραιος τύπος χωρίς αρνητικές τιμές 2
μήκος λίστας list length Ο αριθμός των στοιχείων της λίστας. 20
μονάδα μετάφρασης translation unit Ένα αρχείο .c μαζί με ό,τι φέρνουν τα #include του 26
μοναδιαίος / δυαδικός / τριαδικός unary / binary / ternary Τελεστής με έναν / δύο / τρεις τελεστέους 5
μονοπάτι path Η θέση ενός αρχείου στην ιεραρχία, π.χ. /home/users 1
μονοπάτι filepath Η πλήρης θέση ενός αρχείου, π.χ. /home/…/students.txt. 18
μορφοποιητής κώδικα code formatter Εργαλείο (π.χ. clang-format) που ξαναγράφει τον κώδικα σύμφωνα με ένα στυλ. 7
Ν-αδικό δέντρο N-ary tree Δέντρο με περισσότερα από 2 παιδιά ανά κόμβο. 22
οδηγία directive Γραμμή που αρχίζει με #, π.χ. #include 1, 3
οδηγία προεπεξεργαστή preprocessor directive Γραμμή που αρχίζει με #, π.χ. #include. 15
οκταδικό σύστημα octal Αρίθμηση με βάση το 8 2
ολοκληρωμένο περιβάλλον ανάπτυξης IDE Editor με ενσωματωμένη μεταγλώττιση, τερματικό και debugger. 7
οπισθοδρόμηση backtracking Επιστροφή σε προηγούμενο κόμβο για να δοκιμαστεί άλλος κλάδος. 22
όρισμα argument Τιμή που δίνουμε σε ένα πρόγραμμα όταν το τρέχουμε 1, 3
ορίσματα γραμμής εντολών command-line arguments Οι λέξεις της κλήσης, στα argc/argv. 12
ορισμός συνάρτησης function definition Τύπος, όνομα, ορίσματα και σώμα 3
παγκόσμια / στατική μνήμη global / static memory Μνήμη για μεταβλητές που ζουν όσο το πρόγραμμα. 13, 14
παγκόσμια μεταβλητή global variable Δηλώνεται έξω από συναρτήσεις· ορατή ως το τέλος του αρχείου. 14
παλινδρομικός palindrome Που διαβάζεται ίδια και από τις δύο μεριές. 16
παραγοντικό factorial $n! = 1 \cdot 2 \cdots n$, με $0! = 1$. 11
παράμετρος εξόδου output parameter Δείκτης μέσω του οποίου η συνάρτηση γράφει ένα αποτέλεσμα. 16
παρωχημένο out of date Target που λείπει ή είναι παλαιότερο από prerequisite του 26
πεδίο / μέλος field / member Μία από τις μεταβλητές μέσα σε μια δομή. 19
πεδίο bit bit field Μέλος δομής με δηλωμένο πλήθος bits (int year : 3;). 20
περιγραφέας αρχείου file descriptor (FD) Ο ακέραιος που ταυτίζει ένα ανοιχτό αρχείο (fileno). 18
περίπτωση case Σημείο εισόδου της switch για μια σταθερά 8
πηγαίο αρχείο source file Αρχείο κειμένου με τον κώδικα, π.χ. helloworld.c 0
πηγαίος κώδικας source code Το πρόγραμμα όπως το γράφουμε, π.χ. hello.c 1
πίνακας array Σύνολο στοιχείων ίδιου τύπου σε συνεχόμενες θέσεις μνήμης, με ένα όνομα. 10
πίνακας / θέση array / index Στοιχεία ίδιου τύπου σε συνεχόμενη μνήμη / ο i στο a[i]. 12
πίνακας ASCII ASCII table Αντιστοίχιση κωδικών 0–127 σε χαρακτήρες 2
πίνακας από δείκτες array of pointers Πίνακας με στοιχεία τύπου δείκτη, π.χ. char *s[5]. 12
πίνακας εκτέλεσης trace table Πίνακας με τις τιμές των μεταβλητών σε κάθε βήμα μιας εκτέλεσης με το χέρι. 25
πλάτος πεδίου field width Ο αριθμός στο %6s: μέγιστοι χαρακτήρες που θα διαβαστούν. 18
πλήθος τελεστέων arity Μοναδιαίος (1), δυαδικός (2), τριαδικός (3) 4
πλήρες δυαδικό δέντρο complete binary tree Γεμάτα επίπεδα εκτός ίσως του τελευταίου, που γεμίζει από αριστερά. 22
πολυπλοκότητα complexity Μέτρο απόδοσης ενός αλγορίθμου ως συνάρτηση του μεγέθους του προβλήματος. 15
προαπαιτούμενο prerequisite Target από το οποίο εξαρτάται ένα άλλο target 26
πρόγραμμα program Η καταγραφή της επίλυσης ενός προβλήματος, ως σύνολο εντολών 0
προγραμματισμός programming Σαφής καθορισμός διαδικασίας που λύνει πρόβλημα υπολογισμού 0
προγραμματισμός σε ζεύγη pair programming Driver γράφει, navigator ελέγχει, αλλάζουν ρόλους 3, 4
προεπεξεργαστής preprocessor Πρώτο στάδιο του μεταγλωττιστή· μετασχηματίζει το κείμενο του κώδικα. 15
προεπιλογή default Η περίπτωση όταν δεν ταιριάζει κανένα case 8
προθεματικά αθροίσματα prefix sums Πίνακας με τα αθροίσματα των πρώτων $i$ στοιχείων, για αθροίσματα διαστημάτων σε $O(1)$. 25
προθεματικός / επιθεματικός prefix / postfix Πριν / μετά τη μεταβλητή (++a / a++) 5
προσδιοριστής const const qualifier Δηλώνει ότι μια θέση μνήμης δεν αλλάζει. 23
προσδιοριστικό μορφοποίησης format specifier % και χαρακτήρες, π.χ. %d 2, 3
προσεταιριστικότητα associativity Σειρά υπολογισμού για ίση προτεραιότητα 4, 5
προσωρινή λίστα staging area Οι αλλαγές που θα μπουν στο επόμενο commit 4
προτεραιότητα precedence Ποιος τελεστής εφαρμόζεται πρώτος 4, 5
προτροπή prompt Το user@host:dir$ πριν από κάθε εντολή 1
πρότυπη είσοδος standard input (stdin) Η προεπιλεγμένη είσοδος, συνήθως το πληκτρολόγιο. 9
πρότυπη είσοδος / έξοδος standard input / output Τα ρεύματα stdin / stdout του προγράμματος. 18
πρωτότυπο συνάρτησης function prototype Όνομα, τύπος επιστροφής και ορίσματα, χωρίς σώμα. 23, 24
πτώση fall-through Συνέχιση στο επόμενο case όταν λείπει το break 8
πυρήνας kernel Το κεντρικό μέρος του OS, που μιλάει με το υλικό 1
ρεύμα stream Ένα ανοιχτό αρχείο, ως FILE *. 18
ρίζα root directory Ο κατάλογος /, κορυφή της ιεραρχίας 1
ρίζα / φύλλο root / leaf Ο πρώτος κόμβος / κόμβος χωρίς παιδιά. 21
ροή ελέγχου control flow Η σειρά εκτέλεσης των εντολών 5, 6
σειρά bytes endianness Η σειρά αποθήκευσης των bytes ενός ακεραίου. 12, 13
σειριακή αναζήτηση linear search Έλεγχος των στοιχείων ένα-ένα μέχρι να βρεθεί το ζητούμενο. 10
σιωπηρή μετατροπή implicit type conversion Αυτόματη μετατροπή στον «μεγαλύτερο» τύπο 4, 5
σταθερά απαρίθμησης enumeration constant Ένα από τα ονόματα μιας απαρίθμησης, π.χ. Mon. 20
σταθερή / λογαριθμική / γραμμική constant / logarithmic / linear $O(1)$ / $O(\log n)$ / $O(n)$. 15
σταθερή συμβολοσειρά string literal Κείμενο σε εισαγωγικά μέσα στον κώδικα. 14
στατική μεταβλητή static variable Κρατά την τιμή της ανάμεσα σε κλήσεις, ως το τέλος του προγράμματος. 14
στοίβα stack Συνεχόμενη μνήμη LIFO για τοπικές μεταβλητές και ορίσματα. 13
στοιχείο διαμέρισης pivot element Το στοιχείο γύρω από το οποίο γίνεται η διαμέριση. 17, 18
στοίχιση indentation Τα κενά στην αρχή κάθε γραμμής που δείχνουν το επίπεδο εμφώλευσης. 7
στόχος target Ό,τι μπορεί να παραχθεί, συνήθως ένα αρχείο 26
συγκριτικός τελεστής comparison / relational operator ==, !=, <, >, <=, >= 5
συγχώνευση merge Ένωση δύο ταξινομημένων ακολουθιών σε μία ταξινομημένη. 17, 18
συμβόλαιο contract Εγγύηση που δίνει η δήλωση μιας συνάρτησης στους χρήστες της. 23, 24
σύμβολο symbol Όνομα συνάρτησης ή μεταβλητής σε αρχείο αντικειμένου. 14
συμβολοσειρά string Κείμενο ανάμεσα σε διπλά εισαγωγικά, π.χ. "Hello world\n" 0, 10, 14
συμπλήρωμα ως προς 2 two’s complement Αναπαράσταση αρνητικών: flip όλα τα bits και +1 2
συνάρτηση function Υπολογισμός από εισόδους σε έξοδο, με όνομα 3
σύνδεση linking Ένωση αντικειμενικών αρχείων σε εκτελέσιμο. 23, 24
συνδέτης linker Ενώνει αντικειμενικά αρχεία και βιβλιοθήκες σε εκτελέσιμο 0, 3, 26
συνδυαστικός τελεστής ανάθεσης compound assignment +=, -=, … 5
συνένωση concatenation Προσάρτηση ενός string στο τέλος άλλου. 14
σύνθετη εντολή compound statement / block Εντολές μέσα σε { }, που μετράνε ως μία 6
σύνολο ορισμού / τιμών domain / co-domain Τα σύνολα εισόδων και εξόδων 3
συνταγή recipe Οι εντολές shell που φτιάχνουν ένα target 26
συνώνυμο τύπου typedef Νέο όνομα για υπάρχοντα τύπο. 19
συσσωρευτής accumulator Μεταβλητή που μαζεύει ένα αποτέλεσμα (άθροισμα, γινόμενο) κατά τη διάρκεια ενός βρόχου. 7
σύστημα κατασκευής build system Εργαλείο που αυτοματοποιεί το χτίσιμο ενός project 26
σφάλμα κατάτμησης segmentation fault Τερματισμός από πρόσβαση σε μη επιτρεπτή μνήμη. 11
σφάλμα σύνδεσης linking error Ο linker δεν βρίσκει υλοποίηση συμβόλου (undefined reference) 26
σχόλιο comment Κείμενο μέσα σε /* */ που αγνοεί ο μεταγλωττιστής 0, 1, 7
σωρός heap Η περιοχή μνήμης από την οποία δεσμεύει η malloc. 12, 13
τάξη μεγέθους order of growth, $\Theta$ Ισχύουν ταυτόχρονα $O$ και $\Omega$. 15
ταξινομημένη ακολουθία sorted sequence $a_i \leq_\alpha a_j$ για κάθε $i \leq j$. 17
ταξινόμηση sorting Αναδιάταξη μιας ακολουθίας ώστε να γίνει ταξινομημένη. 17, 18
ταξινόμηση εισαγωγής insertion sort Εισάγει κάθε στοιχείο σε ταξινομημένο πρόθεμα. 17
ταξινόμηση επιλογής selection sort Φέρνει κάθε φορά το ελάχιστο του υπολοίπου μπροστά. 17
ταξινόμηση συγχώνευσης merge sort Ταξινομεί τα δύο μισά και τα συγχωνεύει. 17
ταξινόμηση φυσαλίδας bubblesort Αντιμεταθέτει γειτονικά στοιχεία σε λάθος σειρά. 17
ταχυταξινόμηση quicksort Διαμερίζει γύρω από ένα pivot και ταξινομεί τα δύο μέρη. 17
τεκμηρίωση documentation Ονόματα, σχόλια και README που κάνουν ένα πρόγραμμα κατανοητό. 7
τέλειο / γεμάτο / πλήρες δέντρο perfect / full / complete binary tree Βλ. «Τύποι δυαδικών δέντρων». 21
τέλειο δυαδικό δέντρο perfect binary tree Όλοι οι εσωτερικοί κόμβοι με 2 παιδιά, όλα τα φύλλα στο ίδιο επίπεδο. 22
τελεστέος operand Μεταβλητή ή σταθερά πάνω στην οποία δουλεύει ο τελεστής 4, 5
τελεστής operator Σύμβολο που κάνει υπολογισμό και επιστρέφει τιμή 4, 5
τελεστής ανάθεσης assignment operator =· αναθέτει και επιστρέφει την τιμή 4, 5
τελεστής αύξησης / μείωσης increment / decrement operator ++ / -- 5
τελεστής βέλους arrow operator (->) ptr->f ισοδυναμεί με (*ptr).f. 19
τελεστής μετατροπής cast operator (τύπος)τελεστέος, ρητή μετατροπή τύπου 4, 5
τελεστής παράθεσης comma operator a, b: υπολογίζει το a, επιστρέφει το b 4, 5
τελεστής συνθήκης conditional operator σ ? α : β, ο μόνος τριαδικός τελεστής 5
τέλος αρχείου End-Of-File (EOF) Τιμή (-1) που δηλώνει ότι δεν υπάρχει άλλη είσοδος. 9, 10
τετραγωνική / εκθετική quadratic / exponential $O(n^2)$ / $O(2^n)$. 15
τιμή επιστροφής return value Η τιμή που δίνει πίσω μια συνάρτηση. 9
τοπική μεταβλητή local variable Δηλώνεται σε συνάρτηση· ορατή ως το τέλος του block. 14
τρέχων / γονικός κατάλογος current / parent directory . και .. 1
τυπική έξοδος standard output (stdout) Το αρχείο όπου γράφει η printf 2, 9
τύπος type Πόση μνήμη πιάνει μια τιμή και πώς ερμηνεύεται 2, 3
τύπος ορισμένος από τον χρήστη user-defined type Τύπος που ορίζει το πρόγραμμα, όπως μια δομή. 19
υλικό hardware Οι φυσικές συσκευές του υπολογιστή 1
υπερχείλιση overflow Αποτέλεσμα που δεν χωράει στον τύπο της μεταβλητής 8, 11
υπερχείλιση / υποχείλιση overflow / underflow Πρόσβαση μετά το τέλος / πριν την αρχή ενός πίνακα. 10
υπερχείλιση buffer buffer overflow Εγγραφή πέρα από το τέλος ενός πίνακα. 14
υπερχείλιση ακεραίων integer overflow Αποτέλεσμα που δεν χωράει στον τύπο του 2, 3
υπερχείλιση στοίβας stack overflow Η στοίβα ξεπερνά το όριό της, π.χ. από ατέρμονη αναδρομή. 13
υποδέντρο subtree Ένα παιδί μαζί με όλους τους απογόνους του. 22
υποεντολή subcommand Λέξη στο argv[1] που επιλέγει τι θα κάνει το πρόγραμμα. 16
υπολογιστής computer Κατασκευή που επεξεργάζεται δεδομένα και παράγει αποτελέσματα 0
φύλλο leaf Κόμβος χωρίς παιδιά. 20, 22
χειρότερη / μέση περίπτωση worst / average case Κόστος για τη δυσκολότερη / κατά μέσο όρο είσοδο. 17
χειρότερη περίπτωση worst case Η είσοδος που κάνει τον αλγόριθμο να δουλέψει περισσότερο. 16
χρήση μετά την αποδέσμευση use after free Πρόσβαση σε μνήμη μετά την free της. 13
χρονική / χωρική πολυπλοκότητα time / space complexity Πώς αυξάνεται ο χρόνος / η μνήμη με το $n$. 15
χρονική πολυπλοκότητα time complexity Πώς αυξάνονται τα βήματα με το μέγεθος της εισόδου. 16
χρόνος ζωής lifetime Το διάστημα της εκτέλεσης όπου υπάρχει η μεταβλητή. 14
χωρική πολυπλοκότητα space complexity Πόση επιπλέον μνήμη χρειάζεται σε σχέση με την είσοδο. 16