INTERCAL Προγραμματισμός: Μην χρησιμοποιείτε αυτήν τη γλώσσα

Αποκάλυψη: Η υποστήριξή σας βοηθά στη διατήρηση της λειτουργίας του ιστότοπου! Κερδίζουμε ένα τέλος παραπομπής για ορισμένες από τις υπηρεσίες που προτείνουμε σε αυτήν τη σελίδα.


Επομένως, μετακινήσατε προηγούμενα σεμινάρια JavaScript και ρίχνετε λάθος κώδικα PHP. Εξερευνήσατε λίγο την Ruby, αλλά ανακαλύψατε ότι σας άρεσε πολύ η Python. Και δεν ήταν τόσο πολύ που σας άρεσε η Python για την κατασκευή εφαρμογών, αλλά πραγματικά μπήκατε στο σενάριο.

Από το σενάριο, ξεκινήσατε να εξερευνάτε το Linux και αυτό σας έκανε όλους να ενδιαφέρεστε για δωρεάν λογισμικό ανοιχτού κώδικα, οπότε αρχίσατε να διαβάζετε για τον Richard Stallman και το έργο GNU.

Πριν το καταλάβετε μιλάτε για συνομιλία IRC, γελάτε με όλα τα αστεία σε κάθε XKCD και έχετε διαβάσει κάθε σελίδα του αρχείου ορολογίας. Εις διπλούν. Και τώρα τι?

Θέλετε να βελτιώσετε τις δεξιότητές σας στον προγραμματισμό και την αξιοπιστία του hacker. Σκεφτήκατε να μάθετε C, αλλά αυτό φαίνεται πολύ χρήσιμο.

Ελπίζετε να διαβάσετε το The Art of Computer Programming, αλλά αποφασίσατε να περιμένετε μέχρι να είναι διαθέσιμη η τελική έκδοση.

Ποιο είναι λοιπόν το επόμενο βήμα; Ποιο είναι το επόμενο σήμα αξίας στο φύλλο Geek Scout?

ΕΣΩΤΕΡΙΚΑ!

Θέλατε ποτέ να μάθετε μια γλώσσα υπολογιστή που ήταν εντελώς άχρηστη; Και όχι άχρηστο όπως το JavaScript στη δεκαετία του ’90 – όχι άχρηστο γιατί είναι πολύ εύκολο ή άχρηστο επειδή είναι πολύ ελαφρύ.

Όταν ήσασταν παιδί, μάθατε να μιλάτε Klingon ή Elvish; Θα θέλατε να επαναλάβετε αυτήν την εμπειρία, με όλη τη μοναξιά και το άγχος, αλλά μείον τη διασκέδαση?

ΕΣΩΤΕΡΙΚΑ!

Τι είναι το INTERCAL?

Μερικοί λένε ότι το INTERCAL είναι μια γλώσσα. Άλλοι λένε ότι το INTERCAL είναι αστείο. Ίσως το INTERCAL είναι απλώς μια φήμη, μια φάρσα, έναν αστικό μύθο. Ίσως ένας θρύλος του Άρθουρ?

Είναι όλα αυτά. Δεν είναι κανένα από αυτά. Ξέρει κανείς? Λοιπόν, στην πραγματικότητα πολλοί άνθρωποι γνωρίζουν. Είναι όλα πολύ καλά τεκμηριωμένα. Αλλά η τεκμηρίωση μπορεί να είναι ψέμα στο τέλος.

ΕΣΩΤΕΡΙΚΑ!

Τι γνωρίζουμε για το INTERCAL?

Καταρχάς, γνωρίζουμε ότι το INTERCAL δεν είναι ούτε το πραγματικό όνομα της γλώσσας. Το πραγματικό όνομα της γλώσσας είναι “Compiler Language with No Pronounable Acronym.” Το INTERCAL είναι, φυσικά, ένα προφανές ακρωνύμιο. Αυτό σημαίνει ότι δεν είναι το πραγματικό αρκτικόλεξο.

Γνωρίζουμε επίσης ότι το INTERCAL εφευρέθηκε το 1972 στο Princeton. Οι δύο εφευρέτες, ο Don Woods και ο James M Lyon, το πρόθεσαν αρχικά ως παρωδία. Σχεδιάστηκε για να λειτουργεί σε κάρτες διάτρησης, μια παράξενη και ξεπερασμένη τεχνολογία που προήλθε από αργαλειούς ύφανσης υφασμάτων.

INTERCAL Σχεδιασμός

Το INTERCAL σχεδιάστηκε διαφορετικά από όλες τις άλλες υπάρχουσες γλώσσες προγραμματισμού υπολογιστών.

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

Ωστόσο, οι σχεδιαστές της INTERCAL πήγαν το αντίθετο.

Το INTERCAL είναι σκόπιμα δύσκολο. Είναι σχεδόν αδύνατο να διαβάσετε ή να γράψετε. Η ολοκλήρωση της πιο ασήμαντης εργασίας είναι εξαιρετικά χρονοβόρα και προκαλεί πονοκέφαλο.

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

Με άλλα λόγια, όταν πραγματικά το καταλαβαίνει, το INTERCAL είναι ακριβώς όπως κάθε άλλη γλώσσα προγραμματισμού υπολογιστή – τουλάχιστον εκείνη τη στιγμή. Και αυτό ήταν λίγο πολύ το θέμα.

Μια μικρή ιστορία

Οι εφευρέτες της INTERCAL το εφάρμοσαν, έκαναν λίγα γέλια και ξέχασαν γρήγορα για αυτό.

Ωστόσο, το εγχειρίδιο γλωσσών έζησε. Η τεκμηρίωση από μόνη της ήταν πιο αστεία από τη γλώσσα. Αυτό έχει νόημα, καθώς η τεκμηρίωση γράφτηκε στα Αγγλικά και η γλώσσα ήταν εντελώς αδιαπέραστη.

Αντίγραφα του εγχειριδίου γλωσσών που μεταφέρθηκαν από geek σε geek, και αμέτρητοι αριθμοί γενειάδων γδαρσίλισαν κατά μήκος της διαδρομής.

Τελικά, η γλώσσα βρήκε νέα ζωή στην εφαρμογή C-INTERCAL, η οποία εξακολουθεί να υπάρχει και σήμερα.

Υπάρχει επίσης μια δεύτερη εφαρμογή, καλέστε CLC-INTERCAL. Αυτό σημαίνει ότι τουλάχιστον δύο διαφορετικοί προγραμματιστές υπολογιστών, και πιθανώς πολύ περισσότερα από αυτό, έχουν περάσει ένα ασήμαντο ποσοστό των πεπερασμένων ζωών τους διαβάζοντας, κατανοώντας και εφαρμόζοντας την τεκμηρίωση για μια γλώσσα που δεν έχει νόημα και δεν μπορεί στην πραγματικότητα κάνουν πολλά.

Αυτό που είναι ακόμα πιο εκπληκτικό από αυτό είναι το καθαρό επίπεδο λαμπρότητας και μαθηματικής νοημοσύνης που απαιτείται για να φτιάξετε κεφάλια ή ουρές οποιουδήποτε από αυτά.

Γλωσσικά χαρακτηριστικά

Όπως αναφέρθηκε προηγουμένως, η ίδια η INTERCAL γλώσσα είναι σχεδόν ακατανόητη. Οτιδήποτε στο INTERCAL είναι πραγματικά χρήσιμο είναι σχεδόν σίγουρα ένα λάθος και οποιοδήποτε μέρος της τεκμηρίωσης που είναι εύκολο να κατανοηθεί είναι σχεδόν σίγουρα ένα αστείο.

Παράδειγμα σύνταξης

Ακολουθεί ένα μικρό δείγμα κώδικα που έχει ληφθεί απευθείας από την τεκμηρίωση INTERCAL:

ΠΑΡΑΚΑΛΩ, 1 <- # 2
ΚΑΝ .1 <- # 2
DO, 1 SUB .1 <- # 1
DO, 1 SUB # 1 <- ,1 SUB # 2
ΠΑΡΑΚΑΛΩ, 1 <- # 2 ΑΠΟ # 2
DO; 1 SUB # 1 # 2 <- ,1 SUB, 1 SUB .1
ΔΙΑΒΑΣΤΕ; 1SUB # 1.1
ΚΑΝΕΤΕ

Θα μπορούσα να σας πω τι κάνει αυτός ο κώδικας, αλλά δεν θα είχε σημασία.

Σφάλματα δειγμάτων

Ίσως το πιο διάσημο σφάλμα στο INTERCAL έχει να κάνει με τη λέξη-κλειδί ΠΑΡΑΚΑΛΩ. Ένα πρόγραμμα INTERCAL πρέπει να περιλαμβάνει τη λέξη ΠΑΡΑΚΑΛΩ αρκετές φορές. Ωστόσο, δεν είναι σαφές ποιος είναι αυτός ο επαρκής αριθμός.

Εάν ένας προγραμματιστής δεν λέει αρκετά ΠΑΡΑΚΑΛΩ αρκετά, το πρόγραμμα θα απορριφθεί από το μεταγλωττιστή επειδή δεν είναι αρκετά ευγενικό. Ωστόσο, εάν ο προγραμματιστής χρησιμοποιεί τη λέξη ΠΑΡΑΚΑΛΩ πολύ, το πρόγραμμα θα απορριφθεί επειδή είναι πολύ ευγενικό και πολύ πρόθυμο.

Εάν αυτό είναι το είδος της συμπεριφοράς που θέλετε να δείτε σε έναν μεταγλωττιστή, είστε άρρωστος, άρρωστος.

Άλλα απίστευτα χρήσιμα σφάλματα περιλαμβάνουν:

  • E111 ΑΝΑΓΝΩΡΙΣΗ ΕΠΙΚΟΙΝΩΝΙΑΣ ΟΙΚΟΠΕΔΟΥ, Ο ΣΥΜΠΛΗΡΩΤΗΣ ΕΙΝΑΙ ΥΠΟΓΡΑΦΗ

  • E277 ΜΠΟΡΕΙΤΕ ΝΑ ΑΠΟΣΤΑΣΕΤΕ ΜΟΝΟ ΤΟ ΔΙΚΑΙΟ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΓΙΑ ΤΟ ΕΞΩΤΕΡΙΚΟ

  • ΠΡΟΓΡΑΜΜΑ E405 ΑΠΟΦΑΣΗ ΓΙΑ ΛΟΓΟΥΣ ΨΥΧΙΚΗΣ ΥΓΕΙΑΣ

  • Ο ΣΥΜΠΛΗΡΩΤΗΣ E666 ΔΙΑΧΕΙΡΙΣΗ

  • E774 RANDOM COMPILER BUG.

Αυτό το τελευταίο σφάλμα, το σφάλμα τυχαίου μεταγλωττιστή μπορεί στην πραγματικότητα να απενεργοποιηθεί μεταβιβάζοντας μια συγκεκριμένη επιλογή κατά την εκκίνηση ενός προγράμματος. Αυτή είναι μια «ανταμοιβή για την ανάγνωση του εγχειριδίου». (Γι ‘αυτό δεν σας είπα ποια ήταν η συγκεκριμένη επιλογή.)

Γλωσσικοί πόροι

  • ΕΓΧΕΙΡΙΔΙΟ ΑΝΑΦΟΡΑΣ ΓΙΑ ΤΗΝ ΕΣΩΤΕΡΙΚΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ – Το αρχικό κείμενο του 1973.

  • Το αναθεωρημένο εγχειρίδιο αναφοράς INTERCAL Language Programming – Το αναθεωρημένο, μοντέρνο κείμενο.

  • Η σελίδα πόρων INTERCAL – Όλα όσα ίσως χρειαστεί να γνωρίζετε για το INTERCAL.

  • The Jargon File – Η πολιτιστική ιστορία των ανθρώπων μου.

  • INTERCAL – Ένα άλμπουμ οικιακής / χορευτικής μουσικής, από έναν καλλιτέχνη με το ίδιο όνομα, που πήρε το όνομά του από τη γλώσσα.

Προχωρώντας μπροστά

Δεν θέλετε να προχωρήσετε με το INTERCAL. Είναι μια γλώσσα παρωδίας που προοριζόταν να αναδείξει τα προβλήματα με τις γλώσσες προγραμματισμού που υπήρχαν στα τέλη της δεκαετίας του 1960 και στις αρχές της δεκαετίας του 1970. Ωστόσο, παραμένει μια καλή υπενθύμιση για το πώς να μην σχεδιάσουμε μια γλώσσα προγραμματισμού.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map