From ffc626c5808509d2af1944ea73e748c41c475f2c Mon Sep 17 00:00:00 2001 From: kalifun Date: Fri, 11 Jun 2021 18:23:25 +0800 Subject: [PATCH 1/4] :egg: add chapter1 --- ...27\346\234\272\347\274\226\347\250\213.md" | 253 ++++++++++++++++++ .../imgs/assembly_to_executable.926437cf.png | Bin 0 -> 26327 bytes .../imgs/compiler.adc1a3b1.png | Bin 0 -> 14388 bytes ...g_languages_lowHighCompInterp.41e11926.png | Bin 0 -> 21846 bytes 4 files changed, 253 insertions(+) create mode 100644 "chap-1-programming-a-computer/1-\350\256\241\347\256\227\346\234\272\347\274\226\347\250\213.md" create mode 100644 chap-1-programming-a-computer/imgs/assembly_to_executable.926437cf.png create mode 100644 chap-1-programming-a-computer/imgs/compiler.adc1a3b1.png create mode 100644 chap-1-programming-a-computer/imgs/programming_languages_lowHighCompInterp.41e11926.png diff --git "a/chap-1-programming-a-computer/1-\350\256\241\347\256\227\346\234\272\347\274\226\347\250\213.md" "b/chap-1-programming-a-computer/1-\350\256\241\347\256\227\346\234\272\347\274\226\347\250\213.md" new file mode 100644 index 0000000..8de003d --- /dev/null +++ "b/chap-1-programming-a-computer/1-\350\256\241\347\256\227\346\234\272\347\274\226\347\250\213.md" @@ -0,0 +1,253 @@ +# 计算机编程 + +![](imgs/1-programming.2b932230.jpg) + +## 一、在本章中你会学到什么? + +- 我们将列出计算机的不同硬件部分。 +- 我们将看到一个程序是什么以及它的样子。 +- 我们将了解如何加载和执行程序。 + +## 二、 技术概念 + +- 存储器单元,算术和逻辑单元,输入/输出,控制单元 +- 中央内存,辅助内存 +- 挥发性和非易失性内存 +- 随机存取存储器/只读存储器 +- 中央处理器 +- 高级和低级语言 +- 汇编语言编辑程序 +- 编译和解释语言 + +## 三、介绍 + +这本书是关于GO的。 在跳入我们的主要科目之前,您需要了解有关计算机的一些基本知识。 + +经验丰富的程序员可以跳过本章。 初学者应该花一些时间来研究它。 + +您的程序将在硬件上运行。 了解您的硬件如何工作可能会改善程序的设计。 + +首先,我们将描述计算机的主要组成部分。 然后我们将看到程序是什么以及机器如何处理它。 + +## 四、四个硬件组件 + +计算机由`四个`主要部分组成: + +- 存储数据和程序的存储器单元(MU)。 + - 例如,我们可以存储进入大学课程等级的内存单元。 我们还可以持有一个将计算班级平均等级的程序。 + +- 算术和逻辑单元(ALU)。 其作用是对存储到存储器单元的数据执行算术和逻辑操作。 该单元可以执行例如被称为操作的添加,递增,递减。 通常,每个操作需要两个操作数并输出结果。 + - 让我们说我们想要添加 5 和 4 。这两个数字是操作数。 此操作的结果为 9 操作数从存储器单元加载。 ALU是旨在执行操作的电路。 + +- 输入和输出单元(I / OU)将从输入设备负责将数据加载到存储器单元中。 该单元还将来自存储器单元的数据发送到输出设备。 + - 输入设备例如是计算机的触摸板,键盘,鼠标。 + - 输出设备例如是您的监视器。 +- 控制单元(CU)将接收来自程序的指令,并将控制其他单元的活动。 + +四个硬件组件代表计算机组件的示意图。 + +## 五、内存 + +计算机由两种类型的内存组成: + +- 中央存储器 +- 辅助内存 + +存在两类内存: + +- 易变的 +- 非易失性 + +### 5.1 中央存储器 + +这种类型的内存是运行操作系统的必要条件以及计算机将运行的所有其他程序。 中央存储器包含两种类型的存储: + +- **RAM** (Random Access Memory)。这种类型的存储需要电力以持续数据。 关闭计算机后,将删除此类存储类型中包含的内存。 操作系统和您使用的程序将加载到此内存中。 这种类型的存储器是易失性的。 +- **ROM** (Read-Only Memory)。这是一个内存,包含计算机正确运行所需的数据。 这种内存不是易失性(当您关闭计算机时,不会被擦除)。 它旨在仅可读且未更新系统。 + +### 5.2 辅助内存 + +这种类型的内存不挥发。 当电源关闭时,存储的数据将不会被删除。 以下是辅助存储器的一些示例:硬盘驱动器,USB键,CD-ROM,DVD ...等。 + +与RAM相比,读取和写入此类型的内存缓慢。 + +一些硬盘顺序访问内存。 系统应尊重特定序列。 尊重该访问序列需要比随机访问模式更长的时间。 请注意,一些硬盘驱动器允许随机内存访问。 + +#### 5.2.1 SSD硬盘驱动器 + +硬盘驱动器也表示硬盘驱动器(HDD),由旋转的磁盘组成。 由于移动磁头,读写数据。 读取和写入将产生旋转和磁头移动,消耗时间。 + +SSD(固态驱动器)没有那样构造。 磁盘没有磁头。 相反,数据存储在闪存单元中。 数据访问更快地播放此类磁盘。 请注意,SSD还花费超过传统的电磁硬盘驱动器。 + +## 六、CPU + +CPU是中央处理单元的初始。 CPU也表示处理器。 CPU包含: + +- 算术和逻辑单元(ALU) +- 控制单元(CU) + +CPU将负责执行程序给出的指令。 例如,程序可以指示在两个数字之间执行添加。 这些数字将从存储器单元检索并传递给ALU。 该程序还可能需要执行I / O操作,例如从硬盘驱动器读取数据并将其加载到RAM中以进行进一步处理。 CPU将执行这些指令。 + +CPU是计算机的中心组件。 + +## 七、什么是编程? + +让计算机做点什么,我们必须用精确的指示喂它们。 这组指令被称为“程序”。 + +在更官方定义之后,程序是“使计算机硬件的计算机指令和数据定义的组合”[@ Institute1990ieee]。 + +让我们举个例子。 想象一个要求用户键入两个数字的程序。 该程序添加了这些数字,然后在显示器上显示结果。 必须写入的说明是: + +1. 输出“请在显示器上键入您的第一个数字并按Enter键”。 +2. 当键入的数字键入并在键盘上按下“Enter”键时,将数字存储到内存中。 让我们表示这个数字。 +3. 输出“请在显示屏上键入第二个数字并按Enter键”。 +4. 当键入的数字键入并在键盘上按下“Enter”键时,将数字存储到内存中。 让我们表示B这个号码。 +5. 发送到ALU两个数字(A和B)和添加操作码并将结果存储到内存中。 +6. 输出显示器上的结果。 + +执行两种类型的指令: + +- I / O操作:将存储到内存中的数字检索,将数字存储到内存中,从输入设备(键盘),从内存加载数据,并将其显示给用户。 +- 算术运算:添加两个数字。 + +我们这里有一组以简单的英语编写的指令。 机器不懂英语句子。 这些句子需要转换为机器理解的语言。 这是什么语言? + +## 八、如何与机器说话? + +### 8.1 编程语言都是正式语言 + +给予机器的指令是用编程语言编写的。 编程语言是正式语言。它们由由字母表构成的单词(一组不同的字符)组成。 这些单词是在特定规则下组织的。 Go是一个编程语言,如x86汇编,java,c,c ++,javascript ... + +它们是两种类型的编程语言: + +- 低级 +- 高级 + +低级编程语言更接近处理单元的说明。 更高级别的语言提供了构造,使他们更容易学习并在日常使用。 + +编译了一些高级语言,其他语言被解释为,其中一些是介于两者之间。 我们将在下一节中看到这两个术语的意思。 + +![](imgs/programming_languages_lowHighCompInterp.41e11926.png) + +### 8.2 机器语言 + +要与计算机的处理单元交谈,我们可以使用机器语言。 机器语言完全由 0 和 1 组成。 以机器语言编写的指令是 0 和 1 的套件。每个处理器(或处理器系列)将定义称为指令集的指令列表。 有一个指令要添加到数字,递增1,减少一个,将数据复制到内存中的一个位置到另一个地方......等。 + +可以将计算机程序直接写入机器语言。 但是,这并不容易。 + +### 8.3 汇编语言 + +汇编语言是一种低级编程语言。 以汇编语言编写的程序的指令对应于机器指令。 汇编语言使用助记符,这是与机器指令对应的小单词。 例如,*MOV* 将指示机器将数据从一个位置移动到另一个位置。 开发人员也可以评论代码(通过机器语言不可能)。 + +要在汇编语言中创建程序,开发人员将写入一个或多个文件的指令。 这些文件是命名的源文件。 + +以下是用x86 Linux汇编编写的指令的示例: + +```assembly +// assembly code +mov eax,1 +int 0x80 +``` + +软管两条线将执行将关闭程序的系统调用(“1”表示系统呼叫号,这意味着“退出程序”)。 请注意,汇编语言与机器不同。 我们说这是机器特定的。 + +汇编程序用于将以汇编语言编写的源文件转换为对象代码文件。 我们说我们组装该计划。 然后,链接器将将这些对象代码文件转换为可执行文件。 可执行文件包含所有计算机启动程序的必要指令。 + +![](imgs/assembly_to_executable.926437cf.png) + +### 8.4 高级语言 + +市场上有大量的高级别语言,就像 Go 一样。 那些语言不受机器架构密切束缚。 它们提供了一种写入说明的便捷方式。 例如,如果我们想让系统调用退出我们的程序,我们可以写入: + +```go +os.Exit(1) +``` + +通过 C 语言,我们可以写: + +```c +// C Code +exit(1) +``` + +通过 Java 语言,我们可以写: + +```java +// Java Code +System.exit(1); +``` + +在此示例中,我们不必将数字移动到寄存器中; 我们使用语言构造(函数,包,方法,变量,类型......)。 本书的目标是为您提供对构建GO应用程序的那些工具的精确和简明的定义。 + +高级程序也写入文件。 文件名为“源文件”。 通常,编程语言需要为文件名添加特定的扩展名。 对于Go程序,我们将在我们将写入的每个文件的末尾添加“.go”。 在PHP中,扩展名为“.php”。 + +写入源文件时,无法立即执行它们定义的程序。 需要使用编译器编译源文件。 编译器将源文件转换为可执行文件。 编译器也是一个程序。 Go是编译语言系列的一部分。 + +![](imgs/compiler.adc1a3b1.png) + +#### 8.4.1 编译型 vs 解释型 + +请注意,一些编程语言被解释。 当写入源文件时,程序员不需要编译源。 使用源文件准备好,系统可以通过解释器执行程序。 写入源文件的每个指令被解释器转换并由解释器执行。 在某些情况下,解释器在缓存中存储编译版本的程序以提升性能(源文件每次未翻译)。 PHP,Python,Ruby,Perl是解释的语言。 + +## 九、自测 + +### 9.1 问题 + +1. 程序储存在哪里? +2. 从硬盘驱动器读取数据比来自RAM的数据慢。 对或错? +3. 你能写入ROM吗? 对或错? +4. 两种类型的内存是什么? +5. “挥发性内存”的定义是什么? +6. 哪个程序将代码写入汇编语言转换为目标代码? +7. 哪个程序将对象代码转换为可执行文件? +8. 与低级别语言相比,提供高级别语言的两个优点? +9. Go 是一种解释的语言吗? 对或错? + +### 9.2答案 + +1. 程序储存在哪里? + 1. 内存单元(mu) +2. 从硬盘驱动器读取数据比来自RAM的数据慢。 对或错? + 1. 对的。 对RAM的提取和写入数据速度快,而存储存储到硬盘驱动器的数据通常需要更长时间。 +3. 你能写入ROM吗? 对或错? + 1. 错。这种类型的内存只能读。它是用来存储系统的(操作系统)。 +4. 两种类型的内存是什么? + 1. 中央存储器 + 2. 辅助存储器 +5. “挥发性内存”的定义是什么? + 1. 关闭计算机后,将删除易失性存储器。 +6. 哪个程序将代码写入汇编语言转换为目标代码? + 1. 汇编程序将作为输入汇编语言代码和生成机器代码。 +7. 哪个程序将对象代码转换为可执行文件? + 1. 链接器 +8. 与低级别语言相比,提供高级别语言的两个优点? + 1. 它们提供了更易于使用的高级构造。 + 2. 代码不具体到机器的技术架构。 我们说代码是便携式的。 +9. Go 是一种解释的语言吗? 对或错? + 1. 错。Go 是编译型语言。 + +## 十、关键点 + +- 在宏观级别,计算机由以下组成: + - 存储器单元(MU):存储数据和程序 + - 算术和逻辑单元(ALU):执行计算 + - 输入和输出单元(iou):管理输入设备和输出设备。 + - 控制单元(CU)将在执行所执行的程序给出的指令之后管理MU,ALU和IOU + +- CPU意味着中央处理单元(也称为处理器或微处理器)由Alu和Cu组成。 + +- 程序是一组指令。 + +- 开发人员用编程语言编写程序。 + +- 编程语言由单词和字符组成,这些字符必须按照指定的规则订购。 + +- 它们是高级别的节目编程语言。 + +- 机器语言和汇编语言是低级别的。 以这些语言编写的说明与硬件组织和功能密切相关。 他们提供了很少的抽象。 + +- Go是编译的高级编程语言。 + +## 参考文献 + +[Institute1990ieee]电气,和电子工程师。 1990.“软件工程术语的IEEE标准词汇表:1990年9月28日批准,IEEE标准委员会。” 电子工程师。 \ No newline at end of file diff --git a/chap-1-programming-a-computer/imgs/assembly_to_executable.926437cf.png b/chap-1-programming-a-computer/imgs/assembly_to_executable.926437cf.png new file mode 100644 index 0000000000000000000000000000000000000000..563f2d3f8b32d17063bf6eb31222ca34bfd71148 GIT binary patch literal 26327 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
  • BK_H-?M;hN-FFc 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 B@m&A_ literal 0 HcmV?d00001 diff --git a/chap-1-programming-a-computer/imgs/compiler.adc1a3b1.png b/chap-1-programming-a-computer/imgs/compiler.adc1a3b1.png new file mode 100644 index 0000000000000000000000000000000000000000..b9f71bab388c3c348120dc34a6fc6e8366ad0839 GIT binary patch literal 14388 zcmch;WmH^2*Ct9rfM6kn;1=8hgy3$$-5nC#-K`0M;O_43?oEK;?lkW1G}_%To%g$U z?w`4TX3aNi_3G}bI#qk0z4tj)_3V1Wloh2g(TLCx5D+kBq`#>mAiVa6|A)SP4gWUR z5E@57;D*S26IJ)jJYB=oSKE6Len#g){^eAW8}QZMG@f!jP%}U9{*^H@m^rRHF)fE$ zg=tz=Zaj8IcJ`XKiQJgmnBkLkdh9)#aTs+dHxDMqw^06{Q9UnP0~1_a$QV4tr?uImT-2i`{b4Rv*KaQO%Z7)=JR;J>iIDRcw`5vCwRctMu}3|DRnEe{_7 zAwctO7rd%b><|e7As1JS6<(-%?+x!`8T`N9#k|C}2zY%FxWbEx8I@Jfc{m(tpk3@f zF)@LRjJ#Zph7jQHs(1)HxxT=6c0|Oqy9#~()novJC8gpl9WGevAjnV@Hp`#7o;k=> zY?f6odRP`-E>NC5hyLcZoz@!!5gR@_ux#tfI$?j;au{(?_JL(jtsa!oZt*pONXC>b z#{bW)W`V}h5JaTrpf?ZaYaLNh1hxpeCRV+5^^VTY`8WL7-mh{|_yBjSw^F|Fq1vNB z4Hhd)OH+4la2rh_qDtHby+=t-qDiPaYY$LldY`ngFpnB6#@GE3Zb|P-icEijS)t`> zq{GG>n`(I5G_>f@9B$VCTW0^iW0> z!l+}*tusVeR#8{iHZVxb%p@Tq8rgDeG$0K)e}y?=cUO4caA-T2f<8BBASSIUmbVyW zlTq{bsGKk$SwlmksIc(ue_|uo=Z}HI%G^9Nq03H%Ig=M *4&5_?n_eRnP`XWnPM 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 Z%L}N}USdoWF!>7Rf~NO{2#g{gk1mt literal 0 HcmV?d00001 diff --git a/chap-1-programming-a-computer/imgs/programming_languages_lowHighCompInterp.41e11926.png b/chap-1-programming-a-computer/imgs/programming_languages_lowHighCompInterp.41e11926.png new file mode 100644 index 0000000000000000000000000000000000000000..d8e9a1a365cb102042a5a39cbc55040dfd9ba132 GIT binary patch literal 21846 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 literal 0 HcmV?d00001 -- Gitee From 7ea14529f9ccf056cd14397b9bb01584bc229ecb Mon Sep 17 00:00:00 2001 From: kalifun Date: Fri, 11 Jun 2021 18:27:46 +0800 Subject: [PATCH 2/4] :egg: add chapter2 --- .../2-go\350\257\255\350\250\200.md" | 154 ++++++++++++++++++ .../imgs/2-the-go-language.49d63fe2.jpg | Bin 0 -> 42841 bytes 2 files changed, 154 insertions(+) create mode 100644 "chap-1-programming-a-computer/2-go\350\257\255\350\250\200.md" create mode 100644 chap-1-programming-a-computer/imgs/2-the-go-language.49d63fe2.jpg diff --git "a/chap-1-programming-a-computer/2-go\350\257\255\350\250\200.md" "b/chap-1-programming-a-computer/2-go\350\257\255\350\250\200.md" new file mode 100644 index 0000000..b9b7465 --- /dev/null +++ "b/chap-1-programming-a-computer/2-go\350\257\255\350\250\200.md" @@ -0,0 +1,154 @@ +# GO语言 + +![](imgs/2-the-go-language.49d63fe2.jpg) + +## 一、你在本章中能学到什么? + +- Go的起源:什么时候被创造和谁创造的。 + +- 创造的动机。 +- 语言的主要特征是什么? + +## 二、技术概念 + +- 编译时间 + +- 静态类型的语言 + +- 并发 +- 垃圾收集器 +- 软件依赖项 + +## 三、创造的神话 + +Go创建了一个神话。 这门语言出生在谷歌办公室里面,它发生在一个非常长的构建过程中,花了45分钟。 + +这个故事是Rob Pike 在[@ go-at-google](https://www.practical-go-lessons.com/chap-2-the-go-language#go-at-google)。 它为我们提供了一块关于Go创建背后动机的珍贵信息。 建设时间太长,太痛苦了......他们必须找到一种方法来避免它们;这就是Go Genesis的切入点。 + +Robert Griesemer,Ken Thompson 和 Rob Pike 是开发者,它开始于2007年开始工作。Rob Pike 声称,到2008年年中,该语言 "基本设计完毕,实现(编译器、运行时)开始工作"。 之后,Ian Lance Taylor和Russ Cox于2008年加入了该团队[@ Pike2009Go]。 + +Go是一种开源的编程语言,由其社区和在谷歌工作的核心开发人员团队维护。2011年3月16日是Go的第一次发布日期。它被命名为 "r56")。Go版本1于2012年3月28日发布。 + +## 四、动机 + +Go(或Golang)是由Google建立的,用来解决公司的问题。为了更好地理解其中的原因,值得阅读Rob Pike [@go-at-google] 的主题演讲。 + +世界性大公司的软件有哪些挑战? + +- 谷歌服务的代码库非常庞大。谷歌有数百万行的代码。 + +- 这些行是用不同的语言编写的。C、C++、Java,以及其他语言。 + +- 这些应用程序的构建时间 "已经拉长到许多分钟,甚至几个小时"。 + +- 一些应用程序部分的更新可能是昂贵的。 + +第一批Gophers [1](#refer-anchor-1)的目标是通过以下方式使开发者的生活更轻松。 + +- 大幅度减少程序的构建时间。 + +- 为接触过C、C++或Java的年轻开发者设计一种易于学习、阅读和调试的语言。 + +- 设计一个有效的依赖性管理系统。 + +- 构建一种能够在硬件上产生良好规模的软件的语言。 + +### 4.1 一些概念的定义 + +- **构建时间**:编译器生成机器可读的可执行文件所需的时间。 + +- **静态类型语言**:给这个概念下一个精确的定义现在还为时过早。我们将在接下来的章节中介绍这个术语。 + +- **依赖性**:一个软件被另一个软件所使用。 + +- **可扩展性**:一个程序处理越来越多的任务的能力。例如,如果一个网站能够接受越来越多的请求而不发生停机或增加加载延迟,那么这个网站就可以说是可扩展的。 + +## 五、Go的主要特点 + +Go的创造者将他们的努力集中在几个关键的设计选择上: + +- 编译型语言 + +- 具有易于理解和学习的语义 + +- 静态类型 + +- 有一个内置的并发系统,便于开发者工作 + +- 具有强大的依赖性管理 + +- 有一个垃圾收集器 + +正如Rob Pike所说,其主要目的是为开发人员提供一种易于学习的、用于 "大型软件项目工程 "的语言。 + +### 5.1 一些概念 + +- **并发**:当任务可以不按顺序或按部分顺序执行时,程序就是并发的[2](#refer-anchor-2)。 +- **垃圾收集器(通常称为GC)**:当我们构建程序时,我们需要存储数据并从内存中获取数据。内存不是一个无限的资源。因此,开发人员必须确保存储在内存中的未使用的元素不时地被销毁。将一些数据放入内存称为分配;反过来的动作,包括从内存中删除数据,称为去分配。垃圾收集器的作用是在内存不再被使用时进行去分配。当语言没有任何垃圾收集器时,开发者必须收集他的垃圾并释放不再使用的内存...... 碰巧,Go有一个垃圾收集器。 + +## 六、Go的现状 + +- 该项目发展得非常快,现在有超过一千名贡献者[3](#refer-anchor-3)。 + +- 在撰写本文时(2020年1月8日),Go的最新版本是**1.15.6**。 + +- 很多聚会和会议都是为了联合社区而组织的[4](#refer-anchor-4) + - 2018年,共组织了19次会议:3次在美国,16次在其他国家[5](#refer-anchor-5) + - 在2017年,有13个会议被组织起来 + +- Go被开发者所青睐。 + - 在2018年、2019年和2020年的Stackoverflow开发者调查中,Go是前三名最受欢迎的编程语言[@dev-survy-2018]。 + +## 七、自测 + +### 9.1 问题 + +1. Go语言的诞生日期是什么? +2. 并发是什么意思? +3. 平均而言,Go显示的构建时间非常长?真的还是假的? + +### 9.2答案 + +1. Go语言的诞生日期是什么? + 1. 2007 +2. 并发是什么意思? + 1. 当任务可能在同一时间执行时,程序就是并发的。 +3. 平均而言,Go显示的构建时间非常长?真的还是假的? + 1. 错。该语言是为了解决这个确切的问题而创造的。 + +## 八、关键点 + +- Go 诞生于2007年 + +- Go第一版于2012年发布 + +- 该语言很容易理解。它的语义仍然很简单。 + +- 它是静态类型的 + +- 它是可以编译的 + +- 你可以用Go编写并发程序。 + +

    +- [1] 这是Go程序员的昵称。 + +
    +- [2] 我们将在另一章中深入探讨这一概念。定义取自https://en.wikipedia.org/wiki/Concurrency_(computer_science) + +
    +- [3] 2019年8月13日,Go项目有1,349名贡献者 + +
    +- [4] 查看此页https://github.com/golang/go/wiki/coferences + +
    +- [5] 这些数字摘自网页https://github.com/golang/go/wiki/Conferences,于2019年8月13日检查。 + +## 参考文献 + +- [go-at-google] ---。2012. "Go at Google: 为软件工程服务的语言设计。" https://talks.golang.org/2012/splash.article。 +- [pike2009go] Pike, Rob. 2009. "Go编程语言"。在Google的技术讲座上发表的演讲。 +- [go-at-google] ---。2012. "Go在谷歌。为软件工程服务的语言设计。" https://talks.golang.org/2012/splash.article。 +- [dev-survy-2018] "Stackoverflow开发者调查2018。" 2018年。https://insights.stackoverflow.com/survey/2018/。 + diff --git a/chap-1-programming-a-computer/imgs/2-the-go-language.49d63fe2.jpg b/chap-1-programming-a-computer/imgs/2-the-go-language.49d63fe2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..71e4edcf279dcd24a894e83563cbad85e99d4ddb GIT binary patch literal 42841 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 bGzPhu|1}Ca(EQis4Ediv<)jY!XX5_=0l%vJ literal 0 HcmV?d00001 -- Gitee From 8ef31cc67cc985ff9049adcccb5a81b440073340 Mon Sep 17 00:00:00 2001 From: spike Date: Sun, 13 Jun 2021 11:00:50 +0800 Subject: [PATCH 3/4] :egg: add chapter1 --- .../1-programming-a-computer.md | 0 .../2-go\350\257\255\350\250\200.md" | 154 ------------------ 2 files changed, 154 deletions(-) rename "chap-1-programming-a-computer/1-\350\256\241\347\256\227\346\234\272\347\274\226\347\250\213.md" => chap-1-programming-a-computer/1-programming-a-computer.md (100%) delete mode 100644 "chap-1-programming-a-computer/2-go\350\257\255\350\250\200.md" diff --git "a/chap-1-programming-a-computer/1-\350\256\241\347\256\227\346\234\272\347\274\226\347\250\213.md" b/chap-1-programming-a-computer/1-programming-a-computer.md similarity index 100% rename from "chap-1-programming-a-computer/1-\350\256\241\347\256\227\346\234\272\347\274\226\347\250\213.md" rename to chap-1-programming-a-computer/1-programming-a-computer.md diff --git "a/chap-1-programming-a-computer/2-go\350\257\255\350\250\200.md" "b/chap-1-programming-a-computer/2-go\350\257\255\350\250\200.md" deleted file mode 100644 index b9b7465..0000000 --- "a/chap-1-programming-a-computer/2-go\350\257\255\350\250\200.md" +++ /dev/null @@ -1,154 +0,0 @@ -# GO语言 - -![](imgs/2-the-go-language.49d63fe2.jpg) - -## 一、你在本章中能学到什么? - -- Go的起源:什么时候被创造和谁创造的。 - -- 创造的动机。 -- 语言的主要特征是什么? - -## 二、技术概念 - -- 编译时间 - -- 静态类型的语言 - -- 并发 -- 垃圾收集器 -- 软件依赖项 - -## 三、创造的神话 - -Go创建了一个神话。 这门语言出生在谷歌办公室里面,它发生在一个非常长的构建过程中,花了45分钟。 - -这个故事是Rob Pike 在[@ go-at-google](https://www.practical-go-lessons.com/chap-2-the-go-language#go-at-google)。 它为我们提供了一块关于Go创建背后动机的珍贵信息。 建设时间太长,太痛苦了......他们必须找到一种方法来避免它们;这就是Go Genesis的切入点。 - -Robert Griesemer,Ken Thompson 和 Rob Pike 是开发者,它开始于2007年开始工作。Rob Pike 声称,到2008年年中,该语言 "基本设计完毕,实现(编译器、运行时)开始工作"。 之后,Ian Lance Taylor和Russ Cox于2008年加入了该团队[@ Pike2009Go]。 - -Go是一种开源的编程语言,由其社区和在谷歌工作的核心开发人员团队维护。2011年3月16日是Go的第一次发布日期。它被命名为 "r56")。Go版本1于2012年3月28日发布。 - -## 四、动机 - -Go(或Golang)是由Google建立的,用来解决公司的问题。为了更好地理解其中的原因,值得阅读Rob Pike [@go-at-google] 的主题演讲。 - -世界性大公司的软件有哪些挑战? - -- 谷歌服务的代码库非常庞大。谷歌有数百万行的代码。 - -- 这些行是用不同的语言编写的。C、C++、Java,以及其他语言。 - -- 这些应用程序的构建时间 "已经拉长到许多分钟,甚至几个小时"。 - -- 一些应用程序部分的更新可能是昂贵的。 - -第一批Gophers [1](#refer-anchor-1)的目标是通过以下方式使开发者的生活更轻松。 - -- 大幅度减少程序的构建时间。 - -- 为接触过C、C++或Java的年轻开发者设计一种易于学习、阅读和调试的语言。 - -- 设计一个有效的依赖性管理系统。 - -- 构建一种能够在硬件上产生良好规模的软件的语言。 - -### 4.1 一些概念的定义 - -- **构建时间**:编译器生成机器可读的可执行文件所需的时间。 - -- **静态类型语言**:给这个概念下一个精确的定义现在还为时过早。我们将在接下来的章节中介绍这个术语。 - -- **依赖性**:一个软件被另一个软件所使用。 - -- **可扩展性**:一个程序处理越来越多的任务的能力。例如,如果一个网站能够接受越来越多的请求而不发生停机或增加加载延迟,那么这个网站就可以说是可扩展的。 - -## 五、Go的主要特点 - -Go的创造者将他们的努力集中在几个关键的设计选择上: - -- 编译型语言 - -- 具有易于理解和学习的语义 - -- 静态类型 - -- 有一个内置的并发系统,便于开发者工作 - -- 具有强大的依赖性管理 - -- 有一个垃圾收集器 - -正如Rob Pike所说,其主要目的是为开发人员提供一种易于学习的、用于 "大型软件项目工程 "的语言。 - -### 5.1 一些概念 - -- **并发**:当任务可以不按顺序或按部分顺序执行时,程序就是并发的[2](#refer-anchor-2)。 -- **垃圾收集器(通常称为GC)**:当我们构建程序时,我们需要存储数据并从内存中获取数据。内存不是一个无限的资源。因此,开发人员必须确保存储在内存中的未使用的元素不时地被销毁。将一些数据放入内存称为分配;反过来的动作,包括从内存中删除数据,称为去分配。垃圾收集器的作用是在内存不再被使用时进行去分配。当语言没有任何垃圾收集器时,开发者必须收集他的垃圾并释放不再使用的内存...... 碰巧,Go有一个垃圾收集器。 - -## 六、Go的现状 - -- 该项目发展得非常快,现在有超过一千名贡献者[3](#refer-anchor-3)。 - -- 在撰写本文时(2020年1月8日),Go的最新版本是**1.15.6**。 - -- 很多聚会和会议都是为了联合社区而组织的[4](#refer-anchor-4) - - 2018年,共组织了19次会议:3次在美国,16次在其他国家[5](#refer-anchor-5) - - 在2017年,有13个会议被组织起来 - -- Go被开发者所青睐。 - - 在2018年、2019年和2020年的Stackoverflow开发者调查中,Go是前三名最受欢迎的编程语言[@dev-survy-2018]。 - -## 七、自测 - -### 9.1 问题 - -1. Go语言的诞生日期是什么? -2. 并发是什么意思? -3. 平均而言,Go显示的构建时间非常长?真的还是假的? - -### 9.2答案 - -1. Go语言的诞生日期是什么? - 1. 2007 -2. 并发是什么意思? - 1. 当任务可能在同一时间执行时,程序就是并发的。 -3. 平均而言,Go显示的构建时间非常长?真的还是假的? - 1. 错。该语言是为了解决这个确切的问题而创造的。 - -## 八、关键点 - -- Go 诞生于2007年 - -- Go第一版于2012年发布 - -- 该语言很容易理解。它的语义仍然很简单。 - -- 它是静态类型的 - -- 它是可以编译的 - -- 你可以用Go编写并发程序。 - -
    -- [1] 这是Go程序员的昵称。 - -
    -- [2] 我们将在另一章中深入探讨这一概念。定义取自https://en.wikipedia.org/wiki/Concurrency_(computer_science) - -
    -- [3] 2019年8月13日,Go项目有1,349名贡献者 - -
    -- [4] 查看此页https://github.com/golang/go/wiki/coferences - -
    -- [5] 这些数字摘自网页https://github.com/golang/go/wiki/Conferences,于2019年8月13日检查。 - -## 参考文献 - -- [go-at-google] ---。2012. "Go at Google: 为软件工程服务的语言设计。" https://talks.golang.org/2012/splash.article。 -- [pike2009go] Pike, Rob. 2009. "Go编程语言"。在Google的技术讲座上发表的演讲。 -- [go-at-google] ---。2012. "Go在谷歌。为软件工程服务的语言设计。" https://talks.golang.org/2012/splash.article。 -- [dev-survy-2018] "Stackoverflow开发者调查2018。" 2018年。https://insights.stackoverflow.com/survey/2018/。 - -- Gitee From 8a75c1d57e6b77a625347737e638cb8ed530574a Mon Sep 17 00:00:00 2001 From: spike Date: Sun, 13 Jun 2021 11:05:30 +0800 Subject: [PATCH 4/4] :egg: add chapter2 --- chap-2-the-go-language/2-the-go-language.md | 154 ++++++++++++++++++ .../imgs/2-the-go-language.49d63fe2.jpg | Bin 0 -> 42841 bytes .../imgs/assembly_to_executable.926437cf.png | Bin 0 -> 26327 bytes .../imgs/compiler.adc1a3b1.png | Bin 0 -> 14388 bytes ...g_languages_lowHighCompInterp.41e11926.png | Bin 0 -> 21846 bytes 5 files changed, 154 insertions(+) create mode 100644 chap-2-the-go-language/2-the-go-language.md create mode 100644 chap-2-the-go-language/imgs/2-the-go-language.49d63fe2.jpg create mode 100644 chap-2-the-go-language/imgs/assembly_to_executable.926437cf.png create mode 100644 chap-2-the-go-language/imgs/compiler.adc1a3b1.png create mode 100644 chap-2-the-go-language/imgs/programming_languages_lowHighCompInterp.41e11926.png diff --git a/chap-2-the-go-language/2-the-go-language.md b/chap-2-the-go-language/2-the-go-language.md new file mode 100644 index 0000000..b9b7465 --- /dev/null +++ b/chap-2-the-go-language/2-the-go-language.md @@ -0,0 +1,154 @@ +# GO语言 + +![](imgs/2-the-go-language.49d63fe2.jpg) + +## 一、你在本章中能学到什么? + +- Go的起源:什么时候被创造和谁创造的。 + +- 创造的动机。 +- 语言的主要特征是什么? + +## 二、技术概念 + +- 编译时间 + +- 静态类型的语言 + +- 并发 +- 垃圾收集器 +- 软件依赖项 + +## 三、创造的神话 + +Go创建了一个神话。 这门语言出生在谷歌办公室里面,它发生在一个非常长的构建过程中,花了45分钟。 + +这个故事是Rob Pike 在[@ go-at-google](https://www.practical-go-lessons.com/chap-2-the-go-language#go-at-google)。 它为我们提供了一块关于Go创建背后动机的珍贵信息。 建设时间太长,太痛苦了......他们必须找到一种方法来避免它们;这就是Go Genesis的切入点。 + +Robert Griesemer,Ken Thompson 和 Rob Pike 是开发者,它开始于2007年开始工作。Rob Pike 声称,到2008年年中,该语言 "基本设计完毕,实现(编译器、运行时)开始工作"。 之后,Ian Lance Taylor和Russ Cox于2008年加入了该团队[@ Pike2009Go]。 + +Go是一种开源的编程语言,由其社区和在谷歌工作的核心开发人员团队维护。2011年3月16日是Go的第一次发布日期。它被命名为 "r56")。Go版本1于2012年3月28日发布。 + +## 四、动机 + +Go(或Golang)是由Google建立的,用来解决公司的问题。为了更好地理解其中的原因,值得阅读Rob Pike [@go-at-google] 的主题演讲。 + +世界性大公司的软件有哪些挑战? + +- 谷歌服务的代码库非常庞大。谷歌有数百万行的代码。 + +- 这些行是用不同的语言编写的。C、C++、Java,以及其他语言。 + +- 这些应用程序的构建时间 "已经拉长到许多分钟,甚至几个小时"。 + +- 一些应用程序部分的更新可能是昂贵的。 + +第一批Gophers [1](#refer-anchor-1)的目标是通过以下方式使开发者的生活更轻松。 + +- 大幅度减少程序的构建时间。 + +- 为接触过C、C++或Java的年轻开发者设计一种易于学习、阅读和调试的语言。 + +- 设计一个有效的依赖性管理系统。 + +- 构建一种能够在硬件上产生良好规模的软件的语言。 + +### 4.1 一些概念的定义 + +- **构建时间**:编译器生成机器可读的可执行文件所需的时间。 + +- **静态类型语言**:给这个概念下一个精确的定义现在还为时过早。我们将在接下来的章节中介绍这个术语。 + +- **依赖性**:一个软件被另一个软件所使用。 + +- **可扩展性**:一个程序处理越来越多的任务的能力。例如,如果一个网站能够接受越来越多的请求而不发生停机或增加加载延迟,那么这个网站就可以说是可扩展的。 + +## 五、Go的主要特点 + +Go的创造者将他们的努力集中在几个关键的设计选择上: + +- 编译型语言 + +- 具有易于理解和学习的语义 + +- 静态类型 + +- 有一个内置的并发系统,便于开发者工作 + +- 具有强大的依赖性管理 + +- 有一个垃圾收集器 + +正如Rob Pike所说,其主要目的是为开发人员提供一种易于学习的、用于 "大型软件项目工程 "的语言。 + +### 5.1 一些概念 + +- **并发**:当任务可以不按顺序或按部分顺序执行时,程序就是并发的[2](#refer-anchor-2)。 +- **垃圾收集器(通常称为GC)**:当我们构建程序时,我们需要存储数据并从内存中获取数据。内存不是一个无限的资源。因此,开发人员必须确保存储在内存中的未使用的元素不时地被销毁。将一些数据放入内存称为分配;反过来的动作,包括从内存中删除数据,称为去分配。垃圾收集器的作用是在内存不再被使用时进行去分配。当语言没有任何垃圾收集器时,开发者必须收集他的垃圾并释放不再使用的内存...... 碰巧,Go有一个垃圾收集器。 + +## 六、Go的现状 + +- 该项目发展得非常快,现在有超过一千名贡献者[3](#refer-anchor-3)。 + +- 在撰写本文时(2020年1月8日),Go的最新版本是**1.15.6**。 + +- 很多聚会和会议都是为了联合社区而组织的[4](#refer-anchor-4) + - 2018年,共组织了19次会议:3次在美国,16次在其他国家[5](#refer-anchor-5) + - 在2017年,有13个会议被组织起来 + +- Go被开发者所青睐。 + - 在2018年、2019年和2020年的Stackoverflow开发者调查中,Go是前三名最受欢迎的编程语言[@dev-survy-2018]。 + +## 七、自测 + +### 9.1 问题 + +1. Go语言的诞生日期是什么? +2. 并发是什么意思? +3. 平均而言,Go显示的构建时间非常长?真的还是假的? + +### 9.2答案 + +1. Go语言的诞生日期是什么? + 1. 2007 +2. 并发是什么意思? + 1. 当任务可能在同一时间执行时,程序就是并发的。 +3. 平均而言,Go显示的构建时间非常长?真的还是假的? + 1. 错。该语言是为了解决这个确切的问题而创造的。 + +## 八、关键点 + +- Go 诞生于2007年 + +- Go第一版于2012年发布 + +- 该语言很容易理解。它的语义仍然很简单。 + +- 它是静态类型的 + +- 它是可以编译的 + +- 你可以用Go编写并发程序。 + +
    +- [1] 这是Go程序员的昵称。 + +
    +- [2] 我们将在另一章中深入探讨这一概念。定义取自https://en.wikipedia.org/wiki/Concurrency_(computer_science) + +
    +- [3] 2019年8月13日,Go项目有1,349名贡献者 + +
    +- [4] 查看此页https://github.com/golang/go/wiki/coferences + +
    +- [5] 这些数字摘自网页https://github.com/golang/go/wiki/Conferences,于2019年8月13日检查。 + +## 参考文献 + +- [go-at-google] ---。2012. "Go at Google: 为软件工程服务的语言设计。" https://talks.golang.org/2012/splash.article。 +- [pike2009go] Pike, Rob. 2009. "Go编程语言"。在Google的技术讲座上发表的演讲。 +- [go-at-google] ---。2012. "Go在谷歌。为软件工程服务的语言设计。" https://talks.golang.org/2012/splash.article。 +- [dev-survy-2018] "Stackoverflow开发者调查2018。" 2018年。https://insights.stackoverflow.com/survey/2018/。 + diff --git a/chap-2-the-go-language/imgs/2-the-go-language.49d63fe2.jpg b/chap-2-the-go-language/imgs/2-the-go-language.49d63fe2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..71e4edcf279dcd24a894e83563cbad85e99d4ddb GIT binary patch literal 42841 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 bGzPhu|1}Ca(EQis4Ediv<)jY!XX5_=0l%vJ literal 0 HcmV?d00001 diff --git a/chap-2-the-go-language/imgs/assembly_to_executable.926437cf.png b/chap-2-the-go-language/imgs/assembly_to_executable.926437cf.png new file mode 100644 index 0000000000000000000000000000000000000000..563f2d3f8b32d17063bf6eb31222ca34bfd71148 GIT binary patch literal 26327 zcmeFYWm8;V^fd?x?iL6h+#$F_aCi6MZoz5X-61%^y&Jbig1fuByE_c|{b#CX=J^6o z)y%DavHMna-_z&pv-dh{tqxa|mq13qLx6yQK$emeRfd50d;|dji3IoQ}6U;(H~e}uqqI!X-nY35U@o>57jjMSW% z@hy?nZHymhePt!;&I*JQMu8!DdKPA zsuj9W*JnkoAlo<>i5~{VVH(O5xTv@+L6YP{ElfXumNIy~)--)3 zflK)z5mvTDo);cI*iVqZeZl`aHY&k1E4au0*Uu4$gw1-6UQbU?>mKTcj-GPc>M7Bz z;M;KwM6=@0pFh#Cu*i??{QP(OM(c3c?M+q@zj0zS>XsB0QMz2mbh}ZO@6tJi$%n^i z*UvD0h6(5zLPx&o>+2KOa)Y|zJSi$NEBND=9<6E!K_uDLSDHLa!iDI+Howp#4wr`R z%jBPm9_P73)9ESWhbZT=S~t35@uy(nXckkRvk$@t7l~m%z-~1&7V9;J<%=sHv%G zxxqqwpJ*$0?>DNRnx2M-`V=f2@8Z@%|J-*UBf;9T6oK(HFXHxg%?$Al_v=`9H#?QtMjL5FPah$n8>(UwwiJE?bw9>@0?B5vpP`Tp|qk{(-T zj_{-E0r5HQu&}TOT5$A=3JRFS=$r~6zfTPTrQ{=2pI9t**Xvl!+z8M@qdZVYlUruc zV%f=WHc^Q_ik=@i0zy+wO-(^T!QP&k);%-?M4a;R=--d`8X*0_7N)j5naN_Wq2{`& z?Z4r3p?IG+PF({9yi6e>4nEg~cbAp_LPSKgUu!))I-)&3gMfhH@s^PxKrwi^5E2&d zio#{Rxh=$4N1-u@<9TWM-lE$rpie?gf^)+ocB3A?Z z&)L5}p+Fp@mZd{x$brheeIBoNaaqm2e*OC203hYiL-XA|)+6~1uJ@3m#WT2_iXx
    }2a(1fF9YnA+`<(5_Day9mIWVn5I`ofb) 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
  • BK_H-?M;hN-FFc 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 B@m&A_ literal 0 HcmV?d00001 diff --git a/chap-2-the-go-language/imgs/compiler.adc1a3b1.png b/chap-2-the-go-language/imgs/compiler.adc1a3b1.png new file mode 100644 index 0000000000000000000000000000000000000000..b9f71bab388c3c348120dc34a6fc6e8366ad0839 GIT binary patch literal 14388 zcmch;WmH^2*Ct9rfM6kn;1=8hgy3$$-5nC#-K`0M;O_43?oEK;?lkW1G}_%To%g$U z?w`4TX3aNi_3G}bI#qk0z4tj)_3V1Wloh2g(TLCx5D+kBq`#>mAiVa6|A)SP4gWUR z5E@57;D*S26IJ)jJYB=oSKE6Len#g){^eAW8}QZMG@f!jP%}U9{*^H@m^rRHF)fE$ zg=tz=Zaj8IcJ`XKiQJgmnBkLkdh9)#aTs+dHxDMqw^06{Q9UnP0~1_a$QV4tr?uImT-2i`{b4Rv*KaQO%Z7)=JR;J>iIDRcw`5vCwRctMu}3|DRnEe{_7 zAwctO7rd%b><|e7As1JS6<(-%?+x!`8T`N9#k|C}2zY%FxWbEx8I@Jfc{m(tpk3@f zF)@LRjJ#Zph7jQHs(1)HxxT=6c0|Oqy9#~()novJC8gpl9WGevAjnV@Hp`#7o;k=> zY?f6odRP`-E>NC5hyLcZoz@!!5gR@_ux#tfI$?j;au{(?_JL(jtsa!oZt*pONXC>b z#{bW)W`V}h5JaTrpf?ZaYaLNh1hxpeCRV+5^^VTY`8WL7-mh{|_yBjSw^F|Fq1vNB z4Hhd)OH+4la2rh_qDtHby+=t-qDiPaYY$LldY`ngFpnB6#@GE3Zb|P-icEijS)t`> zq{GG>n`(I5G_>f@9B$VCTW0^iW0> z!l+}*tusVeR#8{iHZVxb%p@Tq8rgDeG$0K)e}y?=cUO4caA-T2f<8BBASSIUmbVyW zlTq{bsGKk$SwlmksIc(ue_|uo=Z}HI%G^9Nq03H%Ig=M *4&5_?n_eRnP`XWnPM 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 Z%L}N}USdoWF!>7Rf~NO{2#g{gk1mt literal 0 HcmV?d00001 diff --git a/chap-2-the-go-language/imgs/programming_languages_lowHighCompInterp.41e11926.png b/chap-2-the-go-language/imgs/programming_languages_lowHighCompInterp.41e11926.png new file mode 100644 index 0000000000000000000000000000000000000000..d8e9a1a365cb102042a5a39cbc55040dfd9ba132 GIT binary patch literal 21846 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 literal 0 HcmV?d00001 -- Gitee