X는 간단한 언어 인 "X 해석"이라는 많은 과제가 있습니다. 제 생각에는 너무 지루합니다. 인터넷에있는 모든 미련한 사람들에게 흥미로운 일을하기 위해 다음과 같은 도전을 시도 할 수 있습니다.
도전
언어를 선택하십시오 $LANG
. $LANG
튜링 완료 프로그래밍 언어 또는 프로그래밍 언어의 튜링 완료 하위 집합 일 수 있습니다. $LANG
통역 을 위해 귀하의 언어 기능을 생략하는 경우 , 귀하의 제출물도로 작성되어야하므로 귀하의 프로그램에도 사용해서는 안됩니다 $LANG
.
컴파일러 / 인터프리터를 $LANG
작성하십시오 $LANG
. eval
이 컴파일러를 작성할 수있는 언어의 모든 기능 ( 및 친구 포함 )을 사용할 수 있습니다. 작업을 더욱 어렵게하려면 한 가지 제한이 있습니다. 프로그램은 $LANG
인터프리터 / 컴파일러 자체 를 제외한 모든 유효한 프로그램을 해석 / 컴파일 할 수 있어야 합니다. 해석 / 컴파일 할 프로그램이 파일 이름에 관계없이 인터프리터 또는 컴파일러 자체 인 경우 프로그램은 인터프리터 또는 컴파일러의 기능 (예 : 바핑 또는 인쇄 Hello, world!
) 과 완전히 관련이없는 작업을 수행해야합니다 .
이 작업을 더욱 복잡하게하려면 프로그램을 컴파일하거나 해석 할 때 자체 소스를 읽지 않아야합니다.
명세서
- 이 작업은 코드 골프입니다. 가장 적은 문자로 제출하면 이깁니다. 동점 인 경우 먼저 제출 된 솔루션이 우선합니다.
- 프로그램 / 스크립트는 파일에서 해석 할 프로그램을 읽어야합니다. 경로와 이름을 하드 코딩 할 수 있습니다. 파일을 읽을 때 파일을 다른 파일로 컴파일하거나 (시스템에서 실행 가능해야 함) 직접 실행할 수 있습니다.
$LANG
파일 읽기 기능이 부족한 경우 적합한 코드를 읽는 다른 방법을 선택할 수 있습니다$LANG
.$LANG
다른 언어의 하위 집합으로 선택할 수 없지만 파일 읽기 기능을 제거 할 수 있습니다. - 일반적인 코드 골프 규칙이 적용됩니다. 즉, 해결책을 사용하여 솔루션이 사소한 경우 (솔루션을 정확하게 구현하는 단일 문자 프로그램을 정의하는 경우)이 문제를 해결하기 위해 작성한 개인 애완 동물 언어는 금지됩니다. 규칙의 남용이 권장됩니다.