최근 Go1에 go 명령이 도입되면서 기본 기능에 대한 호기심이 생겼습니다. 특히 go/ast, go/token 및 go/parser와 같은 패키지의 존재로 인해 새 컴파일러 내에서의 역할에 대한 의문이 제기되었습니다.
기대와는 달리 Go1 컴파일러는 주로 C로 작성되었습니다. 해당 어휘 분석기는 src/cmd/gc/lex.c에 있는 반면 Bison 문법은 다음과 같습니다. src/cmd/gc/go.y에 정의되어 있습니다. 따라서 위에서 언급한 패키지는 실제 컴파일 과정에서 활용되지 않습니다.
대신, go/ 패키지는 컴파일 프로세스 내의 다양한 도구에서 중요한 목적을 수행합니다. 생태계로 가세요. 이러한 도구에는 문서 생성을 위한 godoc, 코드 형식 지정을 위한 gofmt 및 go 도구의 다양한 하위 명령이 포함됩니다.
이러한 현재 구현에도 불구하고 Golang으로 작성된 Go 컴파일러의 전망은 여전히 흥미로운 가능성으로 남아 있습니다. 그러나 이 방향에서는 아직 실질적인 진전이 이루어지지 않았습니다.
위 내용은 Go 1 컴파일러는 `go/ast`, `go/token` 및 `go/parser` 패키지를 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!