Licp - 一个玩具解释器的实现】的更多相关文章

纸上得来终觉浅,绝知此事要躬行. 最近看了 SICP,其第四章讲述了一个简单的 Scheme 解释器的实现.粗看了一遍后决定自己用 C 语言实现一个残疾的 Scheme 解释器,想来这样的学习效果应该比只看书要强得多. 在这过程中发现用 C 实现这样一个解释器比用 Lisp 写要麻烦得多.一个 Lisp 语句本身其实就是一个 Lisp 里的表,利用这一特性就可以省去词法分析划分 token 的步骤,直接用自带的 car 和 cdr 等过程就能方便地提取出语句中的各个成分(相当于直接对树操作):而…
Brainfuck是一种极小化的计算机语言,只含有8种运算符,由于fuck在英语中是脏话,这种语言有时被称为brainfck或brainf**,甚至被简称为BF.正如它的名字所暗示,brainfuck程序很难读懂,尽管如此,brainfuck却是图灵完备的,也就是说它能够完成所有可计算的任务. - - - 简介 以下摘自维基百科. Müller的目标是创建一种简单的.可以用最小的编译器来实现的.符合图灵完全思想的编程语言.这种语言由八种运算符构成,为Amiga机器编写的编译器(第二版)只有240…
利用python的exec语句,可以很方便地动态执行python语句.如果一个python代码打包为了exe,其原先的代码就很难更改了.一个好的解决方法就是import相应的库,然后把主程序段放到一个单独的文件中被exec执行. 现在打包一个简单的python解释器,因为是示例,只调用一个numpy库. main.py 解释器 import numpy as np if __name__ == '__main__': with open('code.py','r+') as f: code=f.…
说起编译原理,印象往往只停留在本科时那些枯燥的课程和晦涩的概念.作为前端开发者,编译原理似乎离我们很远,对它的理解很可能仅仅局限于"抽象语法树(AST)".但这仅仅是个开头而已.编译原理的使用,甚至能让我们利用JS直接写一个能运行JS代码的解释器. 项目地址:https://github.com/jrainlau/c... 在线体验:https://codepen.io/jrainlau/p... 一.为什么要用JS写JS的解释器 接触过小程序开发的同学应该知道,小程序运行的环境禁止n…
替人写的C语言作业… 介绍: 程序名称:密码强度检测程序 注释风格:doxygen 测试环境:linux3.6, gcc4.7window7, vs2012 已知问题:1. 算法与参考链接不一致,结果会有差别,详见代码注释.2. 在vs下可能会编译不通过,将后缀改为cpp就可以了.vs的C编译器实现对C90支持不佳,gcc4.5以上可以正常编译通过. #ifndef CHECKPASS_H_INCLUDED #define CHECKPASS_H_INCLUDED /*! * \brief 本程…
代码地址 # HelloWorld.ice print("hello, world") 前言(废话) 其实从开始学习编译原理到现在已经有快半年的时间了,但是其间常常不能坚持看下去龙书(经常三天打鱼两天晒网,更何况每次打鱼不到半小时就累得不行又会放下书(笑)),截至到现在只勉强看完了前六章的部分,半年间其它事也没有做,其实想想上大学已经快两年了还是一事无成,知识也没有学到,不免觉得很羞愧. 暑假也要到了,这个学期马上也要结束了,临近大二结束之际,还是尝试着写一下以前想写的玩具吧,而本系列…
  Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Python技术路径中包含入门知识.Python基础.Web框架.基础项目.网络编程.数据与计算.综合项目七个模块.路径中的教程将带你逐步深入,学会如何使用 Python 实现一个博客,桌面词典,微信机器人或网络安全软件等.完成本路径的基础及项目练习,将具备独立的Python开发能力. 完整的Pytho…
作者:Wayne Shi链接:http://www.zhihu.com/question/29372574/answer/88744491来源:知乎著作权归作者所有,转载请联系作者获得授权. 目前是34个Python项目,会继续保持更新.Learn by doing才是正确的技术学习姿势.20160816更新:Python - 高德API+Python解决租房问题Python - 基于 Flask 及爬虫实现微信娱乐机器人Python - Python3 实现淘女郎照片爬虫Python - Py…
作者:Wayne Shi链接:https://www.zhihu.com/question/29372574/answer/88744491来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 补充了几个数据分析的项目,目前是33个Python项目,会继续保持更新.Learn by doing才是正确的技术学习姿势. 20171009更新: NBA常规赛结果预测--利用Python进行比赛数据分析 Python 气象数据分析 20161230更新: Python基于共现…
造一个草原要一株三叶草加一只蜜蜂.一株三叶草,一只蜂,再加一个梦.要是蜜蜂少,光靠梦也行. - 狄金森 "成为编程大牛要一门好语言加一点点天分.一门好语言,一点点天分,再加一份坚持.要是天分少,光靠坚持也行." Python无疑是一门好语言.今天给大家整理这一批教程,适合有一点Python基础的同学,强化.进阶.关于基础的学习,可以查看上一篇<Python学习资源整理(入门系列)>.(提示:本文列出教程,大部分都是免费,点开链接即可在云端Linux环境中动手学习,仅有一小撮…