A pirâmide das línguas

15

Escreva um código que execute ou compile no maior número possível de linguagens de programação e imprima uma lista separada por nova linha de nomes de linguagens de programação anteriores e atuais.

  • Todo idioma usado deve ter um nome mais longo que o anterior; ex. C#, C++, Ruby, Jelly, Python...
  • Cada idioma deve gerar uma lista de nomes de idiomas separados por uma nova linha, classificada por tamanho.
    • A saída deve ser uma pirâmide: A lista pode conter apenas nomes de idiomas usados, menores do que o nome do idioma do script em execução + o nome do idioma do script em execução.
  • Novas linhas iniciais e finais são permitidas.
  • As brechas padrão são proibidas.
  • Não é permitido criar linguagens de programação personalizadas apenas para aumentar a pontuação.
  • Os números de versão não contam no nome do idioma, mas você pode especificá-lo em sua postagem se houver alterações incompatíveis nas novas versões do idioma.
  • Você pode decidir se deseja usar o atalho para o nome do idioma ou o nome completo, mas não pode enviar os dois formulários em uma resposta. Você pode usar ex. um SPLou Shakespeare Programming Language.
    • Apenas letras, números, símbolos ASCII e espaços únicos (sem início nem final) contam no comprimento do nome do idioma.

Exemplos

Exemplo de saídas para C, C # e C ++:

C

C

C#

C
C#

C++

C
C#
C++
Trevo vermelho
fonte
Sandbox post
RedClover
1
Existem muitos idiomas com nomes de uma única letra: tio.run sozinho possui 4, 7, C, D, I, J, K, M, R e V. (Outro significativo é B, o predecessor de C.)
Lynn
@Lynn Mas se você começar a partir de um nome de idioma mais tempo você pode perder pontuação
RedClover

Respostas:

19

10 idiomas C , rk , > <> , trilho , largura , Gol> <> , fissão , cardeal , fúria cerebral , Befunge-98 , 991 bytes

//Q rk:start print: "C^nrk" rk:end @,k*97C'a"rk"a"><>"a-1"Sail"a"Width"a"Gol><>"a"Fission"a"Cardinal"a"brainfuck"a"Befunge-98"
main(){puts("C");}
/*
$'main'
 \-[C\n\rk\n\><>\n\Rail]o

++++[++++>---<]>.>++++++++++.[------->+++<]>.-------.>++++++++++.[->++++++<]>++.--.++.>++++++++++.>-[--->+<]>---.[------>+<]>--.++++++++.+++.>++++++++++.[------>+<]>.+++[->++++<]>+.-----.--[--->+<]>--.------------.>++++++++++.[->+++++++<]>+.[--->+<]>++.---.--[->+++<]>.--.++.>++++++++++.[->+++++++<]>.[-->+++<]>.++++++++++..----------.++++++.-.>++++++++++.+[->++++++<]>+.-[-->+++<]>--.--[--->+<]>---.--------------.+++++.+++++.-------------.+++++++++++.>++++++++++.+[--->++++<]>--.[--->+<]>----.+++[->+++<]>++.++++++++.+++++.--------.-[--->+<]>--.+[->+++<]>+.++++++++.
R"C"N"rk"N"><>"N'S_!"ail"N"Width"N"Gol><>"N"Fission"*
/"><>krC"oaoooaooooE ao'liaR>'~ooooaoS"Width"aoS"Gol><>"; QQaAWAmcOAWAaicmaiWAAiwAOaOwWAAAOawmmFOcQww
 %"C"++++++++++,"rk","><>",=--t++,"ail"~,"Width","Gol><>","Fission","Cardinal"
 */

Experimente online!

568 bytes disso são apenas o código do cérebro. O programa Befunge-98 produz:

C
rk
><>
Rail
Width
Gol><>
Fission
Cardinal
brainfuck
Befunge-98
Brincadeira
fonte
Você não pode salvar 2 bytes usando em putsvez de printf?
918 Neil
@ Neil Thanks! (não golfed em C antes (alguns diriam que eu ainda não tem))
Jo rei
2
Agradável! Gostaria de adicionar Parenthetic a seguir - ele ignora tudo, menos (e )simplificando o processo.
Lynn
9

7 idiomas (J, es, zsh, Bash, Straw, Retina, Fissão), 222 bytes

echo 'J'
#0 : 0
echo es #(10)#»:::J>>(es)>>(zsh)>>(Bash)>>(Straw)>>
(echo zsh;)
if [[ $BASH_VERSION ]]; then echo Bash; fi
#              ;R"J"N"es"N"zsh"N"Bash"N"Straw"N'Q+!"etina"N"Fission"N;
K`J¶es¶zsh¶Bash¶Straw¶Retina

Experimente online!

Lynn
fonte
Sei que este não é um desafio de código-golfe, mas você pode remover o Ndepois "Fission"para salvar 1 byte. :)
Kevin Cruijssen