- 博客(13)
- 资源 (7)
- 收藏
- 关注
原创 编译器设计-习题第一章
1. 浏览器接收html文件,在屏幕上显示出来,是一个解释执行的过程.2. 作为编译器的用户,我关注以下5个特性, a.1 编译完成的速度 a.2 编译时占用的内存 a.3 编译时临时文件占用的空间 a.4 错误提示是否用户友好 a.5 使用是否方便 作为编译器的设计者,我关注以下5个特性,
2017-10-12 15:45:18
999
原创 UCC assert文件
1. assert文件的作用 assert文件定义了_assert函数, 供程序使用, 当预期结果与实际不符合时使用.2. _assert函数的解析 int _assert(char *e, char *file, int line) {fprintf(stderr, "assertion failed:");if (e)fprintf(stderr
2017-08-02 14:11:21
368
原创 UCC config文件
1. config文件作用 config文件主要设置编译器的基本类型系统的size大小以及cpu大小端.2. 文件解析 #undef LITTLE_ENDIAN #define LITTLE_ENDIAN 1 //定义CPU为小端 #define CHAR_SIZE 1 //char的大小为1
2017-08-02 14:03:10
518
原创 UCC字符串str管理
1. UCC字符串管理 UCC在处理C源文件中,需要进行大量的字符串处理,因此高效的字符串处理对于编译效率的提高有很大的作用。 UCC处理的堆不同种类的字符串标识符和字符串常量采用不同的策略。2. UCC字符串的表示2.1 标识符的表示 标识符使用NameBucket来表示, typedef struct nameBucket
2017-08-01 17:29:55
361
原创 UCC向量Vector分析
1. Vector的意义与定义 Vector表示可变长度的对象指针数组向量,定义如下, typedef struct vector {void **data;int len;int size; } *Vector; data, 表示对象指针数组的首地址. len, 表示数组中指针的数量. size, 表示数组的最大
2017-07-31 17:05:58
325
原创 UCC编译驱动分析
1. UCC的组成 UCC编译后,生成一个C语言编译器ucl和编译驱动ucc, ucl执行时将输入的C源文件编译输出预处理文件,而ucc则分析输入参数,根据参数调用 不同的程序eg. gcc, as, ucl对输入文件执行相关的操作并输出结果。作者的工作目前是C编译器,预处理,汇编, 链接的功能都直接使用了现有的工 具。2. 预备知识2.1
2017-07-27 17:20:24
606
原创 UCC内存管理
1. UCC编译器介绍 UCC是国人开源的C编译器,完全遵循C89标准,整个项目约15000行代码,大小适中,非常适合程序员作为学习编译原理的材料。 UCC采用标准的C编写,包括简单的设计文档和使用手册,易学易用。该项目还包括一个编译驱动,使用已有的编译预处理,UCC, 汇编器, 连接器生成linux/windows上的可执行文件。2. UCC的内存管
2017-07-26 18:03:57
595
原创 一个关于浮点数的有趣的问题
问 Java表达式1/0和1.0/0.0的值是什么?答 在计算机内部,整数的表示使用补码表示,当被除数为0时,执行该操作的处理器会产生除零异常,在Java语言层面, 将产生除零异常。 而浮点数的表示,我们以常用的X86/X64处理器为例,在处理器内部以IEEE754表示,该表示法最初由伯克利分校受 英特尔公司委托研发,现在已
2017-07-26 10:17:12
355
原创 一个关于补码的有趣的例子
问 Math.abs(-2147483648)的返回值是什么?答 -2147483648表示的int整形的最小负值,其16进制表达为0x80000000, 当求其绝对值时,先将其按位取反,得到0x7f ff ff ff, 然后加1,得到0x80000000,表示为十进制仍然为-2147483648。附注 在计算机中,数据均使用补码表示。什么是补
2017-07-25 16:55:14
559
原创 golang程序的跨平台编译
golang程序的跨平台编译最近写的golang服务器程序, 开始在X86_64上面运行,后来要求在ARM平台上执行,查阅了若干资料反复尝试才完成任务,程序可以在ARM上面执行,将关键点记录以备将来查阅。golang的编译环境安装在X86_64上,设置主机变量如下,表示宿主环境为X64下的linux,GOHOSTARCH="amd64"GOHOSTOS="linux"当编译X6
2017-04-11 13:53:08
3724
翻译 即时编译器真心大冒险之解释器
即时编译器探险之旅之解释器 一,前言 本文是关于即时编译器系列文章的首篇,目的是为一种简单的程序语言,用逐步推进深入的方式 ,开发解释器(interpreter)和即时编译器(jit compilation)。在本系列文章结束的时候,读者朋友将会对如何开发即时编译器有更多的认识,并掌握若干相关工具软件的使用。 贯穿本系列文章的程序语言是Br
2017-04-09 21:44:37
898
视频编码格式
2017-09-15
rtmp_specification_1.0.pdf
2017-09-01
darwin_server.pdf
2017-09-01
H.264码流结构解析.pdf
2017-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人