简易编译器实现(一)使用Flex创建词法分析器

编译器简介 编程语言是人和计算机交流的媒介,但是计算机只能理解二进制语言,编译器的工作就是把人可以理解的编程语言翻译成机器可以理解的二进制语言,即可执行文件。 编译过程可以细分为7个阶段 词法分析 语法分析 语义分析 中间代码生成 机器无关的代码优化 代码生成 机器相关的代……

阅读全文

内联函数(inline Function)浅析

什么是内联函数 内联函数(inline function)是C和C++都支持的一种语言特性,简单来说,就是在编译阶段在调用内联函数的地方直接展开函数代码,避免函数调用的开销。 内联函数的优点 内联函数的主要作用是避免函数调用开销,那就必须要讨论一下函数调用有哪些开……

阅读全文

学习笔记:相似度度量与协同过滤

相似度度量 相似度度量关注的是两个对象是否相似,相似程度是多少?比如两张图片、两篇文章、两句话、两个人的喜好的相抵程度等。 为了度量相似度,首先需要将比较对象转换成实数向量,这样计算机才能够理解。对象类型不同,转换方式也不同,最终目的都是将比较对象转换成实数向……

阅读全文

学习笔记:信息熵与决策树

信息熵 什么是信息熵 信息熵用于度量”预测随机变量Y的取值“的难度。信息熵越大说明Y的取值的不确定性越大,即预测难度越大。本文用H(Y)表示预测Y值的信息熵。 下表为两只球队的虚拟的胜、负、平历史记录,显然预测恒大比赛结果的难度要远小于绿城。因为恒大90%都是胜……

阅读全文

[译] Linux定时任务工具crontab入门教程

crontab是类Unix系统最好用的工具之一,用来设置定时任务,这些定时任务也被称为“Cron Jobs”。Cron通常被用于运行定时备份、监控磁盘使用情况、定期删除不需要的文件(比如日志文件)、运行系统维护任务等。本文主要介绍crontab的基础使用,基……

阅读全文

使用lxml.etree解析中文网页时出现乱码问题的解决办法

吐槽 不得不说网络这个东西害死人,一群只会复制粘贴的瓜皮儿。 没一点有用的答案,还要写的像模像样装x 这个问题折腾了一个晚上,晚上找了各种方案,都是相互抄,然而都不能解决问题,找的过程中看到一个博主发出了这样的感慨,真的深表赞同啊,鱼目混杂的内容太多了。 lxml.etree.tostring 乱码的……

阅读全文

版本控制:Git与Svn的命令对应关系

导言 作为一个只用过git的童鞋,因为工作需要遇见了svn。初次见面时还很羞涩,经过了一段时间的交往,我们之间的关系突飞猛进,也成功地收到了svn的“好人卡”(这是个悲伤的故事)。所以为了让和我一样的svn新童鞋能够快速收获好人卡,整理了一下git和svn各……

阅读全文

使用云服务器+Nginx搭建静态Web服务器

这篇文章介绍如何使用Nginx搭建静态Web服务器(比如静态博客),并实现HTTPS访问(可选)以及Github Pages双节点托管(可选)。Nginx是一款轻量级Web服务器,也可以用作反向代理,负载平衡器 和 HTTP缓存。 域名和云服务器准备 本文假定你已经……

阅读全文