- 其实语法分析,就是对每一种语句(穷举),都要用一个结构体,进行精确全面描述出来。
- 里面的任意一个token,比如标识符名字“a”,在词法分析阶段,只存在一份实体,因此两个token是否名字相同,只需要判断它们的地址是否相同即可,这个在别的地方判断两个symbol是否相同,也是如此连symbol都会只有一份
- 标准C语言,结构体中的成员是可以指定所占位数的,下面的ST类型表示struct st *
typedef struct st
{
int a:8;
int b:24;
int c;
}* ST
其结构在UCC中构造为如下所示:
- X86汇编其实比arm汇编使用起来其实更通俗易懂,arm汇编都是以最基本的元指令了,是等长的,因此CPU设计电路实现简单。而X86汇编指令是变成的,因此会更加容易实现自己想要的功能,能够直接在指令中写变量名,这个确实好用很多,当然还有很多其它好用的特性。而且浮点运算单元这些,支持也很好。很多时候一条汇编指令就能完成c语言中的语句,确实好用啊。
- UCC中把memalloc函数分配出来的内存块进行分类管理,形成多个堆heap。比如,字符串 *** 作相关的内存块,串起来形成一个heapFile这样的,语法树处理过程申请的相关的内存块串起来形成heapAST这样的。然后还有个CurrentHeap*全局变量,用于指示当前 *** 作的是哪个堆,因为堆 *** 作函数都是用默认的CurrentHeap*变量来 *** 作对应的堆。每个堆,下次再运行,只是在堆内标记所有的块为空闲块,并没有实际的free掉。
- vector,存储布局,因此就是个指针数组嘛
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)