随笔分类 -  语言研究

摘要:从第一次下载rust语言的编译器到今天刚好第14天。 简单说一下对这个语言的感觉吧。一、性能把以前用java写的一个中文地址切分的算法,用rust重新实现了一下(https://github.com/naturemickey/addressCut_use_rust)。运行的速度上,rust的rele... 阅读全文
posted @ 2015-12-02 22:30 周游(Michael Chow) 阅读(14915) 评论(9) 推荐(2)
摘要:一、为什么要写这个工具?公司内容有多个项目需要同一个功能,而这些项目中,有的是用Java的,有的是用C++的,同时由于某些现实条件限制,无法所有项目都调用统一的服务接口(如:可能运行在无网络的情况下),所以可选方案有两种:a.分别用Java和C++实现两套一样的功能。b.实现一个生成工具,用来生成同... 阅读全文
posted @ 2015-07-24 21:57 周游(Michael Chow) 阅读(1085) 评论(1) 推荐(0)
摘要:我的扩展功能描述如下:在java的现有语法中加入var来声明变量,并且可以根据初始化数据来自动类型推导。举两个例子:例一:如下JAVA代码(注意这里的var是新语法):import java.util.*;public class TestHello { private var i =... 阅读全文
posted @ 2015-04-21 13:40 周游(Michael Chow) 阅读(1379) 评论(0) 推荐(1)
摘要:JAVA8中加入lambda演算是一个令人兴奋的新特性——虽然这个新特性来得太迟了,目前的主流开发语言中,JAVA似乎是最后一个支持函数式思维的语言。虽然晚了点,但总比没有好——况且我认为它的实现还是可以的,至少比C++的实现好一点(C++编译器不能自动很好的处理闭包环境,却要求程序员在代码中指定要... 阅读全文
posted @ 2014-08-09 12:47 周游(Michael Chow) 阅读(1093) 评论(3) 推荐(1)
摘要:先从一个例子开始讲起,以下是jdk1.7中的迭代器接口的代码(去掉了注释的部分):public interface Iterator { boolean hasNext(); E next(); void remove();}程序开发的老油条们都不太喜欢这个接口的remove方法,原因可能是:我们为... 阅读全文
posted @ 2014-07-19 20:43 周游(Michael Chow) 阅读(956) 评论(0) 推荐(1)
摘要:首先说一下什么是纯函数式。在我的理解,“纯函数式”用一句话就可以描述:Anything is value.——我的理解不一定准确,但我就是这么理解的。 就是所有的东西都是值——没有变量;包括函数在内都是值——是值,就可以传递(包括函数)。 为什么说这段程序是奇葩呢? 其一、传统的Java是面向对象的,自从Java8中加入了lambda,Java就变成了“面向对象”和“函数式”两种方式的混合语言。... 阅读全文
posted @ 2014-07-12 11:50 周游(Michael Chow) 阅读(1285) 评论(0) 推荐(0)
摘要:对于SNL语言解释器的内容可以参考我的前一篇文章《使用antlr4及java实现snl语言的解释器》。此文只讲一下“尾递归优化”是如何实现的——“尾递归优化”并不是一个语言实现必须要做的,但这是一个比较有趣的东西,所以我还是想拿来讲一讲。 在前一篇文章中有一个例子: program recursion procedure f(integer d); begin write(d); f(d +... 阅读全文
posted @ 2014-06-22 01:07 周游(Michael Chow) 阅读(1126) 评论(0) 推荐(0)
摘要:对于antlr4的基础使用,请参考我的前一篇文章《用antlr4来实现中的计算器》。 其实我对于antlr4的理解也仅限于那篇文章的范围,但那些内容对于我们实现一个SNL语言已是足够了。 SNL语言的简介可以百度百科(http://baike.baidu.com/subview/2298006/5909410.htm)中看到。 简单说来,这是一个非常简单的结构化编程语言,它包含了一个编程语言应该... 阅读全文
posted @ 2014-06-07 14:25 周游(Michael Chow) 阅读(2402) 评论(1) 推荐(0)
摘要:模仿yinwang.org的《天下第一萌程序》,在Racket上运行了一下,挺有意思的。头一次接触Scheme语言(目前我还不清楚下面的代码究竟是Racket语言还是Scheme语言)。这段代码给了我一个启发:程序语言的词法竟然可以是图片!(此类语言的编译器岂不是必须配套一个代码编辑工具了?)我没找... 阅读全文
posted @ 2014-05-02 10:42 周游(Michael Chow) 阅读(508) 评论(0) 推荐(0)
摘要:看了这几本书之后,可能仍然是门外汉——但会是一个高级一点的门外汉。 阅读全文
posted @ 2014-04-23 10:01 周游(Michael Chow) 阅读(359) 评论(1) 推荐(0)