タグ

Cに関するtaninswのブックマーク (17)

  • GitHub - evmar/c-repl: a C read-eval-print loop (abandoned)

    taninsw
    taninsw 2012/03/15
    CのREPL(Read-Eval-Print-Loop)/Haskellで書かれてる
  • 無償のソースコード静的解析ツール、AdLint登場 | マイナビニュース

    オージス総研は2月28日、C言語プログラミング用の静的解析ツール「AdLint 1.0」を無償公開した。AdLint 1.0はオープンソース化されており、ライセンスとしてGNU GPL 3を採用している。ANSI C89、ISO C90、 ISO C99の一部に準拠したソースコードの解析ができるという。 AdLintではシングルモジュール解析、クロスモジュール解析、597種類の警告検知、14種類のコード情報抽出、15種類のコード品質メトリクス測定などを実装しており、コンパイラでは検出できない不具合の可能性を警告したり、「経路複雑度」、「被呼出し数」、「デッドコード数」などを測定してソースコードの品質を指標化したりできるとしている。また、同社が提供しているソースコード品質評価ツール「Adqua」と組み合わせることでソースコードの品質を視覚的なレポートで表示することもできるという。 AdLin

  • Tinycc on NaCl - 2011-10-03 - 兼雑記

    http://shinh.skr.jp/nacltcc/tinycc.html Native Client がリリースされてから、ブラウザで C のコード即実行できたらキモいよなーと思ってました。ただ Native Client がなかなか JIT 対応してくれなかったから遊べなかったのですが、なんか最近見直したら JIT サポートされていたようだったので。 コードはこのへんとかに。まだバグバグです。簡単に落ちると思います。 https://github.com/shinh/nacltcc/ 箇条書き感想: Native Client はキモはとても面白い技術だと思うんですが、まだまだ環境が追いついてきてないなぁという感じ ドキュメントがあんまり無い。主に nacl_dyncode_create の第一引数と、ファイル関係 API をゴマかす手段を探すのに時間がかかりました naclpor

    Tinycc on NaCl - 2011-10-03 - 兼雑記
    taninsw
    taninsw 2011/10/03
  • Tinycc on NaCl

    What is this? This is an experimental port of tinycc. You can run C source code on NaCl, which means, you can run C programs on your browser without interaction with servers. Note that the development is not completed at all and you may see weird errors even for simple programs. You can find the source code and documents from my github repository To try this, you might need Chrome 14 or later and

    taninsw
    taninsw 2011/10/03
  • A Guide to Undefined Behavior in C and C++, Part 1 – Embedded in Academia

    Also see Part 2 and Part 3. Programming languages typically make a distinction between normal program actions and erroneous actions. For Turing-complete languages we cannot reliably decide offline whether a program has the potential to execute an error; we have to just run it and see. In a safe programming language, errors are trapped as they happen. Java, for example, is largely safe via its exce

    taninsw
    taninsw 2011/09/11
  • Writing a C library, intro, conclusion and errata

    This is a series of blog-posts about best practices for writing C libraries. See below for each part and the topics covered. Table of contentsThe entire series about best practices for writing C libraries covered 15 topics and was written over five parts posted over the course of approximately one week. Feel free to hotlink directly to each topic but please keep in mind that the content (like any

  • あらゆるCプログラマが未定義の動作について知るべきこと - YAMDAS現更新履歴

    LLVM Project Blog: What Every C Programmer Should Know About Undefined Behavior #1/3 LLVM Project Blog: What Every C Programmer Should Know About Undefined Behavior #2/3 LLVM Project Blog: What Every C Programmer Should Know About Undefined Behavior #3/3 コンパイラ基盤 LLVM のブログで、未定義の動作という C 言語のダークサイドについての記事が3回シリーズで公開されている。 C 言語で未定義の動作を実行したら、「鼻から悪魔が飛び出しても文句が言えない」というジョークは有名で……いや、そんなのを知ってるのは年寄りくらいか(参考:nasa

    あらゆるCプログラマが未定義の動作について知るべきこと - YAMDAS現更新履歴
  • C言語の代表的なウェブリソース10選 - YAMDAS現更新履歴

    Top 10 C Language resources that will turn you into a better programmer - C and C++ Programming Resources 今更 C 言語かと言われそうだが、Linux カーネルだって、我々が利用している LL 言語の多くだってこの言語で書かれているのである。ワタシ自身は未だどの言語よりCを愛している。 以下に C 言語に関してウェブに公開されている代表的なリソースを挙げていく。さすがに更新が長らく止まっているものが多いが、それでも有用な情報源には違いない。ネタ元は Hacker News。 C Programming Notes Programming in C - UNIX System Calls and Subroutines using C. C Lesson by Chris Sawtell

    C言語の代表的なウェブリソース10選 - YAMDAS現更新履歴
  • CERT C Secure Coding Standard - CERT Secure Coding Standards

    Try to post comments on leaf nodes, or as close as possible. If you have a comment about a specific rule or recommendation, for example, please post a comment on that page. If you think that we should add a new rule or recommendation to a particular section, please post a comment on the section heading. Thanks. I really like the structure and the presentation of the secure coding rules.  Just a g

  • スタックフレーム | bnezの日記 | スラド

    G7氏のコメントより、「Schemeの実装におけるスタックフレーム(Draft)」について。サブルーチン呼び出し時の呼び出す側と呼び出される側との情報のやり取りを仲介する、スタックフレームのお話。 C言語の関数呼び出しでは、引数でも返り値でも扱えるものは値渡しのみである(Cにはポインタ渡しというものがあるが、これはプログラマが変数の位置情報を明示的にポインタに変換してから値として渡すものなので、処理系から見れば値渡しの一種である)。受け渡し時に扱うものが値渡しだけなので、スタックフレームも値渡し以上のことはできなくても良い構成になっている。「やりたきゃプログラマ自身の手で明示的にポインタ渡ししてね」というスタンスだ。 でもこのスタンスは、例えばクロージャのように値渡しだけでは実現できない機能には不十分だ。処理系がいちいち変数ごとに暗黙にポインタ渡しで置き換えればどうにか動くものを実現できる

  • C言語(C90/C99~)の教科書・関数辞典でお勧めは?(ただし日・英両方あるもの) | スラド デベロッパー

    今月、私の下に初めての部下がつくことになりました。ただし、日語は「コニチワ」レベル、英語は何とかしゃべれる東南アジアからの留学生です。やることはC言語によるコード書きとバグ修正で、彼(留学生)はプログラムの基礎(ロジック・構造)は他の言語で既習で、C言語の鬼門であるポインタについては昨週1週間かけた講義で理解できたようです。ちなみに私の英語力は「ゆっくりなら読める・書ける・リアルタイムにしゃべるのは苦手」の典型的日英語です。(コミュニケーションは互いの片言以上会話以下の英会話(w)かe-mailで) 今後、コード書きをさせるのに「そこはstrtok使って。使い方はテキスト・関数辞典見て調べて」等の指示で仕事をまわしたいのですが、その『テキスト』を何にするかで躓きました。いままで私がC言語を学んだのは日語で書かれたテキスト・関数辞典でした。これらは留学生の彼には参考になりません。英語

  • Cog VM リリース記念: Squeak、Ruby、Python を恒例のフィボナッチベンチで戦わせてみる - Smalltalkのtは小文字です

    Cog VM は、VisualWorks用の超高速 Smalltalk VM を手がけた Eliot Miranda 氏による Squeak Smalltalk 向けの新しい高性能 VM 。 Teleplace社(旧 Qwaq社)の製品である同名の仮想空間共有ソフトのベースである Croquet用に開発されたものですが、同社の厚意によりオープンソースとして公開され、Squeak のユーザーも利用可能になりました。 Squeak - Dev - Teleplace Cog VMs are now available Cog Blog :: Eliot Miranda Win 向けのバイナリも公開されていたので、さっそく恒例のフィボナッチベンチ(39番目のフィボナッチ数 63245986 の再帰的な算出にかかる時間を計測。実装はナイーブなものにして、メモ化や遅延評価は使用しない)で人気のスクリ

    Cog VM リリース記念: Squeak、Ruby、Python を恒例のフィボナッチベンチで戦わせてみる - Smalltalkのtは小文字です
  • プログラミングの禁じ手Web版 C言語編(InternetArchiveよりサルベージ) - Akio's Log

    はじめに 昔お世話になったC Magazineの「プログラミングの禁じ手Web版 C言語編」というサイトを、後輩に教えてあげようとしたら、C Magazineの休刊後にドメインが失効してしまったようで、見る事が出来ませんでした。 幸い、InternetArchive(http://www.archive.org/web/web.php) に当時のデータがほぼ残っていたので、無許可ではありますがサルベージして転載させてもらいました。 「C MAGAZINE - プログラミングの禁じ手Web版 C言語編」 元のアドレスはこちら。 http://www.cmagazine.jp/src/kinjite/c/index.html InternetArchive http://web.archive.org/web/20070113222026/http://www.cmagazine.jp/src

    プログラミングの禁じ手Web版 C言語編(InternetArchiveよりサルベージ) - Akio's Log
  • バグを生まないコーディング法、10個の規則でソフト開発を効率化(2/3) ― EE Times Japan

    バグを生まないためのルール 以下に、このコーディング規則のいくつかの例を紹介する。これらのルールは、バグの発生件数の削減に役立つだろう。 ●ルール1 if文、else句、switch文、while文、do文、for文に続くコード・ブロックを、常に中括弧「{ }」でくくる。これらの文や句に続くコードが1文だったり、何もなかったりした場合でも、中括弧でくくるべきである(図1)。 理由は、次の通りである。例えば、if文に記述した条件が成立したときに処理すべき内容が、当初は「A」という1文で記述できていたとしても、その後改変を加えて「A」と「B」の2文になったとする。このとき、最初の「A」を中括弧でくくっていなければ、「B」を追加すると同時に中括弧の記述を忘れると、後から加えた「B」という処理が、if文の条件が成立するか否かにかかわらず常に実行されてしまう。つまり、新たなバグを生み出し

  • L'eclat des jours(2008-05-27)

    _ わざとバグを入れたCの入門書 翔泳社の編集の方から献していただいたので、読んでみました。 デバッグではじめるCプログラミング(山 貴光) 今更、おれが読むでもないしと思わないでもなかったけど、読んでみるものだ。おもしろかったし、参考になった点もあった。 全体としてはゲームを作るで、BC++をCで使うことを前提にしている。なぜBC++と大きい疑問を感じたけれど、エラーメッセージの適切さが理由のようだ(とは書いていないが)。 最初に、簡単な出力、入力があって、ちゃんとカタカナでprintfはプリントエフと読みますとか、scanfはスキャンエフと読みますとか読み方も指南している。 で、ゲームを作るというのはどういうことかという読み物ふうのエピソード(著者の方は光栄に勤めていたらしい)が来て、企画とおおざっぱな仕様が来て、では実装していきましょうと話が続く。 で、リストをその通りに打た

    taninsw
    taninsw 2008/06/09
  • 2004-10-02

    最近C++を使う時間が長いのでががーっと C++批判文章を書き上げてみる…。 (注:以下の文章において、C言語とはC/C++をさすものとお考えください) gotoは今から30年以上も前のダイクストラ先生による撲滅運動の 甲斐もあってかどうなのか、今日では良くないものの代名詞のように なっている。良くないということの主な理由はプログラムの流れが 見えにくくなる、等のようなのだが、実際のところどの程度のものかは よく分からない。C言語において、例えばループ構文を使わずにすべてを gotoでまかなおうとするとこれはほとんど自明に、確かに大変である。 例えばfor文なら、 for (A;B;C) body というものは、これを形式的に A _continue_for: if (B) goto _break_for; C goto _continue_for; _break_for:; このように変

    2004-10-02
    taninsw
    taninsw 2007/04/22
    おもしろい
  • Cプログラミングの秘訣

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

  • 1