높은 수준의 언어를 낮은 수준의 언어로 컴파일하는 것은 케이크입니다. 수많은 사례가 있습니다. 많은 접선을 가지지 않고 C로 컴파일 된 초기 C ++ 컴파일러를 가리킬 수 있습니다.
그러나 믹스에 "깨끗한" "읽기"를 던지기 시작하면 상황이 매우 어려워집니다. 깨끗하고 읽을 수있는 코드 는 작성중인 내용 의 의미 와 의도 를 나타냅니다. 컴퓨터는 의미를 해석하고 만드는 데 악명이 높습니다. int_147
보다 이름 이 지정된 변수로 끝날 가능성이 큽니다 input_buffer_length
. 물론, 이 프로젝트 를 실제로 만들고 싶다면 Lisp를 읽기 쉬운 C ++로 변환하는 대규모 AI 프로젝트에 참여할 수는 있지만 Common Lisp 컴파일러는 자신이하는 일을 꽤 잘합니다. .
Lisp에서 C ++을 생성하는 것보다 더 중요한 것은 이것의 유용성입니다. 생성 된 C ++를 읽을 수있게하려면 어떤 용도로 사용됩니까? Lisp이 소스 코드 인 경우 중간 표현은 관련이 없습니다. 원래 Lisp를 이해하지 못하는 프로그래머에게 C ++을 넘겨 주려면 다른 문제가 생겼습니다. 생성 된 C ++를 수정하려고하면 어떻게됩니까? C ++로 Lisp로 명확하게 번역되지 않는 것을 작성하면 어떻게됩니까?
우리가 그것을 해결했다고 가정 해 봅시다. 10 년 후, 우리는 수억 달러의 DoD 보조금을 타서 Lisp를 관용적 C ++로 바꿀 수있는 거대하고 복잡한 (완벽한) 언어 번역 엔진을 구축했습니다. 사람들에게 새로운 프로그래밍 언어를 가르치거나 두 언어를 연결할 수있는 새로운 컴파일러를 개발함으로써 더 나은 성과를 얻지 못한 것은 실제로 무엇을 얻었습니까?
아 맞다 당신의 상사는 당신이 C ++를 작성하기를 원하지만 당신은 그렇지 않을 것입니다. 이력서를 업데이트하고 새로운 직업을 찾으십시오.