有没有一种简便的方法可以在Go程序中编译Go代码而无需从磁盘读取/写入磁盘?

Is there an easy way to compile Go source code within a Go program? I'm looking for essentially the same functionality as running "go build" but without ever reading from/writing to disk. The Go standard library exposes Go compiler frontend functionality (eg. via go/scanner and go/parser) that makes it trivial to generate an AST from source, but I don't see the compiler backend functionality (eg. the rest of what's handled in work.runBuild in the compiler used to compile Go standard binary distributions) exposed.