タグ

cに関するmuttyuのブックマーク (52)

  • SSA Bibliography

    SSA bibliography This is a bibliography of 103 papers relating to static single assignment form (SSA). I read most of these papers while studying for my PhD. Any comments below reflect my (perhaps immature) opinions at that time. This bibliography is also available and searchable locally and at the computer science bibliography collection. I will endeavour to maintain this bibliography, and update

  • PANEN138: Daftar Situs Judi Slot Online Gacor Terpercaya

    muttyu
    muttyu 2010/02/18
  • Compiler Construction - Wikibooks, open books for an open world

    Chapters[edit | edit source] About the Book Introducing Compilers and Interpreters  (Feb 3, 2005) Describing a Programming Language Lexical analysis  (Jan 31, 2005) Case Study 1 - a simple Interpreter  (Feb 15, 2005) Syntax Analysis Case Study 1B - a Compiler/Interpreter front-end written in C using Lex and Yacc A recipe for writing a reusable grammar Semantic Analysis Intermediate Representation

    muttyu
    muttyu 2010/02/11
  • mcpp

    MCPP is a portable C/C++ preprocessor, supporting GCC, Visual C++, etc. Its source is highly configurable and can generate executables of various specs. It accompanies a validation suite to check preprocessor's conformance and quality exhaustively.

    muttyu
    muttyu 2010/01/21
  • Lock-Free Linked List

    For this project I implemented and tested a generic lock-free ADT in C++ that allows concurrent traversal, insertion and deletion while preserving data integrity. This project addresses the issue of concurrent access to shared data.  This is important to applications in parallel algorithms, distributed computing, user-level thread implementation and multiprocessor operating systems. When multiple

    muttyu
    muttyu 2010/01/21
    Lock-Free
  • Pthreads arguments passing | Lo�c OnStage

  • x86 で使用されるレジスタを集計する - @a4lg の準技術的日記 (See Left side for My Twitter Link)

    x86 | 15:31 | x86 アセンブラで使用されることの多いレジスタを集計してみた。とりあえず、手元の幾つかのプログラム (IE8 とか手近のゲームとか Google IME とか色々) を調べてみた結果がこんな感じ。1位eax2位ecx3位ebp4位esi5位edi6位edx7位ebx8位esp全部の集計を取ると最下位はダントツで esp レジスタなのだが、特にマルチメディア系アプリで ebp の代わりに esp レジスタが使用されることが多いこと、また push と pop における暗黙的な esp レジスタの使用は集計されていないこともあり、使用に 1 バイト (REX プレフィックス分) のペナルティがある r8〜r15 レジスタにマッピングするのは待った方がよさそう。ebx レジスタがあまり使用されないのは予想通りだが、edx レジスタまで使用されないというのには驚いた。

    muttyu
    muttyu 2010/01/21
    レジスタ
  • libxmlのAPI - あるプログラマの日記

    libxmlで使用する主なAPIをまとめてみた。 参照ヘッダファイル -> libxml/parse.h XMLファイルを読み込んで、xmlDoc構造体を生成する。 xmlDocPtr xmlParseFile( const char* filename ); メモリ上のバッファからXMLを読込んで、xmlDoc構造体を生成する。 xmlDocPtr xmlParseMemory( char *buffer, int size ); 参照ヘッダファイル -> libxml/tree.h xmlDoc構造体からルート要素のノードを取り出す。 xmlNodePtr xmlDocGetRootElement( xmlDocPtr doc ); 要素*1のコンテンツ*2の取得 xmlChar* xmlNodeGetContent(xmlNodePtr cur); 要素のコンテンツを指定したコンテン

    libxmlのAPI - あるプログラマの日記
    muttyu
    muttyu 2010/01/21
  • libeventベースのアプリケーションをテストする - flothの日記

    libevent(Fast portable non-blocking network programming with Libevent)で回ってるようなアプリのテストって悩ましいよね。 event_dispatchをしてしまうと、Testのコードに戻れないし! そんな悩める少年少女に送る云々 つまるところは、event_base_loop(or event_loop?)を回せばいいのさジョニー typedef std::shared_ptr<struct event_base> pevenv_t; event_base * ptr = event_base_new(); BOOST_CHECK(ptr != NULL); pevenv_t pevenv(ptr, event_base_free); ... BOOST_CHECK(event_base_loop(pevenv.get()

    libeventベースのアプリケーションをテストする - flothの日記
    muttyu
    muttyu 2010/01/21
  • Boost.Python のような手軽さで C++ で PHP の拡張モジュールを書ける「Mozo.PHP (仮称)」 - moriyoshiの日記

    えー、久しぶりにですます調です。日の第2回PHP拡張勉強会でグダグダながらもちょこっと発表させていただいた、あのライブラリについての紹介です。 ダウンロードは以下からできます。 http://www.voltex.jp/downloads/mozo-php-20080324.tar.bz2 最新版はこちら >> http://voltex.jp/downloads/mozo-php-20080405.tar.bz2 2009-08-10 追記: 現在は Boost.PHP という名前で以下の場所で開発中です。 http://github.com/moriyoshi/boost.php なぜMozo.PHPを作ったのか Boost.Python という、Boost Project の一部である変態ライブラリがあるのですが、これは Python の拡張をおおよそ C++ とは思えないような書

    Boost.Python のような手軽さで C++ で PHP の拡張モジュールを書ける「Mozo.PHP (仮称)」 - moriyoshiの日記
  • ついカッとなって実行バイナリにパッチ - memologue

    とある都合で、ソフトウェア開発の際にソースコードの提供されていないツールを使うことになりました。x86なLinux上で動く、ちょっとしたtoolchainです。が、そのツールの処理速度が遅く、入力サイズに対して、結果が出てくるまでの時間がどうもO(N^2)かそれよりひどい。遅くてイライラするので、昨晩ついカッとなってパッチを当てました。そのメモです。また、ありがちな事態(?)な気もするので、みなさんどうしてるのかなー的なお伺いも兼ねて。 ボトルネックの特定 そのツール(以下A)の実行バイナリはstripされておらず.symtabが残っていました。のでまず、どこが遅いのかgoogle-perftoolsをLD_PRELOADしてそのソフトウェアを実行し、実行プロファイルを取りました。すると、嬉しいことにある一つの関数(以下F)で全体の90%以上の時間を消費していることがわかりました。関数Fは

    ついカッとなって実行バイナリにパッチ - memologue
  • 新しめの Autotools (Autoconf&Automake) を使ってみよう - Slide list

    新しめの Autotools (Autoconf&Automake) を使ってみよう by Kinuko YASUDA Table of contents 変更履歴 Autotools とは 基ステップ 基ステップ復習 ソースファイルを書く autoscan する configure.in を編集 (1) configure.in を編集 (2): 先頭定型文 configure.in を編集 (3):プログラムのチェック configure.in を編集 (4): ライブラリのチェック configure.in を編集 (5): ヘッダファイルのチェック configure.in を編集 (6): 関数のチェック configure.in を編集 (7): その他のチェック configure.in を編集 (8): ファイルの出力 Makefile.am を作る (1) : 基

    muttyu
    muttyu 2009/08/17
  • gcc の -Wall 以外の警告オプション - ひげぽん OSとか作っちゃうかMona-

    以前同僚の光成さんが、以下の warning オプションを使っていると書かれていたのが気になったので調べてみました。 -Wall -W -Wformat=2 -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wfloat-equal -Wpointer-arith もし上記以外にも良さげなオプションがありましたら教えてください<(_ _)> 情報源 man と info と http://sugarpot.sakura.ne.jp/yuno/?gcc%2Fwarning 。 最初は日語版の man だけを見ていたのですが、id:kazuhooku に info を見るべしと教わりました。 man も info もそうですが、日語版は情報が少なかったりするので注意。 LANG=C man gccなどとしましょう。 -Wforma

    gcc の -Wall 以外の警告オプション - ひげぽん OSとか作っちゃうかMona-
  • C言語〜ゲームプログラミングの館〜

    ※ 更新履歴 ※ 2017/11/03 ・sp.8章追加 2017/10/11 ・配布しているプロジェクトをVisualStudio2017に更新(それにまつわる説明も更新) 2015/09/12 ・s.3章 Androidのようなボタンの作り方(C++) 追加 2013/09/02 ・VisualC++2012のプロジェクトを追加 2013/02/23 ・d3.5章追加 2013/02/20 ・d3.1章追加 ・d3.2章追加 ・d3.3章追加 ・d3.4章追加 2013/01/19 ・sp3章追加 ・sp4章追加 ・sp5章追加 ・sp6章追加 ・sp7章追加 2012/06/23 ・3.14章追加 2012/06/16 ・sp1節追加 ・sp2節追加 2012/02/11 ・d6節追加 2011/11/10 ・h11章追加 2011/10/31 ・s1章追加 ・s2章追加 2011/

  • UniversalBinary - MacWiki

    ppc と i386 等複数のアーキテクチャのバイナリを一つのファイルに含む Mach-O executable file のこと。 Fat binary との呼び方もある。 見分け方[編集] コマンドライン[編集] file コマンドを実行する。i386, ppc 両対応のバイナリは次のように表示される。 $ file test2 test2: Mach-O fat file with 2 architectures test2 (for architecture i386): Mach-O executable i386 test2 (for architecture ppc): Mach-O executable ppc Finder[編集] 「情報を見る」の「種類」欄を参照する。それぞれ次のように表示される。 アプリケーション(PowerPC) ... PPC 版アプリケーション

    muttyu
    muttyu 2009/08/04
  • gcov の使い方 - まめめも

    concov のドキュメントを書こうと思ったけれど、何から書くか困ったので、とりあえずその前に gcov の使い方とはまりどころを書いてみます。 gcov とは C 言語で書かれたプログラムのカバレッジを測定するツールです。gcc に付属しています。 基的な使い方 こういうコードがあるとする。 /* test.c */ #include <stdio.h> int foo(int x, int y) { return x + y; } int bar(int x, int y) { return x - y; } int main(void) { printf("%d\n", foo(2, 3)); printf("%d\n", foo(3, 4)); return 0; } コンパイルする。-coverage をつけると gcov 用のオブジェクトファイルが生成される *1 。 $ g

    gcov の使い方 - まめめも
    muttyu
    muttyu 2009/08/04
  • mono対応に書き換え中 - schima.hatenablog.com

    またまた内部仕様が変わりまくりです。 既にコア部分の対応は大体終わっていて、windows版のmono2.4では動作を確認できました。 残るはMLやBlobの部分で、この辺りはC++/CLIで実装してあるので、これを全部やめてC#で書き直さなければなりません。しかし、ここはOpenCV側の実装がC++なのでDllImportはかなり厳しく、C++のクラスのメンバ関数を単純な関数として公開させるような薄いネイティブのラッパーを作る必要があります。面倒。 基的な手法は以下のようになります。 例えば以下のクラスHogeのラッパーを作りたいとして、 class Hoge { public: Hoge(); ~Hoge(); int fuga(const char* str); }; このようなdllexportの関数を定義します。 CVAPI(Hoge*) Hoge_new() { return

    mono対応に書き換え中 - schima.hatenablog.com
    muttyu
    muttyu 2009/08/03
  • MonoでP/Invokeを試してみたよ!

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    MonoでP/Invokeを試してみたよ!
    muttyu
    muttyu 2009/08/03
  • x86入門(3) 関数の呼び出し規約 (mitsunari@cybozu labs)

    Cからasm,逆にasmからCを呼び出すために必要な手続きを呼び出し規約といいます.たとえば前回puts()を使う際に,文字列のポインタをpushしましたが,そういう手続きのことです. x86での規約は大きく分けて3種類あり,細かい部分についてはコンパイラ依存であることも多く,注意が必要です.しかし,ほぼすべてのコンパイラで共通である規約は簡単で覚えやすく,しかも移植性が高くなります.計算処理などOSに依存しにくい部分ではその規約のみに従って記述すれば,Windows/Linux/Macで同一のソースとすることができメンテナンスもしやすくなります. まずは基の規約(cdecl)をしっかりと使いこなし,必要になってから他のその他の規約を学べばよいでしょう.詳細は呼出規約(Wikipedia)などを参考にしてください.拙文でも多少触れています. 汎用性の高い規約 Cとasmとの間で呼び出しあ

    muttyu
    muttyu 2009/08/03
  • RAIIもどき in C __attribute__((cleanup(fn)))

    gccの__attribute__((cleanup(fn))) が便利すぎる件について。 C++でコードを書くときは、RAIIとか呼ばれているイディオムを使えば、ご存じの通り、ロックしたmutexを手動で開放する必要もないですし、newしたオブジェクトを手動でdeleteする必要もないです。 void Baz::boo() const { boost::mutex::scoped_lock lock(mutex); // ... return; // lock変数のデストラクタで自動開放。手動での開放不要 }でもC言語だと、当然ながら手動で開放しないといけません。複数箇所でreturnしている場合など、タイプが面倒臭すぎ。 int foo() { pthread_mutex_lock(&mutex); // ... if (hogehoge) { pthread_mutex_unlock

    RAIIもどき in C __attribute__((cleanup(fn)))
    muttyu
    muttyu 2009/08/02