C, C ++, BF, BASH et Ruby; 280 caractères
Le score est d'environ 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);}
Notez que j'utilise un système Linux.
Le code est exécuté ou compilé avec les commandes suivantes (le nom du fichier est test.c
)
C:
gcc test.c
Lorsqu'il est exécuté avec ./a.out
, la sortie estC
C ++:
c++ test.c
Lorsqu'il est exécuté avec ./a.out
, la sortie estC++
FRAPPER:
./test.c
Les sorties: BASH
Rubis:
ruby test.c
Les sorties: Ruby
BrainF ***:
Vérifié en utilisant les éléments suivants:
Les sorties: brainfuck
Notez que si le débogueur JS est utilisé, les deux premiers signes moins doivent être supprimés. Ils ont été inclus pour compenser les signes plus dans le littéral de chaîne "C++"
. C'était un projet très amusant, je travaille sur l'ajout de plusieurs langues.
Juste pour ajouter plus de clarté, voici les spécifications de mon interprète / compilateur:
gcc version 4.6.3
ruby 1.9.3p194 (révision 2012-04-20, révision 35410) [x86_64-linux]
GNU bash, version 4.2.24 (1) - release (x86_64-pc-linux-gnu)
NOTE DE CÔTÉ
En utilisant le tour de @ baby-rabbit, j'ai pu étendre mon code pour qu'il soit exécutable dans 7 langages (Objective-C et Objective-C ++ étant ajoutés). Ce n'est pas ma solution puisque j'en ai copié, mais je pensais la montrer.
Update 9.12
Ajouté l'exécution de SmallTalk avec gnu-smalltalk!
SmallTalk, C, C ++, Objective-C, Objective-C ++, BASH, BF, Ruby; 384 caractères (score: 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
Dans le code ci-dessus, vous devrez renommer le fichier pour produire le nom de la langue pour objective-c, obj-c ++, c et c ++.
print()
de Perl, Python, PHP, Processing et R serait considérée comme triviale ou est-ce acceptable?