programmingに関するpknightのブックマーク (51)

  • void element blog: あなたは前置派? それとも後置派?

    自分の中の常識と世の中の常識にズレを感じるシリーズ第一弾(第二弾は未定) 大学の頃、プログラミングの授業で「後置演算子は一旦レジスタに退避させなきゃならないので前置演算子に比べると遅くなる」と習って以来、必要に迫られない限りはできるだけ前置で書くようにしている。 特に長大なループ文のインクリメントでは必ず前置演算子で書くことを心がけているのだが、ネットに転がっているソースコードのほとんどが後置演算子で書かれていて、何か陰謀を感じずにはいられない。 たとえば a - ++i のように演算子に続く場合は可読性の問題から後置にしてしまうのは理解できる。 ← (はてブコメントより指摘、思いっきりおかしなこと書いてました) でもループ文のインクリメントってほとんど単独記述じゃないだろうか? 計算速度の向上から無視できるレベルになってるとはいえ、最適化のTipsなブログでも前置演算子で書かれているのは

  • ASCII文字コード : IT用語辞典

    * LFはNL、FFはNPと呼ばれることもある。 * 赤字は制御文字、SPは空白文字(スペース)、黒字と緑字は図形文字。 * 緑字はISO 646で文字の変更が認められ、日ではバックスラッシュが円記号になっている。

  • Amazon.co.jp:Code Reading―オープンソースから学ぶソフトウェア開発技法: 本

    Amazon.co.jp:Code Reading―オープンソースから学ぶソフトウェア開発技法: 本
  • 俺流逆引きCプログラミング(1) - わさっきhb

    これまでMyBestというカテゴリーで,何度か,当日記の総集編的なものを出していますが,研究室や情報教育のエントリについては定期的にまとめているものの,Cの文法やプログラミングに限って,整理したことがないのに気がつきました. そこで,「C」のカテゴリーをつけた記事をすべて見直し,分類しました.各トピックは疑問形にして,「逆引き」感を出してみました*1. インデント,したほうがいいの? 自動・手動のインデント インデント,スペーシング 変数宣言の注意点は? 初期化すべきか 変数 変数の分類 ブロックの途中で宣言している変数があります 演算子がいくつもある式,なんとかなりませんか? ANDよりもORが優先することがある 優先順位を,構文規則から考える 増分・減分演算子は取扱注意 ++と--の呼び方 増分・減分演算子は後置のほうが前置よりも優先順位が高いんじゃないか シンタックスシュガーって?

    俺流逆引きCプログラミング(1) - わさっきhb
  • 俺流逆引きCプログラミング(2) - わさっきhb

    昨日の続きです.(3)は,エントリをたくさん書いてからになります*1. Cは,どんな順番で学べばいいの? プログラミングとノック Cをマスターしたら? ミーティング(学習書について) キーワードを図にしてみる プログラムを理解するには? プログラミング課題を読み解く〜人口密度問題 プログラミング課題を読み解く〜三角形の面積 読み解き補足 プログラム読解の方法 バグに種類があるの? どう対処すればいい? デバッグしよう(1)〜問題なソース デバッグしよう(2)〜構文エラーをなくす デバッグしよう(3)〜リンクエラーに対処する デバッグしよう(4)〜論理エラーを見抜く Cでどんな計算ができる? 最大値問題 アドレス演算と時間演算 「文字列走査」から「オートマトン」へ 二つの値を交換する方法 明日はプログラム読解演習2(暗号化,文字列置換) 「成功するまでの回数」の期待値を求めるCプログラムとR

    俺流逆引きCプログラミング(2) - わさっきhb
  • C言語のキーワード関連図(2008年度版) - わさっきhb

    少し前のことですが,http://f.hatena.ne.jp/takehikom/20070121063702にスターをいただきました. 図ですが…少々古いです.昨年度の授業では,こうなっています. ただ,線が入り組んでいますので,PowerPointで表示するという制約を超えて,描き直したいものです….Graphvizを使いましょう. http://homepage3.nifty.com/kaku-chan/graphviz/index.htmlをもとに,dotファイルを書きました. /* 2008.dot (途中版) */ digraph ckeyword2008 { 識別子 [style = filled, fillcolor = "#FF99CC"]; 算術型 [style = filled, fillcolor = "#FF99CC"]; 制御文 [style = filled

    C言語のキーワード関連図(2008年度版) - わさっきhb
  • プログラミング言語を作る

    このページの目的は、「独自のプログラミング言語を作る」ことです。 「プログラミング言語を作る」というのは、 やったことのない方からすれば、ずいぶん無謀な目標に見えるのかもしれません。 でも、いくつかの基礎知識さえ修得すれば、技術的には、 実はそんなに難しいものでもありません。 だったら、ひとつぐらい作ってみたいと思いませんか? なにしろプログラミング言語を作るなんて、 いかにもかっこ良さげじゃないですか。 私は作ってみたいと思いました。だから作ります。 プログラミング言語なんてもう山ほどあるのに、 今さら新しい言語なんて付け足して何をしたいんだよ! などというツッコミは入れてはいけません。 「なぜプログラミング言語なんか作るんですか?」 と聞かれたら、その答は そこにyaccがあるからだ。 で充分だろうと私は思います(yaccが何かは後述します)。 というわけで―― ただ私なんぞが新言語を

  • ポインタ虎の巻

    ポインタ虎の巻 初級篇~ポインタはなぜ難しいか? C言語を学ぶ上で、ほとんどの人が引っかかり、往々にCの勉強を放棄するきっかけとなるのがポインタである。しかし、ポインタはC言語という特定のプログラム言語だけではなく、コンピュータというものを理解する上で、必要不可欠な重要な機能である。C言語参考書では、ポインタを解説する上で「箱」のモデルを使って解説することが多いが、この虎の巻では、より突っ込んだ具体的な動作を解説することでポインタというものの質を解明して見ようと思う。参考書ではC言語の抽象レベルの上で解説がされるのが通例だが、虎の巻では単純化されたアセンブリ命令を使って具体的に解説する。 初級篇目次 変数とは何か? 疑似アセンブリの定義 文字列の処理 アドレスの取得 ポインタの型 関数呼び出しの手法 構造体とポインタ リスト構造 NEW 二進木 NEW 中級篇~ポインタの高度な技 ポイン

  • Cプログラミング診断室/キャストが好き/float型対double型

    ■float型は遅い■ この人は、どうもdouble型を嫌っているように思えます。可能な限りfloat型で計算しようとし ているようです。やはり、double型より、float型の方が高速に違いないと思い込んでしまってい るようです。 結論から言うと、ほとんどのCでは、float型よりdouble型で計算した方が数倍高速になります。 例えば、今私がこの原稿を書いているコンピュータ(SPARCstation IPX)で、 r += 0.1 を計算させ ると、rがfloat型だと0.36μ秒ですが、double型だと0.11μ秒になります。 不思議に思われる方も多いと思います。もしあなたがアセンブラを理解できるのでしたら、簡単 な数行のプログラムを組んで、double型とfloat型のときのコンパイルされ方の違いを調べてみる と良いでしょう。 ここでは、アセンブラ・ソースを直接眺めながら説明す

    pknight
    pknight 2009/06/22
    "現時点でfloat型を使う理由は、float型が4バイトで、double型は2倍の8バイトでメモリを食うため、巨大な配列などを必要とする時に、メモリを倹約するためくらいしか無くなりました"
  • Amazon.co.jp: プログラミング言語を作る: 前橋和弥: 本

    Amazon.co.jp: プログラミング言語を作る: 前橋和弥: 本
  • Amazon.co.jp: エキスパートCプログラミング: 知られざるCの深層 (アスキーブックス): ピーターヴァン・デ・リンデン (著), 系,梅原 (翻訳), van der Linden,Peter (原名): 本

    Amazon.co.jp: エキスパートCプログラミング: 知られざるCの深層 (アスキーブックス): ピーターヴァン・デ・リンデン (著), 系,梅原 (翻訳), van der Linden,Peter (原名): 本