Google은 Go 1.5 부트스트랩을 구현할 계획을 발표했습니다. 관련 문서의 저자는 거의 6년 동안 Go 언어 작업을 해온 Go 핵심 개발자 Russ Cox입니다. Russ에 따르면 Google은 "Go 소스 트리에서 모든 C 프로그램을 제거하는 방법"에 대해 1년 동안 연구해 왔습니다. (추천 학습 : go)
부트스트래핑은 "컴파일할 대상 프로그래밍 언어의 컴파일러(또는 어셈블러)를 작성하는" 과정입니다.
일반적으로 부트스트랩에는 다음과 같은 여러 가지 장점이 있습니다.
부트스트랩되는 언어를 테스트하는 데
일반적으로 더 높은 수준이고 더 높은 수준의 추상화를 제공하는 언어로 컴파일러 작성을 지원합니다. 컴파일러는 언어 수준의 개선을 통해 이점을 얻을 수도 있습니다.
앞서 언급했듯이 Google은 이전에 Go 소스 트리에서 C 코드를 제거하려는 노력을 시작했습니다. 변환 계획은 5단계로 나뉩니다.1단계 - 기존 C를 번역하는 Go 언어 번역기용 C 코드 개발 Go 언어로 컴파일러를 만듭니다. 이 단계에서는 원래 컴파일러가 매크로, 공용체, 포인터 연산과 같이 Go 언어로 이식하기 어려운 일부 기능을 광범위하게 사용하지 않았다는 사실을 활용합니다.
2단계 - 컴파일러의 소스 코드 트리를 변환하여 Go 언어 컴파일러를 얻습니다. 하지만 더 원시적이고 C 스타일입니다.
3단계 - 주로 패키지 식별, 문서 추가 및 단위 테스트를 통해 이전에 얻은 컴파일러를 Go 언어 습관에 맞는 프로그램으로 변환합니다.
4단계 - 컴파일러를 최적화하고 컴파일러와 CPU의 메모리 사용 문제를 해결하며 병렬화를 도입할 수도 있습니다.
또한 중복성을 제거하는 컴파일러의 능력을 향상시키는 것을 목표로 아키텍처 독립적인 순서가 지정되지 않은 트리(Node*s)와 현재 사용되는 아키텍처 종속 순서가 지정된 목록(Prog*s) 사이에 새로운 중간 표현을 도입해 보십시오. . 남은 nil 검사 및 경계 검사 최적화
위 내용은 golang은 무엇으로 쓰여 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!