大学

なんでもセミナーが終わりました.

色々と質問とかツッコミとかいただいたのでメモ. ポストプロセッサがあるらしい. Perlで書かれているらしい.知らなかった. 型検査が脱糖より前なのはなぜか。 その方がすっきりするからなのか、そうでなければならないのか. 型エラー時にすでに脱糖されたか…

なんでもセミナー

10/22になんでもセミナーというもので、Haskellについての話をすることになりました。 Haskellの中間言語についてとかそういった話をします。 型推論 糖衣構文 A正規化 STG (Shared Term Graph) C-- ランタイムシステム 非ボックス化 書き換え規則(融合変換…

C言語でオブジェクト指向

C言語でオブジェクト指向っぽくプログラミングする為の方法論とかライブラリとかは既にいろいろありますが、効率とか実装の綺麗さとかを無視してとことんやったらどこまでできるかとふと思い、書き始めました。型の解決などは当然実行時にします。 C++やRuby…

自作HTTPサーバーが動いた。

自作のHTTPサーバーをブラウザから呼び出せるところまでできた。 まだ、GETメソッドのみです。こっから機能を増やしていこう。 デーモン化 PostgreSQLのコードを参考にしました。 static void pmdaemonize(void) { int i; pid_t pid; pid = fork_process(); …

HTTPサーバーを作る

大学の課題でHTTPサーバーを2週間で作れという課題がでた。BASIC認証もついでに。 ただ動くだけのサーバーを作るなら簡単だけれど、課題の要件の できるだけセキュリティホールを作るな がかなり難しい。バッファオーバーフローを防げばOKなどと思っちゃだめ…

フィボナッチ数列

レポートとは関係なく、対数時間でフィボナッチ数列を計算するプログラムをPPCアセンブリで書いてみた。 PPCアセンブリがあまりにも読みにくくて、ちょっと好きになれなかったのだけどまあまあ書けるようになった。 .text .align 2 .globl _fib_fast _fib_fa…

最短経路問題(ダイクストラのアルゴリズム)

大学の課題が出来上がった。 URL: http://mad-projects.iobb.net/shortest_path.html ソース: http://mad-projects.iobb.net/websvn/listing.php?repname=Repository+of+mad&path=%2Fmisc%2Fgraph%2Fshortest_path%2F&rev=0&sc=0地図データはJSONで書いてみ…

Google Maps API

大学の課題で、経路探索のプログラムを書かなければいけないのだけど、出発地・目的地の指定、経路の表示にGoogle Maps API を使おうと思った。 テスト:http://mad-projects.iobb.net/map_test.html これすごく簡単に使えるなぁ。

g3data

大学のレポートで最短経路を検索するアプリケーションを作成せよというものが出たけど、元にする地図データは自分で適当に作らなきゃいけないらしい。で、こんなの見つけた=>g3data地図画像を用意して、適当に交差点とかプロットしてけば座標値が取得できそ…

面白い課題が出た

今週のアルゴリズムとデータ構造演習で出た課題 出発地から目的地への最短経路を示すプログラムをJavaアプレットとして実装せよ 基本的には出発地と目的地までの経路を集めて無向グラフを構築して、ダイクストラでいけそう。 経路は無数に存在しうるから、あ…

ハードウェア構成法が面白すぎる

自分にとって未知の世界なのではまってしまいそう。毎回の授業が面白い。他の授業がかなり楽なので、少しハードウェアの勉強に時間が割けそうだから、がんばってみよう。 論理圧縮 昨日の授業でわからなくて赤っ恥をかいてしまったので、メモ 集合表記に直し…

可変長引数

可変長引数を使うには次のようにすればいいらしい (define foo (lambda args // 関数本体 ))こうすると引数が全てひとつのリストになってargsに入る。こんな書き方ができるのか〜。 普段何気なく使っている (define foo (lambda (arg1 arg2 arg3) // ))の様…

多倍長整数演算:繰り下がり

とりあえずレポートできたしもうこのネタは終わりにしよう。早く自分の開発に戻らねば。このところバイトと大学に追われてしまっている..orz RubyのBignumを読んでてなるほどと思ったこと。(たぶん他のどの実装も同じはず) 多倍長整数の減算をする場合は繰り…

多倍長整数演算:基数変換(続)

大体Knuthの内容が理解できた。本を返さなきゃならないのでメモっておこう。 とりあえず分かり易いように二進数十進数の変換に限定して書いとく.(他の基数でもほとんど同じ) まず進数に変換 普通の基数変換では、多倍長整数uがあった場合これを次々と10で割…

多倍長整数演算:基数変換

RubyのBignum実装を参考に実装してみた。Rubyってソースが綺麗な事で有名だけどBignumのソースは正直...うーむ読みにくい。 まぁ、速度が重要な数値回りのライブラリだし一つの変数を使いまわしたりするのは仕方ないのかもしれない。 整数環なので加算・減算…

追記:多倍長整数演算

多倍長演算の場合キャリーを考える必要があって、一桁mビットだと乗算のキャリーが最大mビットだから、普通はunsigned short型(2バイト)配列で整数値を表し計算途中はunsigned int(4バイト)型配列を使えば良い。 んで、もし基数を負数にするとしたら一桁mビ…

多倍長整数演算

レポートの2つ目の課題。 多倍長演算は結局ただの筆算なので実装は楽だろう。 でも、それじゃ自分の勉強にならないのでネタを探していた。*1 多倍長演算の実装には ビット列を符号なし整数として保持。符号情報を別に扱う。 ビット列に符号情報まで埋め込む…

アルゴリズムとデータ構造レポート

初レポート。内容は C言語でリスト構造を作れ C言語で整数環を作れ というもの。 リスト リストは以前作った事があるので、よく分かる。双方向リンクリストを実装した。 でも、来週からはSchemeを授業でやるらしいけど、LISPのリスト構造にしてみた方が良い…