컴파일러 식별


11

도전 과제 컴파일 할 수있는 경우 와 실패한 경우 이외 의 결과 를 반환
하는 함수가 제공 됩니다 (결과 코드는 중요하지 않음).compile(s: String): Integer0s0

문제는 함수의 언어가 무엇인지 모르기 때문에 함수에 작은 코드 조각을 제공하고 반환되는 내용을 관찰하여 그 사실을 알아내는 것입니다. 좋은 점은 과학자 팀이 당신보다 먼저 시도했고 C, C ++, C #, Java 및 JavaScript로 목록을 좁혔다 는 것입니다 (이것은 내가 생각할 수있는 비슷한 구문을 가진 유일한 광범위한 언어입니다).

규칙

  • 일반적인 코드 골프 규칙이 적용됩니다.
  • 엄격한 출력 형식은 없습니다. 읽고 이해할 수있는 한 괜찮습니다.
  • 이 5 개 언어로 충분하지 않으면 자신 만의 즐겨 찾기를 추가 할 수 있으며 별표 (★)가 추가됩니다 (아무것도하지 않음).

참고 1 : 컴파일러는 설계된 언어에 관계없이 최신 표준으로 최신 상태입니다.
참고 2 : JavaScript는 컴파일 되지 않는다는 것을 알고 있지만 일부 구문 분석 프로세스를 거치지 않습니다. 유효한 JavaScript 코드이면 전달됩니다.


2
우리는 무엇을 제공해야합니까? 컴파일러에게 구별하여 문자열의 총 길이를 최소화하는 데 사용할 수있는 문자열 세트?
Geoff Reedy

@GeoffReedy 언어를 결정하는 코드 만 찾고 있었지만 제공 한 설명은 환영하는 것 이상입니다.
adrianton3

답변:


7

총 스 니펫 길이 8; 시험 프로그램 83 (C)

C ++, Java 및 C #과 JavaScript 및 C 구별

a;

C와 JavaScript 구별

0

C # 및 Java와 C ++ 구별

#

C #과 Java 구별

[:a]

언어를 결정하는 C 코드

#define C(x)compile(#x)?
main(){puts(C(a;)C(#)C([:a])"J":"C#":"C+":C(0)"C":"JS");}

테스트 한 스 니펫

C : -std = c99 인 gcc 4.7.2
C ++ : -std = c ++ 11 인 g ++ 4.7.2
Java : javac 1.7.0_09
JavaScript : JavaScript-C 1.8.5
C # : Mono C # 컴파일러 버전 2.10.8.0


#define C(x)compile(#x)?공간과 따옴표를 많이 저장합니다.
우고 렌

@ugoren 고마워, 나는 실제로 스트링 화를 시도했다고 생각했지만 어떤 이유로 든 작동하지 않았다. 나도 다른 문제가 있었을 것입니다. 지금 제대로 작동합니다
Geoff Reedy

그러나 어떻게 든 혼합되어 C(#x)작동하지 않습니다.
우고 렌
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.