programming

SICPの日記について

SICPの日記をこちらのSICPグループのページに移動しました。dorayakitaroのSICP日記 - sicp

Lisp脳とは

「Lisp脳」の謎に迫る - Schemeプログラマの発想 『「Lisp脳」の謎に迫る』の舞台裏 lisp脳になりたい Lisp脳でやってみよう -- Schemeプログラマの発想をJavaでやるとどんなことになっちゃうのか SICPを解いていて感じたことは、 問題の再帰的な構造に着目…

例題のgrepに学ぶgauche

gaucheのユーザリファレンスに、gaucheで書いた簡単なgrepの実装が載っているので、これを参考にしてgaucheの勉強をしてみたいと思います。今回学べそうなことは次の様なことです。 C言語のprintfのようなformat手続きの簡単な使い方 ファイルの扱い方 文字…

gaucheでファイルを一行ずつ読み込む

catコマンドで各行を出力する「-n」オプションをgaucheで実装するためには、一行ずつファイルを読み込まなければなりません。では、逆に今まではどのようにファイルを読み込んでいたかというと、 (copy-port in (current-output-port))))) という記述の中の…

gaucheにおける"_"(アンダーバー)って?

コマンド解析についてのソースを探ってた時に、 (define (main args) (let1 predef-syms '() (let-args (cdr args) ((#f "D=s" => (lambda (sym) (push! predef-syms sym))) (else _ (usage)) . args) (match args ((file) (do-it file predef-syms)) (_ (us…

gaucheにおけるオプション解析

コマンドにおけるオプションとは コマンドにおけるオプションとは、ある実行させたいコマンドに、細かな指示を与えるものです。たとえばcatコマンドなら cat -n filenameとすることによって、各行の先頭に行数を表示することができます。 オプションの解析 …

Linuxの色々なプログラムのソースファイルを取得する方法。

プログラムを勉強する時に、Linuxのコマンドなどのよく使われるプログラムを見たいことがよくあります。しかし、「ソースファイルどこにあるんだよ!!」ってことがありました。そこで私が調べて使っている方法を紹介します。 Webサービスを使ってゲットする…

OS自作入門(chapter3 |3日目)のメモ

この章での前半はIPL(ブートローダ)を実装する。後半はブートローダから読み込んだ、C言語で書かれたOS本体を実行できるようにする。 この章で注意するべきことは、16進数で書かれているのが、メモリの番地かディスクの番地を区別することだと思う。読ん…

LinuxでのOS自作入門〜Chapter2(2日目)〜

2日目分にやったことをメモ。 アセンブラnask、ディスクイメージ作成ツールはサポートページのLinux版を使用。 Makefile書き換え。 makeはDebianでインストールしたものを使用。 エミュレータqemu上での実行を念頭においてるので、Installターゲットの廃止。…