'새로운'언어를위한 컴파일러를 디자인하고 싶습니다. 새로운 언어는 자체 구문을 가지며 유효한 C 코드를 출력합니다. 즉, ac 코드를 생성합니다. 난 문법을 설계했다. 재귀 적 파생 구문 분석과 추상 구문 트리를 가지고있다. 예를 들어 구조체에 대한 트리가있다. 어떻게 이것을 원래의 C 코드에 매핑 할 수 있는가? 순차적 인 순회를 수행 할 수 있습니까?새로운 프로그래밍 언어의 추상 구문 트리를 평가하는 방법
나는 Aho Ullman 서적을 읽었습니다. 통역사와 편집의 차이점은 무엇입니까? 방문자 패턴을 적용 할 수 있습니까?
내 의심은 ast를 평가하는 방법입니까? – user3217708
언어를 발명하기 때문에 구문의 각 구성 요소에 대해 의도 한 의미가 무엇인지 알 수 있습니다. 구문을 프로그램의 의도 된 동작을 나타내는 양식으로 매핑해야합니다. 즉, 해석에서 컴파일로 이동할 수있는 충분히 직접적인 방식으로 구문을 매핑해야합니다. – keshlam
Aho/Ullman의 저의 저의 저서에서 여러분의 질문은 7 장 "구문 지향 번역"에서 시작합니다. AST를 사용하여 IL (중간 코드) 표현을 작성하십시오. 8-11 장은 그 과정에 대한 추가적인 세부 사항을 제공한다. 처음에는 코드 최적화에 관한 12-14 장을 제공 할 수 있습니다. 15 장에서는 IL을 사용하여 코드를 생성하는 방법을 설명합니다. 그것은 어셈블러 나 바이너리 객체 코드 파일 대신 C 출력에 적용 할 것입니다. – keshlam