권장 사항에 따라 Stack Overflow 에서 이것을 다시 게시하고 있습니다 .
최근에 나는 다음과 같은 문제에 대해 생각하고있다.
표준 "Hello world!"의 코드를 고려하십시오. 프로그램:
main()
{
printf("Hello World");
}
이제이 코드의 거의 모든 변경은 코드를 완전히 쓸모 없게 만들며, 실제로 거의 모든 변경으로 인해 코드가 컴파일되지 않습니다. 예를 들면 다음과 같습니다.
main(5
{
printf("Hello World");
}
이제 실제 질문입니다. 가능한 모든 기호 조합, 즉 모든 표현이 의미가있는 프로그래밍 언어가 있습니까? 나는 일종의 해결책에 대해 생각하고 두 가지를 생각해 냈습니다.
제한된 수의 변수가있는 접미사. 기본적으로 모든 변수는 코드를 작성하기 전에 이미 정의되어 있으므로 변수로 작업해야합니다. 이론적으로 많은 간단한 프로그램 체인을 구성하여 임의의 수의 작업을 수행 할 수 있습니다. 각 프로그램은 다른 프로그램에 결과를 제공합니다. 코드는 접미사 표기법으로 일련의 문자로 작성 될 수 있습니다.
변수 스택이있는 "Postfix" 변수는 스택에 저장됩니다. 모든 작업은 상단에서 두 개의 변수를 가져와 결과를 제자리에 둡니다. 프로그램이 마지막 작업 또는 변수에 도달하면 종료됩니다.
개인적으로 나는이 두 가지를 모두 싫어합니다. 그것들은 제한적일뿐만 아니라 우아하지도 않습니다. 그것들은 대안과 같은 실제 솔루션이 아니며, 본질적으로 일부 작업을 외부 프로세스에 "오프 쇼어"합니다.
누구 든지이 문제를 해결하는 방법에 대한 다른 아이디어가 있습니까?
[
]
는 Wiki 페이지에 따라 일치하는 명령이 필요합니다 . 내 생각은 CPU opcode를 보는 것이었다. 그러나 그럼에도 불구하고 일부 패턴은 문제를 일으킬 수 있습니다 (예 : opcode가 3 비트이지만 프로그램이 2 비트 인 경우). 0 비트로 채워질 가능성이있는 문제를 제외하고는 어떤 CPU에서도 "모든 문자열은 유효한 프로그램"이라는 주장을 충족시키는 완전한 opcode 세트입니다. 의미가 없지만 여전히 유효합니다.
You are a bimbo.