C, C ++, BF, BASH y Ruby; 280 caracteres
El puntaje es de aproximadamente 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);}
Tenga en cuenta que estoy usando un sistema Linux.
El código se ejecuta o compila con los siguientes comandos (el nombre del archivo es test.c
)
C:
gcc test.c
Cuando se ejecuta con ./a.out
, la salida esC
C ++:
c++ test.c
Cuando se ejecuta con ./a.out
, la salida esC++
GOLPETAZO:
./test.c
Salidas: BASH
Rubí:
ruby test.c
Salidas: Ruby
BrainF ***:
Verificado usando lo siguiente:
Salidas: brainfuck
Tenga en cuenta que si se utiliza el depurador JS, entonces los dos primeros signos menos deben eliminarse. Se incluyeron para compensar los signos más en el literal de cadena "C++"
. Este fue un proyecto muy divertido, estoy trabajando para agregar más idiomas.
Solo para agregar más claridad, aquí están las especificaciones de mi intérprete / compilador:
gcc versión 4.6.3
ruby 1.9.3p194 (revisión 2012-04-20 35410) [x86_64-linux]
GNU bash, versión 4.2.24 (1) -release (x86_64-pc-linux-gnu)
NOTA LATERAL
Usando el truco de @ baby-rabbit pude extender mi código para que sea ejecutable en 7 lenguajes (agregando Objective-C y Objective-C ++). Esta no es mi solución, ya que copié algunas, pero pensé en mostrarlas.
Actualización 9.12 ¡Se
agregó SmallTalk run con gnu-smalltalk!
SmallTalk, C, C ++, Objective-C, Objective-C ++, BASH, BF, Ruby; 384 caracteres (Puntuación: 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
En el código anterior, deberá cambiar el nombre del archivo para generar el nombre del idioma para aim-c, obj-c ++, c y c ++.
print()
Perl, Python, PHP, Processing y R se consideraría trivial o es aceptable?