C, C ++, BF, BASH та Ruby; 280 символів
Оцінка - приблизно 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);}
Зауважте, що я використовую систему Linux.
Код запускається або компілюється за допомогою наступних команд (назва файлу test.c
)
C:
gcc test.c
При запуску з ./a.out
, вихід єC
C ++:
c++ test.c
При запуску з ./a.out
, вихід єC++
БАШ:
./test.c
Виходи: BASH
Ruby:
ruby test.c
Виходи: Ruby
BrainF ***:
Підтверджено за допомогою наступного:
Виходи: brainfuck
Зауважте, що якщо використовується налагоджувач JS, перші два знаки мінус потрібно видалити. Вони були включені для компенсації знаків плюс у прямому рядку "C++"
. Це був дуже цікавий проект, я працюю над тим, щоб додати більше мов.
Просто для додання більшої ясності, ось специфікації мого перекладача / компілятора:
gcc версія 4.6.3
ruby 1.9.3p194 (2012-04-20 перегляд 35410) [x86_64-linux]
GNU bash, версія 4.2.24 (1) -випуск (x86_64-pc-linux-gnu)
СПІЛЬНА ПРИМІТКА
Використовуючи хитрість @ baby-rabbit, я зміг розширити свій код на виконання на 7 мовах (додаються target-C і target-c ++). Це не моє рішення, оскільки я його копіював, але думав, що покажу це.
Оновлення 9.12
Додано запуск SmallTalk за допомогою gnu-smalltalk!
SmallTalk, C, C ++, Objective-C, Objective-C ++, BASH, BF, Ruby; 384 символів (Оцінка: 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
У наведеному вище коді вам потрібно буде перейменувати файл, щоб створити ім'я мови для target-c, obj-c ++, c і c ++.
print()
можна вважати використання такого рішення, як використання Perl, Python, PHP, Processing та R, тривіальним, чи прийнятним?