タグ

Cに関するkazyのブックマーク (16)

  • Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ

    今年の文化祭で書いた記事です。 - C言語といえば、いやなイメージ、過去の遺産といった感じがあるかもしれません。 C言語のネガティブな側面というと、やはりポインタやメモリ管理などが難しい、ということが思いつくかもしれません。 しかし、C言語のポインタは表記に騙されやすいだけで、仕組み自体は全く難しくありません。 文法も、どこぞのPerlC++と比べたら屁でもない単純さです。 実のところ、仕様が煩雑で難しいのは、Cプリプロセッサなのであります。 普段からあまり複雑な使いかたをしないから気づかないかもしれませんが、Cプリプロセッサの置換処理は、欺瞞と裏切りに満ちた世界なのです。 これが進化するとテンプレートなどといったもっと面白いものになるのですが、今回はCプリプロセッサで計算をしちゃったりするところまで試しにやってみましょう。 (なお、GCCにより実験的に調べた記事なので、他のCコンパイラ

    Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
    kazy
    kazy 2009/11/13
    言語マニアなら誰しも一度は考えるよなこれ。実行しないけど。
  • Dual pivot quicksort - 鯨飲馬食コード

    (2009-11-05追記 heap sortにバグをあったのでコードを差し替え、計測しなおした) (2009-11-06追記 heap sortのコードと結果を削除した) (2010-06-17追記 quick sortに誤りがあったので結果とコードを削除した) 先日、dual pivot quicksortというソート法があるということを耳にしたので、空き時間に他のソート法の復習も兼ねて書いてみた。なお、dual pivot quicksortについてはDualPivotQuicksort.pdf(PDF)を、他のソート法についてはWikipediaのソートアルゴリズムの項を参照した。テストも不十分なnaiveな実装であることについてはご容赦いただきたい。 Cのintの配列を対象とし、配列の長さを変えて各手法の実行時間を計測した。対象とした配列はランダムに初期化し、シャッフルして100

    Dual pivot quicksort - 鯨飲馬食コード
    kazy
    kazy 2009/11/05
    dual pivot quicksortを書いて性能測定。やはり速い。
  • GDBで歴史をさかのぼれるように!なりました! GDB 7.0 の新機能Reverse Debuggingを使ってみた - 日記を書く [・w・] はやみずさん

    Twitter上で、@alohakun が言及していた GDB の reverse debugging の機能を使ってみました。 GDB にトレースと逆実行機能入ったのか。 http://www.gnu.org/software/gdb/news/reversible.html http://twitter.com/alohakun/status/4481139191 まずは簡単な使い方を説明したあとに、インストール方法を説明します。 こんなときに便利 「変なこと」が起きている大体の場所がわかっているとき デバッグ中に、大体どこで変なことが起きているかはわかっているけど、細かい場所は特定できていないとき、reverse debuggingが効果を発揮します。 GDBでステップ実行をしていて、「しまった!行きすぎた!」という経験はよくあると思います。こういうとき、今まではプログラムの実行を最

    GDBで歴史をさかのぼれるように!なりました! GDB 7.0 の新機能Reverse Debuggingを使ってみた - 日記を書く [・w・] はやみずさん
  • Fail-Safe C: Top Page

    Fail-Safe C は、メモリ安全性を保証する ANSI C 言語のフルスペックの実装です。 ANSI C 言語の仕様で定められた全てのメモリ操作(キャストや共用体を含む)に対し その安全性を保証し、全ての危険なメモリアクセスを事前に検知し防止します。 Fail-Safe C では、コンパイル時や実行時の様々な最適化手法を組み合わせる ことで、実行時検査のオーバーヘッドの削減を行っています。このコンパイラ を用いることでプログラマは、既存のプログラムを大幅に書き換えたり別の言 語に移植したりすることなく、そのままプログラムを安全に実行することがで きます。 詳細については次の文献もごらん下さい。 Yutaka Oiwa. Implementation of the Memory-safe Full ANSI-C Compiler. ACM SIGPLAN Conference on P

  • Optimization of Computer Programs in C

    Michael E. Lee Senior Programmer/Analyst Ontek Corporation 22941 Mill Creek Road Laguna Hills, CA 92653 USA Abstract: A substantial portion of a knowledge worker's life may be spent waiting for a computer program to produce output. Users and organizations control their wait time by purchasing faster computers, adding memory, or using faster network connections. Developers of application progra

  • http://www.graco.c.u-tokyo.ac.jp/~kaneko/misc/phk_malloc.html

    kazy
    kazy 2007/04/25
  • IBM メモリー管理の内側 - Japan

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM メモリー管理の内側 - Japan
  • High Performance Programming 高速化

    High Performance Programming 高性能プログラミング この講義は、応用数理工学特論、数理工学特論 II、材料応用数学特論に対 応します。 レポート課題1 レポート課題2 レポート解答 参考書 R. Allen and K. Kennedy, "Optimizing Compilers for Modern Architectures", Morgan Kaufmann. M. Wolfe, "High Performance Compilers for Parallel Computing", Addision-Wesley. 寒川光、「RISC 超高速化プログラミング技法」、共立 中澤喜三郎、「計算機アーキテクチャと構成方式」、朝倉 天野英晴、「並列コンピュータ」、昭晃堂 D. E. Culler, J. P. Singh, A. Gupta, "Paral

  • Language C FAQ

    C言語 FAQ 日語訳 このページは北野 欽一さんが日語訳されたC FAQをHTML化したものです。 著作権等に関しては「C言語FAQと日語版について」をご覧ください

  • DZone Refcardz

    Refcard #396 Getting Started With Vector Databases Rather than replacing other technology, vector databases have emerged as solution to new cases for which no other tool exists. To help users get up and running, this... {{ stats[3449213].portal.title }} · {{ stats[3449213].clicks }} clicks · · {{ stats[3449213].timesInEdition }}x Refcard #395 Open Source Migration Practices and Patterns Open sourc

    kazy
    kazy 2007/02/06
    トピック毎のコマンド一覧がPDFでダウンロードできる。便利げ。
  • データ型のアラインメントとは何か,なぜ必要なのか?

    以前このサイトとブログに,何度かアラインメントに関する記事を書きました (サイト内関連ページ参照). そのせいか「アラインメント」で検索して来てくれる人が多いので, 過去の記事に加筆修正してこのページを新たに作成しました. 加筆した点は次のとおりです. アラインメントとメモリアクセス回数の関係をわかりやすくするため, (ほんの少し) 図を導入しました. 「データがアラインされていないとメモリアクセス回数が増える」 と言葉で説明しているサイトは多いのですが, 図で示しているところはまだ見たことありません. アラインされていないアドレスにデータを書き込む場合, 読み出しの場合以上にメモリアクセス回数がかかる可能性があることを追記しました. 以前は「複合データ型 (配列,構造体,共用体) のアラインメント」はほとんど自明のことだと思っていたので軽く流していましたが, 意外なことにこれを解説してい

  • ネットワークプログラミングの基礎知識

    ネットワークプログラミングの基礎知識 ここでは IP アドレスやポート番号、クライアントとサーバの役割などを説明し、 perl・C言語・Java などでソケット (Socket) を使った HTTP クライアントや POP3 クライアント、簡単なサーバを作成してみます。 要はネットワークプログラミングをやってみよう、ということです。 このページのサンプルプログラムは、RFC などの規格に準拠した「正しい」プログラムではありません。 また、全体的にエラー処理が不十分です (今後改善する予定です)。 あくまでも概要を理解するためのサンプルととらえてください。 もし気でしっかりとしたクライアントやサーバを書きたいなら、このページを読んだ上で、 さらに RFC を熟読し、そして wget・Apache・ftp コマンドなどのソースを参考にしてください。 このページに間違いを見付けたら、掲示板

    kazy
    kazy 2007/01/26
    参考になりそう
  • Efficient data transfer through zero copy

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Efficient data transfer through zero copy
    kazy
    kazy 2006/10/14
    errnoを使ってCで解りやすいエラー通知
  • Redirect...

    kazy
    kazy 2006/07/25
    プログラマが注意すべきセキュリティ要件
  • Cプログラミングの秘訣

    特集 Cプログラミングの秘訣 最終更新: 2006-03-28 このテキストはC MAGAZINE 1992年4月号に掲載された原稿のオリジナルテキストを元にしてHTMLに変換したものです。掲載文章と細部が異なっていると思われます。また、気付いた個所をいくつか修正してあります。 当時はまだWindows 95もないような時代で、現在の状況から見ると違和感のある内容も結構あるかもしれませんが、時代背景を想像しながら補正しつつ読んでいただければ幸いです。 ※2006年3月28日追記: 何が原因か知りませんがこのページのアクセスが増えているそうなので、 HTML のおかしなところを修正しました。 文章の変更はありません。 なお、このサイト(表ページ)は現在休眠状態ですが、 裏ページ や 裏の裏ページ の方を、細々と更新していたりします。 目次 Part1 よいプログラムを書く条件 Part2 明

    kazy
    kazy 2006/03/27
    そのうち原稿の参考にしよう
  • GNU コーディング規約: Writing C

    5.1 ソースコードの整形 C言語では, カラム0に関数体の始まりの開き括弧を置くことが大事です. カラム0に関数の始まりでない括弧や, 開き丸括弧, 開き大括弧を書くのは やめましょう. カラム0に開き括弧があると関数の始まりとみなすツールがいくつかあります. そのようにコードが整形されてないとこういったツールはうまく機能しません. 関数定義において, 関数名をカラム0から始めることも大事です. 他の人が関数定義を検索するのに 役立つし, ツールが関数定義を認識するのにも助けになります. つまり, 適切なフォーマットは次のようになります. static char * concat (s1, s2) /* Name starts in column zero here */ char *s1, *s2; { /* Open brace in column zero here */ ..

    kazy
    kazy 2006/03/08
    コーディングスタイルについて
  • 1