一、 Java  1、 影响程序性能的因素 硬件,内存大小、cpu速度、磁盘转速、阵列数据库web服务器应用系统1.1   页面请求ajax处理,局部刷新,减少与服务端交互次数(google 搜索自动显示下拉信息)1.2   服务器代码使用高效类(string stringbuffer)、使用好的算法1.3  &nbs            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-12 19:58:42
                            
                                34阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            我们需要对 ucl\decl.c 的其他代码进行分析,才能更好理解图 3.3.4 和图 3.3.7 的语法树是如何构造出来的。这里可能有个问题            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-02 17:25:33
                            
                                980阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            库函数 printf()的代码在我们编写上述 hello.c 时就已经存在,这意味着被调函数 printf其实并不知道我们在调用它时,到底传递了几个实参。对 printf 而言,它只是按照格式化字符串的说明,从栈中取出相应的参数,如下所示:// 实际上只有 10 这一个参数,但 printf 看到有两个%d,// 于是仍试图从栈中取两            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-04 17:58:46
                            
                                1124阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            编译器如何实现遇到编译错误后,能继续往下编译,这样能在一次编译中尽可能找出所有错误,给报出来,这样程序员可以一次性修改这些错误了,如            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-10 21:59:10
                            
                                709阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            *  declarator: *		pointer declarator *		direct-declarator * *  direct-declarator: *		ID *		( declarator ) *		direct-declarator [ [constant-expression] ] *	            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-02 09:09:41
                            
                                1022阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文法中最重要的部分:declaration (声明)            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-02 09:10:00
                            
                                1147阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            语义检查就是建立成最完善的类型系统,这些类型是我们能读懂的信息了。而被声明的标识符的类型信息正好是分布在 DeclarationSpecifiers 和 Declarator 中,通过调用第 29 或 46 行的 DeriveType函数,会把这两部分的类型信息组合到一起,构造完整的类型信息。例如,对于 int arr[4]来说,int 是其声明说明符,而 arr[4]是声明符            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-04 17:58:18
                            
                                969阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            方案2中,无论a为真还是假,都只需要跳转一次,但是方案1不是,因此UCC编译器选的是第二种中间代码生成方案。这个其实是个模板,就是待判断的表达式为真            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-10 22:00:36
                            
                                723阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            UCC在处理数组和结构体成员的时候,都是直接转为偏移值了,偏移值是以字节为单位,例如:int (*ptr)[4] = &arr;(*ptr)[2] ---> ptr[0][8] ----->            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-10 22:01:11
                            
                                799阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            关于结构体中,位域成员的赋值原理:struct PTE{int offset : 12;int pgNo : 20;}struct PTE pte = {64,3};给pte赋值,其实就是 (3<<12) | 64原理:由于struct PTE占32位            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-10 22:02:14
                            
                                1404阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            语法分析,并没有构建出类型系统,只是构建出关系骨架语义分析,才赋予了每个标识符灵魂            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-10 22:02:29
                            
                                1452阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            标准C语言,结构体中的成员是可以指定所占位数的,下面的ST类型表示struct st *typedef struct st{int a:8;int b:24;int c;}* ST            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-01 16:29:25
                            
                                1275阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文法构成,三大基本单元:声明 Declaration、语句 Statement 和表达式 Expression由于文法产生式中,其实是包含了一些不符合真正语法规则的形式(也就是真正正确的程序是文法定义的程序的子集),因此需要来一次语义检查。语义检查就是对上述的大三单元进行合法性检测的过程...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-02 09:09:21
                            
                                1025阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            表达式构成一颗语法树(就是把程序中有用的信息组织串起来),例如 expression: a,b,c	其中expression的语法如下:            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-02 09:09:51
                            
                                1009阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            typedef struct type{TYPE_COMMON} *Type;中的structtype*bty;域,表示该类型的第二个属性,比如如果是指针变量,指针本身是int型,但是bty这个域就是指向的那个类型            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-04 17:58:28
                            
                                975阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            语法检测是根据文法进行检测的语义检查就是根据语义规则进行检查的(比如两个类型是否可以相互转换),这个语义规则文档,就是<http://flash-gordon.me.uk/ansi.c.txt>            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-04 17:58:35
                            
                                1011阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            assert函数/***********************************************************assert(sym->kind == SK_TypedefName);(v            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-04 19:43:54
                            
                                1560阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            我们再分析条件表达式的翻译,以下给出了一段 C 程序及其对应的中间代码,我们生成临时一个临时变量 t0 用来存放 b+2 或 b+3 的值,然后再把 t0 赋值给变量             
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-10 22:00:05
                            
                                783阅读