Meraklar: Ezoterik programlama dilleri

Ezoterik programlama dilleri, hem dili programlamak hem de onun için yazmak için kavram ve / veya zorluğun kanıtı olarak yaratılmış minimalist dillerdir. Bazılarının gözden geçirilmesine bakalım:

brainfuck


En iyi bilinen ve en popüler olanıdır, sözdizimi oldukça basittir:

 
 + + + + + + + + + +
 [          Anıları başlatmak için döngü (10 kez tekrar eder)
    >+ + + + + + +>+ + + + + + + + + +>+++++++++++>+ + +>+<<<<-
       70 100 110
 ]
 >++.              'H' (72) 1
 >>+.              'veya' (111) 3
 ---.              "l" (108) 3
 <---.             'a' (97) 2
 >>++.             boşluk (32) 4
 <+.               'm' (109) 3
 + + + + + + + +.         'u' (117) 3
 -------.          'n' (110) 3
 <+ + +.             'd' (100) 2
 >+.               'veya' (111) 3
 >+.               '!' (33) 4
 >.                '\ n' (10) 5

Sözdizimini açıklamak için en iyisi diğer programlama dillerine dönmektir. Yani içinde Wikipedia sayfası bize ptr'nin işaretsiz bir karaktere eşdeğer olduğu bu denklikler tablosunu sağlayın:

beyinsiz C Perl
> ++ ptr; $ işaretçi ++;
< –Ptr; $ işaretçi–;
+ ++ * ptr; $ bant [$ işaretçi] ++;
- - * ptr; $ bant [$ işaretçi] -;
. putchar (* ptr); yazdır chr $ bant [$ işaretçi];
, * ptr = getchar (); $ bant [$ işaretçi] = ord (<>);
[ while (* ptr) { while ($ bant [$ işaretçi]) {
] } }

Ook!


Bir öncekine dayanır, ancak bunun yerine kelime kombinasyonunu kullanır tamam mı?, Aaa! y ayrıca. Kütüphanecinin bir parodisidir. Disk dünyasıbir orangutana dönüşen ve sadece bu üç kelimeyi telaffuz edebilen. Bir kod parçasına bakalım.

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

Sözde bu "program", tipik "merhaba dünya" yazmaktır.

befunge


Kanımca en özgün olanı, akış kontrol yapısı programa nereye gideceğini söyleyen oklara dayanıyor. Ayrıca, mutant kod (kendi kendini değiştiren kod) oluşturmayı çok daha kolay hale getirir:

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

Yukarıdaki kod, 1 ile 9 arasında bir sayı oluşturacak sonsuz bir rasgele sayı üreteci hakkındadır. Önceki kodlardan çok daha fazla okunabilir.

Malbolge


Burada rahatsız edici ve okunamaz olması için oluşturulmuş bir programlama dilimiz var (hayır, Cve hayır, değil Perl). Hakkında Malbolgeadı cehennemin 8. çemberinden gelen İlahi Komedya. İşte bir "merhaba dünya" (ya da bana söylendiği gibi):

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

lolcat


Basit bir şaka. Kodunuzu görelim:

VAR
CAN HAS STDIUM?
Bende var VAR
IM IN YR LOOP
   UP VAR!!1
   GÖRÜNÜR VAR
   IZ VAR BÜYÜK DAHA 10? KTHX
IM outta YR LOOP
KTHXBYE

Önceki programlama dillerinden çok daha okunaklı olduğu için, ne yapması gerektiğini tahmin etmenize izin vereceğim. 😉

İNTERKAL


Son olarak, ancak en az değil, FORTRAN programlama dilinin bir parodisine sahibiz. INTERCAL. Ve işte merhaba dünya.
DO ,1 <- #13
LÜTFEN DO ,1 ALT #1 <- #238
DO ,1 ALT #2 <- #108
DO ,1 ALT #3 <- #112
DO ,1 ALT #4 <- #0
DO ,1 ALT #5 <- #64
DO ,1 ALT #6 <- #194
DO ,1 ALT #7 <- #48
LÜTFEN DO ,1 ALT #8 <- #22
DO ,1 ALT #9 <- #248
DO ,1 ALT #10 <- #168
DO ,1 ALT #11 <- #24
DO ,1 ALT #12 <- #16
DO ,1 ALT #13 <- #162
LÜTFEN OKU OUT ,1
LÜTFEN VERMEK UP
İşte bu.

Bu programlama dillerinden bazılarının bazı bilgisayar kavramlarını öğrenmek için çok faydalı olduğunu söylemeliyim. Örneğin, brainfuck işaretçiler hakkında bilgi edinmek için mükemmeldir.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   Davidlg dijo

    Neredeyse ikili kodu tercih ediyorum

    1.    Desikoder dijo

      Evet, kesinlikle ikili veya montajcı programlamayı tercih ederim, her şeyi yapabilirsiniz (sonuçta yüksek seviyeli diller işlemci üzerinde çalışır), ancak ezoterik dillerle ilgili ilginç olan şey temsil ettikleri zorluktur. Bu arada roader (bu makalenin yazarı), beni kızdırıyorsun. C ve Perl nasıl okunamaz ve rahatsız edicidir? Ne kadar dayanılmaz bir suç! Ne rezalet! Ama eğer C harikaysa, perl'de programlamadım ama bu dil hakkında iyi yorumlar gördüm çünkü görünüşe göre dosyaları, dizeleri ve bu bölmeleri işlemek için çok uygun, örneğin istismarlar için oldukça iyi, ancak istismarlarda cy python güzel çalış ...

      Saludos!

      1.    yolcu dijo

        Adamım, C ve perl olayı bir şakaydı ve evet, bunlar oldukça okunabilir diller, doğru ellerde çok pratik ve "güzel". Elbette CI'da bazı insanların anlaşılmaz bir spagetti kodu karmaşası yarattığını gördüm, ve kayıt tutmadan. Perl'e gelince, sadece C'de olduğu gibi aynı şey olmaz, aynı zamanda son derece esnek olduğu için sağduyuya meydan okuyan şeyler bulabilirsiniz. Perl'de programlama deneyimim olmadığını söylemeliyim, ancak sözdizimini oldukça iyi biliyorum.

  2.   Joaquin dijo

    İlki, mors alfabesiyle nasıl yazılacağıdır 😀

    1.    yolcu dijo

      İkincisi orangutan olmak ve dördüncüsü serebral enfarktlara neden oluyor.

  3.   tirso genç dijo

    Gönderi çok iyi.

    1.    yolcu dijo

      Ve şef, unlamda, beyaz boşluk ve tink. Ama makaleyi çok büyütmek istemedim.

  4.   Diazepan dijo

    ŞOV ZAMANI
    ELLE KONUŞ «merhaba dünya»
    FESİH EDİLDİNİZ

    ArnoldC'de Merhaba Dünya

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

    1.    yolcu dijo

      Bunu bilmiyordu, sanırım bu fikir ona "boş sonlandırıcı" tarafından verildi.

  5.   eliotime3000 dijo

    Gerçek şu ki, bu programlama dilleri beni güldürdü. İyi.