语言研究
naturemickey
这个作者很懒,什么都没留下…
展开
-
手头上的几本关于实现程序设计语言的书
看了这几本书之后,可能仍然是门外汉——但会是一个高级一点的门外汉。原创 2014-05-02 17:05:14 · 636 阅读 · 0 评论 -
天下第一萌程序
模仿yinwang.org的《天下第一萌程序》,在Racket上运行了一下,挺有意思的。 头一次接触Scheme语言(目前我还不清楚下面的代码究竟是Racket语言还是Scheme语言)。 这段代码给了我一个启发:程序语言的词法竟然可以是图片!(此类语言的编译器岂不是必须配套一个代码编辑工具了?) 我没找到王垠使用的那幅图片,所以在网上找了另外的一个萌猪图。 声明:原创 2014-05-02 17:09:29 · 1643 阅读 · 0 评论 -
简说JAVA8引入函数式的问题。
JAVA8中加入lambda演算是一个令人兴奋的新特性原创 2014-04-09 20:38:23 · 1571 阅读 · 0 评论 -
使用antlr4及java实现snl语言的解释器
对于antlr4的基础使用,请参考我的前一篇文章《用antlr4来实现中的计算器》。 其实我对于antlr4的理解也仅限于那篇文章的范围,但那些内容对于我们实现一个SNL语言已是足够了。 SNL语言的简介可以百度百科(http://baike.baidu.com/subview/2298006/5909410.htm)中看到。 简单说来,这是一个非常简单的结构化编程语言原创 2014-06-07 21:47:43 · 1964 阅读 · 0 评论 -
对SNL语言的解释器实现尾递归优化
对于SNL语言解释器的内容可以参考我的前一篇文章《使用antlr4及java实现snl语言的解释器》。此文只讲一下“尾递归优化”是如何实现的——“尾递归优化”并不是一个语言实现必须要做的,但这是一个比较有趣的东西,所以我还是想拿来讲一讲。 在前一篇文章中有一个例子: program recursion procedure f(integer d);原创 2014-06-22 01:09:40 · 1059 阅读 · 0 评论 -
用纯函数式思维在Java8下写的一段奇葩程序
首先说一下什么是纯函数式。在我的理解,“纯函数式”用一句话就可以描述:Anything is value.——我的理解不一定准确,但我就是这么理解的。 就是所有的东西都是值——没有变量;包括函数在内都是值——是值,就可以传递(包括函数)。 为什么说这段程序是奇葩呢? 其一、传统的Java是面向对象的,自从Java8中加入了lambda,Java就变成了“面向对象”和“函原创 2014-07-12 11:53:02 · 1572 阅读 · 0 评论