C, C ++, BF, BASH i Ruby; 280 znaków
Wynik to około 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);}
Zauważ, że używam systemu Linux.
Kod jest uruchamiany lub kompilowany za pomocą następujących poleceń (nazwa pliku to test.c
)
DO:
gcc test.c
Po uruchomieniu z ./a.out
wyjściem jestC
C ++:
c++ test.c
Po uruchomieniu z ./a.out
wyjściem jestC++
GRZMOTNĄĆ:
./test.c
Wyjścia: BASH
Rubin:
ruby test.c
Wyjścia: Ruby
BrainF ***:
Zweryfikowano przy użyciu:
Wyjścia: brainfuck
Zauważ, że jeśli używany jest debuger JS, należy usunąć dwa pierwsze znaki minus. Zostały one uwzględnione, aby zrównoważyć znaki plus w dosłowności łańcucha "C++"
. To był bardzo fajny projekt, pracuję nad dodaniem kolejnych języków.
Aby jeszcze bardziej wyjaśnić, oto specyfikacje mojego tłumacza / kompilatora:
wersja gcc 4.6.3
ruby 1.9.3p194 (wersja 2012-04-20 wersja 35410) [x86_64-linux]
GNU bash, wersja 4.2.24 (1) -release (x86_64-pc-linux-gnu)
DYGRESJA
Używając sztuczki @ baby-rabbit udało mi się rozszerzyć mój kod, aby był wykonywalny w 7 językach (dodano C-C i C-C ++). To nie jest moje rozwiązanie, ponieważ niektóre z nich skopiowałem, ale pomyślałem, że się pochwalę.
Aktualizacja 9.12
Dodano bieg SmallTalk z gnu-smalltalk!
SmallTalk, C, C ++, Objective-C, Objective-C ++, BASH, BF, Ruby; 384 znaki (Wynik: 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
W powyższym kodzie należy zmienić nazwę pliku, aby utworzyć nazwę języka dla celu-c, obj-c ++, c oraz c ++.
print()
Perl, Python, PHP, Processing i R byłoby uważane za trywialne, czy jest dopuszczalne?