プログラミング

コードでモデリング!(2)

結構、頭働かせて導いた結論なのに、既に答えは出てたのか...。・Quick JUnit 0.0.4 のEclipse 3.0.xでの動作について, オレの考えた開発プロセス - 角谷HTML化計画(2005-05-02)でもいいや、あとは約束の地に向けて邁進するだけだ!!

コードでモデリング!

とりあえず、プログラミングという行為こそが設計である。という事実をお伝えしたい。・http://www.biwa.ne.jp/~mmura/SoftwareDevelopment/WhatIsSoftwareDesignJ.html ・¿·¤·¤¤¥½¥Õ¥È¥¦¥¨¥¢³«È¯¼êË¡異論・反論多数ありそうだが、少なくとも私はこの事実こ…

美しいコード

昨日の「プログラミングは抽象化」([id:emeitch:20050524])で、美しいコードについて語ったが、これを書いた後でなんだかもやもやした。「美しいコード=適切に抽象化されたコード」と定義したが、この適切な抽象化とは、目的でなく手段のように思えたのだ…

プログラミングは抽象化

・プログラム言語と抽象化 (http://www.slis.tsukuba.ac.jp/library/Kanpo/Vol14No3/nakata.html)日本におけるコンパイラ業界(?)の第一人者である、中田育男先生の文書。私は、プログラミングの技術は、抽象化が全てだと思っている。どれだけ抽象化をサ…

RubyかLuaか。

Ruby組み込みとRuby/GTKを参考に、DirectXのライブラリのRuby用ラッパーを少し書いた。...。面倒&不安だ。ラッパーを書くのが超面倒だ。まぁ、これは我慢するとしても、コンパイル段階で、ソケット関係の識別子の競合を押さえ込んだり、呼出規約やらのエラ…

Rubyを選ぶ理由。

今回Rubyを選んだ理由は下記に書いてあることとほとんど同じだ。 僕やはてながPerlを選ぶ理由 - naoyaのはてなダイアリーわかるなぁ〜。やっぱ、C/C++って硬いんだよ。というか、静的型とか、コンパイルが必要な言語や処理系ってすごく硬い。“ソフトウェア”…

UNIXプログラミング環境で学習(2)

とりあえず、1.2 まで。edの使い方と、grepが何の略かを学んだ。edでテキスト編集するとは思わなかった...。

UNIXプログラミング環境で学習(1)

「UNIXプログラミング環境」の中味を実践するため、久し振りにLinuxを立ち上げる。前回立ち上げてからプロバイダを変更したりしたから、ネットワークの設定をしなおし。すっかり、やり方わすれてて、すごい時間を食う。設定し終えたころには、もう寝る時間。…

Code Reading

とりあえず7章まで読了。ここまで読んでも、データ構造やら、制御構造やら、プログラミングの基礎っぽいことから、C/C++のお勉強みたいなことが多く、あまりソースを読むための直接的な技術に触れている部分は少ない。なんだか目次を見ても、これからそうい…

UNIXプログラミング環境

頼んでおいた、UNIXプログラミング環境(ISBN:4871483517)が届きました。とりあえず、川合式初級プログラミング学習法一ヶ月目開始です。Code Reading(ISBN:4839912653)も同時並行で読んでいきます。

変更に強いプログラム

本日の業務で、文字描画系に関する変更提案を受けた。具体的には、行頭禁則処理時に、その前行の行末に空いた空間を左右均等割付にしてくれとのこと。どう実現すればよいかという案はいくらでも浮かぶ。問題なのは、如何に現存のソースを流用できるかだ。無…

初級プログラマ最短作成方法

shiroさんの日記から、もう一個。 プログラミングを基礎から、しかも手っ取り早く身につけるにはどんなコースが良いだろう。 まずは、Unix環境でOSの概念とCの基礎を身につける。低レベルのインタフェースまでブラックボックスになってしまっているのは、学…

コンパイラを作ろうを一時中断

最近、自分のこれからの学習方法がある程度身定まってきたので、いままで学習企画的にやってた「コンパイラを作ろう」を一時中断。んでも、オープンソースは言語処理系を中心に読んでいくつもりなので、結局やること自体あまり変わりないかも。

ボトムアップ&トップダウン学習

shiroさんの日記から、また興味深いものを発見。 ...プログラミングの考え方がわかっている人には、言語の基本となる本を一冊 (Perlなら駱駝本とか) 学びつつ、他人のコードを大量に読むことを勧めている。数万行とか数十万行のオープンソースのコードでバグ…

コメントにはHOWでなくWHYを!

http://amrita.s14.xrea.com/d/?date=20050509にて、プログラムのコメントに関する重要なことが書いてあるのでメモ。 プログラミングにおいても、HOWの部分は、(人間にはわかりにくいこともあるが)ソースコードの中に表現されている。だから、WHYをコメント…

買っちゃった...。

買っちゃいました、Code Reading(ISBN:4839912653)。やねうらおさんが言われてることもわかるんです。 (http://d.hatena.ne.jp/yaneurao/20040730#p1) でも、やっぱりオープンソースをこれから渡り歩こうとするなか、なんの指針もないとさすがに不安なので…

「Unix vs Windows」と「Lisp vs C」

「Unix vs Windows」の議論と、「Lips vs C(自然言語的記述を考慮したプログラミング言語)」の議論はすごく似ているような気がする。終着ポイントは、「機械的作業のさせやすさ vs とっつきやすさ」かな。つまりは、機械に積極的に仕事させたい人は、Unixお…

心構えは技能の代用にはならない

「小説の書き方」の本をたくさん見ただけで、本当に面白い小説を書けるはずがない。本物の小説家になりたいなら、良質な小説をたくさん読んで、小説をたくさん書かなければならない。もちろん、良質な小説をたくさん読んで、たくさん小説を書けば、必ず本物…

川合史朗さん

川合史朗さんは、いろいろな意味で私が一番尊敬しているプログラマです。氏をご存知でない方はこちらをどうぞ。 OOエンジニアの輪! 〜 第 21 回 川合史朗 さんの巻 〜 | オブジェクトの広場 http://www.shiro.dreamhost.com/scheme/index-j.html http://www…

「交渉人 真下正義」を記念して

・問題は、副作用を使うことじゃない!参照透明性が保てないことなんだ!一般に、副作用を用いることは、コード理解を阻害すると言われる。だが、純粋関数型言語でもあるHaskellにおいても、その処理系の内部モデルには歴然として、状態機械が存在している(…

関数型言語のオブジェクト

関数型言語にも、もちろんオブジェクトは存在する。 ただ、その状態を変更させることが好まれない(ときには禁止されている)だけである。ただそれだけ。

アイディアメモ

なんとなくアイディアのメモ:関数型パラダイムとオブジェクト指向パラダイムがうまく融合したものが、プログラミングの理想形な気がする。 実現したいものは、高メンテナンス性を維持するコード。 具体的手法は、理解しやすいマルチなディスパッチング、コ…

プログラミングのノウハウ

・プログラミングのノウハウ (http://namazu.org/~satoru/misc/knowhow.html)高林さんによる、プログラミングのノウハウの分類。この文書を見て、自分が今まで追っかけていたのは、「1.普遍的なノウハウ」なのだなぁとつくづく思った。でも、まわりのプロ…

コンパイラを作ろう(7)

演算子順位構文解析法をテストファーストで作ろう!と意気込んで、作りはじめた。とりあえず、抽象化を意識して、lexer のインターフェースを作って、それにテスト用具象クラスを突っ込んでテストを作り始めようと思ったのだが、インターフェースをどう作れ…

コンパイラを作ろう(6)

parserは解析が少し大変だ。とりあえず、「式」の解析に用いられている演算子順位構文解析法を改めて勉強。おもしろかったので、自分の脳内イメージだけで一度実装してみようと思ったのだが(Prove it!)、その実装をテストファーストでやってみたいなと思い…

コンパイラを作ろう!(5)

やっとこさ、http://www.cmagazine.jp/contents/200301.htmlのサンプルを試した。途中、整数の字句解析部で、値を取得するための自動変数が0で初期化されておらず、VCでビルドして実行したらランタイムエラーになってしまった。バグでしょうね、これは。とり…

コンパイラを作ろう!(4)

やっとこさ、http://www.cmagazine.jp/contents/200301.htmlの特集を読了。ってか、読むの遅すぎ。まとまった、時間がほしい...。 はやく、サンプルプログラムを実装してみて、挙動を手で確かめねば。こんなペースじゃ、いつオリジナルコンパイラなんて作れ…

コンパイラを作ろう!(3)

“Lisp処理系の作成”(ISBN:4871482006)が到着。パラパラ見ただけだけど、こりゃ面白そうだぁ。でも、まだやる予定だった分が進んでないから、とりあえず積み読。自分の自由な時間を作るって難しい...。

良いプログラマは数学を学ぶ、方が良いと思う

・良いプログラマは数学を学ぶ、方が良いと思う http://www.mars.dti.ne.jp/~kshara/progmath.html面白い文書発見。いろいろと参考になりそうだが、いかんせん自分が数学苦手派なのが問題か。嫌いではないのだが、高校を職業科を選択したのが間違いだった。…

コンパイラを作ろう!(2)

まず、昨日立てた作戦の最初の目標である、書籍サンプル実装にむけ、サンプル処理系が載っている書籍を探す。とりあえずは、http://www.cmagazine.jp/contents/200301.htmlあたりのサンプルでも作ろうかと思う。lexerおよびperserが手書きなところが最初の一…