Category Archives: Study & Research

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

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

编译器(4)-语言设计

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

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

在本文中,将会比上几篇概述介绍的内容略微详细一些。我将讨论语言的规格说明书。 Continue reading [翻译]编译器(4)-语言设计

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

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

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

概述

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

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

最开始的时候,这真是铺天盖地。 Continue reading [翻译]编译器(1)-使用 Go 开发编译器

[翻译] Lua 做对了什么?

来自邮件列表的旧文一篇,不过很有料。加上最近正好大量用到 Lua,所以翻译出来。说实话,跟 Go 配合的 Lua 的封装,比已有的 Python 封装要好用很多。

————翻译分隔线————

主题:回复:Lua 做对了什么?
发信人:Miles Bader
日期:2012-04-09 星期一 17:03:27 +0900

Emeka 写到:

> 大家好,
>
> 我是一名南森大学的学生,我选择了 Lua 语言作为业余爱好。
> 我想知道到底是什么让这个语言与众不同?
> 它为编程语言带来了什么?还有特别的特性。
>
> 此致,\Emeka
> —
> *Satajanus Nig. Ltd
>
> *
Continue reading [翻译] Lua 做对了什么?

Z-Node: a cluster for sys-ops based on doozer & zookeeper

I’m happy to announce the system operations cluster: Z-Node here.

https://github.com/mikespook/z-node

Intro

Z-Node is a cluster for helping system operations. It works with Doozer and ZooKeeper cluster.

Every Z-Node watches at least two files:

  • /z-node/node/$HOST/$PID – for one-node tasks;
  • /z-node/$REGION/wire – for cluster tasks (Every Z-Node instance can watch multi-regions).

Z-Node will register itself as file /z-node/info/$HOST/$PID with running informations. It watches the file /z-node/node/$HOST/$PID for one-node tasks. When the file was changed, Z-Node will be notified.

All of Z-Nodes watch the file /z-node/$REGION/wire for cluster tasks. When the file is changed, all of Z-Nodes will be notified.

Special Thanks

The skynet project enlightened me on the developing with Z-Node. Also, I’m a user with skynet. 🙂

So, express my thanks to the skynet’s founder – Brian Ketelsen.

Thank you for your great job!

[翻译]我其实没办法学 Erlang,因为它不存在,所以我发明了它

这是 Joe Armstrong,Erlang 之父在昨天(2013-01-24)发表在 Erlang 邮件列表里的内容。详细解说了他自己从开始学习编码到发明 Erlang 的整个历史。并且,对如何学习编程;如何成为大牛等一系列热门问题提出了自己的看法。当然,文中槽点无数(包括坚定不移的黑我大PHP)。这也是我觉得有必要翻译出来的原因之一。

由于是发在邮件列表的,所以原文是没有正式的标题的。我从 HN 上抄了这个标题回来。

整体上,虽然是和 Erlang 相关的话题。但是读过之后,会突然领会到 Golang Team 一直以来坚持的一些东西的更深层次的含义。

————翻译分隔线————

回到过去……

当我开始学习编程的时候(1967),我可以在 FORTRAN 和(传说中的)Algol 之间选择,不过没有任何人了解 Algol,所以我选择了 FORTRAN。

编程的一个周期是三个星期

      第一周 在纸上的表格里编写代码,然后送到计算机中心将其转换为打孔卡
      第二周 复查打孔卡,如果没问题就放到设备上执行
      第三周 得到结果

编译器遇到第一个语法错误的时候会终止运行,这会将你带回第一周——因此,如果在你的程序中有十个错误,它会需要花费 30 周的时间让它运行起来。

这种氛围是非常好的——教会大家不要犯错,并且首先思考。

Continue reading [翻译]我其实没办法学 Erlang,因为它不存在,所以我发明了它

[翻译]1K 玫瑰花

这篇文章介绍了使用 canvas 的绘图功能绘制一个 3D 玫瑰。很有特色,随翻译于此。
在 Valentine’s Day 即将来临之际,希望能给诸位死 coder 一点点好运气……

原文在此:http://www.romancortes.com/blog/1k-rose/

—————-翻译分隔线—————-

我参加了 js1k 组织的关于“爱”的第四次主题活动。提交了一个静态图片,由程序生成的 3D 玫瑰花。你可以在这里找到它

它是用蒙特卡洛方法显式分段采样生成 3D 曲面。我将在这个文章中逐步解释所有的要点。
Continue reading [翻译]1K 玫瑰花

【翻译】App Engine Go 概述

就在我还寻思什么时候 Google 会在 NDK 里加入 Go 支持的时候,冷不丁的,Google 发力了。App Engine 支持 Go 了。下面是来自官方文档的概述。

————————翻译分割线————————

App Engine Go 概述

欢迎来到用于 Go 的 Google App Engine!实验性质

利用 App Engine,可以使用 Go 编程语言构建 Web 应用。Go 应用运行在 Google 的可伸缩的基础平台上,并使用大规模的持久化存储和服务。
Continue reading 【翻译】App Engine Go 概述