hylomによる
2009年09月24日 13時17分の掲載
ちょっと勉強したい部門より。
ちょっと勉強したい部門より。
あるAnonymous Coward 曰く、
産業技術総合研究所により、関数型プログラミング言語「Agda」の研修コースが開催されるそうです(産総研:システム検証研究センター:CVS研修コース「Agdaによる仕様記述」)。
Agdaは強力な依存型を備えた関数型プログラミング言語であり、証明支援システムとして利用できることでも知られています。また、その形式手法はプログラムの不具合を防ぐ開発手段として近年注目を集めています。
受講対象はAgdaに興味がある技術者、マネージャ、学生ということで、ある程度の開発経験があれば問題ないそうです。形式手法やバグのないプログラム開発に興味のあるみなさんも参加してみてはいかがでしょうか。
関連ストーリー
Objective Caml 3.05 18 コメント
Firehose:証明支援系Agdaの研修コースが10月と11月に開催! by Anonymous Coward
プログラムの長さも考慮した言語ベンチマーク 22 コメント
なんてことをするんだ (スコア:4, おもしろおかしい)
リンク先より
>仕様や設計から曖昧さをなくし、全体の整合性を保証することができます。
仕様も考えず、アイディアだけ思いついて、面白い部分コア部分から作り始めてグダグダのうちに
何とか動くものを作る
->デバッグにつぐデバッグ、拡張に次ぐ拡張でコードはプログラマの管理能力を超えるまでにカオス化。
->半年~数年放って置かれる
->全面的にリライト。細部から全体にいたるまで問題点の俯瞰的な理解を得た今、
すばらしくすっきりしたコードが書ける。
->完成
という道をたどるのがプログラミングの楽しさ、醍醐味じゃないか。
え?趣味のプログラミングはそれでよいかもしれないが、
仕事で作られるプログラムはそれじゃだめだろうって。
はっはっは、何言ってんですか。プログラミングなんて仕事にするもんじゃないですよ。
コメントを書く
Re:なんてことをするんだ (スコア:4, おもしろおかしい)
いろいろ良さ気な感じに聞こえますが、次のような機能はないんでしょうか?
・営業が短納期で受注するのを防ぐ機能
・仕様が固まるのにかかって遅れた時間の分だけ納期をのばす機能
この辺の機能が実装されれば間違いなくブレイクすると思います。
◆IZUMI162i6 [mailto]
Free or not Free, that is the question.
コメントを書く
親コメント
おもしろおかしいばかりだ (スコア:4, おもしろおかしい)
私はしきい値を3に設定し、すば洞や参考になるは+1になるようにして普段見ているが、
おもしろおかしいモデだけしか出てこないストーリーは初めてかも知れない。
おもしろおかしいは1モデ程度のものは面白おかしくないものが多いので、+補正はしていないのだが。
コメントを書く
名前の由来は (スコア:2)
それとも Anti GuDA guda ですかね。
コメントを書く
どんな言語を使おうが (スコア:2)
プログラムは書いた通りにしか動かない
コメントを書く
「教え方による」というのは同意だけど (スコア:4, おもしろおかしい)
>万物の霊長が0と1の羅列ごときに負けるはずがない
A、T、G、Cのバリエーション舐めんな
コメントを書く
親コメント
Re:教え方による (スコア:2, おもしろおかしい)
人間は書いたとおりに読まないのにね。
◆IZUMI162i6 [mailto]
Free or not Free, that is the question.
コメントを書く
親コメント
もっと目をキラキラさせるべき (スコア:2, 興味深い)
3種類ぐらいの大分類に分かれる仕様記述言語において、Agdaは仕様の形式検証に重点が置かれているタイプ。
普通なら何十パターンかのテストパターンを与えて、ブラックボックステストも十分時間をかけて行いようやく発見できるかどうかという類のバグが
検証器を通せばぴたりとわかるのはすばらしい(シークエント計算なんて全くついて行けてないがチュートリアルhttp://unit.aist.go.jp/cvs/Agda/main.pdf [aist.go.jp]p.54とかあとagdaでググったり)
もっとも、ソフトウエアの論理の妥当性を形式検証しようという企ては歴史がかなり古いはずなのに
未だ現場プログラマーから冷淡な視線を浴びせられ続ける現実がこの分野の袋小路寸前の困難さを表しているのかも(汗
ただし、型関連の記述ミスをビルド一発で白黒つけられるという強く型付けられた言語(CやC++やC#やJava、but not JavaScript)の特質も
形式検証技術の遠い親戚なはずで現場においても全く御利益を被っていないわけではない
…と思う
コメントを書く
どちらかというと (スコア:1)
要件があやふやだったとか、仕様の詰めが甘いとか、入力されるデータを全部想定できてなかったとか、ミドルウェア・DB等の挙動を理解していなかったとか、そういうのが後々禍根を残すようなバグの原因だと思うのですが・・・。
で、そんなのは防げるんでしょうか。
神社でC#.NET
コメントを書く
Re:どちらかというと (スコア:2, 興味深い)
どっちかというと、「要件があやふやだったり、仕様の詰めが甘かったり、入力されるデータを全部想定できてなかったり」したらプログラムが書けない、という方向が近い気がします。
ミドルウェア、DB等の挙動についても、原理的には、それらのインタフェース仕様が当該言語で与えられている場合、挙動を理解せずに書くと仕様の整合性がとれてないと怒られる、といった感じだと思うんですが、実際にAgdaみたいな言語から一般的なDBが叩けるレイヤが提供されているのかどうかは知りません。
もちろん、本来の要件に対して間違ったモデル化をして仕様定義してしまう、というバグについてはいかんともしがたいでしょう。
コメントを書く
親コメント
釣り!? (スコア:1)
> バグのないプログラム開発に興味のあるみなさんも参加してみてはいかがでしょうか
本当に「バグのないプログラム開発」なんて絵空事が実現できるなら参加してみたいかもw
だって、仕様書にバグがあった場合とか、仕様書を読む人間の理解度不足による実装ミス(バグ)
はどんな言語を使っても回避不可能でしょ。<多くのバグの発生箇所ってここでしょw
基本的にプログラムは書いた通りにしか動かないわけだし。
また、勝手にコンパイラやリンカに書き換えられても迷惑だしなw
<最適化とかでも酷い目にあうのにw
コメントを書く
Re:釣り!? (スコア:5, おもしろおかしい)
将軍「バグのないプログラムを作ってみせよ」
一休「ではバグのない仕様書を出してください」
コメントを書く
親コメント
物は言いよう (スコア:1)
出来上がったプログラムそのものにバグが無いと言っているわけじゃないんですよね?
#仕様の時点でバグっているものをどうやってバグ無しで作れと
コメントを書く
Re:バグのないプログラム (スコア:2)
黄色いバグで一掃だ~♪
コメントを書く
親コメント
Re:関数型プログラミング言語「Ahoka」に見えた。 (スコア:1)
関西型かよ!
コメントを書く
親コメント