Google+ で Rob Pike 氏が語ったところによると、C 言語の開発者、K&R の R であるところの Dennis Ritchie 博士が亡くなられた。70 歳 (Rob Pike 氏による Google+ への投稿) 。 長らく闘病中だったとのことで、先週末に自宅で息を引き取ったそうだ。
Google が C++ と Java、Go、Scala の 4 言語に対し、比較・調査を行った結果を公開している (論文 PDF) 。 この比較・調査には各言語で慣例的なコンテナクラスやループ構築方法、メモリ/オブジェクト割り当てスキーマを用い、言語機能やその際のコードの複雑さ、コンパイラやコンパイル時間、バイナリサイズ、実行時間、メモリフットプリントを調査した。ベンチマークのソースコードは Google Code 上で公開されている。 結論としては、これらの言語の中では C++ がもっともパフォーマンスの優れた言語、ということになったそうだ。ただし、C++ にはチューニングの自由度が高く、ベンチマークには平均的なプログラマでは記述できないような洗練されたコードも含まれているという (つまり、優れたプログラマでないとパフォーマンスを出せない可能性があるということか) 。 また、Java
最近ツイッターで "while(1){LOVE++}"と書き込まれてる指輪があって、 そのソースは最適化でLOVEが消えてただの無限ループになる云々という話があったので検証。 http://togetter.com/li/144840 用意したソースはこちら。 int main() { int LOVE = 0; while(1){LOVE++;} } それじゃアセンブラを見てみましょ。 まずは最適化抜き。 gcc -O0 -s hoge.c .file "hoge.c" .text .globl main .type main, @function main: pushl %ebp movl %esp, %ebp subl $16, %esp movl $0, -4(%ebp) ;LOVE=0 .L2: addl $1, -4(%ebp) ;LOVE++ jmp .L2 ;JUMP TO
コンストラクタでの例外はあり?なし? http://togetter.com/li/54761 私の昨日の記事が発端でなんか興味深い議論になっている模様。 以下、twitterでは文字数的に書ききれないことをだらだらと。 二段階初期化(コンストラクタとは別に初期化関数を呼んでオブジェクトの構築をするような設計)は面倒なのでC#では私は、やらないですね。それで困ったことは特に無いのでまあ問題ないんだろうとは思ってます。また、コンストラクタでオブジェクトの構築が終わっていて、そのあとはimmutable(=内部の状態が不変)であるほうがオブジェクトの性質として望ましいというのもあります。 ああ、あと巨大なresourceを扱うなら、管理用のクラス(cache sizeの上限を設けて、アクセスしたtime stampの古いresourceから自動的に解放するだとか)を作るでしょうから、try〜c
C#3.0からはvarと書くと型を明示的に指定しなくても済む。 var hoge = new HogeClass(); しかし例外処理をするためにこれをtry〜catchで囲みたいとする。 try { var hoge = new HogeClass(); hoge.XXX(); } catch { if (hoge!=null) hoge.YYY(); } このプログラムはコンパイルが通らない。catchのなかでは変数hogeにアクセスできない。try節が終わっているため、hogeのスコープが終わってしまうのだ。仕方ないのでhogeを外部のブロックに出す。 var hoge; try { hoge = new HogeClass(); hoge.XXX(); } catch { if (hoge!=null) hoge.YYY(); } しかしこれまたコンパイルが通らない。var hog
今AngelBeats!見てます。天使ちゃんマジ天使でいいと思います。 で、だいぶ前に作ったScala版のちょっと草植えときますね型言語 Grassを改造して、プログラミング言語 「天使ちゃんマジ天使」とプログラミング言語 「ブブゼラ」を作ってみたよ。 Grassは、id:uenoB 作の型無しラムダ計算がベースをした関数型言語らしいです。(6/22追記) ちょっと草植えときますね型言語 Grassについてはこちら。 世界で最初のGrassプログラム - Garage uenoB ちょっと草植えときますね型言語 Grass プログラミング言語 「天使ちゃんマジ天使」 ちょっと草植えときますね型言語 Grassの派生言語というかまんまです。 Grassで使用する文字(w,W,v)をそれぞれ(天使, マジ, ! )に置き換えただけです。 wを出力するプログラム: 天使ちゃんマジマジ天使天使ちゃ
民主党風な発言を普通にするプログラマーって、結構いるよね・・・ 上司 「何故進捗50%なんて嘘をついていたんだ!!まだ30%程度じゃないか!!」 PG 「進捗率というものが、どういうものなのかよくわからない」 仕様書無しさん :2010/01/25(月) 15:44:23 上司 「おいおい、どこをどうやったらこんなバグを仕込むんだよ」 ハト 「知らない」 上司 「知らないってことないだろ!お前が打ち込んだんだよ、これは。間違いなく!」 ハト 「忘れました」 上司 「ふざけんな!もうお前には一切仕事与えんからな!!」 ハト 「信じてください!!!僕は本当は優秀なんですけど、まだ試用期間中だから本気じゃないんです!トラスト・ミー!」 4 仕様書無しさん :2010/01/25(月) 16:24:27 「見つからなければ、バグを直す必要はない」 「直したじゃないか。何が
グーグルが新プログラミング言語「Noop」を公開しました。Noopは新旧のプログラミング言語からいいとこ取りをした、JavaVMで動作するプログラミング言語と説明されています。 Noopは、サン・マイクロシステムズで開催中の「JVM Language Summit」で、グーグルの2人のエンジニア、Alex Eagle氏とJérémie Lenfant-Engelmann氏によって発表されました。 すでにJVM Language Summitでの発表資料がPDFとして公開されており、その資料には、Noopのミッションが次のように説明されています。 Noop's mission Help teams develop software that is easier to understand and maintain. Noopのミッション 分かりやすくメンテナンスしやすいソフトウェアのチーム開
ソフトウェアを作成するには、プログラム用の特別な言語(=「プログラミング言語」と呼ばれる)で、そのソフトウェアの動作や見た目を記述する必要がある。本稿で紹介する「Small Basic」とは、そのようなプログラミング言語の1つである(※ただし、執筆現時点での最新バージョンは「0.6」で、まだ正式版ではなく、日本語版もまだない。2010年2月8日現在、「0.8」で日本語版の提供が開始された)。 なぜ、いまさらそのようなプログラミング言語が新たに作られてようとしているのか。 Visual BasicやC#、Java、Rubyなどの最近のプログラミング言語は長年蓄積されてきた技術や考えが多数導入されており、プログラミング言語が誕生した当時から比べると、非常に洗練されてきている。しかも、機能も盛りだくさんである。洗練されて機能が豊富ということは、それだけ「プログラミング初心者が学ぶには難しい」とい
御仏前のお金の入れ方、人生においてなかなかあるものではないですよね。 ですから正しいマナーを知っている人は少ないかと思います。 ですが知っている人は知っているもの。 知らないと、恥をかく可能性があります。 本記事では御仏前のお金の入れ方や包み方を解説。 お札の向きや金額など正しいマナーを身に付けてくださいね。 もちろん、こじつけのようなマナーではなく汎用性の高いマナーなのでご安心ください。 お札の入れ方 新札は避けよう 結婚式のマナーは良く浸透しているもので、ご祝儀は新札で。という事を知っている人は多いですよね。 それとは逆に、御仏前の場合は新札は避けるべきです。 新札があまり良くない理由は、あらかじめ想定していた出来事ととらえられる可能性があるからです。 現代社会において、このような風習は徐々にすたれつつありますが、お年を召された方などは気にする方が非常にたくさんいます。 御仏前に入れる
以前から、小学生や中学生にプログラミングの楽しさを伝えることはできないかなーと、ずっと思ってました。 PCや、インターネットが当たり前にあって、ゲームもちょっとお小遣いとかお年玉を貯めれば買えてしまう時代だからこそ、「自分でなにかを作り出す」とか「コンピュータを操ってみる」って感じを、早いうちに知っておくのは損ではないのではないか、と。 そんなことを、あちこちで言っていたら、一緒にやりましょうという方があらわれ、その方の企画のもと、そんなイベントが実現しました。 今回は、某小学校のコンピュータ室を使って、小学3年生から、6年生までの子供たちに、 Scratch を使って、プラグラミングプログラミングの楽しさを伝えてきました。 小学生とはいえ、彼ら彼女らは、普通にマウスも使えるし、PCの電源の切り方もしっかり知っています。PCを道具として使うことはすでに分かっている子供たちばかりです。 とり
マイクロソフト株式会社 ( 本社 : 東京都渋谷区) は、本日 7 月 9 日 ( 木) 、ゲーム統合開発環境の最新版である 「XNA® Game Studio 3.1 日本語版」 の提供を開始したことを発表しました。 この 「XNA Games Studio 3.1 日本語版」 の提供によって、個人やグループでゲームを制作している日本の学生や愛好家、プロのゲーム開発者など、国内における全てのゲーム クリエーターの方々が、マイクロソフトの .NET Framework をベースとしたゲーム開発フレームワーク 「XNA Framework」 を活用し、Windows® や Xbox 360® 向けにゲームを制作する開発環境が整いました。 「XNA Games Studio 3.1 日本語版」 および、併せて使用することができる 「Visual C#® 2008 Express Edition
ゲームの作り方とアルゴリズムをジャンル別にまとめてみました。ゲーム制作や、プログラミングの勉強用にご活用ください。言語別ゲームプログラミング制作講座一覧もあわせてお読みください。 リンク切れがおきていたものは、URLを表示しておくので、Internet Archiveなどでキャッシュを表示させてみてください。 RPG ゲームの乱数解析 乱数を利用した敵出現アルゴリズムの解説 各種ゲームプログラム解析 FF、ドラクエ、ロマサガのプログラムの解析。乱数の計算など ダメージ計算あれこれ(http://ysfactory.nobody.jp/ys/prg/calculation_public.html) ダメージの計算式 エンカウントについて考えてみる エンカウント(マップでの敵との遭遇)の処理方法いろいろ RPGの作り方 - ゲームヘル2000 RPGのアルゴリズム ドルアーガの塔 乱数の工夫の
もうやらなくていい昔のコーディングテクニックあれこれという話題がありました。過去は過去として振り返るのは有効ですが、それを踏まえた上で、将来しなくても良くなるコーディングテクニック、というのは何でしょうか ? IDE や言語環境の改善により、人間が無駄なことをしなくて済む環境は整いつつあるも、まだまだ改善しなければならない部分は多い。そんな環境改善に伴い、今は行っているけど将来的には意味が乏しくなるコーディングテクニックというのを語り合うのも面白いのではなかろうか ? 日頃の不満点、こうなったらいいな、など色々思いはあるでしょうが、コーディングテクニック関連の雑談ということでは丁度良い機会でもあることだし、忌憚無い意見をお聞かせ下さい。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く