Major
caoxu1987728
这个作者很懒,什么都没留下…
展开
-
CSAPP:缓冲区溢出实验
首先,标注一下做这个实验时参考的两篇比较好的博客:http://www.javaeye.com/topic/257684http://hi.baidu.com/wurmbai/blog/item/6e93ee3ae0dc1f2eb9998ff2.html使用的系统环境为:Ubuntu + gcc.4x这个是csapp 《深入理解计算机系统》中家庭作业第38题,直接在原程序运行的时候原创 2010-12-04 22:15:00 · 4497 阅读 · 1 评论 -
函数调用返回值传递的三种情形
这篇文章是从《程序员的自我修养》中摘录的一小点。我个人认为很不错,就总结了一下。一般情况下,我们都知道返回值是通过eax这个寄存器返回的。但是,eax本身只能存储4个字节的数据,对于那些返回值大于4个字节的数据应该怎么返回呢?下面我们把它分为3中情况:第一种情形:小于四个字节。解决之道:直接放到eax中返回。第二种情形:大于四个字节,小于8个字节。解决之道:采用eax和edx联合方式进行。原创 2010-12-02 19:38:00 · 999 阅读 · 0 评论 -
CSAPP:数据实验
书是要看的,但实验也是要做的!接下来将《深入理解计算机系统》里面的几个实验做一下,巩固一下理论知识。 数据实验。这个实验要求学生们实现简单的逻辑和算术函数,但是只能使用一个高度受限的c的子集。比如,他们必须只能用位级操作来计算一个数字的绝对值。这个实验帮助学生们了解c数据类型的位级表示,和数据操作的位级行为。 说实话,这个实验对于有些人可能会很有兴趣,因为它属于智力型实验。有点原创 2010-12-03 20:00:00 · 5429 阅读 · 2 评论 -
读《深入理解计算机系统》
作为12月初的开篇大戏,我将总结一下再次阅读《深入理解计算机系统》的感觉。 《深入理解计算机系统》这本书真不知道用什么修饰来形容它比较好。它是计算机专业的必读之书;它是一本难得的好书;它的价值超越了同等重量的黄金;它将带领你走向程序员“大牛”之道;等等,这些赞美之词都不为过。然而,我更喜欢下面的一个说法:当我毕业搬家时,在众多的书籍中只能带走一本的话,我会毫不犹豫地选择它——《深入理解计算原创 2010-12-01 20:43:00 · 3887 阅读 · 1 评论 -
程序运行流程——链接、装载及执行
在阅读完《深入理解计算机系统》第一章(计算机系统漫游)、第七章(链接)以及第十章(虚拟存储器)和《程序员的自我修养——链接、装载与库》后,历时悠久的梦想终于要实现了。开篇之初,首先提出一个迷惑了很久的一个问题:什么是虚拟存储器?它跟进程的虚拟地址空间有什么关系?虚拟存储器是建立在主存--辅存物理结构基础上,有附加的硬件装置及操作系统存储管理软件组成的一种存储体系。 顾名思义,虚拟存储器是虚原创 2010-11-27 22:28:00 · 1905 阅读 · 3 评论 -
印刷厂问题(数学建模)
印刷厂问题【问题描述】 某印刷厂要尽快赶出下表中的42项任务,其中印刷车间和装订车间关于每项任务所需要的时间由表1表示。应如何安排任务的先后加工顺序,才能使完成所有任务的总工期最短? 表1印刷与装订时间表任务12345678910原创 2008-07-04 22:42:00 · 3466 阅读 · 7 评论 -
股市的趋势分析【数学建模】
股市的趋势分析[问题描述]阅读数学建模6.4节时间序列分析,下载股市的指数的数据,回答以下问题1)给出股市指数的非随机波动和随机波动;2)对股市的指数的基本趋势进行预测、给出预测区间和风险进行分析评价;3)根据你的研究结果写一份有关股市评价的股评文章。[问题分析]本题针对去年股市指数数据,提出对我国股市的趋势,风险进行分析,并对价格等指标进行估计的问题。原创 2008-07-11 21:46:00 · 9074 阅读 · 0 评论 -
浙江省人口增长预测
浙江省人口增长预测 [问题描述]人口增长预测的研究是国家(地区)制定未来人口发展目标和生育政策等有关人口政策的基础,对于经济计划的制定和社会战略目标的决策具有重要参考价值。一般的人口预测统计学模型,其预测精度难以保证。所以选择一个好的人口预测模型,首先应符合人口基本理论和数学建模的要求,这是选择模型的关键,其次要保证模型数据可得一致性与可比性,在数据预测检验阶段应充分拟合原始数据。原创 2008-07-11 21:39:00 · 5812 阅读 · 3 评论 -
软件实习2
俄罗斯方块 【设计的目的】俄罗斯方块是一款非常经典游戏,风靡全球,,经久不衰,是学习面向对象的编程思想的理想实例。现在面向对象的计算机编程语言很多,都可以编程来实现。 因此,如何设计开发好这个俄罗斯方块,对于提高java开发水平和系统的设计能力有很大帮助,在设计过程中要处理好各个类之间的集成关系,还要处理好各个模块之间的依赖原创 2008-07-02 22:52:00 · 715 阅读 · 0 评论 -
嵌入式--键盘扫描
l 实验内容:通过直接修改内存在终端显示按的不同键,只能知道是哪一行的按键,通过程序来扫描出具体是哪一个按键。l 实验步骤:1)环境搭建。硬件环境:插上仿真器电源,打开实验台电源。注意:电源打开后禁止拔下JTAG接口线!软件环境:打开multi-ICE,加载该软件安装目录下文件名带有920T的.cfg文。打开CodeWarrior加入工程文件原创 2008-05-28 22:53:00 · 1586 阅读 · 0 评论 -
Further Study of Rugular Expresions
regular expressions(正则表达式,以下用re称呼)对小弟来说一直都是神密的地带,看到一些网络上的大大,简单用re就决解了 某些文字的问题,小弟便兴起了学一学re的想法,但小弟天生就比较懒一些,总希望看有没有些快速学习的方式,于是小弟又请出google大神,藉由祂的神 力,小弟在网络上找到了jim hollenhorst先生的文章,经过了阅读,小弟觉得真是不错,所以就做个小心得报告转载 2008-04-22 22:39:00 · 620 阅读 · 0 评论 -
正则表达式全解
1. 正则表达式规则1.1 普通字符 字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是"普通字符"。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。 举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功;匹配到的内容是:"c";匹配到的位置是:开始于2,结束于3。(注:下标从0开始还是从1开始,因当前编程语言转载 2008-04-21 18:30:00 · 707 阅读 · 0 评论 -
正则表达式之全部符号解释
字符描述/将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'/n' 匹配一个换行符。序列 '//' 匹配 "/" 而 "/(" 则匹配 "("。^匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '/n' 或 '/r' 之后的位置。$转载 2008-04-21 18:17:00 · 597 阅读 · 0 评论 -
CSAPP:处理器体系结构实验
本实验主要由《深入理解计算机系统》第四章课后家庭作业问题组装起来形成的一个实验。实验主要是模拟一下自己设计的处理器如何执行Y86指令。而实验仅仅是一个模拟过程,实验前,应该透彻地搞懂真正的原理理论。这样,才会有事半功倍的效果。做此实验首先要有模拟环境。而实验的模拟器安装却是比较复杂的,下面把我成功安装的工程记录一下(仅供参考,每个人的机器不一样,一些设置也会不一样)Y86模拟器安装无图原创 2010-12-07 22:20:00 · 5226 阅读 · 3 评论 -
简单表达式的翻译器
首先了解这个语法制导翻译模式: 改写产生式: 调整翻译模式: 举例说明分析树: 实现代码(完全是对照上分析树而写的递归代码):#include #include #include int lookahead;/*声明函数*/expr();term();rest();match(int);error();原创 2009-03-23 14:31:00 · 700 阅读 · 0 评论 -
算法分析之递归
要求:设 M 叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根结点的值部分 (设为一个字符) 和用“( )”,括起来的各子树的列表 (如有子树的话) ,各子列表间用“,”,分隔。例如下面的三叉树可用列表 a( b( c,d ),e,f( g,h,i ))表示。 写个程序输入列表,生成一棵 M 叉树,并由 M 叉树输出列表。假定输入无原创 2008-09-14 20:11:00 · 550 阅读 · 0 评论 -
基于归纳的递归算法
归纳法的思想方法: 整数幂的递归求法: #include"stdio.h" int power(int x,int n){ int y; if(n==0)y=1; else{ y=power(x,n/2); y=y*y; if(n%2==1) y=y*原创 2008-09-19 11:32:00 · 526 阅读 · 0 评论 -
贪婪法之背包问题
其实背包问题比起0/1背包还是简单很多的 typedef struct{ float p; //价值 float w; //重量 float v; //价值重量比 }OBJECT;float knapsack_greedy(float M,OBJECT instance[],float x[],int n){原创 2008-09-23 17:17:00 · 873 阅读 · 0 评论 -
数据结构之线性表
基础合并:void MergeList(List La,List Lb,List &Lc){ InitList(Lc); i=j=1;k=0; La_len=ListLength(La); Lb_len=ListLength(Lb); while((i { GetElem(La,i,ai);原创 2008-09-23 17:20:00 · 635 阅读 · 0 评论 -
数据结构之栈和队列
下面都是栈和队列的基本操作,没有什么实例,但基础最重要嘛,呵呵……基本操作描述:#define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 typeof struct{ int *base; int *top; int stacksize=10;}SqStack;初始化:v原创 2008-09-25 22:04:00 · 388 阅读 · 0 评论 -
某些时候,重构是有危害的
某些时候,重构是有危害的重构涵盖了一系列使代码更整洁、更可靠、更易维护的技术。但是,有时候这些特性q却不可兼得。而通常困扰我们的特性就是性能问题。例如,让我们来思考把循环不变因子boolean值从块内提取出来的问题:for(....) { ... if(b) A; else B; .... }当b是一个循环不变量时,这段代码可以改原创 2011-04-06 20:30:00 · 3177 阅读 · 22 评论 -
CSAPP:Tiny Web服务器
Web 服务器,一个多么庄严而神圣的名词!没有接触之前,它神秘而不可侵犯;学习研究之后,它又是如此地平易近人。今天,让我们一起走近web服务器。此时,想像一下,当你自己动手实现了一个服务器时,你会是怎么的兴奋;尤其是将一个真正的浏览器指向我们自己实现的服务器时,看着它显示自己本机上的文本及图片时,那将是怎样的激动时刻呀!下面就来看看它的实现全过程:Tiny的准备#ifndef原创 2010-12-24 22:25:00 · 2962 阅读 · 0 评论 -
CSAPP:shell实验
看了几遍都没整明白异常控制流核心原理,而对这个实验也是一知半解。不过,下面的shell实现代码应该还是不错的。贴出来看一看:/* * tsh - A tiny shell program with job control * * lycos 201020601005 */#include #include #include #include #include #includ原创 2010-12-17 22:30:00 · 5170 阅读 · 0 评论 -
CSAPP:优化程序性能
优化程序性能这章作为CSAPP中最闪光的一章,其重要程度不言而喻。此实验分为了两个部分:第一部分是对一个多项式计算的优化;第二部分是对矩阵代码的优化。首先,我们必须了解一些优化程序的常识。编写高效的程序需要两个方面下足马力:第一,我们必须选择一组最好的的算法和数据结构;第二,我们必须编写出编译器能够有效优化以转换成高效可执行代码的源代码。那么此时,我们就需要理解优化编译器的能力和局限性原创 2010-12-10 23:04:00 · 3493 阅读 · 0 评论 -
CSAPP:二进制炸弹实验
二进制炸弹是作为一个目标代码文件提供给学生们的程序,运行时,它提示用户输入6个不同的字符串。如果其中任何一个不正确,炸弹就会“爆炸”:打印出一条错误信息。学生通过反汇编和逆向工程来确定是哪六个字符串,从而解除他们各自炸弹的雷管。该实验教会学生理解汇编语言,并强制他们学习怎样使用调试器。对这个实验慕名已久,做了一下不禁感叹:果然牛x,不愧是从美国进口的!因为提供的二进制炸弹是根据特定的平台而原创 2010-12-05 22:10:00 · 9990 阅读 · 7 评论 -
读《程序员的自我修养——装载、链接与库》
《程序员的自我修养》这本书是我看过《深入理解计算机系统》之后看的一本书。在中国人写的书中,它可以算是相当不错的一本书了。但总觉得比《深入理解计算机系统》这样的国外经典书还差那么一点,具体差在哪里,我也说不出来。但如果给它打个分的话,我会毫不犹豫地给五星。这本书里,首先给出了几个鲜明的观念很不错。知其然更要知其所以然;CPU体系结构、汇编、c语言(C++)和操作系统,永远是编程大师们的护身法原创 2010-11-29 16:48:00 · 1136 阅读 · 0 评论 -
程序运行流程——准备篇
已经忘了第一次写c语言程序到底是什么时候的事了。不过我却明白,当时我肯定是知其然而不知所以然。不知从什么时候开始对程序执行背后的东西感兴趣了,而且愈演愈烈,现在终于下定决心去搞明白它了。就以c语言中最经典的例子来说明吧:#include int main(){printf("Hello World/n");}上面的代码我们保存在helloworld.c文件中。其本质实际上是由原创 2010-11-19 22:33:00 · 793 阅读 · 0 评论