タグ

ProgrammingとCに関するVoQnのブックマーク (6)

  • Learn C • Build Your Own Lisp

    Build Your Own Lisp Learn C and build your own programming language in 1000 lines of code! If you're looking to learn C, or you've ever wondered how to build your own programming language, this is the book for you. In just a few lines of code, I'll teach you how to use C, and together, we'll start building your very own language. Along the way we'll learn about the weird and wonderful nature of Li

    VoQn
    VoQn 2014/04/08
    C言語でLisp処理系を実装するチュートリアルブック
  • Overloading Macro on Number of Arguments

    I have two macros FOO2 and FOO3: #define FOO2(x,y) ... #define FOO3(x,y,z) ... I want to define a new macro FOO as follows: #define FOO(x,y) FOO2(x,y) #define FOO(x,y,z) FOO3(x,y,z) But this doesn't work because macros do not overload on number of arguments. Without modifying FOO2 and FOO3, is there some way to define a macro FOO (using __VA_ARGS__ or otherwise) to get the same effect of dispatchi

    Overloading Macro on Number of Arguments
    VoQn
    VoQn 2014/03/21
    C言語マクロの引数オーバーロードテクニック。なるほどそんな技が…
  • “本物のマクロ”でCのコード行数を半分に! - @IT

    2009/09/07 毎年夏に開催される軽量プログラミング言語(LL:Lightweight Language)をテーマにした「LLイベント」。第7回目となる「LLTV」が、2009年8月29日に東京・中野で開催された。この記事ではプログラムの一部、「大改善!!劇的ビフォーアフター」をレポートする。前編では、Rubyによるfortuneコマンドの“増築”と、Firefox拡張によるslコマンドの実装というネタ系発表をレポートした。中編となる記事では、C言語にLisp風のマクロを取り入れ、lsコマンドのソースコードを約半分に“修繕”する匠の技をレポートする。後編では、売り場業務が滞りがちだった販売管理システムをbashコマンドで“建て直した”という劇的ビフォーアフターの発表をレポートする。 Cで書かれたlsのソースコードの問題点 「Real/Macro Metaprogramming On

    VoQn
    VoQn 2013/12/01
    川合史郎氏
  • Real Macro Metaprogramming on C

    誰もが知ってるls(1)コマンド ソースはFreeBSDから (simple, no-dependency) 素直で読みやすいコード C言語ソースとしては優等 しかし… 問題点1 - 冗長なコード cmp.c int namecmp(const FTSENT *a, const FTSENT *b) { return (strcoll(a->fts_name, b->fts_name)); } int revnamecmp(const FTSENT *a, const FTSENT *b) { return (strcoll(b->fts_name, a->fts_name)); } 問題点1 - 冗長なコード (cont'd) util.c 同じ構造の4つの関数 while ((clen = mbrtowc(&wc, ...)) != 0) { if (clen == (size_t)-

    VoQn
    VoQn 2013/12/01
    S式やばい
  • casehack.c - Pastebin.com

    Not a member of Pastebin yet? Sign Up, it unlocks many cool features!

    casehack.c - Pastebin.com
    VoQn
    VoQn 2013/06/07
    C の switch って単純なラベルジャンプだから別に驚きはなかった
  • Spaghetti Source - 各種アルゴリズムの C++ による実装

    ACM/ICPC(プログラミングコンテスト)系列の問題を解くことを目標にして,各種アルゴリズムを C++ で実装してみた.極めて意地が悪い類の問題には対応していないし,特定の入力に対して高速に動くということもない.計算量も最良とは限らない. これらを参考にする方への注意とお願い: これらの記述は正確とは限りません.参考文献を参照することを強く推奨します.間違っている場合は是非教えてください. これらのプログラムは間違っているかもしれません.各人で検証することを強く推奨します.バグがあれば是非教えてください. 分類が怪しいので,これはこっちだろう,ということがあればコメントを下さると助かります. 注意! 現在書き換え中 TODO 分類を正しく行う. 全体的に説明と使い方を詳しく. Verify していないものを Verify. ボロノイ図(いつになることやら……) 基 テンプレート グラフ

  • 1