用Scheme解释器项目来了解Java

8 篇文章 0 订阅

首语

原本打算定的题目是,基于Java8的Scheme解释器 ,但是在对项目进行编写的时候,发现有很多scheme的语言细节、理论我了解的少之又少,而本人自认为Java基础还是比很多人要好的,所以想改成现在这个题目,用Scheme解释器来学习Java

写这个项目的缘由是最近的一场面试,这里我就安利一家公司,源伞科技 ,位于深圳的一家公司,主要是做静态分析,编译器构建的。当时我把简历发过去的时候,hr问我有没有什么个人Github项目,当时我就花了4天的时间粗制滥造了一个Scheme解释器,后来觉得这样不妥,于是乎在面试结束以后,自己又重新对代码进行了编写,才有了现在的这个项目。

不幸的是,面试这家公司我挂了,但是我没有任何的不开心或者是不甘心的情绪,反而觉得面试的过程中我真正觉得自己还有很多知识没有学会,面试官非常nice,会按照你自己的简历上面的内容进行提问,问题来源于《编译原理》这本教材,取自教材并且会进行发散,而且会引导你逐步解出答案。所以我在这里,第四次感谢面试官(前三次是在邮件里面感谢的)。

还有一个编写的初衷是,这个Scheme解释器并不是我独创的,而是wikipedia上面已经有人写了Write_Yourself_a_Scheme_in_48_Hours,但是我觉得Haskell这门纯函数式编程语言比较难懂,之前也是学了一点语法之后,强行开始看这本电子书,后来实在是看不下去后面的内容了,于是乎就自己开始造轮子了。

项目码云地址

https://gitee.com/RAYPALMER/SchemeInterpreterJava

本项目可以学到的东西

不夸大不贬低,不吹不黑(吹和黑不是我的风格,是什么就是什么)

  • 基本Java知识,控制流,递归,集合类的使用
  • 高级Java知识,反射
  • Java8函数式编程,此风格有毒
  • 实打实开始编写Java继承,泛型,提高代码可读性和可扩展性
  • 分析编译器前端的简单的一般性的思路

我说说我的个人体会,也是我的一个师弟无意间说出来的一句话,学习一门语言最好的方式就是用这门语言写一个解释器,虽然说解释器项目可能先开始进行代码编写的时候难度较高,但是在项目编写的同时,会强迫你了解解释它的语言的方方面面,比如Java,这样你学习一门语言就会更快,而不是仅仅停留在写一个小的main函数上面。

目录(自2017.10.28逐渐完善)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值