Pascal (γλώσσα προγραμματισμού)

Η γλώσσα Pascal δημιουργήθηκε στο Πανεπιστήμιο της Γενεύης από τον Νικλάους Βιρτ (Nicklaus Wirth)[1]. Πήρε το όνομά της προς τιμή του μαθηματικού και φιλοσόφου Μπλεζ Πασκάλ (Blaise Pascal). Είναι μία δομημένη γλώσσα με ιδιαίτερο χαρακτηριστικό τη δυνατότητα ορισμού από τον προγραμματιστή δικών του δομών δεδομένων.

Ο Νικλάους Βιρτ συμμετείχε στις σχεδιαστικές ομάδες των γλωσσών ALGOL, Pascal, Modula, Modula-2 και Oberon. Η Pascal θεωρείται ως μία επιτυχημένη επέκταση της επιστημονικής γλώσσας προγραμματισμού ALGOL, που αναπτύχθηκε στην Ευρώπη τη δεκαετία του '60.

Η Pascal έχει όλα τα στοιχεία για την ανάπτυξη δομημένου προγραμματισμού. Χρησιμοποιήθηκε εκτεταμένα στα πανεπιστήμια ως εργαλείο για τα μαθήματα προγραμματισμού, και για τα μαθήματα δομών δεδομένων.

Η Pascal μπορεί να θεωρηθεί ως γλώσσα γενικής χρήσης (όχι μόνο επιστημονικών εφαρμογών, όχι μόνο εμπορικών εφαρμογών). Αρχικά δεν διέθετε εξελιγμένο σύστημα χειρισμού αρχείων, (και γι΄ αυτό δεν εκτόπισε την COBOL στις εμπορικές εφαρμογές), αλλά, όπως οι περισσότερες γλώσσες, πέρασε από πολλές εκδόσεις που κάθε μια βελτίωνε την προηγούμενη. Διάφορες εκδόσεις της Pascal είναι σήμερα σε χρήση.

Διάφορα λειτουργικά συστήματα, (όπως το Macintosh της Apple), είχαν μέρη τους γραμμένα σε Pascal. Το τυπογραφικό λογισμικό ΤΕΧ, που δημιούργησε ο Ντόναλντ Κναθ (Donald E. Knuth), γράφτηκε σε μια διάλεκτο Pascal, την WEB. Η εταιρεία Borland έχει εκδώσει μία σειρά από ταχύτατους μεταφραστές Pascal με το όνομα Τurbo Pascal. Η τελευταία έκδοση της Pascal για τα Windows θεωρείται μία από τις καλύτερες εκδόσεις της στον χώρο των μικροϋπολογιστών.

Ιστορία

Προηγούμενες προσπάθειες

Μεγάλο μέρος της ιστορίας του σχεδιασμού γλωσσών υπολογιστών στη δεκαετία του 1960 ανάγεται στη γλώσσα ALGOL 60. Η ALGOL αναπτύχθηκε τη δεκαετία του 1950 με ρητό στόχο τη δυνατότητα σαφούς περιγραφής αλγορίθμων. Περιελάμβανε μια σειρά από χαρακτηριστικά για δομημένο προγραμματισμό που παραμένουν κοινά σε γλώσσες μέχρι σήμερα.

Λίγο μετά την εισαγωγή της, το 1962, ο Βιρτ (Wirth) άρχισε να εργάζεται στη διατριβή του με τον Χέλμουτ Βέμπερ πάνω στη γλώσσα προγραμματισμού του Όιλερ. Η Όιλερ βασίστηκε στο συντακτικό και σε πολλές έννοιες της ALGOL, αλλά δεν προήλθε από αυτήν. Ο κύριος σκοπός της ήταν να προσθέσει λίστες και δυναμικούς τύπους, επιτρέποντας τη χρήση της σε ρόλους παρόμοιους με τη Lisp. Η γλώσσα δημοσιεύθηκε το 1965.

Την εποχή εκείνη είχαν εντοπιστεί ορισμένα προβλήματα στην ALGOL, συμπεριλαμβανομένης της έλλειψης ενός τυποποιημένου συστήματος συμβολοσειρών. Η ομάδα που ήταν υπεύθυνη για τη συντήρηση της γλώσσας ξεκίνησε τη διαδικασία ALGOL X για τον εντοπισμό βελτιώσεων, εκδίδοντας πρόσκληση υποβολής προτάσεων. Ο Βιρτ και ο Τόνι Χόαρ υπέβαλαν ένα συντηρητικό σύνολο αλλαγών για την προσθήκη συμβολοσειρών και την εκκαθάριση κάποιου μέρους του συντακτικού. Οι αλλαγές αυτές κρίθηκαν πολύ μικρές για να χρησιμοποιηθούν ως το νέο πρότυπο της ALGOL, οπότε ο Wirth έγραψε έναν μεταγλωττιστή για τη γλώσσα, ο οποίος ονομάστηκε ALGOL W.

Η ώθηση για την ALGOL X οδήγησε στην επιλογή μιας πολύ πιο σύνθετης γλώσσας, της ALGOL 68. Η πολυπλοκότητα αυτής της γλώσσας οδήγησε σε σημαντικές δυσκολίες στην παραγωγή μεταγλωττιστών υψηλής απόδοσης και δεν χρησιμοποιήθηκε ευρέως στη βιομηχανία. Ως εκ τούτου, έδωσε τη θέση της σε πιο πρόσφατες γλώσσες.

Πασκάλ

Η Πασκάλ επηρεάστηκε από τις προσπάθειες της ALGOL W, με σαφείς στόχους τη διδασκαλία του προγραμματισμού με δομημένο τρόπο και την ανάπτυξη λογισμικού συστήματος[2]. Μια γενιά φοιτητών χρησιμοποίησε την Πασκάλ ως εισαγωγική γλώσσα σε προπτυχιακά μαθήματα.

Μια από τις πρώτες επιτυχίες της γλώσσας ήταν η εισαγωγή της UCSD Πασκάλ, μιας έκδοσης που έτρεχε σε ένα προσαρμοσμένο λειτουργικό σύστημα που μπορούσε να μεταφερθεί σε διαφορετικές πλατφόρμες. Μια βασική πλατφόρμα ήταν το Apple II, όπου γνώρισε ευρεία χρήση ως Apple Πασκάλ. Αυτό οδήγησε στο να γίνει η Πασκάλ η κύρια γλώσσα υψηλού επιπέδου που χρησιμοποιήθηκε για την ανάπτυξη στο Apple Lisa και αργότερα στο Macintosh. Μέρη του αρχικού λειτουργικού συστήματος Macintosh μεταφράστηκαν με το χέρι σε γλώσσα assembly του Motorola 68000 από τον πηγαίο κώδικα της Πασκάλ[3].

Το σύστημα στοιχειοθεσίας TeX του Ντόναλντ Κνουθ γράφτηκε σε WEB, το αρχικό σύστημα εγγράμματου προγραμματισμού, βασισμένο στην DEC PDP-10 Pascal. Επιτυχημένες εμπορικές εφαρμογές όπως το Adobe Photoshop[4] γράφτηκαν σε Εργαστήριο προγραμματιστών Macintosh Pascal, ενώ εφαρμογές όπως το Total Commander, το Skype[5] και το Macromedia Captivate γράφτηκαν σε Delphi (Object Pascal). Η Apollo Computer χρησιμοποίησε την Πασκάλ ως γλώσσα προγραμματισμού συστημάτων για τα λειτουργικά της συστήματα από το 1980.

Παραλλαγές της γλώσσας Πασκάλ έχουν επίσης χρησιμοποιηθεί για τα πάντα, από ερευνητικά έργα μέχρι παιχνίδια Η/Υ και ενσωματωμένα συστήματα. Υπάρχουν νεότεροι μεταγλωττιστές Πασκάλ οι οποίοι χρησιμοποιούνται ευρέως[6].

Διάλεκτοι

Το παράδειγμα του Wirth για έναν μεταγλωττιστή που σχεδιάστηκε για τη διάδοση της γλώσσας, το σύστημα Πασκάλ-P, χρησιμοποίησε ένα υποσύνολο της γλώσσας που σχεδιάστηκε για να είναι το ελάχιστο υποσύνολο της γλώσσας που μπορεί να μεταγλωττιστεί. Η ιδέα ήταν να επιτραπεί η εκκίνηση του μεταγλωττιστή, ο οποίος στη συνέχεια θα επεκτεινόταν σε πλήρη κατάσταση γλώσσας Πασκάλ. Αυτό έγινε με αρκετούς μεταγλωττιστές, με την αξιοσημείωτη εξαίρεση της UCSD Πασκάλ, η οποία βασίστηκε στην Πασκάλ-P2. Διατήρησε το καθεστώς ενός υποσυνόλου της γλώσσας με το σκεπτικό ότι θα έτρεχε καλύτερα στους νέους (τότε) μικροεπεξεργαστές με περιορισμένη μνήμη. Το UCSD μετέτρεψε επίσης τον διερμηνέα Pascal-P2 σε "μηχανή byte", και πάλι επειδή θα ήταν καλύτερα προσαρμοσμένος σε μικροεπεξεργαστές με προσανατολισμό byte.

Η UCSD Πασκάλ αποτέλεσε τη βάση για πολλά συστήματα, συμπεριλαμβανομένης της Apple Πασκάλ. Η Borland Pascal δεν στηρίχθηκε στη βάση κώδικα της UCSD, αλλά έφτασε κατά την περίοδο της δημοτικότητας της UCSD και υιοθέτησε πολλά από τα χαρακτηριστικά της. Έτσι ξεκίνησε η γενεαλογία που τελείωσε με την Delphi Pascal και την ελεύθερη έκδοσή της, την FPC.

Το πρότυπο ISO για την Pascal, ISO 7185, δημοσιεύθηκε το 1983 και έχει εφαρμοστεί και χρησιμοποιηθεί ευρέως σε κεντρικούς υπολογιστές, μίνι υπολογιστές και IBM και συμβατούς υπολογιστές από 16-bit έως 32-bit. Οι δύο πιο διαδεδομένες διάλεκτοι της Πασκάλ προς το τέλος του 20ου αιώνα και μέχρι σήμερα είναι η τυποποιημένη έκδοση ISO 7185 και οι εκδόσεις Delphi/Turbo Πασκάλ (εκ των οποίων οι δύο εκδόσεις της Borland είναι σε μεγάλο βαθμό συμβατές μεταξύ τους).

Η πηγή μεγάλου μέρους της πρώιμης ιστορίας της Πασκάλ μπορεί να βρεθεί στα ενημερωτικά δελτία της ομάδας χρηστών της Πασκάλ, στην ακόλουθη διεύθυνση

Ενημερωτικά δελτία της ομάδας χρηστών Πασκάλ[7]

Γειά σου, κόσμε!

Τα προγράμματα σε γλώσσα Pascal[8] έχουν πρώτη εντολή την

Program όνομα

που ακολουθείται από μια προαιρετική λίστα αναφορών σε εξωτερικά αρχεία, και μετά υπάρχει ένα μπλοκ εντολών, που αρχίζει με την εντολή

"Begin"

και τελειώνει με την εντολή

"End".

Το σημείο στίξης [;] (Semicolon, ελληνικό ερωτηματικό) είναι το διαχωριστικό των εντολών, και η τελεία [.] δείχνει το τέλος της προγραμματιστικής ενότητας (program module). Η Pascal δεν διακρίνει κεφαλαία ή πεζά γράμματα στο πηγαίο πρόγραμμα (έξω από τα νήματα (strings) χαρακτήρων).

Ακολουθεί το συνηθισμένο παράδειγμα απλού προγράμματος που γράφει "Γειά σου, κόσμε!" (hello world!):

program HelloWorld;
begin writeln('Γεια σου, κόσμε!'); end.

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

  • Niklaus Wirth: The Programming Language Pascal. 35–63, Acta Informatica, Volume 1, 1971.
  • C. A. R. Hoare: "Notes on data structuring". In O.-J. Dahl, E. W. Dijkstra and C. A. R. Hoare, editors, Structured Programming, pages 83–174. Academic Press, 1972.
  • C. A. R. Hoare, Niklaus Wirth: An Axiomatic Definition of the Programming Language Pascal. 335–355, Acta Informatica, Volume 2, 1973.
  • Kathleen Jensen and Niklaus Wirth: Pascal – User Manual and Report. Springer-Verlag, 1974, 1985, 1991, (ISBN 0-387-97649-3) and (ISBN 3-540-97649-3).
  • Niklaus Wirth: Algorithms + Data Structures = Programs. Prentice-Hall, 1975, (ISBN 0-13-022418-9).
  • Niklaus Wirth: An assessment of the programming language Pascal. 23–30 ACM SIGPLAN Notices Volume 10, Issue 6, June 1975.
  • N. Wirth, and A. I. Wasserman, ed: Programming Language Design. IEEE Computer Society Press, 1980
  • D. W. Barron (Ed.): Pascal – The Language and its Implementation. John Wiley 1981, (ISBN 0-471-27835-1)
  • Peter Grogono: Programming in Pascal, Revised Edition, Addison-Wesley, 1980
  • Richard S. Forsyth: Pascal in Work and Play, Chapman and Hall, 1982
  • N. Wirth, M. Broy, ed, and E. Denert, ed: Pascal and its Successors in Software Pioneers: Contributions to Software Engineering. Springer-Verlag, 2002, (ISBN 3-540-43081-4)
  • N. Wirth: Recollections about the Development of Pascal. ACM SIGPLAN Notices, Volume 28, No 3, March 1993.

Δείτε επίσης

Εξωτερικοί σύνδεσμοι

Παραπομπές

  1. «Summary of projects by N. Wirth, 1962 - 1999». people.inf.ethz.ch. Ανακτήθηκε στις 21 Μαΐου 2024. 
  2. Wirth, Niklaus (2000). «The Development of Procedural Programming Languages Personal Contributions and Perspectives». Modular Programming Languages. Lecture Notes in Computer Science. 1897. σελίδες 1–10. doi:10.1007/10722581_1. ISBN 978-3-540-67958-5. 
  3. Hertzfeld, Andy. "Hungarian folklore.org Αρχειοθετήθηκε 2015-11-18 στο Wayback Machine.: Macintosh Stories. Retrieved 2012-03-06.
  4. https://www.computerhistory.org/atchm/adobe-photoshop-source-code/ Αρχειοθετήθηκε 2014-05-07 στο Wayback Machine., Adobe Photoshop Source Code
  5. «RAD Studio Application Showcase». 29 Οκτωβρίου 2021. 
  6. tiobe.com Αρχειοθετήθηκε 2012-03-15 στο Wayback Machine., Programming Community Index for January 2011.
  7. «Pascal Users Group Newsletters». www.standardpascal.org. Ανακτήθηκε στις 21 Μαΐου 2024. 
  8. user, An awesome (10 Ιουλίου 2016). «Πίνακες στη γλώσσα προγραμματισμού Pascal | Computer Science Center CSC». csc.gr. Ανακτήθηκε στις 21 Μαΐου 2024.