Απεβίωσε ο Niklaus Wirth, ο δημιουργός της γλώσσας προγραμματισμού Pascal

  • Fotis_KFOR
  • Το Άβαταρ του/της Fotis_KFOR Συντάκτης θέματος
  • Site Owner / Admin
  • Site Owner / Admin
  • PC / Sinclair ZX Spectrum+3
Περισσότερα
08/01/2024 18:40 #48904 από Fotis_KFOR


Ο καθηγητής Niklaus Emil Wirth, απεβίωσε ανήμερα της πρωτοχρονιάς του 2024 σε ηλικία 89 ετών.

Είχε γεννηθεί στις 15 Φεβρουαρίου του 1934 στην Ελβετία. Ήταν πανεπιστημιακός καθηγητής ηλεκτρονικών υπολογιστών και μεταξύ πολλών άλλων καινοτομιών, θεωρείται ο πατέρας της πάρα πολύ καλής γλώσσας προγραμματισμού Pascal που διαμόρφωσε πολλά πράγματα στον προγραμματισμό των ηλεκτρονικών υπολογιστών και η οποία είχε γίνει η προτιμώμενη γλώσσα διδασκαλίας σε πολλά πανεπιστήμια για πάρα πολλά χρόνια.

Ο Wirth εκτός της Pascal, σχεδίασε και άλλες γλώσσες προγραμματισμού όπως την Algol, την Modula, την Modula 2, την Euler, την PL360 και την Oberon. Εργάστηκε 4 χρόνια, από το 1963 μέχρι το 1967 ως βοηθός καθηγητή στο Πανεπιστήμιο Stanford και πήρε την έδρα πληροφορικής στο Ελβετικό Ομοσμονδιακό Τεχνολογικό Ινστιτούτο της Ζυρίχης. Έγινε ευρέως γνωστός από την διάσημη εξίσωση που διατύπωσε η οποία μάλιστα ήταν και ο τίτλος του ομώνυμου βιβλίου του : "Algorithms + Data Structures = Programs".

Ο Wirth έχει λάβει πολλά βραβεία για τη συνισφορά του στο χώρο της επιστήμης των υπολογιστών, μεταξύ αυτών και το βραβείο Turing το 1984 που είναι η ανώτερη διάκριση στην επιστήμη των υπολογιστών.

Ακόμα και ο αστεροειδής 21655 έχει πάρει το όνομά του (21655 Niklauswirth asteroid)!

Το έργο που πρόσφερε στην επιστήμη των υπολογιστών είναι τεράστιο και έχει τον απεριόριστο σεβασμό μας!

www.retrocomputers.gr/2012-04-19-12-21-0...ersons/niklaus-wirth

Συνημμένα:
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": stabill

Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.

  • Fotis_KFOR
  • Το Άβαταρ του/της Fotis_KFOR Συντάκτης θέματος
  • Site Owner / Admin
  • Site Owner / Admin
  • PC / Sinclair ZX Spectrum+3
Περισσότερα
11/01/2024 11:31 - 11/01/2024 11:51 #48912 από Fotis_KFOR
Να πω απλά ότι η γλώσσα προγραμματισμού Pascal από όταν ήμουν στο ΤΕΛ πληροφορικής στον προγραμματισμό, ήταν και παραμένει η αγαπημένη μου γλώσσα προγραμματισμού, όπως έχω ξαναγράψει παλιότερα εδώ σε παλιότερα threads :


Αντίστοιχα θυμάμαι και εγώ που τους είχα τρελάνει όλους όταν ο καθηγητής μας είπε να κάνουμε ένα απλό πρόγραμμα με κάποιες επιλογές, αλλά αντί να γράψω σε text τις επιλογές και με readln να βάζει ένα αριθμό ο χρήστης για να επιλέξει, το έφτιαξα με...popup menu που έιχα ένα τεράστιο τόμο-βιβλίο για την Turbo Pascal και μείνανε όλοι!

Να βλέπεις το κλασικό μπλε DOS popup μενού και να μένεις .... κάγκελο!!! Αυτές ήταν εποχές!!!! Τι internet και ιστορίες..... :evil:


Mε αφορμή την Pascal λοιπόν έχω να σου αναφέρω πως ήταν η αγαπημένη μου γλώσσα προγραμματισμού, στο λύκειο στην Turbo Pascal 6 που κάναμε διόρθωνα τους καθηγητές και χωρίς να θέλω να παινεύω τον εαυτό μου (αλλά αυτό κάνω τώρα :P ) με είχαν βγάλει στην τάξη "Pascalovio" !!!!!

Ο "πασκαλόβιος" λοιπόν είχε 20 στο πρώτο τρίμηνο, 20 στο δεύτερο τρίμηνο, 20 στο τρίτο τρίμηνο και 20 στις τελικές εξετάσεις στην Pascal όπως επίσης είχαμε κάνει και μια εργασία που την είχα ονομάσει "Utilities" με κάποια χρήσιμα προγράμματα στην Pascal. Ήταν και είναι το μόνο "μάθημα" στη ζωή μου που ήμουν ποτέ έτσι "αριστούχος" μιας και στα γενικά μαθήματα ήμουν μέτριος και μου ανέβαζαν το μέσο όρο τα μαθήματα της ειδικότητας (πληροφορικής).

OFFTOPIC MODE OFF B)


Και το ποστ με την παραπάνω εργασία που είχα κάνει στο λύκειο - το πρόγραμμα "UTILITIES" που αναφέρω παραπάνω που συνέχιζα να "βελτιώνω" μέχρι το 2003 περίπου :

Βάζω και εγώ ένα πρόγραμμα που ξεκίνησα να το φτιάχνω όταν τελείωνα το λύκειο το 1995 αλλά το τελείωσα σχεδόν το ....2003 λόγω υποχρεώσεων, χόμπι είναι εξάλλου, δεν μας κυνηγάει κανένας.

Είχα φτιάξει μια μονάδα (TPU) που περιλάμβανε αρκετά χρήσιμα εργαλεία (procedures & functions) που τα χρησιμοποιούσε κάποιος που περιλάμβανε τη μονάδα αυτή στο πρόγραμμα του.

Στην μονάδα Fotis.tpu περιέχονται 33 διαδικασίες (procedures) και 4 συναρτήσεις (functions). Για να χρησιμοποιηθεί η μονάδα από την Turbo Pascal πρέπει να την δηλώσουμε στο τμήμα ‘Uses’ του προγράμματος μας π.χ. Uses Crt,Fotis;

Μέσα στον κατάλογο fotis.tpu που επισυνάπτω, περιέχεται ολόκληρος ο πηγαίος κώδικας (source code) του προγράμματος ο οποίος είναι γραμμένος σε Turbo Pascal version 6.0 ώστε να είναι διαθέσιμος προς μελέτη και εκμάθηση του προγράμματος αλλά και γενικότερα στον προγραμματισμό της Turbo Pascal version 6.0, αλλά και και το μεταγλωττισμένο αρχείο .TPU (με την Turbo Pascal 6).

Οι 33 διαδικασίες (procedures) και 4 συναρτήσεις (functions) που περιέχονται στην Fotis.tpu είναι οι εξής :
Procedures

1. ADD
2. SUBSTRUCT
3. MULTIPLY
4. DIVIDE
5. SWAPVARIABLES
6. SQUARE3
7. SQUARE4
8. SQUARE5
9. SOUARE6
10. BEEP
11. PAUSE
12. PAUSEWITHMSG
13. PAUSECLS
14. PAUSEWITHMSGCLS
15. BSAVE
16. BLOAD
17. NOSPACEATEND
18. CHECKGROK
19. CIRCLEDEMO
20. PRINTDRIVES
21. PRINTXMS
22. DRAWRANDOMPIXELS
23. DRAWRANDOMPOLY
24. MERGE
25. GETFILEATTRIBUTES
26. SETFILEATTRIBUTES
27. GETFILETIMEANDDATE
28. SETFILETIMEANDDATE
29. EXITTODOS
30. GETSYSTEMDATE
31. SETSYSTEMDATE
32. GETSYSTEMTIME
33. SETSYSTEMTIME
Functions

1. GETSERIALNUMBER
2. INVERSE
3. BINARYDIGIT
4. DELTREE


Παρακάτω περιγράφονται συνοπτικά οι λειτουργίες των procedures και των functions, δηλαδή το τι ακριβώς κάνει η καθεμία, και μετά ο τρόπος σύνταξης τους στα προγράμματα (είναι έτσι όπως έχουν συνταχθεί στην Fotis.tpu, ώστε να συνταχθούν και έτσι αντίστοιχα στα προγράμματα που θα δημιουργηθούν από αυτή τη μονάδα).




Procedures



1. ADD (Προσθέτει 2 αριθμούς)
2. SUBSTRUCT (Αφαιρεί 2 αριθμούς)
3. MULTIPLY (Πολλαπλασιάζει 2 αριθμούς)
4. DIVIDE (Διαιρεί 2 αριθμούς)
5. SWAPVARIABLES (Ανταλλάζει τις τιμές 2 μεταβλητών)
6. SQUARE3 (Βάζει σε ένα αριθμό εις την 3η (δύναμη))
7. SQUARE4 (Βάζει σε ένα αριθμό εις την 4η (δύναμη))
8. SQUARE5 (Βάζει σε ένα αριθμό εις την 5η (δύναμη))
9. SOUARE6 (Βάζει σε ένα αριθμό εις την 6η (δύναμη))
10. BEEP (Παράγει κάποιο ήχο)
11. PAUSE (Περιμένει να πατηθεί ένα πλήκτρο για να συνεχίσει)
12. PAUSEWITHMSG (Περιμένει να πατηθεί ένα πλήκτρο για να συνεχίσει τυπώνοντας και ένα μήνυμα)
13. PAUSECLS (Περιμένει να πατηθεί ένα πλήκτρο για να συνεχίσει και κατόπιν καθαρίζει την οθόνη)
14. PAUSEWITHMSGCLS (Περιμένει να πατηθεί ένα πλήκτρο για να συνεχίσει τυπώνοντας και ένα μήνυμα και κατόπιν καθαρίζει την οθόνη)
15. BSAVE (Προσομοιώνει την εντολή bsave της Basic)
16. BLOAD (Προσομοιώνει την εντολή bload της Basic)
17. NOSPACEATEND (Αφαιρεί σε κάποιο string το κενό στο τέλος)
18. CHECKGROK (Κάνει έλεγχο αρχικοποίησης γραφικών)
19. CIRCLEDEMO (Σχεδιάζει διάφορους πολύχρωμους κύκλους)
20. PRINTDRIVES (Μας τυπώνει τι Disk Drives έχουμε στον Η/Υ και τι τύπου είναι π.χ 5 ¼ ή 3 ½ )
21. PRINTXMS (Μας δείχνει πόση μνήμη XMS έχουμε ελεύθερη)
22. DRAWRANDOMPIXELS (Σχεδιάζει σε τυχαία σημεία pixels)
23. DRAWRANDOMPOLY (Σχεδιάζει σε τυχαία σημεία πολύγωνα)
24. MERGE (Συγχωνεύει 2 αρχεία σε ένα)
25. GETFILEATTRIBUTES (Μας δείχνει τις ιδιότητες κάποιου αρχείου)
26. SETFILEATTRIBUTES (Αλλάζουμε τις ιδιότητες σε κάποιο αρχείο)
27. GETFILETIMEANDDATE (Μας δείχνει την ημερομηνία και την ώρα που δημιουργήθηκε κάποιο αρχείο)
28. SETFILETIMEANDDATE (Αλλάζουμε την ώρα και την ημερομηνία σε ένα αρχείο)
29. EXITTODOS (Τερματίζει και μας βγάζει σε Dos Prompt)
30. GETSYSTEMDATE (Μας δείχνει την ημερομηνία του συστήματος)
31. SETSYSTEMDATE (Αλλάζουμε την ημερομηνία του συστήματος)
32. GETSYSTEMTIME (Μας δείχνει την ώρα του συστήματος)
33. SETSYSTEMTIME (Αλλάζουμε την ώρα του συστήματος)


Functions



1. GETSERIALNUMBER (Μας δείχνει το serial number σε δισκέτες ή το σκληρό δίσκο)
2. INVERSE (Μας επιστρέφει ένα string αντίστροφα)
3. BINARYDIGIT (Μας επιστρέφει το δυαδικό αριθμό του αριθμού που του δώσαμε)
4. DELTREE (Κάνει ότι και η διαταγή deltree του Ms-Dos, διαγράφει δηλαδή καταλόγους και αρχεία)



Τρόπος σύνταξης Procedures


procedure add(a,b:integer);
procedure substruct(a,b:integer);
procedure multiply(a,b:integer);
procedure divide(a,b:integer);
procedure swapvariables(var a,b:integer);
procedure square3(var k:integer);
procedure square4(var k:integer);
procedure square5(var k:integer);
procedure square6(var k:integer);
procedure beep(f,t:integer); {f είναι το ύψος και t η διάρκεια του ήχου}
procedure pause;
procedure pausewithmsg;
procedure pausecls;
procedure pausewithmsgcls;
procedure bsave(filename:string;address:pointer;l:word);
procedure bload(filename:string;address:pointer);
procedure nospaceatend(var s:maxstr);
procedure checkgrok;
procedure circledemo;
procedure printdrives;
procedure printxms;
procedure drawrandompixels;
procedure drawrandompoly;
procedure merge(fname1,fname2,fname3:str80); {Το fname1 και το fname2 είναι τα ονόματα των 2 αρχείων που θέλουμε να συγχωνευτούνε και το fname3 είναι το όνομα που θα πάρει το αρχείο που θα δημιουργηθεί}
procedure getfileattributes;
procedure setfileattributes;
procedure getfiletimeanddate;
procedure setfiletimeanddate;
procedure exittodos;
procedure getsystemdate;
procedure setsystemdate;
procedure getsystemtime;
procedure setsystemtime;


Τρόπος σύνταξης Functions


function getserialnumber(drive:integer):serialnot; {writeln(getserialnumber(αριθμός)); όπου ο αριθμός 1 αντιστοιχεί για το disk drive Α:, ο αριθμός 2 αντιστοιχεί για το disk drive B: και ο αριθμός 3 αντιστοιχεί για το σκληρό δίσκο}
function inverse(lexi:string):string;
function binarydigit(b:byte):binstr;
function deltree(dirname:string):integer;

ΣΗΜΕΙΩΣΗ : Με την Free Pascal δείχνει σωστά τα ελληνικά που έχω για σχόλια στον πηγαίο κώδικα ενώ αυτό δυστυχώς δεν γίνεται και στο Lazarus. Οπότε αν το ανοίξετε με κάποια άλλη Pascal πέρα από την turbo pascal ή την free pascal τα ελληνικά θα σας τα βγάζει "κινέζικα"


Επίσης μεταξύ των διάφορων βιβλίων που έχω για την αγαπημένη μου Pascal, είμαι τυχερός που είχα βρει και κάποια βιβλία του δημιουργού της, του Niklaus Wirth :
























Φυσικά τώρα λόγω των υποχρεώσεων και έλλειψης χρόνου αλλά και εντελώς διαφορετικού επαγγέλματος με την πληροφορική, ασχολούμαι καθαρά χομπιστικά με την Pascal, αλλά πάντα θα έχει μια θέση στη ζωή μου και λόγω των ωραίων αναμνήσεων αλλά το πόσα πολλά πράγματα μπορείς να κάνεις με τη συγκεκριμένη γλώσσα επειδή παρόλο που είναι τόσο παλιά συνεχίζει να εξελίσσεται όσο μπορεί με την εντελώς διαφορετική εποχή και τις εξελίξεις που έχει ο προγραμματισμός σήμερα μέσω της Free Pascal και του Lazarus IDE.

Ευχαριστούμε Niklaus Wirth για όλα όσα πρόσφερες στον θαυμαστό κόσμο της πληροφορικής και ειδικά για τη δημιουργία της γλώσσας προγραμματισμού PASCAL που μπήκε σε όλα τα σχολεία και πανεπιστήμια πληροφορικής και που πάρα πολλοί προγραμματιστές εξελίχθηκαν λόγω της εκμάθησης της Pascal σε επαγγελματίες.

Θα σε θυμόμαστε με αγάπη και σεβασμό!!!

Συνημμένα:
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": XLV, JIANOS

Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.

Χρόνος δημιουργίας σελίδας: 0.382 δευτερόλεπτα
Powered by Kunena Φόρουμ