컴파일러는 부트 스트랩이라는 트릭을 사용하여 자체 언어로 작성 될 수 있음을 알고 있습니다. 내 질문은이 트릭이 통역사에게도 적용될 수 있는지 여부입니다.통역사를 부트 스트랩합니까?
이론적으로 대답은 확실합니다. 그러나 반복을 거치면서 소스 코드의 해석이 점점 더 비효율적이 될 것이라는 걱정이 있습니다. 그게 심각한 문제가 될까요?
저는 프로그램이 끊임없이 변화하는 매우 역동적 인 시스템을 부트 스트랩하므로 컴파일러를 배제합니다.
나에게 이런 식으로 그것을 밖으로 철자 보자
이 난의 수 통역을 보자.
하자 프로그래밍 언어 수 있습니다.
- L1을 해석하기 위해 컴퓨터 코드 (가장 낮은 레벨)로 i1을 쓸 수 있습니다.
- 그런 다음 L1에서 i2를 작성하여 L2를 해석합니다. 새 언어입니다.
- 다음으로 L2에 i3을 써서 L3을 해석합니다. 또 다른 새로운 언어입니다. 우리는 위의 어떤 컴파일러가 필요하지 않습니다
비효율적 일 수 있습니다. 그것은 내 질문이며, 실제로 비효율적 인 경우이를 극복하는 방법입니다.
이것이 가능한지 잘 모를 경우 거의 확실하게 자신의 프로그래밍 언어를 만들지 않아야합니다. 또한 컴파일 된 동적 시스템을 가질 수 없다는 것은 사실이 아닙니다. – Marcin
이것은 실제로 부트 스트랩하는 것이 아닙니다. 부트 스트래핑이란 언어 A로 작성된 컴파일러에서 언어 A를 컴파일한다는 의미입니다. 인터프리터 B가 인터프리터를 해석하고 _no_ 다른 언어가 포함되어 있고 정확하게 B가 실행되는 경우가 있기 때문에 통역사에 적용 할 수 없습니까? 논리는 컴파일 된 것을 의미하는 다른 언어 (아마도 기계 코드)가 있어야 함을 알려줍니다. 당신이 말하는 것은 인터프리터 스택입니다. PyPy 프로젝트는 Python 인터프리터 (제한된 서브셋 임에도 불구하고)를 구축 한 경험이있다 : http://pypy.org. –