2012-01-01から1年間の記事一覧
DLLの関数からVBAにコールバックさせて、ANSIとUnicodeの文字列を受け取ってみました。引数を手動でマーシャリングしています。ANSI文字列はByte配列に入れてStrConv()で変換、Unicode文字列はStrPtr()で取得したバッファにコピーしています。ちなみに文字列…
みんなでコンパイラの実装に挑戦する勉強会です。バイナリいじりの基礎から始めて、実行ファイルを自前のコンパイラで作って動かすことを目標にします。コンパイラをきっかけにして、各種マシンコードやOSのメモリ管理について理解を深めるのが狙いです。 20…
以前、Deflateの圧縮アルゴリズムを変えながらヒッパルコス星表の圧縮時間を計測しました。 http://7shi.hateblo.jp/entry/2012/01/24/043700 最低圧縮率の方式はVBAへの移植を考えて実装しました。そこで今回、実際にVBAに移植しました。結論から言うとイン…
みんなでコンパイラの実装に挑戦する勉強会です。バイナリいじりの基礎から始めて、実行ファイルを自前のコンパイラで作って動かすことを目標にします。コンパイラをきっかけにして、各種マシンコードやOSのメモリ管理について理解を深めるのが狙いです。 20…
前回に引き続きBrainf*ckのトランスレータを見ていきます。 まとめ: 実装例: https://github.com/mason-/cmpimpl/blob/master/python/bftran.py Mac OS Xではデフォルトで位置独立コード(PIC)が要求されます。プログラムがどのアドレスにロードされるか決…
前回に引き続きBrainf*ckのトランスレータを見ていきます。 まとめ: 実装例: https://github.com/mason-/cmpimpl/blob/master/python/bftran.py Brainf*ckでは変数の指すメモリの中身が0以外の間だけ回るループがあります。 # while (*(char *)esi) { ... } …
前回に引き続きBrainf*ckのトランスレータを見ていきます。 まとめ: 実装例: https://github.com/mason-/cmpimpl/blob/master/python/bftran.py Brainf*ckには変数が1つあります。トランスレータではこれをレジスタに割り当てます。ABIにより関数呼び出しで…
前回に引き続きBrainf*ckのトランスレータを見ていきます。 まとめ: 実装例: https://github.com/mason-/cmpimpl/blob/master/python/bftran.py 今回のトランスレータでは、OSごとの差異を吸収するためシステムコールを直接呼ばずにlibcを呼びます。以下に呼…
第3回 コンパイラ実装会でざっくりとx86アセンブリのトランスレータについて説明しました。資料は特に用意せずに即席で説明したため、いくつか不備な点がありました。 64bit シンボル名のプレフィックス 記法 具体的なコードについて取り上げる前に、これら…
みんなでコンパイラの実装に挑戦する勉強会です。バイナリいじりの基礎から始めて、実行ファイルを自前のコンパイラで作って動かすことを目標にします。コンパイラをきっかけにして、各種マシンコードやOSのメモリ管理について理解を深めるのが狙いです。 20…
【注】gccが入っているのはDeveloper Tools 4.1までです(参考)。4.2以降には入っていないため(参考)、別途gccを入手する必要があります。(Mac OS Xを所有していないため、適切な入手先はわかりません)知人に環境を借りてMac OS X Lion(10.7.2)でクロ…
以前、F#でDeflateアルゴリズムの圧縮・展開プログラムを作りました。 http://d.hatena.ne.jp/n7shi/20101004/ 先日のZIP実装会 Part.018でよやさんと圧縮についてお話させていただき、ハッシュについて実験していたことを思い出しました。せっかく実験した…
C言語によるオブジェクト指向の実装をC++と比較しながら、オブジェクト指向の実装方法について理解を深める勉強会です。独自言語に組み込むことを想定した説明ですが、今回は独自言語の作成には踏み込みません。 2012年2月18日(土) 午後1時~6時 マイ・ス…
みんなでコンパイラの実装に挑戦する勉強会です。バイナリいじりの基礎から始めて、実行ファイルを自前のコンパイラで作って動かすことを目標にします。コンパイラをきっかけにして、各種マシンコードやOSのメモリ管理について理解を深めるのが狙いです。 20…
以前告知した最終回 PE勉強会 ARM編が無事に完了しました。ご参加の皆様、お疲れ様でした。 配布資料: サンプル: https://bitbucket.org/7shi/peben/downloads (06-20120121) Togetter まとめ: http://togetter.com/li/216932 PEの枠組み、エミュレータやク…