- 博客(10)
- 收藏
- 关注
原创 求两个相同大小已排序数组中的中位数
int findnth(int* a,int* b,int l1,int r1,int l2,int r2){ int t1,t2; int result; int nth=r1-l1+1; int middle=(nth+1)/2; if(nth==1||a[middle-1+l1]==b[middle-1+l2]) return a[middle-1+l1] if(a[midd
2008-03-10 10:18:00
2208
原创 求一个数组中的逆序个数
int count(int *a,int *tmp,int left,int right);int merge_count(int *a,int *tmp,int left,int middle,int right);int count(int *a,int left,int right){ int tmp[50]; return count(a,tmp,left,right);}
2008-03-09 10:52:00
491
原创 一个分治算法的小程序
int getTop(int* a,int l,int r){ int middle=(l+r)/2; int left=l,right=r; while(!(*(a+middle)>*(a+middle-1)&&*(a+middle)>*(a+middle+1)) ) { if(*(a+middle)>*(a+middle-1)&&*(a+middle) le
2008-03-07 15:48:00
384
原创 lcc读书笔记之C语言语义检测2
C语言的函数调用要解决以传值方式传递和返回结果,有时还会出现参数中嵌套函数调用的问题。所以必须建立一个正确的树结构,要求嵌套函数的调用在使用参数前计算。函数原型的语义检测由下列片段组成 if (proto && *proto && *proto != voidtype)//表明原型还没比较完全,在此情况下进入循环比较,直到读到) if (proto && *proto &&
2008-02-21 20:59:00
333
原创 lcc 源码读书笔记之c语言的语义检测
LCC在语法分析过程中进行了不少的语义检测,基本集中在一元及二元操作符这里.C语言的语义检查主要包括隐式转换,类型检测和计算顺序。那就让我们从LCC编译器的角度研究C语言的语义规则 转换: c语言在进行二元计算的时候常常包括返回类型及操作数的类型转换,下面贴出常规算术转换的代码Type binary(Type ty1,Type ty2){ if(isdouble(ty1
2008-02-18 20:35:00
532
原创 一些烂代码(自娱自乐)之堆
heap::heapify(int n) { int l,r,largest; l=left(i) if(l if(a[i] largest=l; r=right(i); if(r if(a[largest] largest=r; int tmp=a
2008-02-18 11:06:00
313
原创 lcc 源码读书笔记2之类型系统
表达式分析中的一元,二元表达式包含了大量的语义分析,这儿要温故一下LCC的类型系统LCC通过能反映类型的前缀规范的链接结构来表示类型。具体就是int* 表示为(pointer (int)),具体的C代码如下typedef strct type* TYPEstruct type { int op; //表示操作码,是枚举常量,由词法分析模块获得 Type type; //类型
2008-02-14 15:44:00
600
原创 lcc 源码读书笔记1之操作符的宏定义
lcc的有很多操作符,相关的定义也很奇特,采用了宏做预处理。让我这个小菜鸟看得傻了眼,具体如下,大家可以当作一个C编程技巧 #define sizeop(n) ((n)#define generic(op) ((op)&0x3F0) //返回操作码#define specific(op) ((op)&0x3FF)#define opindex(op) (((op)>>4)
2008-02-14 10:45:00
390
原创 lcc 源码读书笔记1之表达式解析
陆陆续续读可变目标C编译器一书很久了,很容易读了上段忘了下段。本着巩固学习的目的,写作此文。大家如果对编译器感兴趣可以购买此书http://www.china-pub.com/22711。表达式分析主要是把文本表示的表达式转换为一种计算机容易处理的结构,在LCC里边就是树结构。头文件C.H中包含了该结构的描述(所有需要用到的结构都包含在C.H中)typedef struct tree *T
2008-02-13 15:34:00
381
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人