C, C ++, BF, BASH 및 루비; 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
).
씨:
gcc test.c
로 실행하면 ./a.out
출력은C
C ++ :
c++ test.c
로 실행하면 ./a.out
출력은C++
세게 때리다:
./test.c
출력 : BASH
루비:
ruby test.c
출력 : Ruby
BrainF *** :
다음을 사용하여 확인했습니다.
출력 : brainfuck
JS 디버거를 사용하는 경우 처음 두 빼기 부호를 제거해야합니다. 문자열 리터럴에서 더하기 부호를 오프셋하기 위해 포함되었습니다 "C++"
. 이것은 매우 재미있는 프로젝트였습니다. 더 많은 언어를 추가하고 있습니다.
더 명확하게하기 위해 여기 내 통역사 / 컴파일러 사양이 있습니다.
사이드 노트
@ baby-rabbit의 트릭을 사용하여 7 가지 언어 (objective-C 및 objective-c ++ 추가)로 실행 가능하도록 코드를 확장 할 수있었습니다. 이것은 일부를 복사 한 이후 내 해결책이 아니지만 그것을 보여 줄 것이라고 생각했습니다.
9.12 업데이트
gnu-smalltalk로 실행되는 SmallTalk가 추가되었습니다!
스몰 토크, C, C ++, 오브젝티브 -C, 오브젝티브 -C ++, BASH, BF, 루비; 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
위의 코드에서 objective-c, obj-c ++, c 및 c ++에 대한 언어의 이름을 생성하려면 파일 이름을 바꿔야합니다.
print()
Perl, Python, PHP, Processing 및 R에 사용하는 것과 같은 솔루션을 사용하는 것이 사소한 것으로 간주됩니까?