Tag: 翻译

  • [翻译]编译器(8)-抽象语法树

    原文在此
    ————翻译分隔线————

    编译器(8)-抽象语法树

    第一部分:介绍
    第二部分:编译、转译和解释
    第三部分:编译器设计概览
    第四部分:语言设计概述
    第五部分:Calc 1 语言规格说明书
    第六部分:标识符
    第七部分:扫描

    在构建解析器之前,首先应当谈谈如何处理目标数据。

    需要用某种抽象数据类型来保存所有需要解析的数据。树形数据结构很好的满足了我们的需求。这个树描述了编程语言的语法结构,它被很恰当的叫做抽象语法树(AST)。 (more…)

  • [翻译]编译器(7)-扫描

    原文在此
    ————翻译分隔线————

    编译器(7)-扫描

    第一部分:介绍
    第二部分:编译、转译和解释
    第三部分:编译器设计概览
    第四部分:语言设计概述
    第五部分:Calc 1 语言规格说明书
    第六部分:标识符

    现在终于可以开始在扫描器上工作了。 (more…)

  • [翻译]编译器(6)-标识符

    原文在此
    ————翻译分隔线————

    编译器(6)-标识符

    第一部分:介绍
    第二部分:编译、转译和解释
    第三部分:编译器设计概览
    第四部分:语言设计概述
    第五部分:Calc 1 语言规格说明书

    在本文中,我们终于可以开始沉浸在代码中去了! (more…)

  • [翻译]编译器(5)-语言规格说明书

    原文在此
    ————翻译分隔线————

    编译器(5)-语言规格说明书

    第一部分:介绍
    第二部分:编译、转译和解释
    第三部分:编译器设计概览
    第四部分:语言设计概述

    这是最后一部分关于 Calc 的设计规格! (more…)

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

    原文在此。另外推荐阅读王大师的“设计和开发 Yin 语言”,你会看到另一个完全不同的语言设计思路
    ————翻译分隔线————

    编译器(4)-语言设计

    第一部分:介绍
    第二部分:编译、转译和解释
    第三部分:编译器设计概览

    在第一部分概述了这一系列文章将介绍的内容。在第二、三部分粗略的浏览了计算机语言编译的各个步骤。

    在本文中,将会比上几篇概述介绍的内容略微详细一些。我将讨论语言的规格说明书。 (more…)

  • [翻译]编译器(3)-编译器设计概览

    原文在此
    ————翻译分隔线————

    编译器(3)-编译器设计概览

    第一部分:介绍
    第二部分:编译、转译和解释

    我们正在编写什么?

    简单来说,是一个计算器。一个用于超级简单的数学语言的编译器。 (more…)

  • [翻译]编译器(2)-编译、转译和解释

    原文在此
    ————翻译分隔线————

    编译器(2)-编译、转译和解释

    第一部分作为这一系列文章的介绍。

    在第二部分,在真正深入到编译实际的步骤之前,我会对一些定义作一些概述。 (more…)

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

    好文不多说,系列长文,大家耐心等吧。原文在此
    ————翻译分隔线————

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

    概述

    我对编译器的工作原理已经感兴趣很久了。神秘的指令和奇异的行为总是会令我迷惑不已。也从未真正理解优化是如何进行的,以及编译器又是如何知道我到底做错了什么。

    当我决定学习如何编写编译器的时候,我发现有许多关于这个领域的术语和缩写。什么是 SLR 或 LALR 解析器?什么是该死的词位(lexeme)或有限自动机(finite automata)?什么是递归下降分析(recursive-descent parsing)?什么是 AST?

    最开始的时候,这真是铺天盖地。 (more…)

  • [翻译]你的程序员在勤奋工作,还是在偷懒?

    关于南极动物公司的 H 总半夜回复邮件,凌晨上线生产环境这个段子,总是有一些人拉出来说事。弄得好像判断他人是否勤奋,只能是通过这个人凌晨三点是否还在工作来识别一样。先不说 H 总当时是不是在国外,有没有时差这个问题。有几个公司真得把开发、测试、上线这个流程跑通了?没跑通,有几个人敢这么冒冒然上线?冒冒然上线了,有几个人敢白天蒙头睡觉?敢白天蒙头睡觉,有几个公司允许不考勤的……扯远了,拉回来。这篇文章是我去年12月初看到的,当时就想翻译,结果一拖就成了跨年度项目了(我得承认,我偷懒了)。当了很多年的程序员,也做了几年技术管理工作,感觉原文作者的经历还是很有代表性的。至少如果现在还天天忙着用代码行数来判断程序员贡献的领导,可能得评估一下公司的技术、开发工具相关选型是不是还在原始社会了。原文在这里,请翻墙阅读。 ————翻译分隔线————

    你的程序员在勤奋工作,还是在偷懒?

    Mike Hadlow 撰写 当人们进行体力劳动时,很容易判断他们是否在努力工作。你可以看到汗流浃背的劳动过程。还可以看到他们工作的结果:砖墙越来越高;地上的洞越来越大。认可并且嘉奖辛勤的劳动绝对是人类最基本的本能,这也是体育运动如此经久不衰的让人着迷的原因之一。但用这种本能的赞赏来面对技术研发的员工时,就成为了一个问题。高效的知识型劳动者经常让人觉得他没有在努力工作。 (more…)

  • [翻译] Go 1.3 链接器大修

    Go team 总是能带来一些惊喜的,关于 Go 的链接器,看来在 1.3 版本中要大修了
    ————翻译分隔线————

    Go 1.3 链接器大修

    Russ Cox

    2013 年 11 月

    摘要

    在构建和运行一个标准的 Go 程序时,链接器是最慢的一部分。为了解决这个问题,我们计划将链接器拆分到两部分。其中的一部分可能会用 Go 来编写。

    背景

    链接器总是 Plan 9 工具链中最慢的部分之一,而现在它是 Go 工具链中最慢的部分了。Ken Thompson 在关于工具链的概述中进行了总结:

    (more…)