Περιέργειες: Εσωτερικές γλώσσες προγραμματισμού

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

Εγκεφαλικά


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

 
 ++++++++++
 [          Βρόχος για να ξεκινήσετε τις αναμνήσεις (επαναλαμβάνεται 10 φορές)
    >++++++++>++++++++++>+++++++++++>+ + +>+<<<<-
       70 100 110 30 10
 ]
 >++.              «Η» (72) 1
 >>+.              «ή» (111) 3
 ---.              «l» (108) 3
 <---.             «α» (97) 2
 >>++.             χώρος (32) 4
 <+.               «μ» (109) 3
 ++++++++.         «u» (117) 3
 -------.          «ν» (110) 3
 <+ + +.             «δ» (100) 2
 >+.               «ή» (111) 3
 >+.               "!" (33) 4
 >.                «\ n» (10) 5

Για να εξηγήσετε τη σύνταξή της, είναι καλύτερο να στραφείτε σε άλλες γλώσσες προγραμματισμού. Έτσι μέσα τη σελίδα του Wikipedia δώστε μας αυτόν τον πίνακα ισοδυναμιών, στον οποίο το ptr είναι ισοδύναμο με ένα μη υπογεγραμμένο char:

brainfuck C Perl
> ++ ptr; $ pointer ++;
< –Ptr; $ pointer–;
+ ++ * ptr; $ tape [$ pointer] ++;
- - * ptr; $ tape [$ pointer] -;
. putchar (* ptr); εκτύπωση chr $ tape [δείκτης $];
, * ptr = getchar (); $ tape [$ pointer] = ord (<>);
[ ενώ (* ptr) { ενώ (ταινία $ [δείκτης $]) {
] } }

Ωχ!


Βασίζεται στο προηγούμενο, αλλά χρησιμοποιεί τον συνδυασμό λέξεων Ωχ;, Ωχ! y Επίσης. Είναι μια παρωδία του βιβλιοθηκονόμου από Discworld, το οποίο μετατρέπεται σε ουρακοτάγκος και μπορεί να προφέρει μόνο αυτές τις τρεις λέξεις. Ας δούμε ένα κομμάτι κώδικα.

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. 

Υποτίθεται ότι αυτό το "πρόγραμμα" αυτό που κάνει είναι να γράψει τον τυπικό "γειά σου κόσμο".

Μπερδεύω


Κατά τη γνώμη μου, το πιο πρωτότυπο από όλα, η δομή ελέγχου ροής βασίζεται σε βέλη που λένε στο πρόγραμμα πού να πάει. Επίσης, καθιστά πολύ πιο εύκολο να δημιουργήσετε μεταλλαγμένο κώδικα (κώδικας που τροποποιείται):

vv << 2 ^ v <v13v4 ^ ^ >>?>?> 5 ^ vv v97v6 vv <8. >> ^ ^

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

Μάλμπολτζ


Εδώ έχουμε δημιουργήσει μια γλώσσα προγραμματισμού που είναι ενοχλητική και δυσανάγνωστη (όχι, δεν είναι Cκαι όχι, δεν είναι Perl). Είναι περίπου Μάλμπολτζ, το όνομα του οποίου προέρχεται από τον 8ο κύκλο της κόλασης Η Θεία Κωμωδία. Εδώ είναι ένας «γειά σου κόσμος» (ή αυτό έχω πει ότι είναι):

 (=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**
 hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O<

Lolcat


Ένα απλό αστείο. Ας δούμε τον κωδικό σας:

HAI
CAN HAS STDIUM?
ΕΧΩ ΕΝΑ VAR
IM IN YR ΒΡΟΧΟΣ
   UP VAR!!1
   VISIBLE VAR
   IZ VAR ΜΕΓΑΛΥΤΕΡΟ ΑΠΟ 10? ΚΘΧ
IM ΕΞΩ YR ΒΡΟΧΟΣ
KTHXBYE

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

INTERCAL


Και τελευταίο αλλά όχι λιγότερο σημαντικό έχουμε μια παρωδία της γλώσσας προγραμματισμού FORTRAN. ΕΣΩΤΕΡΙΚΑ. Και εδώ γειά σου κόσμο.
DO ,1 <- #13
ΠΑΡΑΚΑΛΩ DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #108
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #194
DO ,1 SUB #7 <- #48
ΠΑΡΑΚΑΛΩ DO ,1 SUB #8 <- #22
DO ,1 SUB #9 <- #248
DO ,1 SUB #10 <- #168
DO ,1 SUB #11 <- #24
DO ,1 SUB #12 <- #16
DO ,1 SUB #13 <- #162
ΠΑΡΑΚΑΛΩ ΑΝΑΓΝΩΣΗ OUT ,1
ΠΑΡΑΚΑΛΩ ΔΙΝΩ UP
Λοιπόν, αυτό είναι.

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


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Νταβίντλγ dijo

    Προτιμώ σχεδόν δυαδικό κώδικα

    1.    desikoder dijo

      Ναι, σίγουρα προτιμώ να προγραμματίζω απευθείας σε δυαδικό ή σε συναρμολογητή, μπορείτε να κάνετε οτιδήποτε (οι γλώσσες υψηλού επιπέδου καταλήγουν να λειτουργούν στον επεξεργαστή), αλλά το ενδιαφέρον για τις εσωτερικές γλώσσες είναι η πρόκληση που αντιπροσωπεύουν. Παρεμπιπτόντως, roader (ο συγγραφέας αυτού του άρθρου), με εκνευρίζεις. Πώς είναι τα C και Perl δυσανάγνωστα και ερεθιστικά; Τι απαράδεκτο αδίκημα !! Τι οργή! Αλλά αν το C είναι υπέροχο, στο perl δεν έχω προγραμματίσει αλλά έχω δει καλά σχόλια σχετικά με αυτήν τη γλώσσα γιατί προφανώς είναι πολύ κατάλληλο για το χειρισμό αρχείων, συμβολοσειρών και αυτών των λοβών, για παράδειγμα για εκμεταλλεύσεις είναι αρκετά καλό, αν και cy python σε exploits δουλεύει καλά ...

      Saludos!

      1.    οδικός dijo

        Άντρας, το πράγμα C και perl ήταν ένα αστείο, και ναι, είναι αρκετά ευανάγνωστες γλώσσες, πολύ πρακτικές και "όμορφες" στα σωστά χέρια. Φυσικά στο CI έχουν δει ότι μερικοί άνθρωποι καταλήγουν να δημιουργούν μια σύγχυση ακατανόητου κώδικα σπαγγέτι, και χωρίς να κρατάτε αρχείο. Όσο για την Perl, όχι μόνο συμβαίνει το ίδιο με το C, αλλά επειδή είναι τόσο εξαιρετικά ευέλικτο, μπορείτε να βρείτε πράγματα που αψηφούν την κοινή λογική. Πρέπει να πω ότι δεν έχω εμπειρία προγραμματισμού στο Perl, αλλά ξέρω τη σύνταξή του αρκετά καλά.

  2.   Joaquin dijo

    Το πρώτο είναι πώς να γράψετε σε κώδικα morse 😀

    1.    οδικός dijo

      Και το δεύτερο είναι να είναι ένας ουρακοτάγκος, και ο τέταρτος, προκαλεί εγκεφαλικά εμφράγματα.

  3.   Τίρσο Τζούνιορ dijo

    Πολύ καλή τη θέση.

    1.    οδικός dijo

      Και σεφ, unlamda, whitespace και tink. Αλλά δεν ήθελα να κάνω το άρθρο πολύ μεγάλο.

  4.   διαζεπάνη dijo

    ΕΙΝΑΙ ΩΡΑ ΓΙΑ ΣΟΟΥ
    Μιλήστε στο χέρι
    ΕΧΕΤΕ ΤΕΡΜΑΤΙΣΜΟΣ

    Γεια σου Κόσμος στο Άρνολντ

    http://www.genbetadev.com/actualidad/arnoldc-el-lenguaje-basado-en-frases-de-arnold-schwarzenegger

    1.    οδικός dijo

      Λοιπόν, δεν ήξερε αυτό, υποθέτω ότι του δόθηκε η ιδέα από τον "μηδενικό τερματιστή"

  5.   eliotime3000 dijo

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