原创 SICP 1.41 lambda函數嵌套展開的思考

#lang scheme (define (double f)   (lambda(x)(f(f x)))) (define (inc x)   (+ x 1)) (((double (double double)) inc) 5) 結果

原创 SICP 1.11迭代計算方式實現

(define (three n) (three-iter 2 1 0 (- n 2))) (define (three-iter b m s count) (if(= count 0) b (three-it

原创 SICP 正則序與應用序

正則序:表達式過程展開,直到只包含基本運算符的表達式。遇到特殊過程,先按特殊過程求值。 應用序:表達式中每個對象都進行代換,逐層進行。

原创 CS:APP:BombLab 4

這篇文章意爲記錄下Bomb4中比較微妙的地方。之前經過分析,phase_4需要兩個int值,第一個值<=14,第二個爲0。又發現<fun4>傳回的rax應爲0。現在着重分析<fun4>如下:0000000000400fce <func4>

原创 GC機制總結

if 放入堆的對象>edan    進行MinorGC前判斷    if edan+s<oldremain||    歷次平均進入老年代大小<oldremain        MinorGC    else FullGColdremain

原创 SICP 1.45 n次方根

#lang scheme (define (compose f g)   (lambda(x)(f(g x)))) (define (repeated term n )   (if(> n 1)      (compose (repeat

原创 attacklab筆記

做完attacklab記點什麼,防止以後什麼都不記得了。phase1-3用getbuf讀取字符串,但不檢測棧溢出,正常的gets()在返回前會call一個check函數,檢查棧溢出。在lab裏通過棧溢出頂掉返回地址,把返回地址變成棧的地址

原创 記錄一次非常典型的可見性引起的多線程BUG,用volatile解決

在la-rpc consumer最初使用時,RpcProxy新建一個client,並調用send,使用channel發送信息。if(RpcClient.client==null){ synchronized (Rp

原创 SICP 1.43

#lang scheme (define (compose f g)   (lambda(x)(f(g x)))) (define (inc x)   (+ x 1)) (define (square x)   (* x x)) (de

原创 180419愛奇藝筆試分糖果問題:用Dp解決回溯?

回溯解法如下:public class Main { static int count=0; public static void main(String[] args) { String s="aaa";

原创 shelllab筆記

shlab的目的是完成幾個函數,實現一個簡單的shell。需要實現的函數如下:• eval: Main routine that parses and interprets the command line. [70 lines]• bu

原创 2018.7.4 la-rpc心跳與斷線重連部分記錄

心跳與斷線重連主要解決客戶端連接時出現的三種問題:(1)client初次連接失敗,需要重連(2)server進程關閉,client檢測tcp斷開重連(3)server斷電,client通過心跳檢測重連(注:所有情況都默認是在單一serve

原创 寄存器的名稱及作用

在此記錄下寄存器的名稱及作用,方便查看。不同體系下寄存器名稱:|63..32|31..16|15-8|7-0|        |AH..AL..|          |AX......|     |EAX...........| |RAX

原创 SICP 2.54 符號列表equal?

(define (equal? x y) (cond((and (pair? x) (pair? y)) (and(equal? (car x) (car y))(equal? (cdr x)(cdr y))))

原创 SICP 1.28費馬檢查與Miller-Rabin檢查的思考

費馬小定理有兩種形式:(p爲不能整除a的素數)1.a^p≡a(mod p)2.a^(p-1)≡1(mod p)費馬檢查使用第一種形式,Miller-Rabin檢查使用第二種形式。能完全通過費馬檢查的數稱爲絕對假素數,即Carmichael