귀하의 작업은 간단합니다 : 두 가지 언어로 실행할 수있는 프로그램을 작성하십시오. 언어 1의 일반 quine (자체 소스 코드를 인쇄 함)이어야하며 언어 2의 오류 quine (자체 소스 코드와 동일한 오류 메시지를 생성 함)이어야합니다.
이것은 code-golf 이므로 가장 짧은 유효한 제출 (바이트)이 이깁니다.
규칙 :
귀하의 작업은 간단합니다 : 두 가지 언어로 실행할 수있는 프로그램을 작성하십시오. 언어 1의 일반 quine (자체 소스 코드를 인쇄 함)이어야하며 언어 2의 오류 quine (자체 소스 코드와 동일한 오류 메시지를 생성 함)이어야합니다.
이것은 code-golf 이므로 가장 짧은 유효한 제출 (바이트)이 이깁니다.
규칙 :
답변:
^"
>#001p#"<>:#,_@#1-8*3:-1*57+55-1*79*57:-1:*77**278\-1:*57$p:1: error: declaration expected
온라인으로 사용해보십시오! : Befunge-93 , C
파일 이름에 일치하는 따옴표가 필요하다는 점에 대해 randomdude999에게 감사드립니다.
filename 아래에 저장해야합니다 ^"\n>#001p#"<>:#,_@#1-8*3:-1*57+55-1*79*57:-1:*77**278\-1:*57$p. 여기서\n 줄 바꿈이다. 이 때문에 C 용 TIO는 의도 한대로 정확하게 실행되지 않습니다. 루 분투에서 작동하도록 테스트되었습니다.
프로그램이 컴파일에 실패하고, tcc는 오류 메시지의 일부로 파일 이름을 행복하게 출력합니다. 코드의 시작 부분에 따라 여러 가지 컴파일 오류가 발생할 수 있습니다. ^처음에는을 제공합니다. declaration expected는 짧고와 같은 문제가있는 문자를 포함하지 않습니다 ". 다른 한편으로, gcc와 clang 개발자는 매우 비관적이며 여러 오류를 한 번에 출력하기로 선택했습니다. 그리 좋지는 않으므로 컴파일러를 사용하지 않습니다.
Befunge는 "문자열 모드를 토글 하는 명령 덕분에 코드를 문자 데이터로 활용할 수 있다는 점에서 Quies에 편리 합니다. 처음에는 쓸모없는 스택 작업을 수행 한 다음 p(put 명령)을 실행하여 NUL 문자를 (0, 1)에 배치합니다. 그런 다음 명령 포인터를 왼쪽에 반영하고 모든 것을 문자열로 읽습니다. 스택의 LIFO 특성으로 인해 왼쪽으로 수행해야합니다. "캐릭터를 감싸고 다시 도달 하면 문자열이 끝납니다. NUL 문자는$ 문자 하여 문자열 중간에 구분 기호를 만듭니다. 그런 다음 3 개의 숫자를 스택에 넣고 NUL 위로 뛰어 넘습니다 (불행히도 명령으로 실행될 때 인터프리터를 중단시키기 때문). 오류 메시지의 정적 부분은 여기서 실행해야합니다. 대부분의 문자는 홉이 아니지만 p명령은 세 가지 인수를 사용하므로 (왜 우리는 3 개의 숫자를 밀었습니까? 그렇지 않으면 문자열의 일부를 여기에서 먹을 것입니다) :& 1문자는 총 4 개의 값을 스택에 푸시합니다. A를 p하고,$(팝 앤 폐기) 명령. 그런 다음 ASCII 코드를 푸시하기 위해 일부 산술이 수행 ^"\n>#001p#"되고 마지막으로 루프는 NUL 문자를 찾아 종료 할 때까지 스택의 모든 값을 문자로 인쇄합니다.
/. 나는 지금 그것을 스스로 테스트 할 수 없습니다.
<define>:1: error: missing terminating " character입니다.
?SYNTAX ERROR
Apple] [에뮬레이터에서 RESET키를 눌러 기본 모드로 들어갑니다.
Commodore LCD 에뮬레이터 RightArrowEnter에서 BASIC 응용 프로그램을 시작하십시오.
두 가지 ?SYNTAX ERROR모두 대문자로 자동 입력 되므로 모든 대문자를 입력하지 마십시오 .