タグ

Cに関するnminoruのブックマーク (26)

  • 2017年にC/C++はCOBOLのように死す | ソフトアンテナ

    長い歴史を持つプログラミング言語C。その発展系としてオブジェクト指向を導入したC++とともに、現代でも、実用的なソフトウェアを作成するためのプログラミング言語として、さまざまな場面で使われ続けています。 そのようななかセキュリティ研究家trevor jim氏は、ブログ記事「C and C++ are dead like COBOL in 2017」を公開。CとC++COBOLのように、2017年に死ぬだろうという持論を展開し、注目を集めています。 同氏はセキュリティ研究家という立ち位置から、安全でないCやC++言語の批判を長年展開してきた経緯を持っているそうで、すでに"メンテナンスモード"に入っているCOBOLと同様に、C/C++質的には死んでしまった言語だと主張。 CやC++は安全ではないという問題のほか、プログラミングの難易度が高く、コンパイラによってとらえられないバグが簡単に書

    2017年にC/C++はCOBOLのように死す | ソフトアンテナ
    nminoru
    nminoru 2017/01/29
  • PhD thesis | Robbert Krebbers

    On December 1, 2015 at Radboud University Nijmegen, I have defended my PhD thesis entitled: The C standard formalized in Coq with cum laude distinction. Download Robbert Krebbers. The C standard formalized in Coq. PhD thesis. Radboud University Nijmegen. Summary This thesis describes a formal specification of the sequential fragment of the C programming language based on the official description o

    nminoru
    nminoru 2015/11/30
  • Technical Report: Defining the Undefinedness of C

  • Jens Gustedt, Modern C (PDF)

    nminoru
    nminoru 2015/02/09
    C11 でどのようにコードを書けばいいかの解説。過去のC言語が分かっていることが前提。
  • ISO、C言語の新規格「C1X」を制定 | スラド デベロッパー

    国際標準化機構(ISO)が、C言語の新規格「C1X」を制定した。正式名称は「ISO/IEC 9899:2011」となっている(家/.、The H記事)。 C++言語との互換性に優れ、マルチスレッド機能、ISO/IEC TR 19769:2004に基づくUnicodeサポート、浮動小数点型の特性を調べるマクロや静的アサーション機能などの新機能を追加しているとのこと。

    nminoru
    nminoru 2011/12/27
  • Cプログラムの"わかりにくさ"を競う奇怪コンテスト「IOCCC」、5年ぶり開催

    あのコンテストが帰ってくる。2006年に開催されて以来沈黙し続けいてた「IOCCC(International Obfuscated C Code Contest)」だ。実に5年ぶり、20回目となる同コンテストの開催が発表された。コンテストの応募期間は11月12日(協定世界時)から2012年1月12日(協定世界時)までの2ヶ月間。作品の提出は12月1日から受付が開始される。 IOCCCは、どれだけ「わかりにくい」Cプログラムを作成できるかを競うコンテスト。どれだけわかりにくいコードになっているか、または、どれだけわかりにくいように編集されているかがコンテストの鍵となる。IOCCC 19回目までの作品はオンラインでチェックできる。どれも折り紙付きの"わかりにくさ"だ。そのままでは何をするソースコードなのか理解しかねる。

    nminoru
    nminoru 2011/11/17
  • [Prog] printf 関数をちゃんと使おう - NAKAMURA Minoru's Diary

    2002 | 10 | 11 | 12 2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1

    nminoru
    nminoru 2011/09/08
    自分の覚え書き。%*sを時々度忘れする。
  • ConceptClang

    Introduction ConceptClang is an implementation of concepts for C++ in Clang -- an LLVM frontend for the C family of programing languages. Its aim is to provide an easily extensible infrastructure for implementing differing concepts proposals, particularly those that arose during discussion prior to its removal as a feature for C++0x. It is currently under development and the features undergo inclu

    nminoru
    nminoru 2011/08/31
  • The Most Expensive One-byte Mistake - ACM Queue

    The Bike Shed July 25, 2011 Volume 9, issue 7 PDF The Most Expensive One-byte Mistake Did Ken, Dennis, and Brian choose wrong with NUL-terminated text strings? Poul-Henning Kamp IT both drives and implements the modern Western-style economy. Thus, we regularly see headlines about staggeringly large amounts of money connected with IT mistakes. Which IT or CS decision has resulted in the most expens

    nminoru
    nminoru 2011/08/03
  • The Most Expensive One-Byte Mistake - Slashdot

    nminoru
    nminoru 2011/08/03
    NULL-terminated stringは是か非か?
  • Success is a Journey, not a Destination: 全てのCプログラマが未定義な振る舞いについて知っておくべきこと #1/3

    [What Every C Programmer Should Know About Undefined Behavior #1/3 の翻訳です。] LLVMでコンパイルしたコードは、最適化を有効にしているとたまにSIGTRAPシグナルを生成するのはなぜなのか、と聞かれることがある。いろいろ調べたあと、(X86での話だが) Clangは "ud2" インストラクションを生成していたことがわかった。"ud2" は__builtin_trap()が生成するインストラクションと同じものだ。[訳注: #UD例外を発生させる命令。ソフトウェアが#UD例外をハンドルできているかテストするために使われる。つまり、ソースコードが未定義な振る舞いを使っていたから、LLVMはud2インストラクションを生成したのであって、LLVMのバグではない、ということ] こういう問題は幾つかあって、すべて、Cの未定義な振る

    nminoru
    nminoru 2011/07/21
  • C 言語によるオブジェクト記述法 COOL

    C 言語によるオブジェクト記述法 COOL ver.2 C-language's Object Oriented Language ver.2 [検索] 目次 0. はじめに 1. クラスの記述, 属性の記述 2. 操作の記述 3. クラス属性の記述、定数の記述 4. 初期化操作と後始末操作の記述 4-1.処理効率優先インターフェイス 4-2.再コンパイル不要インターフェイス 4-3.動的バインディング・インターフェイス 5. 状態取得操作と状態設定操作とイベントハンドラの記述 6. 集約の記述、継承の記述 6-1.集約の記述 6-2.継承の記述 6-3.多重継承の記述 6-4.重複継承の記述 6-5.動的継承の記述 7. 多態性(多相性)、インターフェイス継承の記述 7-1.多態性の記述 7-2.多態性を持った生成の記述 7-3.多重継承の多態性の記述 7-4.重複継承の多態性の記述 7

    nminoru
    nminoru 2011/05/24
    これもC言語でオブジェクト指向をするひとつの方法。だけど他にもやり方がある。ああC言語に無理やりreflectionを導入したX Toolkitプログラミングの悪夢が思い出される orz
  • はてなブログ | 無料ブログを作成しよう

    週報 2024/04/28 川はただ流れている 4/20(土) 初期値依存性 さいきん土曜日は寝てばかり。平日で何か消耗しているらしい。やったことと言えば庭いじりと読書くらい。 ベランダの大改造をした。 サンドイッチ 一年前に引っ越してからこんな配置だったのだけど、さいきん鉢を増やしたら洗濯担当大臣の氏…

    はてなブログ | 無料ブログを作成しよう
    nminoru
    nminoru 2011/05/19
    C言語の文法の中で、予約済み識別子に関する規約は軽視される傾向にあるのう。このブログの主が分かってやっているのか否か分からないのでコメントを出し辛いところだ。
  • Blogger

    Google のウェブログ公開ツールを使って、テキスト、写真、動画を共有できます。

    nminoru
    nminoru 2010/07/27
    うぅぅ。それは無理なんだよーーー。止めてあげねば。
  • How To Exploit NULL Pointers - Slashdot

    nminoru
    nminoru 2010/04/14
    コメント中にも少し触れられているけど、null pointer ≠ アドレス0 。 c.f. C FAQ (http://www.kouno.jp/home/c_faq/c5.html#0) / 日記も書いた http://www.nminoru.jp/~nminoru/diary/2010/04.html#2010-04-14
  • 日本のコンピュータ情報 : 富士通

    富士通は、事業活動に伴う温室効果ガスの排出量(Scope1,2)をグループ全体で2030年度までに100%削減するほか、2040年度までにバリューチェーン全体のScope3をネットゼロにすることを目標としています。 COP28 ジャパン・パビリオンのパネルディスカッションにおいて、富士通 青柳一郎が、気候変動に対する考え方や富士通が行っている施策を報告しました。

    日本のコンピュータ情報 : 富士通
    nminoru
    nminoru 2009/09/14
    コンパイラなどの開発環境の値段がタダ同然になっているこの御時世に一番安いライセンスで380,000円とは…。1本1,500円ぐらいにしてSOURCENEXTで売ってもらえばいいのに。
  • C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター

    これまでにC/C++ セキュアコーディングセミナーで使用した講義資料を公開しています。2010年度にセミナを実施した、文字列、整数、動的メモリ管理、書式指定文字列、CERT C セキュアコーディングスタンダード、ROSE については、それぞれ最新版の資料を掲載しています。 文字列 ユーザとソフトウエア間に発生するデータのやりとりの大部分は文字列によって行われます。 また、プログラム間でのデータ交換も文字列形式で行われるようになり、その結果、文字列表現や文字列管理、文字列操作における弱点がソフトウエア脆弱性を生み出しています。 文字列では、C/C++ 言語における文字列操作、一般的なセキュリティ上の欠陥と、その結果発生する脆弱性と対処方法について解説します。 C/C++ における文字列の特性 犯しやすい文字列操作の間違い 文字列の脆弱性 プロセスのメモリ構成 スタック破壊の仕組み コードイン

    C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター
  • C/C++セキュアコーディングの講演資料、JPCERT/CCが公開 - @IT

    2009/04/28 JPCERT/CCは4月28日、2008年度に開催したC/C++向けのセキュアコーディングセミナーで使用した講義資料を公開した。資料は文字列、整数、動的メモリ管理、ファイルの入出力(UNIX、POSIX、Windows)などに分かれており、それぞれ1~7MBのPDF文書としてダウンロードできる。 文字列の扱いでは、バッファオーバーフローなど頻繁に報告される脆弱性について、その原因と具体的な対策について解説。図やサンプルリストを多用して、危険なコードと、セキュアなコードを対比して学習できる構成になっている。 過去に脆弱性の見付かったソフトウェアの実例を、該当個所のコードを示して解説しているのも特徴。例えば文字列のバッファオーバーフローでは、WindowsのRPCの該当ソースコード部分を示した上でBlasterワームの挙動を示している。また、典型的な整数の脆弱性の例として

  • メモリ操作の安全性を確保する、ANSI C規格準拠C言語コンパイラ | スラド デベロッパー

    数日前の話になりますが、産業技術総合研究所は4月11日、既存のC言語プログラムにメモリ操作の安全性を付与できるコンパイラ、「Fail-Safe C — release 1」を開発したと発表しました(産総研のプレスリリース)。プレスリリースや開発部門である情報セキュリティ研究センターの解説ページによると、既存のソースコードをそのままこのコンパイラに掛けるだけで、危険なメモリ操作の自己チェック機能を備えた実行可能ファイルが生成されるという仕掛けのようです。さらに、このコンパイラは、ANSI C規格に準拠しながら、厳密には規格違反だが既に一般的になっている様々な記述手法についても安全な範囲でサポートしているとのこと。 バッファオーバーフロー等、メモリ破壊が原因のソフトウェア脆弱性が後を絶たない現状ですが、こういうコンパイラが普及したら少しはそのような状況が改善されるのかなぁ、と期待します。このコ

    nminoru
    nminoru 2008/04/16
  • 普通のやつらの下を行け: C でバックトレース表示 - bkブログ

    普通のやつらの下を行け: C でバックトレース表示 普通のやつらの下を行けの第2回として、今回は glibc の関数を使って C でバックトレース (スタックトレース) の表示を行ってみます。 バックトレースとは バックトレースとは、大ざっぱに言うと、現在の関数に至るまでの道筋です。たとえば、次の Ruby プログラムを実行すると、 1 / 0 の行で例外が発生して、バックトレースの表示とともにプログラムは異常終了します。 def foo 1 / 0 end def main foo end main この例では main から foo を呼び foo の中の 1 / 0 の部分で例外が発生しています。 % ruby divide-by-zero.rb divide-by-zero.rb:2:in `/': divided by 0 (ZeroDivisionError) from div