サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
nnabeyang.hatenablog.com
ガベージコレクションのアルゴリズムと実装の参考資料でもあるminigcのmalloc/free部分の実装を抜き出して、自分でも書いてみました。sbrk(2)は呼び出すたびに、ヒープ領域を伸ばします。my_freeは、ヒープ領域を解放するわけではなく、my_freeしたヒープ領域を再利用できるようにfree_listに追加しています。my_malloc(size_t req_size)はfree_listの中からreq_size以上のメモリ領域を探します。見つかった場合は、そこからreq_sizeだけ確保します。もしも、無い場合は必要な大きさだけ、ヒープ領域を確保してから、その領域をfree_listに追加(sbrkした領域をmy_freeする)してから検索し直します。ただし、はじめてmy_mallocを呼ぶとき(free_list==NULL)は、sbrkを使ってヒープ領域を確保してfre
現在Hello Algorithmに変数追跡機能を追加しようとしています。だいたいどんな感じの機能か伝わるようなデモができたので、デモだけ公表します。 これまでのおおよその機能は数学ガール-乱択アルゴリズム-のp109にあるようなシーンを再現することをイメージしながら作っています。今日で作り始めてからちょうど1ヶ月かかってるので、リサの能力には完敗です。 そんなことはまぁどうでも良いですが、この機能を追加した後も、今ある機能が実用として使いやすいように小さな改良を加えていく予定です。たとえば、自分の開始したい位置でプログラミングを動かせるようにしたりとか。
なんで作り始めたのかとか、色々説明したいと思いますが、とりあえずデモ動画を貼りつけておきます。 アプリ名前は「Hello Algorithm」で、urlはhttp://helloalgorithm-nnabeyang.dotcloud.com/です。 ステータス 僕自身が"Hello Algorithm"を使って実装したプログラムの内、数学ガールに載っているものはこんなふうにチェックを入れています。 リニアサーチ 番兵付きリニアサーチ ダイスゲーム バイナリサーチ バブルソート 充足可能性問題(3-SAT)を解く乱択アルゴリズム クイックソート 乱択クイックソート
C拡張モジュールの例として、helloworldをstringオブジェクトとして返すような簡単な例は見ますが、ユーザー定義オブジェクトをC言語で実装するような例は見つかりませんでした。Makefileはhelloworldモジュールを作るときと変わらないので省略します。最低限のオブジェクトを定義するためには、コンストラクタの追加、メソッドが追加、フィールドの追加ができたら良いと思います。これらの作業をするために、自作文字列モジュールStringを書くことにします。テストケースとしては次のようなものをパスすれば良いでしょう。 #!/usr/bin/python import String import unittest class StringTest(unittest.TestCase): def testString(self): s = String.new('abc') self.a
ここ数日、Google NaClを使ってC++コードをweb上で実行できるようにするということを試していました(できたのはこれです)。使ってみた感想としては、この仕組みがwebサービスとして使われるようになるかは分かりませんが、C/C++コードで書かれたアプリケーションを実行できる状態で見せるといった用途では、現段階でも十分に使えるんじゃないかというものでした。 Google NaClを使うと、C/C++コードをweb上で動かすことができます。ちょうど、ruby, pythonなどのC APIを使った拡張モジュールのようなことがブラウザ上で動くJavaScriptでもできるようになったようなものだと思ってください。(ただし、NaClプラグインが動くのは現在のところGoogle Chromeだけです) というのも、C/C++で書かれたプログラムを実行しようと思ったら、まず自分以外の環境でもビ
このページを最初にブックマークしてみませんか?
『nnabeyang.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く