From fd96ca9b1190b2ccb3cb6e2fe116c86ed3f5304d Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 10 Apr 2013 03:21:01 -0400 Subject: [PATCH] 02.1.md --- eBook/02.1.md | 63 ++++++++++++++++++++++++++-------------------- eBook/02.2.md | 15 +++++++++++ eBook/directory.md | 1 + 3 files changed, 52 insertions(+), 27 deletions(-) create mode 100644 eBook/02.2.md diff --git a/eBook/02.1.md b/eBook/02.1.md index 0d8e32e..d648916 100644 --- a/eBook/02.1.md +++ b/eBook/02.1.md @@ -1,17 +1,3 @@ -##啊哦,亲,你看得也太快了。。。还没翻译完呢 0 0 -要不等到 ***2013 年 4 月 11 日*** 再来看看吧~~ - -这里还有一些其它的学习资源噢~ - - - [《Go编程基础》](https://github.com/Unknwon/go-fundamental-programming):已更新至 [第六课](https://github.com/Unknwon/go-fundamental-programming/blob/master/lecture6/lecture6.md) - - [《Go Web编程》](https://github.com/astaxie/build-web-application-with-golang) - -神马?你说你不想学习?那好吧,去逛逛论坛看看行情也行~ - -- [Golang中文社区](http://bbs.mygolang.com/forum.php) -- [Go语言学习园地](http://studygolang.com/) -- [Golang中国](http://golang.tc) - #2.1 平台与架构 ( ***译者注:由于 Go 语言版本更替,本节中的相关内容经原作者同意将被直接替换而不作另外说明*** ) @@ -58,18 +44,41 @@ Go 语言开发团队开发了适用于以下操作系统的编译器: 可用的编译器标记如下: flags: - -I DIR search for packages in DIR - -d print declarations - -e no limit on number of errors printed - -f print stack frame structure - -h panic on an error - -o file specify output file // see § 3.4 - -S print the generated assembly code - -V print the compiler version // see § 2.3 (7) - -u disable package unsafe - -w print the parse tree after typing - -x print lex tokens + -I 针对包的目录搜索 + -d 打印声明信息 + -e 不限制错误打印的个数 + -f 打印栈结构 + -h 发生错误时进入恐慌(panic)状态 + -o 指定输出文件名 // 详见第3.4节 + -S 打印产生的汇编代码 + -V 打印编译器版本 // 详见第2.3节 + -u 禁止使用 unsafe 包中的代码 + -w 打印归类后的语法解析树 + -x 打印 lex tokens - 在 Go 1.0.3 版本开始,不再使用 8g,8l 之类的指令进行程序的构建,取而代之的是统一的 `go build` 和 `go install` 等命令,而这些指令会自动调用相关的编译器或链接器。 + 从 Go 1.0.3 版本开始,不再使用 8g,8l 之类的指令进行程序的构建,取而代之的是统一的 `go build` 和 `go install` 等命令,而这些指令会自动调用相关的编译器或链接器。 -2. 的 \ No newline at end of file + 更深层次的信息:你可以在目录 `$GOROOT/src/cmd` 下找到编译器和链接器的源代码。Go 语言本身是由 C 语言开发的,而不是 Go 语言。词法分析程序是 GNU bison,语法分析程序是名为 `$GOROOT/src/cmd/gc/go.y` 的 yacc 文件,它会在同一目录输出 `y.tab.{c,h}` 文件。如果你想知道更多有关构建过程的信息,你可以查看相同目录下的 Makefile 文件,另一个构建过程的概述可以在 `$GOROOT/src/make.bash` 中找到。 + + 大部分的目录都包含了名为 `doc.go` 的文件,这个文件提供了更多详细的信息。 + +2. gccgo 编译器: + + 一款相对于 gc 而言更加传统的编译器,使用 GCC 作为后端。GCC 是一款非常流行的 GNU 编译器,它能够构建基于众多处理器架构的应用程序。编译速度相对 gc 较慢,但产生的本地代码运行要稍微快一点。它同时也提供一些与 C 语言之间的互操作性。 + + 从 Go 1 版本开始,gc 和 gccgo 在编译方面都有等价的功能。 + +3. 文件扩展名与包(package): + + Go 语言源文件的扩展名很显然就是 `.go`。 + + C 文件使用后缀名 `.c`,汇编文件使用后缀名 `.s`。所有的源代码文件都是通过包(packages)来组织。包含可执行代码的包文件在被压缩后使用扩展名 `.a`(AR 文档)。 + + Go 语言的标准库(第9.1节)包文件在被安装后就是使用这种格式的文件。 + + **注意:**当你在创建目录时,文件夹名称永远不应该包含空格,而应该使用下划线"_"或者其它一般符号代替。 + +##链接 +- [目录](directory.md) +- 上一章:[语言的主要特性与发展的环境和影响因素](01.2.md) +- 下一节: [Go 环境变量](02.2.md) \ No newline at end of file diff --git a/eBook/02.2.md b/eBook/02.2.md new file mode 100644 index 0000000..a4f800d --- /dev/null +++ b/eBook/02.2.md @@ -0,0 +1,15 @@ +##啊哦,亲,你看得也太快了。。。还没翻译完呢 0 0 +要不等到 ***2013 年 4 月 11 日*** 再来看看吧~~ + +这里还有一些其它的学习资源噢~ + + - [《Go编程基础》](https://github.com/Unknwon/go-fundamental-programming):已更新至 [第六课](https://github.com/Unknwon/go-fundamental-programming/blob/master/lecture6/lecture6.md) + - [《Go Web编程》](https://github.com/astaxie/build-web-application-with-golang) + +神马?你说你不想学习?那好吧,去逛逛论坛看看行情也行~ + +- [Golang中文社区](http://bbs.mygolang.com/forum.php) +- [Go语言学习园地](http://studygolang.com/) +- [Golang中国](http://golang.tc) + +#2.2 Go 环境变量 diff --git a/eBook/directory.md b/eBook/directory.md index ee3811b..ebd716c 100644 --- a/eBook/directory.md +++ b/eBook/directory.md @@ -7,6 +7,7 @@ - 1.2 [语言的主要特性与发展的环境和影响因素](01.2.md) - 第2章:安装与运行环境 - 2.1 [平台与架构](02.1.md) + - 2.2 [Go 环境变量](02.2.md) - 第3章:编辑器、集成开发环境与其它工具 ##第二部分:语言的核心结构与技术