【お知らせ】プログラミング記事の投稿はQiitaに移行しました。SVG自作インタプリタを少しずつ進化させて、複数のCPUやOSをサポートできるようになりました。クラス設計で試行錯誤した過程を残しておきます。文中の図はインラインSVGで描いています。コンパイラ実装会で出た話題です。以下のコードがエラーになります。コンパイラ実装会で出た話題です。関数のサイズを取ろうとしたら1になりました。完了報告C++id:n7shi:20111113で告知したマーク&スイープ勉強会が無事に完了しました。ご参加の皆様、お疲れ様でした。完了報告C++報告が大変遅くなりましたが、id:n7shi:20111011で告知したサンクと継続の勉強会が無事に完了しました。ご参加の皆様、お疲れ様でした。完了報告2011-11-13マーク&スイープ勉強会C++メモリを自動的に解放する仕組みをGCと呼びます。GCの基礎的なアルゴリズムの1つであるマーク&スイープについての勉強会を開催します。GC周りについてのセッションも予定しています。C++COMのバイナリ構造とC++の関係を確認するため、vtableのメモリレイアウトを調べました。仮想ではないメンバ関数はsizeofに影響しません。仮想関数がない場合、インスタンスへのポインタからメンバ変数が入っています。仮...vtable2011-10-11サンクと継続の勉強会C++呼び出しの変換などを処理するために実行時に生成されるコードをサンクと呼びます。サンクを利用したクロージャの実装を説明します。サンクとは別に、コルーチンによる継続の実装も試みます。(2)C++id:n7shi:20110423で取り上げた判別共用体の変換例で、C#の継承とvirtualを使った形式は冗長ですが素朴だと思います。C++なら宣言と実装を分離できるので、評価関数だけを横断的にまとめられるのではないかと思い試してみました。V6id:n7shi:20110408で開発したSilverlight版のPDP-11インタプリタですが、ブラウザから出してコマンドラインで動かなければ、実用には厳しいと感じました。そのためC++で書き直して、Win32とPOSIXに対応しました。GAMEをC++に移植して、Interix上のクロス開発環境(id:n7shi:20091212)でNetWalker用にビルドしました。バイナリ(NetWalker/Windows)とソース(gcc/VC)を置いておきます。NetWalker2007-02-25簡易ダウンローダC++HTTPでファイルをダウンロードするツールを作成しました。POSIX/Win32対応です。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。