귀하의 작업은 간단합니다 : 두 가지 언어로 실행할 수있는 프로그램을 작성하십시오. 언어 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
모두 대문자로 자동 입력 되므로 모든 대문자를 입력하지 마십시오 .