タグ

論とC言語に関するch1248のブックマーク (9)

  • 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のように死す | ソフトアンテナ
    ch1248
    ch1248 2017/01/29
    「死す」が「新たに学習する意義が無くなる」という意味だとしても微妙なライン。
  • グラディウスの思い出

    ※初出2012-01-07 このブログを読んで思い出した。 スーパーマリオ3Dランドが素晴らしいわけ - はてなポイント3万を使い切るまで死なない日記 グラディウスは1985年にコナミから発売されたアーケードゲーム。ゼビウス(1983年)が大ヒットした後、しばらくそれに並ぶヒット作がアーケードゲームに登場しなかったが、グラディウスはそれに並ぶヒットといえよう。ゼビウスのヒットは異常なレベルなので、完全に並んだとは言えないけれど。 グラディウスが良くできていたのは、難易度の調整。下手なプレイヤーでもそこそこ遊べるし、上手なプレイヤーはさらに楽しめる。パワーアップアイテムで自機を強化していくのだが、こちらが強くなると、敵もたくさん弾を撃ってくる。 やられてしまうとパワーアップがゼロの状態からスタートになるが、その状態でも「頑張れば」クリア可能に設定されている。つまり四苦八苦して進んでいけば再び

    グラディウスの思い出
    ch1248
    ch1248 2015/08/23
    面白い。にしても、初代ダライアスってC言語で作ってたのか。
  • Practical Scheme

    Shiro Kawai 11/20/2000初出、3/29/2002更新 Cに慣れたプログラマがSchemeのコードを見て面らうことのひとつは、 無名の関数やローカル関数の多用だろう。 特に実行効率に敏感なプログラマにとっては「関数呼出しは高価」 という感覚が染み着いているため、 至るところに散りばめられたlambdaに眉をひそめてしまうようだ。 しかしSchemeにおいては、 コード上に関数が書いてあるからといって 実行時にスタックフレームの生成やレジスタの退避などのオーバヘッドが起こるとは限らない。 例えば関数の最後に別の関数を呼び出す末尾呼び出し(tail call) はただのjumpインストラクションに置き換え可能だ。 ここでは、Cプログラマを対象に、 lambdaで生成される関数群が実際にどのように実行され得るのかを書いてみたい。 (なお、Schemeの規格ではlambdaフォ

    Practical Scheme
  • ポインタと配列の微妙な関係 - めもめも

    話の背景 C言語のポインタと配列の関係については、『「配列へのポインタ」と「ポインタの配列」の見分け方』で紹介した「エキスパートCプログラミング」という書籍の「徹底的な解説」をこよなく愛していたのですが、最近、紹介されて「C言語ポインタ完全制覇」という書籍を読んだところ、類似の内容が、もう一段噛み砕いた形で説明されており好感を持ちました。 その中で、『「配列名に[ ]を付けずに配列名だけ書くと先頭要素へのポインタになる」という説明は間違っており、[ ]を付けようが付けまいが、いつでも配列名は先頭要素へのポインタになるのだ。』という記述があります。 これはなかなか説明が難しい部分で、実は私も、上記書籍の説明は数回読み返して理解できました。以下に私なりの解説を掲載するので、興味ある方は、解読(?)に挑戦してください。(もちろん、上記の2冊の書籍もおすすめですよ!) 解説 まず、ポインタ変数はメ

    ポインタと配列の微妙な関係 - めもめも
  • ポインタ(4)(C/C++) - プログラミング講座 - fuku研究所

    今回は、ポインタに関するミスのパターンについてです。 これまで解説してきた内容を理解していれば、当然そうなるのはわかるのですが、 分かっていてもやってしまう間違いというのはあるものなので、 今回はその辺についてやっていきます。 ポインタに関するミスというと、実は基的に3種類しかありません。 それは、「 無効ポインタの参照 」「 参照レベルのミス 」「 型の不一致 」の3つです。 ポインタの扱いを間違えると様々な現象が起こるので、難しいと思われがちなポインタですが、 実際はこの三点を抑えているだけで、99%のポインタ系のバグを見つけることができます。 さて、実際に起こる現象やデバッグについては次回以降として、 今回は上記3種類の内容について、解説していきます。 ポインタ系バグで特に要注意なのは、直ちに異常終了しないケースにおいて、 後々になって異常終了したり、変な動作をしたりという「地雷」

  • C言語プログラミングの覚え書き(改訳) - アスペ日記

    原文: Notes on Programming in C Rob Pike 1989年2月21日 Copyright (C) 2003, Lucent Technologies Inc. and others. All Rights Reserved. Lucent Public License Version 1.02 前書き KernighanとPlaugerによる“The Elements of Programming Style” (「プログラム書法」木村泉訳)は重要で影響力のあるです。このにはそれだけの価値があります。しかし、その中の簡潔なルールが、来意図されたような哲学の簡潔な表現としてではなく、よいスタイルのレシピとして受け取られているように私は時々感じます。このが変数名は意味を持つようにつけられるべきだと言うなら、名前が使い方を説明するちょっとしたエッセイのような

    C言語プログラミングの覚え書き(改訳) - アスペ日記
  • 善意のひどい訳について - アスペ日記

    2014/10/14 追記: 補足記事を書きました。なぜ誤訳指摘をしたか ぼくは、ずっと昔から「ひどい翻訳」というものに憤りを感じてきた。 以前、別の記事に書いたこともある。 統計学を拓いた異才たちのようなひどい翻訳を見るたびに、どうして世の中からはこの手の悲劇がなくならないのかとため息が出る。 この前、またひどい翻訳を目にする機会があった。 C言語でプログラミングする際の覚書 ちょっと原文と比較すると致命的な誤訳がいくつも見つかる、最低クラスの翻訳だ。 やれやれと思いながら、翻訳のひどさを嘆くコメントをはてブに残して、ツイッターに流した。 pretty printers を優秀なプリンターと訳しているのを見て、これはちょっと手のつけようのない何かだと悟った / “C言語でプログラミングする際の覚書(Notes on Programming in C) - YAMAG…” URL 2014

    善意のひどい訳について - アスペ日記
    ch1248
    ch1248 2014/10/14
    良エントリ
  • 今、Cで開発するためのスタンダードを知るための本 - L'eclat des jours(2013-09-30)

    _ 今、Cで開発するためのスタンダードを知るための 例によってアスキーの鈴木さんから、をもらった。花井さんのモダンC言語プログラミングだ。なお、似たような題の洋書があって、しかも花井さんは翻訳もするので、そのの翻訳書と勘違いされる可能性もありそうだが、完全にオリジナルだ。 Cは、Unixと共に(というか少し遅れて)生まれたということは、すでに40年以上の歴史があり、それだけの年月がたてば、COBOLなどと同じく老害言語と言われてもこれっぽっちもおかしくはない。 ところが、COBOLと異なり開発者市場がどんどん先細り(あるいは固定化)されるということはなく、むしろ増えている。それどころか最近の調査では最も利用されている(TIOBE 2013)。 一方、C++が先鞭をつけたビジネスプログラミングへのオブジェクト指向プログラミングの適用は、Java、Objective-C、C#と種類を増や

  • feof関数でwhileループを回す奴はド素人 - hnwの日記

    (2013-04-07 01:30追記)補足のコードに恥ずかしい間違いがあったのを修正しました。@nonakapさん、id:s-tomoさん、ご指摘ありがとうございます。 (2013-04-07 10:00追記)「補足その2」を書き足しました。 (2017-04-23追記)論旨がわかりにくい部分があったので、整理しました stackoverflowの記事「“while( !feof( file ) )” is always wrong」をざっくり翻訳してみます。これはWilliam Pursellさんによる自作自演スレ(回答者も人)で、Cでwhile( !feof( file ) )というループを作るのが悪い理由を説明するものです。 ちなみにPHPについてもほぼ同じことが言えますので、PHPプログラマの方にも一読をお勧めします(PHPの主要なファイル操作関数はCとほぼ同じインターフェース

    feof関数でwhileループを回す奴はド素人 - hnwの日記
  • 1