El desafío
Se le asigna una función compile(s: String): Integer
que devuelve 0
si s
se puede compilar y cualquier otra cosa que no sea 0
si falla (el código resultante no es importante).
La cuestión es que no sabe para qué idioma está hecha la función, por lo que depende de usted averiguarlo dando pequeños fragmentos de código a la función y observando lo que devuelve. Lo bueno es que un equipo de científicos lo ha intentado antes y ha reducido la lista a C, C ++, C #, Java y JavaScript (estos son los únicos lenguajes generalizados que tienen una sintaxis similar en la que podría pensar).
Reglas
- Se aplican reglas generales de código de golf.
- No hay un formato de salida estricto; siempre y cuando sea legible y comprensible, está bien.
- Si estos 5 idiomas no son suficientes para usted, entonces puede agregar sus propios favoritos y será recompensado con estrellas adicionales (★) (que no hacen nada).
Nota 1 : el compilador está actualizado con el último estándar de cualquier idioma para el que esté diseñado.
Nota 2 : Sé que JavaScript no se compila , pero pasa por algún proceso de análisis; si es un código JavaScript válido, entonces pasa
Respuestas:
Longitud total del fragmento 8; programa de prueba 83 (C)
Distinguir JavaScript y C de C ++, Java y C #
Distinguir JavaScript de C
Distinguir C ++ de C # y Java
Distinguir C # y Java
Código C para determinar el idioma
Fragmentos probados con
C: gcc 4.7.2 con -std = c99
C ++: g ++ 4.7.2 con -std = c ++ 11
Java: javac 1.7.0_09
JavaScript: JavaScript-C 1.8.5
C #: versión del compilador Mono C # 2.10.8.0
fuente
#define C(x)compile(#x)?
ahorra espacio y muchas citas.C(#x)
, no funcionará.