JKS-JavaKeyStoreJAVA密钥库OCSP-OnlineCertificateStatusProtocol证书在线状态协议。SAN-SubjectAlternativeName使用者备用名称。SSL-SecureSocketsLayer安全套接字层协议。TLS-TransportLayerSecurity安全传输层协议。UCC-UnifiedCommunicationsCertificate统一通信证书,又..
分类:
其他好文 时间:
2016-03-30 11:12:47
阅读次数:
286
好方便啊……list什么的一下都变成json了呢!import jsonfrom django.core.serializers.json import DjangoJSONEncoderdef main(request): output = [] ucc = Userformulate...
分类:
Web程序 时间:
2015-12-23 12:55:12
阅读次数:
341
6.3.6 为“取地址”产生汇编指令
在这一小节中,我们来讨论一下以下两条中间指令的翻译:
(1)取地址指令
例如 ,表示取number的地址并保存到临时变量t0中
(2)对象清零指令
例如,表示把arr所占16字节的内存清零
我们先举一个例子来说明,对于图6.3.14第4行局部数组arr的初...
分类:
其他好文 时间:
2015-05-03 09:24:18
阅读次数:
149
尾声
总有曲终人散时,不知不觉我们已经完成了对UCC编译器的剖析,一路走来,最深的体会仍然是“纸上得来终觉浅,绝知此事要躬行”。按这个道理,理解UCC编译器的最好办法应是“直接阅读其源代码,思考UCC编译器在不同的执行点应处于怎样的状态,加入一些打印语句,输出相应的调试信息来验证自己的判断是否正确,如果发现Bug,就写一些测试程序来触发Bug,然后...
分类:
其他好文 时间:
2015-05-03 09:21:31
阅读次数:
193
6.3.5 为类型转换产生汇编代码
在这一小节中,我们来讨论一下整型和浮点型之间的类型转换。有些类型转换并不需要在汇编层次进行数据转换,例如int和unsigned int之间的转换只是改变了表达式的类型,对数据本身并无影响,以下表达式“(unsigned int) a”对应的二进制数据为0xFFFFFFFF,而表达式“a”对应的二进制数据也为0xFFFFFFFF。但对相同内容的二进...
分类:
其他好文 时间:
2015-05-02 09:41:30
阅读次数:
224
6.3.4 为函数调用与返回产生汇编代码
在这一小节中,我们来讨论一下如何为函数调用和函数返回生成汇编代码。函数调用对应的中间指令如下所示:
//中间指令的四元式:
让我们先熟悉一下C函数的调用约定CallingConvention,我们需要把参数从右向左入栈(即从argn到arg1依次入栈),不妨记这些参数所占用的总内...
分类:
其他好文 时间:
2015-05-01 09:28:49
阅读次数:
203
6.3.3 为跳转指令产生汇编代码
在这一小节中,我们要为“有条件跳转”、“无条件跳转”和“间接跳转”产生相应的汇编指令。中间指令的四元式如下所示:
(1) 有条件跳转,例如“if (a
////////对应的汇编代码//////////
movl a, %ea...
分类:
其他好文 时间:
2015-04-30 18:12:06
阅读次数:
154
6.3.2 由EmitAssign函数产生算术运算的汇编代码
在这一小节中,我们要讨论的中间指令形如“t1: a+b;”或者“t2:&number”,这些指令用于进行一元或二元算术运算,并把运算结果保存在临时变量t1或者t2中。UCC中间指令的格式如下所示:
// t1: a+b;
// t2: &...
分类:
其他好文 时间:
2015-04-30 14:17:09
阅读次数:
188
6.3.1 由中间指令产生汇编代码的主要流程
在这一小节,我们可把关注的焦点放在“如何把某条中间代码翻译成汇编代码”上。UCC编译器的中间代码是如下所示的四元式,包括运算符和3个操作数。
当然有些中间代码只需要用到opcode和DST就可以了,例如,无条件跳转指令“goto BB2;”就不需要SRC1和SRC2。为了便于汇编代码的生成,UCC编译器在u...
分类:
其他好文 时间:
2015-04-29 21:55:55
阅读次数:
1253
在计算机中,CPU的速度比内存的速度快得多,编译器应尽量有效地利用寄存器资源,减少对内存的不必要访问,从而提高由编译器生成的汇编代码的运行速度。在中间代码生成阶段,UCC编译器用临时变量t来存放形如“t: a+b;”的公共子表达式的值;到了汇编代码生成时,UCC编译器会尽可能地把这些公共子表达式的值存放在寄存器,当需要再次重用时,就可以直接由相应的寄存器中得到。不过,CPU中寄存器的资源是很有限的...
分类:
其他好文 时间:
2015-04-27 09:54:20
阅读次数:
212