[翻译]编译器(4)-语言设计

原文在此。另外推荐阅读王大师的“设计和开发 Yin 语言”,你会看到另一个完全不同的语言设计思路。 ————翻译分隔线———— 编译器(4)-语言设计 第一部分:介绍 第二部分:编译、转译和解释 第三部分:编译器设计概览 在第一部分概述了这一系列文章将介绍的内容。在第二、三部分粗略的浏览了计算机语言编译的各个步骤。 在本文中,将会比上几篇概述介绍的内容略微详细一些。我将讨论语言的规格说明书。

[翻译]编译器(1)-使用 Go 开发编译器

好文不多说,系列长文,大家耐心等吧。原文在此。 ————翻译分隔线———— 编译器(1)-使用 Go 开发编译器 概述 我对编译器的工作原理已经感兴趣很久了。神秘的指令和奇异的行为总是会令我迷惑不已。也从未真正理解优化是如何进行的,以及编译器又是如何知道我到底做错了什么。 当我决定学习如何编写编译器的时候,我发现有许多关于这个领域的术语和缩写。什么是 SLR 或 LALR 解析器?什么是该死的词位(lexeme)或有限自动机(finite automata)?什么是递归下降分析(recursive-descent parsing)?什么是 AST? 最开始的时候,这真是铺天盖地。

[翻译] Go 1.3 链接器大修

Go team 总是能带来一些惊喜的,关于 Go 的链接器,看来在 1.3 版本中要大修了。 ————翻译分隔线———— Go 1.3 链接器大修 Russ Cox 2013 年 11 月 摘要 在构建和运行一个标准的 Go 程序时,链接器是最慢的一部分。为了解决这个问题,我们计划将链接器拆分到两部分。其中的一部分可能会用 Go 来编写。 背景 链接器总是 Plan 9 工具链中最慢的部分之一,而现在它是 Go 工具链中最慢的部分了。Ken Thompson 在关于工具链的概述中进行了总结:

[翻译]Go 数据结构

关于 Go 的内存结构在 Go 内存模型 中已经有介绍,但是内容相对简单,许多细节也一带而过。Ross Cox 的这篇文章 Go Data Structure 讲解得比较系统也很全面的一篇。翻译至此,希望能对大家有帮助。 2009 年的旧文,发现自己当时没有翻译完。所以再次做了增补和修改。如果我没记错,应该已经有人在 OSC 上发表过同一篇文章的翻译了。大家对照参考阅读吧。 ————翻译分隔线———— Go 数据结构 每当给新手介绍 Go 的时候,我发现为了建立起关于哪个操作成本更加高昂的正确观念,将 Go 如何为其值分配内存说明清楚会很有帮助。本文介绍了基础类型、结构体、数组和切片(slice)。

[翻译] go build 命令是如何工作的?

之前 Dave Cheney 已经为我们讲解过了 Go 是如何用 go 编译自己的。这里,他继续给大家讲解一下 go build 命令是如何工作的(原文)。 ————翻译分隔线———— go build 命令是如何工作的? 本文以 Go 的标准库为例,介绍了 Go 编译过程的工作原理。