タグ

programmingとCに関するsuginoyのブックマーク (8)

  • Top | 間違ったコードはコンパイルできないようにする

    ハンガリアン記法に関する間違った意見をよく目にする。Making Wrong Code Look Wrong (間違ったコードは間違って見えるようにする)の記事では、ハンガリアン記法でもアプリケーションハンガリアンは有用だと主張している。もちろん、わかりやすい変数名を使用することには賛成だが、変数名を人間が目で見て正しいかどうかを判断しなければならないようなルールに価値はないと確信している。ワインバーグではないが、計算機が得意なことは計算機にやらせればよいのであって、人間がやることではないのだ。ソフトウェア工学的に正しいのは、間違ったコードはコンパイルエラーになるようにする、ということだ。 アプリケーションハンガリアンが善だと思い込んでる素人は、この続きを読まずにマンガ喫茶にでも行って時間を過ごして欲しい。 当のソリューションは静的解析で正しさを証明すること 前述の記事では、アプリケーシ

  • スクールガールストライカーズの 内製クライアントエンジン

    近年、ハイスペックなスマートフォン、高品質なネットワークが普及し、それによりモバイルゲームの制作手法やそれを取り巻く環境も変化してきました。スクウェア・エニックスでは、そのような環境の変化に対して、日々新たなチャレンジをし続けています。そして、このようなスピード感溢れる業界の流れには、会社の枠を超えた技術情報の共有、交流が欠かせないと感じております。 そこでこの夏、社内のエンジニア・テクニカルディレクターによる最新のモバイル開発の技術情報や社内モバイルエンジン、開発秘話によるセッションをメインに、スクウェア・エニックス モバイル オープンカンファレンスを開催する運びとなりました。また、セッションの後は登壇する弊社スタッフと直接ディスカッションやフリートークができる場を設けております。この機会にスクウェア・エニックスという会社についても、より詳しく知って頂ければ幸いです。 マネージャー・テク

  • 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

  • GNU GLOBALとvimで巨大なコードでも快適にコードリーディング

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 これまでも、多くの記事にされていて、恐らくKernelや巨大なコードを読んでいる人にとっては当たり前なのかもしれませんが、あまりに快適だったのとこれをきちんとやれてなかった事に自戒をこめて記事にしようと思います。grepとかscreenを駆使していた時間を返してほしい! 対象者 僕がLinux大好きなので、Linux上での動作を前提にしています。対象者はLinux KernelやApache HTTP Server等、数万から数十万、さらには数百万行のコードをじっくり読んでいきたいと考えている人におすすめしたいと思います。巨大なコードを何のツールも使わずに読むのはかなりきついはずです。しかし、今回はGNU GLOBALと呼ばれるソースコードタ

  • ギャップ・バッファ

    説明 ギャップ・バッファは,テキスト・エディタなどで用いられる,シーケンスを扱うデータ構造です. ここで公開するプログラムはK. Inaba氏の制作されたエディタ,GreenPadにおいて使われているギャップ・バッファをC++言語に含まれるSTLのvectorを使うように改造したものです. また,それをC言語のみで書き直したものも公開しています. 両方ともNYSL(ライセンス)とします. ダウンロード C++言語版: (2003年3月26日) gapbuffer.h C言語版: (2008年9月19日)- 仮の実装なのでバグがあるかもしれません. gbuf.h gbuf.c 解説 ギャップ・バッファはテキスト・エディタのテキスト・バッファなど,長く連なるデータを保持する際に用いられるシーケンス・コンテナです. 局所的な要素の挿入,削除を頻繁にする場合に適したデータ構造です. 双方向リスト(

  • perfの使いかた

    概要 Linuxのパフォーマンス解析ツールであるperfの使いかたの紹介 背景 個人的にperfよくできてると思うので紹介したいというのと、 パフォーマンスカウンタの読み方ってあんまり知られてないみたいなので、 それの解説を書きたい。 構成 perf について説明したあと、パフォーマンスカウンタの読みかた、見かた、を説明する。 perfとは何か Linuxに付いてくるプロファイラ。 man perf によると、 NAME ---- perf - Performance analysis tools for Linux と、書いてある。名前がひどいのでなんとかしてほしい。 perf の特徴 個人的には、手軽に使えるのが素晴らしいと思う。 2.6.31以降カーネルに標準で付いてる。(Ubuntuだとlinux-tools-common(TODO:あとで確認)で入るはず) 特殊な設定が必要無く、

  • Cライブラリを書くベストプラクティス - YAMDAS現更新履歴

    LWN.net で知ったのだが、David Zeuthen という人が、C 言語でのライブラリについて網羅的なガイドを公開している。 現時点でパート5まで書かれているが、これで全部なのだろうか。いずれにしても相当な量である。これはいずれ書籍化されるんじゃないかしら。個人的にはネットワーキングが対象外なのが残念だが、確かにここで扱う話じゃないか。 この分野はCが生きる場所じゃないかね。

    Cライブラリを書くベストプラクティス - YAMDAS現更新履歴
  • 本の虫: 多くのプログラマは言語を表面的な理解だけで使っている

    一般のプログラマの多くは、プログラミング言語というものを、ごく浅い表面的な理解だけで使っている。これは、いわゆる「入門書」によるところが大きい。入門書は、言語をできるだけパターンで教えようとする。かくかくしかじかの場合には、とらとらうまうまのように書いておけばいい、などといった具合だ。 たとえば、配列の全要素や、aggregateの全メンバーをゼロで初期化したいとする。多くのC++プログラマは、以下のように書く事であろう。 int a[100] = {0} ; このコードは、正しく動く。配列aの要素は、すべてゼロで初期化される。しかし、C++という言語を考えた場合、{0}と書く必要はない。空の{}で十分なのである。 int a[100] = {} ; では何故、多くのC++プログラマは{0}と書くのか。それは、多くの参考書が、そのように書いているからに過ぎない。大多数のC++プログラマは、

  • 1