摘要: 首先说一下什么是纯函数式。在我的理解,“纯函数式”用一句话就可以描述:Anything is value.——我的理解不一定准确,但我就是这么理解的。 就是所有的东西都是值——没有变量;包括函数在内都是值——是值,就可以传递(包括函数)。 为什么说这段程序是奇葩呢? 其一、传统的Java是面向对象的,自从Java8中加入了lambda,Java就变成了“面向对象”和“函数式”两种方式的混合语言。... 阅读全文
posted @ 2014-07-12 11:50 周游(Michael Chow) 阅读(1231) 评论(0) 推荐(0) 编辑
摘要: 当我写下标题之后,面对着一张白板,发现不知道要写什么。或许我还没准备好这个主题。一个村上春树式的标题,或许是因为我想表达得蓝调一些,那么就还是写一写,就当是怀旧吧。 记得大学时,同学们都在用VC6写C++程序,而我为了标新,用Cygwin下的vim写,后来干脆在自己的JOY BOOK 3000上安装了一个Fedora 5,用着那个被修改成半透明的Console下的vim,感觉很爽的样子。现在想... 阅读全文
posted @ 2014-07-02 16:27 周游(Michael Chow) 阅读(2432) 评论(18) 推荐(0) 编辑
摘要: 对于SNL语言解释器的内容可以参考我的前一篇文章《使用antlr4及java实现snl语言的解释器》。此文只讲一下“尾递归优化”是如何实现的——“尾递归优化”并不是一个语言实现必须要做的,但这是一个比较有趣的东西,所以我还是想拿来讲一讲。 在前一篇文章中有一个例子: program recursion procedure f(integer d); begin write(d); f(d +... 阅读全文
posted @ 2014-06-22 01:07 周游(Michael Chow) 阅读(1068) 评论(0) 推荐(0) 编辑
摘要: 对于antlr4的基础使用,请参考我的前一篇文章《用antlr4来实现中的计算器》。 其实我对于antlr4的理解也仅限于那篇文章的范围,但那些内容对于我们实现一个SNL语言已是足够了。 SNL语言的简介可以百度百科(http://baike.baidu.com/subview/2298006/5909410.htm)中看到。 简单说来,这是一个非常简单的结构化编程语言,它包含了一个编程语言应该... 阅读全文
posted @ 2014-06-07 14:25 周游(Michael Chow) 阅读(2311) 评论(1) 推荐(0) 编辑
摘要: 上次在公司内部讲《词法分析——使用正则文法》是一次失败的尝试——上午有十几个人在场,下午就只来了四个听众。本来我还在构思如何来讲“语法分析”的知识呢,但现在看来已不太可能。这个课程没有预想中的受欢迎,其原因可能是:1.课程内容相对复杂,听众知识背景与基础差异比较大。2.授课技巧不够,不能把复杂的知识... 阅读全文
posted @ 2014-06-02 14:57 周游(Michael Chow) 阅读(3705) 评论(0) 推荐(0) 编辑
摘要: 模仿yinwang.org的《天下第一萌程序》,在Racket上运行了一下,挺有意思的。头一次接触Scheme语言(目前我还不清楚下面的代码究竟是Racket语言还是Scheme语言)。这段代码给了我一个启发:程序语言的词法竟然可以是图片!(此类语言的编译器岂不是必须配套一个代码编辑工具了?)我没找... 阅读全文
posted @ 2014-05-02 10:42 周游(Michael Chow) 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 看了这几本书之后,可能仍然是门外汉——但会是一个高级一点的门外汉。 阅读全文
posted @ 2014-04-23 10:01 周游(Michael Chow) 阅读(330) 评论(1) 推荐(0) 编辑
摘要: (周游[http://www.cnblogs.com/naturemickey]版权所有,未经许可请勿转载)在我的前一篇文章《按编译原理的思路设计的一个计算器》中,大致讲了编译器的结构及构造思路。这次把词法分析的部分单独拿出来细讲一下。一、什么是词法分析词法分析是编译器的第一个阶段。它输入一段程序的... 阅读全文
posted @ 2014-04-15 22:52 周游(Michael Chow) 阅读(4942) 评论(0) 推荐(0) 编辑
摘要: (周游[http://www.cnblogs.com/naturemickey]版权所有,未经许可请勿转载)首先看一下这个计算器的功能:CALC> set a = 1; b = 2CALC> set c = 3CALC> calc (10 + pow(b, c)) * sqrt(4) - 135.0... 阅读全文
posted @ 2014-04-15 22:51 周游(Michael Chow) 阅读(1572) 评论(1) 推荐(0) 编辑