タグ

gccとプログラミングに関するadvblogのブックマーク (4)

  • フリーソフトウェア徹底活用講座 - GCC - 岸哲夫 - Interfaceコラム目次

    ◆移り気な情報工学 第62回  地震をきっかけにリアルタイム・システム再考 第61回  海を渡って卵を産む北京の「海亀族」 第60回  超遠距離通信とソフトウェア無線 第59回  IT先進国フィンランドの計画性 第58回  物理的に正しいITの環境対応 第57回  年金,e-チケットに見るディジタル時代の情報原 第56回  「着るコンピュータ」から「進化した布地」へ 第55回  技術を楽しむネットの文化 第54回  情報爆発2.0 第53回  プログラミングの現場感覚 第52回  GPS+LBS(Location Based Service)がおもしろい 第51回  技術の格差社会 第50回  フィンランドに見る,高齢化社会を支える技術 第49回  たかが技術倫理,されど技術倫理 第48回  若者の理科離れ,2007年問題から「浮遊」せよ 第47回  機械のためのWWW――Google

  • 普通のやつらの下を行け: assert_caller() - bkブログ

    普通のやつらの下を行け: assert_caller() 以前に、低レベルプログラミングを愛好する知人が「普通のやつらの下を行け」を口癖にしていました。当時は何を言っているのかと聞き流していましたが、自分も最近になってようやく低レベルプログラミングのおもしろさがわかってきました。今回は「普通のやつらの下を行け」企画の第一弾として assert_caller() なるものを作ってみたいと思います。 assert_caller() とは assert_caller() とは、特定の関数からの関数呼び出しだけを通すためのアサーションです。たとえば、次のように foo() の先頭で assert_caller(main) と書いた場合、 foo() は main() からしか呼び出せなくなります。他の関数から foo() を呼び出した場合はエラーメッセージとともに異常終了します。 void foo

  • ホワット・ア・ワンダフル・ワールド C/C++ コンパイラでの末尾再帰最適化判定

    なんかプチブームに. 末尾再帰最適化をC/C++上で検知してみたい (higepon さん) 末尾再帰最適化判定 (yaneurao さん) 再帰判定 (shinh さん) んで,ちょっと気になったのが. 再帰の最適化 (masa.edw さん) shinh さんの fact のコードは末尾再帰じゃないけど、こういうのもちゃんと解析して最適化するんだー GCC すげー。 いやいや,ちゃんと末尾再帰のコードですがな… 追記 : 全然末尾再帰じゃないです (寝ぼけすぎ…).末尾再帰 (= ループ) に (GCC が) 変換可能なコード,です. shinh さんのコード (質部分だけ) int fact(int x) { return x == 1 ? 1 : fact(x-1) * x; } は, int fact(int x) { if(x == 1) return 1; else ret

  • ホワット・ア・ワンダフル・ワールド gcc のフロントエンド作る日記 (1) if を作ろう

    いつものことながら gcc のことを書き出すと目に見えてアクセス数が落ちる当ブログですが,そこはまぁ KY で (最近の中高生は「空気読めない」をこういうそうです). フロントエンドの雛形は hello-world を使うとして,後は個々の構文木の作り方をいろんなところからパクッてくれば,とりあえずフロントエンドは作れるはず. 一番手ごろなところということで,いつものように treelang フロントエンドサンプルを見て見ます. treetree.c あと,wo さんの ILogScript のマニュアルも非常に参考になります. ILogScriptほげほげ # あー,そろそろ真面目にgcc internals/9.8 Expressions の翻訳進めないとなぁ.gcc には大量の組み込みの構文木ノードが用意されていて,これを読めば,ソースコードを構文木として表現するにはどのノードを使え

  • 1