タグ

programmingに関するshrkのブックマーク (31)

  • 人力検索 - 関数型言語(プログラミング言語Scheme, Haskellなど)を勉強しようと思っています。 関数型言語の勉強方法

    関数型言語(プログラミング言語Scheme, Haskellなど)を勉強しようと思っています。 初心者にも関数型言語のメリットや考えかたがスラスラ分かる勉強の材料を教えてください。 言語の習得よりも、関数型言語の考え方の習得に重きを置いています。 例えば - このを読め - このサイトを読め のように、入門から実用レベルまできちんと筋の通ったものをお願いします。 ちなみに 以前Schemeを勉強しましたが末尾再起辺りでなんとなくうやむやになってしまいました。 あと「計算機プログラムの構造と解釈」は僕には難しすぎでした。

  • まつもとゆきひろのプログラミング言語論(4)

    アジャイル宣言<BR>アジャイルな開発手法の提唱者らが集まって,2001年に発表した。17人の中には,ソフトウェア技術者として世界的に著名な人物が数多く含まれている。 動的言語にも欠点はある ここまで,動的言語のメリットについて述べてきました。では,動的言語にはデメリットはないのでしょうか。 もちろんあります。どのようなことにも,トレードオフは伴うものです。動的言語の主要なデメリットは,簡潔性とエラー検出,そして実行効率です。 つい先ほど簡潔性を動的言語のメリットとして挙げたばかりですが,他人の書いた(あるいは半年前の自分が書いた)プログラムを読解するときにはデメリットになり得ます。簡潔なプログラムは,ヒントが少ないということでもあるからです。また最近ではIDE(統合開発環境)がプログラムの入力を補完しますが,この機能も十分には働きません。Javaなどの言語でプログラムの字面に与えられ

    まつもとゆきひろのプログラミング言語論(4)
  • わたしが知らないスゴ本は、きっとあなたが読んでいる: プログラマになれなかったわたし

    今は昔、ひとりの駆け出しプログラマがいた。 その頃はCOBOLばかりで、しかも保守ばかりだった。そこで、独学で身に付けたCをやらせてもらえる仕事を奪ってきては書いた。スクラッチプロジェクトを見つける嗅覚だけは抜群だった。たいていは人手が足りず、新人でも歓迎されたからだ。 そこには優れた先達がいた。「スーパープログラマ」と呼ばれていた。 なぜ「スーパー」なんて修飾子がついたかというと、速いプログラムを早く書いたから。もちろん、「速い」とは少ないメモリ・小さいプログラムのことを指し、「早く」とは実装が早いこと。実際、彼らが書いたプログラムはサクサク動き、バグは簡単に見つけられた。 教えを請うと、先達たちは、おしなべてこういった。 最初に学ぶべきは、コンピュータサイエンス。特にアルゴリズムとデータ構造だ。実践的なコーディングテクニックよりも、まず基礎だ。これはコードを書きながらではなく、文献から

    わたしが知らないスゴ本は、きっとあなたが読んでいる: プログラマになれなかったわたし
  • 浮ついた「ギーク」への説教(※老害注意) - ZEROBASE BLOG

    「ヱブ弐点零デ、マツシユアツプ」とか言ってる場合じゃないんですよ。Nintendo DSのカートリッジ自作ハックくらいしろと。OSカーネルやコンパイラを書けと。 職のプログラマを名乗るなら、「珠玉のプログラミング」を読んで問題を解いて欲しい。Perl/PHP/Ruby/Pythonしか書けないようでは、物のプログラマと呼びにくい。JavaとLispとC/C++(まあ、いまならC#ですかね)も覚えてほしい。ちなみにWrite Great Codeも良いらしいです。 書でいうグレートコードとは「高速・コンパクトかつ、リソースを無駄使いせず、可読性に優れ、保守が容易で、一貫したスタイルに従った、系統的に設計され、拡張性に富む、十分にテストされ、確実に動作し、ドキュメントが整備されている」コードです。 つまり、要点としては、コンピュータ・サイエンスとソフトウェア工学は、みっちりおさえてこそ、

  • まつもとゆきひろのプログラミング言語論(3)

    リスト5 Javaのサンプル・プログラム<BR>配列に格納した名前の中から,3文字以下のものを選んで出力するプログラムである。 簡潔な表現が可能 動的言語に共通する特徴として,簡潔な表現が挙げられます。変数や式などのためにいちいち型宣言をしないことが最大の原因ですが,多くの動的言語ではそれ以外にもプログラムを簡潔にするための工夫が行われています。例えばRubyでは,次のような工夫で簡潔なプログラムを可能にしています。 * 宣言が不要 Rubyでは変数宣言がまったく必要ありません。プログラマはコンパイラを満足させるための記述をせず,実行したい処理の質に集中できます。 * セミコロンなどが不要 改行で文が区切られるため,各文ごとの区切りにセミコロンは不要です。そのほかの点についても,自明な指定は不要になっています。 * for文やブロック Rubyはオブジェクト要素に対する繰り返しなどを簡潔

    まつもとゆきひろのプログラミング言語論(3)
  • コンピュータグラフィクス実習AB

    日置尋久(HIOKI Hirohisa) Last modified: Thu Oct 11 14:06:07 JST 2007

  • プログラミングとその応用I

    概要 コンピュータはプログラムに忠実にしたがって処理を行います. そこで,自分でプログラムを作れば,自分の思った通りにコンピュータに仕事をさせることができます. プログラムを作ることをプログラミングといいます. ここでは,演習を通じてプログラミングを基礎から学びます. プログラミングの素養を身につけることで,当の意味ではじめてコンピュータを使いこなすことができるようになります. なお,演習はLinux環境で行い,プログラミング言語としてRubyを用います. プログラミングは専門家の仕事であり,誰もが必ずしも学ぶ必要はないという考え方もあります. しかし,コンピュータは,知的活動の可能性を大きく広げることができるツールであり,それを自在に使いこなす手段としてのプログラミングを学ばないことは,卒直に言って非常にもったいないことです. またプログラミングはいい意味で「手軽に」創造性を発揮できる

  • ITpro - まつもとゆきひろのプログラミング言語論(2)

    リスト4 動的言語の柔軟性<BR>Rubyのライブラリには,IOとStringIOというクラスが存在する。StringIOはIOと継承関係はないが,ほぼIOと同じ名前のメソッドを備えている。このため,ほとんどの場面でIOと同じように利用できる。例えば文中に登場したlog_puts()の引数として,StringIOクラスのオブジェクトも指定できる。 オブジェクト指向とは密接な関係がある 現在では,ほぼすべての動的言語がオブジェクト指向機能を提供しています。もちろん静的言語にオブジェクト指向機能がないわけではないのですが,オブジェクト指向と動的言語にはかなり密接な関係があります。 世界最初のオブジェクト指向言語はSimulaです。Algolの影響を受けた静的型の言語だったのですが,整数などのデータ型を除いたすべてのオブジェクトは「Ref」という一つの型を通じて取り扱われました。どのクラスのオ

    ITpro - まつもとゆきひろのプログラミング言語論(2)
  • まつもとゆきひろのプログラミング言語論(1)

    リスト2 動的型の言語で書いたソースコード<BR>Rubyで記述した。ソースコードで変数の型を宣言していないが,実行時にきちんと型整合性をチェックする。数値と文字列を加算しようとすると,エラーが出る。 プログラムを実行して初めて決まる事項が多い「動的言語」。柔軟性が高い,簡潔な表現が可能など複数の利点を持っている。さらに性能の問題などの欠点がコンピューティング環境の変化で目立たなくなってきた。速く柔軟な開発が求められる中で動的言語の存在感は増すばかりである。(誌) LAMP(Linux,Apache,MySQLPerl/ Python/PHP)という言葉(表1[拡大表示])が注目されています。オープンソース・ソフトウェアを利用したソリューション構築を意味する造語ですが,プログラミング言語の代表として挙げられているのはどれも動的言語です。 以前は,企業システムをPerlPHPのようなイ

    まつもとゆきひろのプログラミング言語論(1)
  • Ajaxを勉強しよう

    このページはAjaxを勉強してみたい人向けの学習用ページです。サーバーを入れ替えたため一部CGIを使用したものが動作していません。時間のある時に修正します。また、書いてから、かなり時間が経過しているため内容的に古いものもあります。ご了承ください。 Ajaxで利用されるエフェクトに関しては別ページ(Ajax Effect)に移動しました。 Ajax関連書籍に関してはAjax関連書籍一覧ページを用意しました。 Prototype系ライブラリ サンプルプログラム【New !!】のページを用意しましたので、Prototype系のライブラリを利用している方は参考にしてみてください。 ミスや間違いなどがありましたらopenspc@po.shiojiri.ne.jpまでお願いします。 第一章 Ajaxって? AjaxとRIA AjaxとDHTML AjaxとFlash Ajaxに必要な知識と技術 Aja

  • 本当に30日でOSが出来上がるのかを試してみるBlog

    さて、というわけで、0日目〜31日目までの全32日分をすべて読み終えたこととなったが、実は音を言うと、途中何度かあきらめそうにもなったし、全然わからねーと投げやりにもなった。楽しかったけど、同時に辛かったことも事実だ。しかし、なんとかかんとか、ここまでこぎつけることができた。当に充実した時間だった。 だから、俺は今後もOSを作っていきます。ただ、もうこれまでのように詳細に更新、報告することはないです。多分当に30日でOSが出来上がるのかを試してみるページの一番下のところにひっそりと公開していくだろうと思う。 というわけで、最後に感謝の言葉でこのBlogを締めくくりたいと思う。 まずは、一番最初に、このの著者である川合秀実氏に感謝したい! ありがとう。あなたが書いたこので、少なからず、俺のこの1ヶ月は充実したものとなった。そして、このをきっかけにOS作りの楽しさってのがほんの少し

    本当に30日でOSが出来上がるのかを試してみるBlog