iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >go语言源码是啥写的
  • 727
分享到

go语言源码是啥写的

go语言Golang 2023-05-14 19:05:09 727人浏览 薄情痞子
摘要

Go语言早期源码是使用C语言和汇编语言写成的,从Go 1.5版本后,完全使用Go语言自身进行编写。Google早在2014年初的时候,就已经开始在筹备从Go语言的源码中彻底移除C语言,也就是说让Go语言真正完成自举,用早期版本重写了Go语言

Go语言早期源码是使用C语言和汇编语言写成的,从Go 1.5版本后,完全使用Go语言自身进行编写。Google早在2014年初的时候,就已经开始在筹备从Go语言的源码中彻底移除C语言,也就是说让Go语言真正完成自举,用早期版本重写了Go语言编译器。

go语言源码是啥写的

教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。

Go语言现在已经实现了自举,也就是说现在golang是用Golang自己编写的自己。早期Go是用汇编语言和C语言实现的,后来Go成熟了之后,Go语言就开始自举、用早期版本重写了Go语言编译器。

从 Go 1.5 版本后,完全使用Go语言自身进行编写。Go语言的源码对了解Go语言的底层调度有极大的参考意义,建议希望对Go语言有深入了解的读者读一读。

项目链接:https://GitHub.com/Docker/docker

Google逐步实现Go语言“去C语言化”

很多编程语言的核心都是C语言,甚至可以说现代计算机核心基础都构建在C语言和Unix之上,肯汤普森和丹尼斯里奇老爷子创造了C语言和Unix,然后C和Unix再生万物。JVMPHP核心、GCC、EMacs、Vim、Unix、linux等等,这些全都是用C语言来写的。

Go语言自然也不例外,Go语言编译器最初也是C语言写的,Go语言的作者之一就是大名鼎鼎的祖师爷肯汤普森。Google早在2014年初的时候,就已经开始在筹备从Go语言的源码中彻底移除C语言,也就是说让Go语言真正完成自举。

1.png

Google自举Go语言的具体方案

Go语言是效率很高的编程语言,比Java、C#phppython这些基于虚拟机以及解释性语言性能要好、资源使用效率也更高。基本上除了C/C++之外,Go语言就是性能最好的高级语言,相对于C和c++、Go语言在语法上又有极大的优势。

Java和PHP都只能部分自举,Java的JVM还是得用C语言实现,PHP核心也得用C语言来写,能够实现自举的编程语言必须是图灵完备的,因此htmlCSS也没办法完成自举,他们也不是真正意义上的编程语言。

Google具体的实施步骤:开发一个C到Go的编译器,将现有的C编译器翻译成Go语言;转化编译器源码树、得到一个Go语言编译器;将C风格明显的Go编译器转化成彻底的Go语言风格Go编译器;对Go编译器进行优化,主要是优化处理器、内存性能使用问题,加入并行机制、优化消除冗余检查和边界检查能力;用最新版go/parser和go/types替换编译器前端

2.webp.jpg

Google为什么要让Go语言实现自举呢?

自举意义主要有三点:测试被自举的编程语言;实现用更高级和抽象的编程语言来编写编译器;编程语言也能从语言本身的发展获益。

能够自举证明至少编程语言是图灵完备的,证明了编程语言本身具备这样强大的能力,这本身也是对编程语言的一种宣传,至少证明编程语言具备很强的通用能力、以及非常强的底层能力。在自举过程中,本质上也是对编程语言的一次考验,核心开发者在这个过程中,可以积累很多编程语言本身的经验教训,能够尽早发现编程语言本身存在的不足和设计缺陷,方便能够及时做出调整和优化。

因此编程语言想要自举,这件事情做得越早越好,自举的过程也是一次对编程语言的完善过程, 在编程语言定型之前越早完成自举,编程语言就成熟得越早,C/C++之所以这么多年经久不衰,就是因为他们本身足够成熟,其他编程语言要发展,都要靠这两们编程语言,Go语言现在也具备这样的可能。

Go语言是一个非常出色的编程语言,设计理念现代、能力又强、性能又好,尽管Go语言缺少宏、泛型会让你的代码重复度高,可是Go语言更多的是抛弃了C/C++的缺点,吸收了很多编程语言的优点发展起来的一个比较年轻的编程语言。Go语言的大量工程实践证明,这是一门极其强大的编程语言。

【相关推荐:Go视频教程、编程教学】

以上就是go语言源码是啥写的的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: go语言源码是啥写的

本文链接: https://www.lsjlt.com/news/203468.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • go语言源码是啥写的
    Go语言早期源码是使用C语言和汇编语言写成的,从Go 1.5版本后,完全使用Go语言自身进行编写。Google早在2014年初的时候,就已经开始在筹备从Go语言的源码中彻底移除C语言,也就是说让Go语言真正完成自举,用早期版本重写了Go语言...
    99+
    2023-05-14
    go语言 Golang
  • go语言源码是什么写的
    本篇内容主要讲解“go语言源码是什么写的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“go语言源码是什么写的”吧!Go语言早期源码是使用C语言和汇编语言写成的,从Go 1.5版本后,完全使用Go...
    99+
    2023-07-04
  • go是啥语言
    go语言是一种开源的编程语言,由Google开发并于2009年首次发布,go语言被设计用于构建高效、可靠、简单且可扩展的软件。它在网络编程、分布式系统开发、命令行工具和系统工具开发等方面表现出色,并且具有许多其他特性和优势,使其成为许多开发...
    99+
    2023-12-11
    Go 语言
  • Go语言读写锁RWMutex的源码分析
    目录前言RWMutex 总览深入源码数据结构RLock()RUnlock()Lock()Unlock()常见问题实战一下前言 在前面两篇文章中 初见 Go Mutex&nb...
    99+
    2022-11-11
  • Go语言进阶freecache源码分析
    这篇文章主要介绍“Go语言进阶freecache源码分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Go语言进阶freecache源码分析”文章能帮助大家解决问题。00. 什么是 freecach...
    99+
    2023-07-06
  • 对Go语言中的context包源码分析
    目录一、包说明分析二、包结构分析三、Context接口类型分析四、后续分析规划五、基于实现类型到常用函数六、With-系列函数七、扩展功能以及如何扩展八、补充一、包说明分析 cont...
    99+
    2022-11-13
  • Go语言context test源码分析详情
    目录1.测试例子分析2.单元测试1.测试例子分析 example_test.go,展示了With-系列的4个例子 func ExampleWithCancel() {   gen :...
    99+
    2022-11-13
  • Go语言io pipe源码分析详情
    目录1.结构分析2.pipe sruct分析3.PipeReader对外暴露的是读/关闭4.写法5.总结pipe.go分析: 这个文件使用到了errors包,也是用到了sync库.文...
    99+
    2022-11-13
  • go语言构建顺序源码分析
    这篇文章主要介绍“go语言构建顺序源码分析”,在日常操作中,相信很多人在go语言构建顺序源码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”go语言构建顺序源码分析”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-05
  • 如何分析Go语言的库源码文件
    这期内容当中小编将会给大家带来有关如何分析Go语言的库源码文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。go适合做什么go是golang...
    99+
    2022-10-19
  • Go语言编译原理之源码调试
    目录前言Goland的debug调试Go源码dlv工具调试Go源码安装常用命令dlv调试抽象语法树构建前言 在前边几篇文章中分享了Go编译过程中的源码实现,本文主要是想分享一下我是怎...
    99+
    2022-11-11
  • Go 语言进阶freecache源码学习教程
    目录00. 什么是 freecache?01. 简单用法02. 功能概览03. 如何做到 0 GC?04. 数据结构05. 动态索引06. 缓存失效00. 什么是 freecache...
    99+
    2023-05-15
    Go语言freecache Go freecache 源码解析
  • go语言指的是什么开源协议
    小编给大家分享一下go语言指的是什么开源协议,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!go语言采用BSD开源协议。BSD开源协议是一个给于使用者很大自由的协议...
    99+
    2023-06-15
  • Go语言网络编程与Http源码分析
    这篇文章主要介绍“Go语言网络编程与Http源码分析”,在日常操作中,相信很多人在Go语言网络编程与Http源码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go语言网络编程与Http源码分析”的疑惑有所...
    99+
    2023-07-05
  • 怎么进行Go语言HTTP Server源码分析
    这期内容当中小编将会给大家带来有关怎么进行Go语言HTTP Server源码分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Go语言中HTTP Server:HTTP  server,顾名思义...
    99+
    2023-06-17
  • go语言字符类型byte与rune源码分析
    这篇文章主要介绍“go语言字符类型byte与rune源码分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“go语言字符类型byte与rune源码分析”文章能帮助大家解决问题。一、byte类型介绍by...
    99+
    2023-07-05
  • Go语言实现枚举的示例代码怎么写
    本篇文章为大家展示了Go语言实现枚举的示例代码怎么写,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在编程领域里,枚举用来表示只包含有限数量的固定值的类型,在开发中一般用于标识错误码或者状态机。拿一个...
    99+
    2023-06-28
  • go语言的底层是什么语言
    go语言的底层是C语言,Go语言是由C和C++开发者创建的,因此它的底层实现也是用C语言编写的,Go语言底层使用了很多C语言的特性和实现方式,如内存管理、指针、函数调用等,这使得Go语言可以直接调用C语言的库函数,也方便了Go语言与其他编程...
    99+
    2023-07-10
  • 学习 Go 语言:如何在 Linux 上编写代码?
    Go 语言自发布以来,已经成为了一种广泛使用的编程语言。它被设计成一门高效、可靠、简单易用的语言,可应用于各种用途。在本文中,我们将探讨如何在 Linux 操作系统上使用 Go 语言编写代码。 安装 Go 在开始编写 Go 代码之前,...
    99+
    2023-07-28
    关键字 教程 linux
  • 详解如何在Go语言中调用C源代码
    目录开坑说明内嵌形式外置的C代码1. 构建libauth.a静态库2. 对main.go稍加修改3. 编译开坑说明 最近在编写客户端程序或与其他部门做功能集成时多次碰到了跨语言...
    99+
    2022-06-07
    GO go语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作