タグ

2007年8月26日のブックマーク (16件)

  • Using GNU C __attribute__

    One of the best (but little known) features of GNU C is the __attribute__ mechanism, which allows a developer to attach characteristics to function declarations to allow the compiler to perform more error checking. It was designed in a way to be compatible with non-GNU implementations, and we've been using this for years in highly portable code with very good results. Note that __attribute__ spell

  • Cellプログラミングチュートリアル入門編 - PukiWiki

    はじめに † Cell プログラミングをこれから始めようという初級者対象のチュートリアルです。 Cell は非対称マルチコアプロセッサであり、これまでのシングルコア CPU を用いた 逐次型のプログラミングとは 異なるプログラミングスタイルとなります。 チュートリアルでは、Cell はもちろん、並列プログラミングが未経験な方でも、 レッスン形式のチュートリアルを 進めることで、Cell プログラミングの基礎が 身につく内容を目指しています。 ↑ 基礎用語 † Cell 非対称マルチコアプロセッサ*1です。 1 つのメインプロセッサと 8 つのサブプロセッサから成ります。 PPE(PowerPC Processor Element) Cell のメインプロセッサ(PowerPC アーキテクチャ準拠)です。 PPE の中にあるプロセッサコアを PPU と呼びます。 OS はこの PPE

  • Assembly Programming Linux

    Linux でアセンブリプログラミング copyright (C) 2000-2003 Jun Mizutani (mizutani.jun@nifty.ne.jp) はじめに. アセンブラを使って Linux のプログラミングで遊んでみます.アセンブラには NASM を使用して,カーネルを直接利用することにします. いまさらアセンブラでプログラムを作成することは,時代錯誤と感じる人も 多いかもしれません.「アセンブラでプログラミングなんて職人芸でしょう」 と思うかもしれません. 20年前では趣味のプログラミングは BASIC か アセンブラしか選択肢がありません でしたが,今ではPerl, Ruby からアセンブラまでの間に非常に多くの言語があって, アセンブラは普通では不要な最下層の知識となっていると思います. 10BaseT のツイストペアケーブルのインピーダンス

  • Jun's Homepage

    [j3w] [jdu] [rvtl] [jsh] [linux asm] [Linux Zaurus] [Linux PPC] [frame buffer] [掲示板] [Mesa] [pov-ray] [kuro] What's new. 玄箱PROのmiconapl互換コマンドの作成 (08/30/2008) オリジナルの miconapl とほぼ互換で使用できるマイコン制御プログラムの修正版です.排他ロックを組み込んでみました. 玄箱PROのシステムバックアップ (08/16/2008) 玄箱PROのシステムバックアップとリストアの手順です.備忘録としてまとめました. J3W ver.5.51 (Windows XP SP2/Vista DirectX9版)をバージョンアップ(07/27/2008) Direct3D版としては約11年ぶりのバージョンアップです.やっとver

  • Perl・PHP・JavaでHTTP環境変数を取得する方法

    環境変数を利用すると、Webプログラムを設置したサーバ環境の情報やWebアプリケーションの状態等を取得することができます。 以下に、環境変数の説明、およびPerlPHPJavaによる主な環境変数の取得方法を記載します。

  • Windowsに土足で乱入?! 〜 フック関数の使い方 : DSAS開発者の部屋

    今日の多くの OS がそうであるように、Windows にも自作のプログラムコードを特定のプロセスへ介入させることのできる「フック」という仕組みがあります。自分自身のプロセスをフックすることもできますが、他のプロセスをフックすることで通常のアプリケーションプログラミングの枠を超えた様々な興味深い処理の実現が可能となります。 ・所定のプロセスに対する Windows メッセージの監視・捕捉 ・所定のプロセスでの特定のイベントに呼応する自作コードの注入 ・既存のアプリケーションの所作を変更 etc. 「自作のコードをあるプロセスに介入させる」とはどういうことでしょう? メモリ上のモジュールイメージにアクセスしてマシン語命令を書き換えて・・という怪しげな方法もありそうですが、Windows では DLL を利用することで比較的容易にこの命題を解決できます。 このことを逆に考えると、自作の DLL

    Windowsに土足で乱入?! 〜 フック関数の使い方 : DSAS開発者の部屋
  • DSAS開発者の部屋:Windowsに土足で乱入?! 〜 API フックのための予備知識

    ■ はじめに 前回の記事では Windows のイベントをフックする方法についてお話しましたが、特定の Windows API 呼び出しををフックするにはどうすればよいでしょう? それを考えるためには、まずどのような仕組みでプログラムが API を呼び出だしているのかを調べておく必要がありそうです。 ご存知の通り、Windows API は、所定の Windows プログラムから呼び出すことの可能なエクスポート関数として OS 環境の DLL(Dynamic Link Library) 群に格納されています。そして、あるプログラムの実行に必要な API を含む DLL は、実行ファイル起動時の初期化時にプロセスへリンクされ、その後は所定の API を透過的に呼び出すことができるようになります。 DLL をプロセスへリンクするには、実行形式をビルドする際に所定のインポートライブラリをリンクし

    DSAS開発者の部屋:Windowsに土足で乱入?! 〜 API フックのための予備知識
  • (新)APIから知るWindowsの仕組み---目次

    雑誌にせよWebにせよ,最近のWindowsプログラミングの記事のほとんどは .NET向けだ。マイクロソフトも,これまでネイティブ・コードでの開発が主流だったC/C++開発まで, .NETへの移行を促そうとしている。 ではネイティブ・アプリケーション開発用のプログラミング・インタフェースであるWin32 API(Application Programming Interface)の知識は不要になるのかというと,決してそうはならないと筆者は考えている。理由の一つは,OSが動作する仕組みを知ることが,今後も開発者にとって重要であり続けることだ。プロセス管理,メモリー管理,同期化といった概念は,.NETで開発する場合でも必要だ。こうした知識を得るのに一番いいのは,やはりOSのカーネルに近いAPIのレベルで学ぶことである。 将来どうなるかはともかく,現時点では .NET Frameworkの大部分

    (新)APIから知るWindowsの仕組み---目次
  • GPUPPURの目標など - GPUPPUR(ぐぷっぱー)の日記

    未踏ユースの提案書に書いたGPUPPURの目標などについて、そのままコピペで下に貼ります。かなり高い目標を設定してしまったと思うのですが、GPUPPURを広く使ってもらうようになるためにはこれぐらい実装しないとダメなんだろうなぁ。 目的 3Dグラフィックスを描画するソフトウェアGPUPPURを開発する。 GPUPPURの目標を以下に示す。 ・ ライブラリ利用者の創造性を発揮することができ、独創的な映像を生み出すことができる。 ・ カスタマイズや特殊な機能を使わない限りは、様々なプラットフォームへ簡単に移植すること、様々なハードウェアに対応することを可能にする。 ・ カスタマイズすることによって、特定のハードウェア、OS上でしか動かすことができないが、ハードウェアの能力をフルに発揮できるアプリケーションの開発を可能にする。 GPUPPURが以下の機能を持てるように開発する。 ・ アプリケーシ

    GPUPPURの目標など - GPUPPUR(ぐぷっぱー)の日記
  • 6-6. C++デストラクタによる安全な資源解放

    プログラムが確保したリソースは,利用後,適切に解放しなければならない。確保したリソースを解放し忘れると,しばしばプログラムが予期せず終了することもある。ネットワークサービスを提供するプログラムにこのような不具合があると,サービスを提供できなくなる場合がある。 リソース解放忘れでもっとも有名な問題は,やはり「メモリリーク問題」だろう(関連記事『6-5. メモリリーク』)。システムのメモリ容量は有限だ。プログラムがメモリ領域を作業用に確保したいとき,malloc( )関数によりシステムからメモリ領域を借り入れる(確保)ことができる。借り入れたメモリ領域を使って作業を済ませたなら,必ずそのメモリ領域をfree( )関数でシステムへ返却(解放)しなければならない。メモリリーク問題は,プログラムが適切にfree( )関数でメモリ領域を解放しないことにより,システムの貸し出し可能なメモリがどんどん消費

  • Concepts Extending C++ Templates For Generic Programming

    この情報は恐ろしく昔のもので、現在のドラフト規格とまったくあっておりません。検索で飛んでこられた方は、この情報を信用せず、ご自分で規格をご確認ください。 これは最高にためになる動画だ。 コンセプトとは、C++のパラダイムのひとつ、ジェネリックプログラミングを、もっと分かりやすくするための文法だ。 前半の5分ほどは、ジェネリックプログラミングはなんであるかを解説している。 The reason we think that we can make it simpler is that many of the way people use template now are... tricks! There're complelcated tricks. You can't even read in the book in many faces. You have to dig for newsg

  • プログラマの方、もしくは趣味でプログラミングをしている方に質問です。…

    プログラマの方、もしくは趣味でプログラミングをしている方に質問です。 あなたが読んでためになった、またはプログラマなら読んでおくべきだと思うソースコードはなんですか?教えてください。 ネットでダウンロード可能なものでお願いします。

  • Techniques for Scientific C++

    Todd Veldhuizen <tveldhui@acm.org> Indiana University Computer Science Technical Report # 542 Version 0.4, August 2000 This report summarizes useful techniques for implementing scientific programs in C++, with an emphasis on using templates to improve performance. Chapter 1: Introduction 1.1: C++ Compilers 1.1.1: Placating sub-standard compilers 1.1.2: The compiler landscape 1.1.3: C++-specifi

  • Visual C++ 入門 (MFC)

    ここでは MFC (= Microsoft Foundation Class) を使用したプログラミングの簡単な解説をしています。 使用環境は Windows Xp + Visual Studio .NET (2003) です。 MFC には

  • Advanced Programming (C言語)

    アドバンスド プログラミング Advanced Programming 講義目的 この講義は,1年次配当のいくつかの講義で習ったC言語を用いて,より高度なプログラミングが行える知識と技術とを修得することを目的としている。 1年次に行われたプログラミングの授業では,C言語に関する基的な知識とプログラミングにあたっての基礎的な技術とを学んだが, この講義では,有用なアルゴリズムを用いたプログラムを実際にコーディングすることにより, 高度かつ実践的なプログラミングのための知識と技術とを修得する。 講義内容 ウォーミングアップ 上達するために 配列 スタック 待ち行列 線形リスト オセロゲーム作成 バックトラック法 カラム 巡回的添字(剰余演算子% の活用) 配列=ポインタ の例外 array[n]== n[array] ??? 仮引数と実引数 swich文の書き方 レポートについて レポートは

  • さらに分かっておきたいトランジスタの種類 − @IT MONOist

    組み込みソフトウェア/ハードウェア開発における技術力の向上、改善・最適化などを幅広く支援する“組み込み開発エキスパート”のための情報フォーラム