C, C ++, BF, BASH e Ruby; 280 caratteri
Il punteggio è di circa 0,040
#include "stdio.h"
#define s "C"
#ifdef __cplusplus
#define s "C++"
#endif
#ifndef s
#"+++++++++[>++++++++++>+++++++++<<-]>>-.<++++.>-.++++++++.<----.>---.<+++++++.>---.++++++++.<<++++++++++.[-]"
if [ 1 == 2 ];then
puts "Ruby"
exit
fi
echo "BASH"
exit
end
#endif
main(){puts(s);}
Nota che sto usando un sistema Linux.
Il codice viene eseguito o compilato con i seguenti comandi (il nome del file è test.c
)
C:
gcc test.c
Quando eseguito con ./a.out
, l'output èC
C ++:
c++ test.c
Quando eseguito con ./a.out
, l'output èC++
BASH:
./test.c
Uscite: BASH
Rubino:
ruby test.c
Uscite: Ruby
Brainf ***:
Verificato utilizzando il seguente:
Uscite: brainfuck
Se si utilizza il debugger JS, è necessario rimuovere i primi due segni meno. Sono stati inclusi per compensare i segni più nella stringa letterale "C++"
. Questo è stato un progetto molto divertente, sto lavorando per aggiungere più lingue.
Solo per aggiungere ulteriore chiarezza, ecco le specifiche del mio interprete / compilatore:
versione gcc 4.6.3
ruby 1.9.3p194 (revisione 20-04-2012 35410) [x86_64-linux]
GNU bash, versione 4.2.24 (1) -release (x86_64-pc-linux-gnu)
NOTA A MARGINE
Usando il trucco di @ baby-rabbit sono stato in grado di estendere il mio codice per essere eseguibile in 7 lingue (obiettivo-C e obiettivo-c ++ aggiunti). Questa non è la mia soluzione da quando ne ho copiate alcune, ma ho pensato di metterlo in mostra.
Aggiornamento 9.12
Aggiunto SmallTalk eseguito con gnu-smalltalk!
SmallTalk, C, C ++, Objective-C, Objective-C ++, BASH, BF, Ruby; 384 caratteri (punteggio: 0,059)
#if (a)
##(true) ifTrue: ['SmallTalk' printNl]
##(ObjectMemory quit)
#"+++++++++++[>++++++++++>+++++++++<<-]>>-.<++++.>-.++++++++.<----.>---.<+++++++.>---.++++++++.<<++++++++++.[-]"
if [ 1 == 2 ];then
puts 'Ruby'
exit
fi
echo 'BASH'
exit
end
=begin
#endif
#include "stdio.h"
main(){puts(
#ifdef __OBJC__
"Objective-"
#endif
"C"
#ifdef __cplusplus
"++"
#endif
);}
#ifdef b
=end
#endif
Nel codice sopra dovrai rinominare il file per produrre il nome della lingua per gli obiettivi-c, obj-c ++, c e c ++.
print()
di Perl, Python, PHP, Processing e R sarebbe considerato banale o è accettabile?