タグ

ブックマーク / kmaebashi.hatenablog.com (6)

  • On programming language design - プログラミング言語を作る日記

    InfoQの以下の記事経由で、 Andrej Bauer氏の語るプログラミング言語の設計 こういう記事を見つけたので、 On programming language design | Mathematics and Computation 日語に(勝手に)訳してみました。 英語が得意なわけでもないので(ていうか苦手なほうなので)変なところ等ありましたらご指摘願います。 ――というかHaskellをちゃんと勉強したくなった。 In a recent post I claimed that Python’s lambda construct is broken. This attracted some angry responses by people who thought I was confused about how Python works. Luckily there were

    On programming language design - プログラミング言語を作る日記
    Nagise
    Nagise 2012/03/23
  • The Trouble with Checked Exceptions - K.Maebashi's はてなブログ

    JavaからC#に移った人は、C#にはなぜ検査例外がないのか? と疑問に思うと思います。それに対するC#作者Anders Hejlsbergのインタビュー記事を訳してみました(いままでにもまして訳に自信がないところが多いんですが)。 原文はこちら。 http://www.artima.com/intv/handcuffs.html 拙著「プログラミング言語を作る」内でも少し言及しています(p.340)。 ところで、JavaとC#の例外処理の違いというと「検査例外の有無」が取り上げられることが多いのですが、「スタックトレースが生成されるタイミング」も異なっており、Javaプログラマはたまにはまることがあります。その点も「プログラミング言語を作る」では言及しておりますのでぜひどうぞ(宣伝)。 関連記事: MSDN内の記事 http://msdn.microsoft.com/en-us/vcsh

    The Trouble with Checked Exceptions - K.Maebashi's はてなブログ
    Nagise
    Nagise 2010/01/12
    言語設計について。使いこなせないからなくていいってのは乱暴だとおもうけどね。
  • 書籍「プログラミング言語を作る」が発売されます(amazonアソシエイトリンク追加) - K.Maebashi's はてなブログ

    下記のとおり、書籍「プログラミング言語を作る」が発売されます(宣伝のため、この記事はしばらく一番上に表示します)。 http://kmaebashi.com/programmer/devlang/book/index.html 6/19 22:11 amazonのリンクを追加(関連記事)。 書のテーマは「オリジナルのプログラミング言語を作る」ことです。 世の中には、現在広く使われているものだけでも、C, C++, Java, C#, Perl, Python, Ruby, PHP, Lisp, JavaScript……等々、すでに多くのプログラミング言語が存在します。これほど多くの言語が乱立している中で、なぜわざわざ新しい言語なんか作らなければならないのか、と思う人も多いことでしょう。 しかし、プログラムに関しては何でもそうだと思いますが、何かを深く知りたかったら、一番いいのはそれを自分

    書籍「プログラミング言語を作る」が発売されます(amazonアソシエイトリンク追加) - K.Maebashi's はてなブログ
    Nagise
    Nagise 2009/06/19
    どのぐらいまで踏み込んだ内容なのだろうか
  • 業務アプリの業務部分で、オブジェクト指向なんか使わないよね - K.Maebashi's はてなブログ

    久々の更新なのでちょっとは刺激的なことを書いてみる。 今時のプログラマにはオブジェクト指向は必須、常識、みたいな言説はよく聞きます。 しかし、煽りでもなんでもなく、実のところ現場ではあまり使わない、というのも事実だったりします。 そりゃ、ライブラリやフレームワークでは使いますよ。しかし、多くのプロのプログラマが会社で作るような「業務アプリ」の世界において、プログラム全体の中でライブラリやフレームワークの占める割合は大きくはない。10万行のシステムを書いて、5万行が(自社開発の)共通ライブラリやフレームワークだというのなら、それはおそらく設計が間違っています。まず8割以上は「業務ロジック」のプログラムになるんじゃなかろうか。 そして、たいがいの「業務アプリ」は、フロントエンドがWebであろうがクライアントアプリであろうが、データの体はRDBMSにあり、それを操作するのはSQLです。よって、

    業務アプリの業務部分で、オブジェクト指向なんか使わないよね - K.Maebashi's はてなブログ
    Nagise
    Nagise 2009/04/28
    業務システムのボリュームゾーンである業務ロジックを書くにはAPIライブラリの使い方だけ知っていればよい。という、お膳立てをするフレームワークにはOOP的設計が必要だ。技術力の偏在化が進んでる。
  • Javaの例外処理 - K.Maebashi's はてなブログ

    Diksamに例外処理をつけるため、Javaの仕様を参考にしようとしているんですが。 try catchのfinally節は、「何があっても通る」ところなので、たとえば以下のようなソースでは、 for (;;) { try { … break; } catch (Exception e) { … return; } finally { … } }try節の中のbreakやcatch節の中のreturnでfor文やメソッドを抜ける際でもfinallyの中は通らなければなりません。しかも、finally実行後に行うことはbreakだったりreturnだったりと異なるので、これは単にジャンプ命令で引き回すだけでは実現が難しそうです。 そのためにjsr(jump subroutine)という、関数内のサブルーチンコールのインストラクションがJVMにはあるのだと私は理解してました。 JVMの仕様書を

    Javaの例外処理 - K.Maebashi's はてなブログ
    Nagise
    Nagise 2009/01/27
    try-catch-finally節はどのようなバイトコードに変換されるのか
  • K.Maebashi's はてなブログ

    いやさ、こんなのごちゃごちゃいうほどのもんでもない。 kmaebashi.comJavaScriptでカレンダーを作るのは別に難しい話でもないんですが、どうもカレンダーとかWebページに貼るとなると、すぐこうあれやこれやと外部ライブラリを使おうという話が出てくる。外部ライブラリを拾ってきたって使い方を覚えたり評価したりカスタマイズしたりが必要なので、こんなの自分で作る方がたぶん誰にとっても早いですよ。20年近く前、仕事でカレンダーパーツを作る必要があって、ASP.NETにカレンダーのパーツがあったので若いのがそれ使って作ろうとして、要件の一部が実装できなくて苦労していたので「そんなもん自分で作れ」と言ったらあっさりできた、ということがあったのを思い出した。 ライセンスは私の知る限りもっとも緩いライセンスであるNYSL(煮るなり焼くなり好きにしろライセンス)なので、よければ使ってやってくださ

    K.Maebashi's はてなブログ
    Nagise
    Nagise 2008/02/13
  • 1