全球领先的redis客户端:SFedis

零、背景   这个客户端起源于我们一个系统的生产问题。   一、问题的发生   在我们的生产环境上发生了两次redis服务端连接数达到上限(我们配置的单节点连接数上限为8000)导致无法创建连接的情况。由于这个系统生产环境的redis集群的tps达到百万级,所以发生了这个情...

2017-11-14 19:09:55

阅读数 281

评论数 0

用纯函数式思维在Java8下写的一段奇葩程序

首先说一下什么是纯函数式。在我的理解,“纯函数式”用一句话就可以描述:Anything is value.——我的理解不一定准确,但我就是这么理解的。 就是所有的东西都是值——没有变量;包括函数在内都是值——是值,就可以传递(包括函数)。   为什么说这段程序是奇葩呢? 其...

2014-07-12 11:53:02

阅读数 1347

评论数 0

当我在写程序的时候,我究竟在写些什么?

当我写下标题之后,面对着一张白板,发现不知道要写什么。或许我还没准备好这个主题。一个村上春树式的标题,或许是因为我想表达得蓝调一些,那么就还是写一写,就当是怀旧吧。     记得大学时,同学们都在用VC6写C++程序,而我为了标新,用Cygwin下的vim写,后来干脆在自己的JOY BOOK...

2014-07-11 08:56:29

阅读数 643

评论数 0

对SNL语言的解释器实现尾递归优化

对于SNL语言解释器的内容可以参考我的前一篇文章《使用antlr4及java实现snl语言的解释器》。此文只讲一下“尾递归优化”是如何实现的——“尾递归优化”并不是一个语言实现必须要做的,但这是一个比较有趣的东西,所以我还是想拿来讲一讲。 在前一篇文章中有一个例子: p...

2014-06-22 01:09:40

阅读数 892

评论数 0

使用antlr4及java实现snl语言的解释器

对于antlr4的基础使用,请参考我的前一篇文章《用antlr4来实现中的计算器》。 其实我对于antlr4的理解也仅限于那篇文章的范围,但那些内容对于我们实现一个SNL语言已是足够了。   SNL语言的简介可以百度百科(http://baike.baidu.com/subvie...

2014-06-07 21:47:43

阅读数 1625

评论数 0

用antlr4来实现《按编译原理的思路设计的一个计算器》中的计算器

上次在公司内部讲《词法分析——使用正则文法》是一次失败的尝试——上午有十几个人在场,下午就只来了四个听众。 本来我还在构思如何来讲“语法分析”的知识呢,但现在看来已不太可能。   这个课程没有预想中的受欢迎,其原因可能是: 1.课程内容相对复杂,听众知识背景与基础差异比较大...

2014-06-02 21:01:44

阅读数 1301

评论数 1

天下第一萌程序

模仿yinwang.org的《天下第一萌程序》,在Racket上运行了一下,挺有意思的。 头一次接触Scheme语言(目前我还不清楚下面的代码究竟是Racket语言还是Scheme语言)。 这段代码给了我一个启发:程序语言的词法竟然可以是图片!(此类语言的编译器岂不是必须配套一个代码编...

2014-05-02 17:09:29

阅读数 1440

评论数 0

手头上的几本关于实现程序设计语言的书

看了这几本书之后,可能仍然是门外汉——但会是一个高级一点的门外汉。

2014-05-02 17:05:14

阅读数 540

评论数 0

简说JAVA8引入函数式的问题。

JAVA8中加入lambda演算是一个令人兴奋的新特性

2014-04-09 20:38:23

阅读数 1335

评论数 0

词法分析——使用正则文法

在我的前一篇文章《按编译原理的思路设计的一个计算器》中,大致讲了编译器的结构及构造思路。 这次把词法分析的部分单独拿出来细讲一下。 一、什么是词法分析 词法分析是编译器的第一个阶段。它输入一段程序的文本,输出这段文本中的每个词法单元。 还是按前一篇文章的例子来说,我们输入一...

2014-03-29 11:37:29

阅读数 4102

评论数 1

按编译原理的思路设计的一个计算器

首先看一下这个计算器的功能: 点击(此处)折叠或打开 CALC> set a = 1; b = 2 CALC> set c = 3 CALC> calc (10 + pow(b, c)) * sqrt(4) - 1 35.0 CALC> ex...

2014-02-17 23:29:00

阅读数 7975

评论数 1

提示
确定要删除当前文章?
取消 删除