原创 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