Perché esistono i linguaggi di programmazione "Joke"? [chiuso]

-2

Prima di tutto tieni presente che questo post contiene un linguaggio offensivo, ma spero che non disturbi nessuno. Mi scuso per la brutta lingua, ma questo è il nome.

Come ho fatto con la documentazione sui linguaggi di programmazione esistenti, tentando di creare un elenco completo di questi mi sono imbattuto in terribili linguaggi di programmazione, che chiaramente non erano stati creati per l'uso e l'implementazione reali a causa della loro folle difficoltà. Linguaggi come Brainfu * k e LOLCODE o Whitespace sono linguaggi idioti perché non hanno reale utilità.

Ad esempio, un programma "Hello world" scritto in BrainFu * k. Tratto da Wikipedia:

The following program prints "Hello World!" and a newline to the screen:

+++++ +++++             initialize counter (cell #0) to 10
[                       use loop to set the next four cells to 70/100/30/10
    > +++++ ++              add  7 to cell #1
    > +++++ +++++           add 10 to cell #2 
    > +++                   add  3 to cell #3
    > +                     add  1 to cell #4
    <<<< -                  decrement counter (cell #0)
]                   
> ++ .                  print 'H'
> + .                   print 'e'
+++++ ++ .              print 'l'
.                       print 'l'
+++ .                   print 'o'
> ++ .                  print ' '
<< +++++ +++++ +++++ .  print 'W'
> .                     print 'o'
+++ .                   print 'r'
----- - .               print 'l'
----- --- .             print 'd'
> + .                   print '!'
> .                     print '\n'

o un altro esempio tratto dalla lingua LOLCODE:

 HAI
 CAN HAS STDIO?
 PLZ OPEN FILE "LOLCATS.TXT"?
     AWSUM THX
         VISIBLE FILE
     O NOES
         INVISIBLE "ERROR!"
 KTHXBYE

Queste lingue sono molto difficili da imparare / leggere / lavorare con. La mia domanda è: perché esistono? Qual è lo scopo di loro? Inoltre, esiste un "nome" ufficiale per questo tipo di lingue?

    
posta Bugster 27.03.2012 - 20:38
fonte

9 risposte

15

Linguaggi di programmazione esoterici, noti anche come Tarp Turing a causa della difficoltà di scrivere qualcosa di utile con loro, sono per lo più costruiti per divertimento o per vedere fino a che punto può essere presa un'idea particolare. Per esempio, lo spazio bianco privilegia un elemento lessicale generalmente ignorato nella maggior parte delle lingue. D'altra parte Shakespeare è progettato per imitare il dramma shakespeariano. Brainfuck ha in realtà uno scopo pratico. È progettato per impiegare il compilatore più piccolo possibile a meno di 200 byte.

Esiste una seconda categoria di linguaggi dello scherzo effettivi come Malebolge e INTERCAL, nessuno dei quali è progettato per essere pratico in alcun modo e ha caratteristiche che rendono più difficile l'uso.

    
risposta data 27.03.2012 - 20:46
fonte
10

Per citare brainf * ck's entry in wikipedia :

Urban Müller created brainfuck in 1993 with the intention of designing a language which could be implemented with the smallest possible compiler,[2] inspired by the 1024-byte compiler for the FALSE programming language.

Queste lingue sono create dal creatore come una sorta di esercizio o un modo per provare qualcosa di nuovo o anche solo per scherzo. È un modo divertente per un programmatore di mantenere le proprie capacità e ottenere internet famosi.

    
risposta data 27.03.2012 - 20:47
fonte
8

Lingue esoteriche sono solo esercizi mentali. Perché esistono cruciverba o puzzle di parole? Perché possiamo.

Brainf * ck è un esercizio di spartanismo; che tipo di linguaggio possiamo creare che ha il minor numero possibile di codici operativi, pur rimanendo Turing completo?

LOLCATS è un cenno a quelle persone che chiedono "POSSO FARE IL CODICE", mentre sono deliziosamente un linguaggio che funziona davvero.

    
risposta data 27.03.2012 - 20:46
fonte
7

My question is - Why do they exist? What is the purpose of them?

Parafrasato dalla pagina di Wikipedia su Lingue di programmazione esoterica :

They are designed as a test of the boundaries of computer programming language design, as a proof of concept, or as a joke. There is usually no intention of the language being adopted for mainstream programming, although some esoteric features such as visuospatial syntax have inspired practical applications in the arts. Such languages are often popular among hackers and hobbyists.

Usability is rarely a high priority for such languages; often quite the opposite. The usual aim is to remove or replace conventional language features while still maintaining a language that is Turing-complete, or even one for which the computational class is unknown.

Also, is there an official "name" for these type of languages?

Sì - "Linguaggi di programmazione esoterici"

    
risposta data 27.03.2012 - 20:46
fonte
3

La tua domanda risponde da sola: sono barzellette, dovrebbero farti ridere. Occasionalmente sono scritti per prendere in giro decisioni sbagliate in altre lingue (satira). Se si sta lavorando nella progettazione della lingua per cominciare, avrete a disposizione molti strumenti per l'analisi e la generazione del codice, quindi in genere non sono così difficili da implementare. L'unico motivo per utilizzare effettivamente uno di questi è la lingua è mostrare che sei coinvolto nello scherzo.

    
risposta data 27.03.2012 - 20:45
fonte
2
  1. Per divertimento.

  2. Perché può valere la pena progettare una lingua, anche se la lingua è, sintatticamente, una pila fumante di mitico brontosauro cacca.

  3. È una cosa assurda da fare. O forse una cosa zen.

risposta data 27.03.2012 - 20:46
fonte
2

Dai un'occhiata all'articolo di wikipedia Lingue di programmazione esoterica . Questo è ciò che sono chiamati questi linguaggi.

Shakespeare e Chef sono altri buoni esempi.

La ragione per scrivere un tale linguaggio potrebbe essere solo vedere cosa è possibile o solo per il gusto di farlo. Penso che la maggior parte delle volte non sono destinati a fare un lavoro serio con loro.

Semplicemente divertiti a guardare i codici e forse se stai creando linguaggi di programmazione prova a capire come funzionano e come sono implementati.

Modifica: ci sono anche "battute" che puoi fare nei linguaggi di programmazione "corretti". Vedi i programmi al Concorso Internazionale del codice C offuscato . Non capisco quasi nessuno di questi programmi eppure fanno cose incredibili con loro e solo per divertimento.

    
risposta data 27.03.2012 - 20:49
fonte
1

Penso valga la pena aggiungere che la pagina Wiki non menziona quello che considero probabilmente il più interessante linguaggio di programmazione esoterico: unlambda . Unlambda afferma di essere: "I tuoi incubi del linguaggio di programmazione funzionale diventano realtà".

Mentre la maggior parte delle lingue esoteriche sono solo minimaliste e abbastanza brutte, unlambda ha onestamente alcuni concetti piuttosto interessanti (anche se espressi nel modo più brutto possibile). Tuttavia, ha / ha alcuni concetti piuttosto interessanti - tra i principali, "l'eliminazione dell'astrazione" (vedi il sito web per i dettagli).

Tutto sommato, è decisamente meno brutto della maggior parte degli altri, ma da un punto di vista della teoria del linguaggio di programmazione, molto più interessante di molti altri.

Tornando alla domanda iniziale sul perché esiste: almeno la maggior parte di loro è solo per divertimento. La maggior parte, tuttavia, rappresenta un tentativo abbastanza serio di esplorare il minimo delle funzionalità necessarie mentre è ancora in corso Turing.

    
risposta data 27.03.2012 - 21:12
fonte
0

Penso che la creazione di un tale linguaggio possa essere un modo utile e divertente per imparare come implementare un parser e / o un compilatore ...

    
risposta data 27.03.2012 - 20:51
fonte

Leggi altre domande sui tag