- 博客(12)
- 收藏
- 关注
原创 模式识别——判别函数及几何分类法
前言本篇博客对模式识别中的“判别函数与几何分类法”进行了讨论,并重点实现了最小平方误差法(Least Mean Square Error, LMSE)算法,也对不同的多类判别法、分段线性判别法进行了一定的实现,并通过随机生成的数据集加以测试。
2017-12-28 18:07:45
4070
原创 高速缓存对程序性能的影响
本篇博客以“SSD6-Exercise5:Cache Lab”为例,首先介绍存储器的层次结构,重点阐述了提高程序局部性的重要性,以及编写高速缓存友好代码的方法。
2017-12-23 21:32:18
3523
原创 A Demo Allocator——实现一个简单的自定义显式分配器
前言在本篇博客中,我们拟用C语言实现简单的一个显式分配器,它模拟实现了C标准库中的动态内存分配的过程。我们给出了其详细的设计方案与具体实现,也在文章的最后给出了现实应用中,分配器所采用的一些常见设计。
2017-11-27 15:32:14
1769
原创 An Enhanced Allocator——为C语言的动态内存分配添加出错预警
前言本篇博客利用C标准库现有的malloc和free函数,在其基础之上编写一个更强大的动态内存分配器,它可以实现出错预警的功能。 具体的出错预警功能描述,参见 SSD6 Exercise3——Debugging Malloc Lab: Detecting Memory-Related 的题目要求。
2017-11-27 01:02:25
797
原创 C语言中补码的整数运算特性
前言本篇博客以“SSD6-Exercise2-Data Lab: Manipulating Bits”为例,分析在对C语言中的整数采用补码(two’s-complement)编码的机器上,其整数运算的特性。
2017-11-06 17:04:00
3072
原创 C语言中const的详细用法及声明规则
前言本文主要涵盖了以下两部分的内容:介绍了C语言中const的详细用法.介绍了C/C++语言下声明语句的规则.
2017-10-26 22:49:54
10819
2
原创 探讨C/C++在特定编译方式下的堆栈申请空间过程
本篇博客以“SSD6-Exercise1-Decoder Lab”为例,分析了C/C++语言在特定编译方式下,在堆栈申请空间顺序上的特点。
2017-10-25 14:44:30
939
原创 CMM语言解释器构造实践(三)——基于状态转换图的词法分析器
在上篇博客中,我们通过对JavaCC的使用,了解到了编译工具的基本使用方法。接下来的两篇文章,就将针对CMM语言进行词法分析器、语法分析器的编写(不借助任何编译工具)。
2017-10-11 23:08:37
1768
原创 CMM语言解释器构造实践(二)——JavaCC等编译工具的使用
上篇博文中我们已经简要介绍了CMM语言的基础特点,以及整个编译器项目的基本开发流程。下面就对开发的第一个阶段“编译工具的使用”详细说明。编译工具的发展
2017-10-07 00:25:36
2518
原创 CMM语言解释器构造实践(一)——前言
此项目记录了一个小型编译器——CMM语言编译器(解释器)的开发过程,项目所需要的前导理论课程为编译原理。
2017-10-06 13:00:45
1962
原创 函数指针与函数指针数组应用总结
函数指针函数指针包含函数在内存中的地址。数组名实际上就是数组的第一个元素在内存中的地址,类似地,函数名实际上也是执行这个函数任务的代码在内存中的起始地址。函数指针可以传递给函数、从函数返回、保存在数组中、赋予另一个函数指针或者调用底层函数。#include <stdio.h>//定义四则运算double add(double a, double b);double sub(double a,
2017-10-02 21:54:34
676
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人