标签:mic 函数 机器 打包 表示 没有 build 高级 pac
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
vim查看 :%!xxd
在终端里执行 man ascii
观察发现, 中间列和最右列 是一一对应的。
也就是说,刚刚写完的 hello.go 文件都是由 ASCII 字符表示的(文本文件)
Go 程序并不能直接运行,每条 Go 语句必须转化为一系列的低级机器语言指令,将这些指令打包到一起,
并以二进制磁盘文件的形式存储起来,也就是可执行目标文件。
一般而言,先执行一些初始化的工作;
找到 main 函数的入口,执行用户写的代码;
main 函数退出;
执行一些收尾的工作,整个过程完毕。
通常将编译和链接合并到一起的过程称为构建(Build)。
编译过程就是对源文件进行词法分析、语法分析、语义分析、优化,最后生成汇编代码文件,以 .s 作为文件后缀的汇编指令。
汇编器会将汇编代码转变成机器可以执行的指令。
由于每一条汇编语句几乎都与一条机器指令相对应,所以只是一个简单的一一对应,比较简单,没有语法、语义分析,也没有优化这些步骤。
编译器的作用:
将高级语言翻译成机器语言的一个工具,编译过程一般分为 6 步:
1. 扫描
2. 语法分析
3. 语义分析
4. 源代码优化
5. 代码生成
6. 目标代码优化
标签:mic 函数 机器 打包 表示 没有 build 高级 pac
原文地址:https://www.cnblogs.com/iiiiiher/p/12179867.html