タグ

c_c++に関するtondolのブックマーク (12)

  • Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール

    最近、Robert Love先生のを暇な時にダラーと読んでいたりするわけですが、それの中にLinux Kernel内部で使われているLinked Listの実装が書いてあって面白かったので共有。 まず、Linked Listの一個一個のエントリを表すstructを定義します。 struct list_head { struct list_head *next, *prev; }; いやいやいやいや。いかにC力の低い僕でも流石にこれはあきません。騙されませんよ。前後のエントリへのポインタは確かにあるけれども、これにはデータを指すためのポインタがないじゃないの。おじいちゃんまたデータ忘れてきちゃったの?いやあねえ。 おじいちゃんは言った。「それはお前の短見というものじゃ。このLinked Listは以下のコードのようにデータ構造に埋め込んで使うものなんじゃよ。」そしてそれは正しかった。 st

    Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール
    tondol
    tondol 2012/12/12
    おもしろ
  • [PDF] Cプログラマのための カッコつけないプログラミング の勧め

    カッコつけないプログラミング 光成滋生(サイボウズ・ラボ) Cプログラマのための の勧め 自己紹介 
好きな言語 ‣ C++, Xbyak(自作x86/x64用C++用JITアセンブラ) ‧ C++WG小委員会エキスパート 
まあまあ使う言語 ‣ Python, JavaScript, Haskell 
サイボウズ・ラボで最近やってること ‣ 暗号の高速実装研究 ‣ 自然言語処理(まだ始めたばかり) 普通じゃないプログラミング2010 9/21 / 202 昨今の言語 
多機能,高度な概念 ‣ C++0x ‧ 型推論,ラムダ式,move semanticsなどが追加される ‣ Haskell ‧ 高階関数,参照透過性,モナド,非正格評価… 普通じゃないプログラミング2010 9/21 / 203 難しい概念は理解も使用も大変 
人にものを教えるには,その7倍の理解が必要 (要出典) 
プ

    tondol
    tondol 2010/09/28
    解説がないと何故動くのか不安で夜も眠れない
  • Xbyak - x86 JIT assembler -

    Xbyak - x86, x64 JIT assembler - .frame(English) .frame(x86の究極の最適化手法?) Xbyak(カイビャック)はx86(IA32), x64(AMD64, x86-64)のマシン語命令を生成するC++のクラスライブラリです. プログラム実行時に動的にアセンブルすることが可能なため, 柔軟な最適化(動的コード生成)が可能となります(利用シーン:量子化の高速化, 式の計算). 暗号ライブラリに使って高速な実装をしてみた(very fast etaT pairing for Core 2 Duo) ヘッダファイルオンリー xbyak.hをインクルードするだけですぐ利用することができます(32bit, 64bit両対応). Windows Xp(32bit, 64bit), Vista/Linux(32bit, 64bit)/Intel

  • Grand Central Dispatchでお手軽並列処理 - Radium Software

    Grand Central DispatchはMac OS X 10.6およびiOS 4に追加された新技術だ。 このGrand Central Dispatch(以下"GCD")は、プログラマー以外にその効用を説明することが難しい技術だ。漠然と「マルチコアプロセッサを効率的に使うための技術」と言っておくこともできるが、それじゃあなんでiOS 4に搭載されてんの?という話になってしまう。 これをプログラマー向けに説明するならば、次のような感じになるかと思う。 GCCを拡張してクロージャ的な機能を追加してみたら、非同期処理とか並列処理とかすげー書きやすくなったんで、ちょっとその辺りまとめてみました。 僕の個人的な意見としては、単にAppleのコンパイラー技術者たちがC言語ファミリー(C/C++/Obj-C)にクロージャを追加したかっただけなんじゃないかな、と考えている。 とりあえずマンデルブロ

    Grand Central Dispatchでお手軽並列処理 - Radium Software
    tondol
    tondol 2010/09/06
    Cで並列処理を手軽に記述できる独自拡張
  • C++/Boost 基礎文法最速マスター - 野良C++erの雑記帳

    参考: http://d.hatena.ne.jp/faith_and_brave/20100201/1264997004 「C++0xになると、C++03 でごちゃごちゃした部分がだいぶすっきり書けるようになる」 らしいですが、C++0xを待たなくてもBoostを使えばだいぶすっきり書けるので、 BoostでのC++入門はこんな感じだよー、という気持ちで以下略。 この記事はC言語をある程度理解していることが前提です。 1. Hello World C++/Boostでの出力はC++標準の IOStream ライブラリと Boost.Format を組み合わせて行います。 例として、C言語のprintfを用いた Hello World を、C++/Boostを使って書き直してみます。 #include <stdio.h> int main() { printf( "%s\n", "Hell

    C++/Boost 基礎文法最速マスター - 野良C++erの雑記帳
  • Cでのポインタの読み方

    Cでのポインタの読み方 Cのポインタの読み方は、ルールを知らないと摩訶不思議です。 ルールを覚えれば、 int (*p[5])[3]; char (*(*fp)(void))(int); なんてのも解読する事ができます。 大事な前程 ポインタを読む際には、「英語で読む」必要があります。 「え~、英語~」 と思う方もいるかもしれませんが、逆に日語で読む方が大変です。 基ルール ルール 後置演算子が優先。 関数の() 配列の[] 前置はあとで。 要は、「後ろに何かあったら、後ろが優先」です。 演算子の英語での読み方 * pointer to ... () function returning ... [] array of ... Lesson 1 まず、演算子が単独で出てくる場合です。 Lesson 1-1 pointer to ... int *p; これは、まずpを見ましょう。 i

    tondol
    tondol 2009/07/14
    はてブして放置してたけど,改めて読んだらポインタが読めるようになった
  • STLのページ

    角のページへ戻る STL(Standard Template Library) C++の標準テンプレートライブラリ、STLのページです。 2003/6/7 コンテナ全ページ標準に合わせて修正 目次(と予定) 更新履歴 はじめに STLとは? '99 11/07 作成 その前にC++で知っておかなければならないこと 馴染みがない(かもしれない)単語 '99 9/23 わずかに修正 テンプレート(template<>) 2001 1/31 更新 環境 '99 2/20 VCでSGI_STLを使う、BeOS、egcs等 使い方 イテレータ(反復子)の使い方 '99 6/19 更新 関数オブジェクトの使い方 '99 7/4 mem_fun()の使い方追加 早見表 STLで使う主なクラス '99 6/13 各クラスの説明、ヘッダをまとめた STLで使われる名前 '99 6/13 微妙に更

  • C++入門

    目指せプログラマー!にようこそ。 当サイトはこちらに引っ越しました。 お手数をおかけしますが、上記サイトへご移動くださいませ。

  • 株式会社エス・スリー・フォー » STL samples

    STL samples :function :struct :class <algorithm> 適用 for_each 検索 find find_if find_end find_first_of adjacent_find search search_n mismatch lower_bound upper_bound equal_range binary_search 係数 count count_if 比較 equal lexicographical_compare 複写 copy copy_backward 交換 swap swap_ranges iter_swap 変換 transform 置換 replace replace_if replace_copy replace_copy_if 充填 fill fill_n generategenerate_n 削除 remove

    tondol
    tondol 2007/12/15
    これ全部理解したらオレTUEEEEE!ってなれるだろうなあ。
  • http://www.cppll.jp/cppreference/index.html

    tondol
    tondol 2007/12/05
    某大会に間に合うかしら。
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    tondol
    tondol 2007/11/11
    魔法使い初等科
  • Part1 オープンソース/C言語に学ぶ「ソースコードの読み方」:ITpro

    「Code Reading―オープンソースから学ぶソフトウェア開発技法」(毎日コミュニケーションズ発行,写真1)というがあります。私はこのの監訳者ですから,やや自画自賛になってしまいますが,ソースコードの読み方を主題にしたはほかにはあまりありません。技法からツール,データ構造,アーキテクチャ,さらには実際にコードを読んで利用する実例まで紹介している網羅的で良いだと思います。 このの「はじめに」で「達人プログラマー」として知られるDave Thomas氏は以下のように書いています。 他人の作品を読まなかった偉大な作家,他人の筆づかいを研究しなかった偉大な画家,同僚の肩越しに技を盗まなかった腕のよい外科医,副操縦席で実地の経験を積まなかった767機長――果たして,そんな人たちが当にいるのでしょうか? たしかにその通りです。ソフトウエア以外の領域では修行することとはすなわち,他の人の

    Part1 オープンソース/C言語に学ぶ「ソースコードの読み方」:ITpro
  • 1