パスワードを忘れた? アカウント作成
146090 story
プログラミング

関数型プログラミング言語「Agda」の研修コースを産総研が開催 75

ストーリー by hylom
ちょっと勉強したい 部門より

あるAnonymous Coward 曰く、

産業技術総合研究所により、関数型プログラミング言語「Agda」の研修コースが開催されるそうです(産総研:システム検証研究センター:CVS研修コース「Agdaによる仕様記述」)。

Agdaは強力な依存型を備えた関数型プログラミング言語であり、証明支援システムとして利用できることでも知られています。また、その形式手法はプログラムの不具合を防ぐ開発手段として近年注目を集めています。

受講対象はAgdaに興味がある技術者、マネージャ、学生ということで、ある程度の開発経験があれば問題ないそうです。形式手法やバグのないプログラム開発に興味のあるみなさんも参加してみてはいかがでしょうか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • なんてことをするんだ (スコア:4, おもしろおかしい)

    by Anonymous Coward on 2009年09月24日 14時00分 (#1643783)

    リンク先より

    >仕様や設計から曖昧さをなくし、全体の整合性を保証することができます。

    仕様も考えず、アイディアだけ思いついて、面白い部分コア部分から作り始めてグダグダのうちに
    何とか動くものを作る

    ->デバッグにつぐデバッグ、拡張に次ぐ拡張でコードはプログラマの管理能力を超えるまでにカオス化。

    ->半年~数年放って置かれる

    ->全面的にリライト。細部から全体にいたるまで問題点の俯瞰的な理解を得た今、
    すばらしくすっきりしたコードが書ける。

    ->完成

    という道をたどるのがプログラミングの楽しさ、醍醐味じゃないか。

    え?趣味のプログラミングはそれでよいかもしれないが、
    仕事で作られるプログラムはそれじゃだめだろうって。
    はっはっは、何言ってんですか。プログラミングなんて仕事にするもんじゃないですよ。

  • by equo (19526) on 2009年09月25日 11時44分 (#1644140)

    私はしきい値を3に設定し、すば洞や参考になるは+1になるようにして普段見ているが、
    おもしろおかしいモデだけしか出てこないストーリーは初めてかも知れない。

    おもしろおかしいは1モデ程度のものは面白おかしくないものが多いので、+補正はしていないのだが。

  • by new release (37404) on 2009年09月24日 14時39分 (#1643806) 日記
    やっぱり、「あーぐだぐだ」-> a- guda guda -> agda ですかね。
    それとも Anti GuDA guda ですかね。
    • Re:名前の由来は (スコア:1, おもしろおかしい)

      by Anonymous Coward on 2009年09月24日 14時44分 (#1643810)

      Agdaと聞いて、即完顔阿骨打を連想した俺はエロマンガ脳
      #いや好きではないんだが

      親コメント
      • by Anonymous Coward
        「歴史脳」と書いておけば何も問題ないものを。
    • Re:名前の由来は (スコア:1, すばらしい洞察)

      by Anonymous Coward on 2009年09月25日 0時29分 (#1643983)

      Agda言語で書かれたプログラムは世界で一番優れたプログラムだ!
      私は今までに一度も間違ったことのないプログラマだ!

      ♪世界で一番すぐれた言語♪
      ♪命令絶対 規則はいっぱい♪

      ルチ将軍万歳!

      親コメント
  • プログラムは書いた通りにしか動かない

    • by Anonymous Coward

      逆じゃないですかね。
      形式仕様言語とか詳しくはないですが、詳しい人の話を伺っている限りでは、「動かないように書く」ことをいかに防ぐか? という話のようですが。

      書いたようにすら動かないコンピュータの話なんか、誰もしてませんよ?

    • by Anonymous Coward
      まさに、こういう格言をなくすための取り組みですね。この言語。
      「思わなかったことが書かれれば、すぐ目に付く」言語なら「思ったことが書けている」可能性が上がり、
      すなわち、「思ったとおりに動く。」
  • by Anonymous Coward on 2009年09月24日 21時53分 (#1643934)

    3種類ぐらいの大分類に分かれる仕様記述言語において、Agdaは仕様の形式検証に重点が置かれているタイプ。
    普通なら何十パターンかのテストパターンを与えて、ブラックボックステストも十分時間をかけて行いようやく発見できるかどうかという類のバグが
    検証器を通せばぴたりとわかるのはすばらしい(シークエント計算なんて全くついて行けてないがチュートリアルhttp://unit.aist.go.jp/cvs/Agda/main.pdf [aist.go.jp]p.54とかあとagdaでググったり)

    もっとも、ソフトウエアの論理の妥当性を形式検証しようという企ては歴史がかなり古いはずなのに
    未だ現場プログラマーから冷淡な視線を浴びせられ続ける現実がこの分野の袋小路寸前の困難さを表しているのかも(汗

    ただし、型関連の記述ミスをビルド一発で白黒つけられるという強く型付けられた言語(CやC++やC#やJava、but not JavaScript)の特質も
    形式検証技術の遠い親戚なはずで現場においても全く御利益を被っていないわけではない
    …と思う

    • by Anonymous Coward
      > もっとも、ソフトウエアの論理の妥当性を形式検証しようという企ては歴史がかなり古いはずなのに
      > 未だ現場プログラマーから冷淡な視線を浴びせられ続ける現実がこの分野の袋小路寸前の困難さを表しているのかも(汗

      ハードウェアの世界では形式的検証は実用化されているのにねえ
      なんでだろ
      • by Anonymous Coward

        至って明快な話でして。単に状態数が少ないからですよ。

  • 要件があやふやだったとか、仕様の詰めが甘いとか、入力されるデータを全部想定できてなかったとか、ミドルウェア・DB等の挙動を理解していなかったとか、そういうのが後々禍根を残すようなバグの原因だと思うのですが・・・。

    で、そんなのは防げるんでしょうか。

    --
    神社でC#.NET
    • by Anonymous Coward on 2009年09月24日 17時19分 (#1643871)

      どっちかというと、「要件があやふやだったり、仕様の詰めが甘かったり、入力されるデータを全部想定できてなかったり」したらプログラムが書けない、という方向が近い気がします。

      ミドルウェア、DB等の挙動についても、原理的には、それらのインタフェース仕様が当該言語で与えられている場合、挙動を理解せずに書くと仕様の整合性がとれてないと怒られる、といった感じだと思うんですが、実際にAgdaみたいな言語から一般的なDBが叩けるレイヤが提供されているのかどうかは知りません。

      もちろん、本来の要件に対して間違ったモデル化をして仕様定義してしまう、というバグについてはいかんともしがたいでしょう。

      親コメント
  • by kikumaru (38177) on 2009年09月24日 15時53分 (#1643830)

    > バグのないプログラム開発に興味のあるみなさんも参加してみてはいかがでしょうか

    本当に「バグのないプログラム開発」なんて絵空事が実現できるなら参加してみたいかもw
    だって、仕様書にバグがあった場合とか、仕様書を読む人間の理解度不足による実装ミス(バグ)
    はどんな言語を使っても回避不可能でしょ。<多くのバグの発生箇所ってここでしょw
    基本的にプログラムは書いた通りにしか動かないわけだし。
    また、勝手にコンパイラやリンカに書き換えられても迷惑だしなw 
    <最適化とかでも酷い目にあうのにw

    • Re:釣り!? (スコア:5, おもしろおかしい)

      by Anonymous Coward on 2009年09月24日 17時34分 (#1643878)

      将軍「バグのないプログラムを作ってみせよ」
      一休「ではバグのない仕様書を出してください」

      親コメント
    • by T.SKG (20663) on 2009年09月24日 17時13分 (#1643868) 日記
      > バグのないプログラム開発

      「これこれなので、バグが減ります」という説明は、プログラムに素人な経営者に
      受けが良いので、新しい言語を売り込もうとした時、いつも(何十年も)使われている、
      売り文句ですね。

      まあその辺は、例えばセミナーへの出張を申請する際に、適当に引用する程度にして
      こういう新しい言語は、頭の体操だと思えば、なかなか面白いです。
      親コメント
      • by kikumaru (38177) on 2009年09月24日 21時55分 (#1643935)

        >「これこれなので、バグが減ります」という説明は、プログラムに素人な経営者に
        > 受けが良いので、新しい言語を売り込もうとした時、いつも(何十年も)使われている、
        > 売り文句ですね。

        御意。
        ただ、この売り文句が似非くささを醸し出す原因なのに、
        何処も止めないんだよねぇ~。<またかと思ってしまう。

        親コメント
        • by Anonymous Coward

          そうかなぁ、同じモノを同じスキルの人が作るなら
          新しい言語と古い言語のバグは雲泥の差があると思うけど

          時代の変化で作る対象が複雑化していたり
          技術の普及でボンクラ高度なスキルを持たない人でもプログラミングするようになってるけど
          それを言語を測る物差しで一緒に測ってない?

      • それ以前に (スコア:1, 興味深い)

        by Anonymous Coward on 2009年09月24日 22時20分 (#1643938)
        はたしてAgdaコンパイラは

        > バグのないプログラム開発

        の産物なのだろうか?
        親コメント
    • by Anonymous Coward
      どうしてこう万能でなければ役立たずだと思いたがるんでしょうかねえ
      • by kikumaru (38177) on 2009年09月24日 21時48分 (#1643933)

        > どうしてこう万能でなければ役立たずだと思いたがるんでしょうかねえ

        別に万能である必要は無いんだよ。
        ただ、万能をうたっているモノに良いものなしなのが問題。<人目を引きたいのは理解できるけどね。
        「バグの無いプログラム環境」ってうたい文句なら、バグが発生した時点でダメダメな環境なわけでw
        誇大広告甚だしいって思ってしまう。

        こんなケース(開発)に向いているって言語なら、釣り!?なんていわない。
        もしくは、簡単(ガワだけでも)に書けるってな話ならなんら不思議では無いしね。

        親コメント
        • Re:釣り!? (スコア:1, すばらしい洞察)

          by Anonymous Coward on 2009年09月24日 23時00分 (#1643950)
          んでもさ、あんた「バグのないプログラム」という表現にいつまでもこだわって拡大解釈してるじゃん。
          親コメント
      • by Anonymous Coward
        Hello World程度でバグを入れるのってかなり難しいと思う。
        (デバッグしてないってのは論外だが)

        そこで気付くのはバグの有無の境界線。
        そんな分岐点が見えていないんでしょ、スレ元は。
        何でもかんでもバグ付きと思ってるようだから。
        • by greentea (17971) on 2009年09月25日 9時30分 (#1644085) 日記

          > Hello World程度でバグを入れるのってかなり難しいと思う。

          それは、非常に上手に作られたprintf関数なりなんなりが既に用意してあるから。
          まず、どこまでが「バグがない」と仮定できる範囲なのか示さないと。

          --
          1を聞いて0を知れ!
          親コメント
    • by Anonymous Coward
      仕様を記述するための言語ですから、期待した動作をしなかったとしても、それはバグではありません。仕様です。

      つまり、「バグのないプログラム開発」が可能だということです。
    • by Anonymous Coward

      「形式手法」こそが曖昧さのない「仕様」を書くことと等価だ、とかなんとか言ってみる。

  • by duenmynoth (34577) on 2009年09月24日 17時47分 (#1643881) 日記
    「バグの無いプログラム」とはプログラム言語としてバグが無いというだけで、
    出来上がったプログラムそのものにバグが無いと言っているわけじゃないんですよね?

    #仕様の時点でバグっているものをどうやってバグ無しで作れと
    • by Anonymous Coward
      形式言語でかかれた仕様通りに間違いなく動くという意味です。多分。

      そういう意味では、バグという用語を不用意に用いるのはよくないですね。
  • by Anonymous Coward on 2009年09月24日 14時44分 (#1643811)
    関数型はもういいから猿型とか人型とか猫型とか、人工知能とか、イベント型とか変な方向へ走ってほしい。
    • by Anonymous Coward
      「また関数型か」と書かなかったところを見ると、Cが関数型言語だと信じているタイプの人のようですね。
      • by Anonymous Coward

        C言語にBlocks拡張 [ascii.jp]を入れれば多少は関数型言語っぽくなる。

    • by Anonymous Coward

      定数型ですべて解決

      answer = 42

  • by Anonymous Coward on 2009年09月24日 16時04分 (#1643838)

    x < 120匹潰すとgenocide状態でもう出現しなくなるんだって.まめちしきだよ.

  • by Anonymous Coward on 2009年09月24日 18時46分 (#1643894)
    依存が強いものはマズいと思います。
  • by Anonymous Coward on 2009年09月24日 21時35分 (#1643928)

    ただそれだけなのでAC

  • by Anonymous Coward on 2009年09月24日 23時29分 (#1643961)

    って事無いですか?

    数年前にCOBOLでメインフレームのウォーターフォール・モデルのプロジェクトに参加した事があるけど、
    意外と大過無く運営されてましたよ。

typodupeerror

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

読み込み中...