タグ

プログラム言語に関するNagiseのブックマーク (14)

  • Javaのチェック例外はクソ仕様 - やさしいデスマーチ

    Java言語のチェック例外は当にGood Partなのか?というエントリーを読んで自分の考え方を簡単にまとめておこうと思う。 まず、チェック例外自体はJavaの『あまり良くない仕様』とみるのが体勢であると思う。自分もどちらかといえば、『なるべく実行時例外で』という派。とはいえ、『クソ仕様なんでチェック例外はまったく使うべきではない』派ではなく、『必要に応じて使い分ける』派。そもそもクソ仕様とdisるくらいならクソ言語なんか使わない方が幸せ。 まずチェック例外自体に関する問題を改めて整理する。 いちいち定義するのがクソ面倒 常にtry-catchかthrows句を強制するのでクソウザい 横断的に処理しにくい 大規模プロジェクトになればなるほど、例外に関するスキルがないクソ人ばかり これらについては散々議論されているだろうし、愚痴になるだけだと思うので割愛。 で、自分はどうして『必要に応じて

    Javaのチェック例外はクソ仕様 - やさしいデスマーチ
    Nagise
    Nagise 2011/02/21
    「チェック例外はチェックしなければならない準正常系の戻り値」という表現は的確
  • J言語の使用によるASCII文字の地獄への手引き - TopCoderとJ言語と時々F#

    J言語ってどんな言語? Jのサイトによれば「モダンで、高級で、汎用的で、ハイパフォーマンスな」言語らしい。 有限オートマトンを2バイトで実装できるらしい。 超幾何級数を2バイトで計算できるらしい。 関数のメモ化が2バイトで実装できるらしい。 実際のコードを見てみよう。たとえばクイックソートの実装はこんなかんじ。 quicksort=: (($:@(<#[) , (=#[) , $:@(>#[)) ({~ ?@#)) ^: (1<#)ただの難読言語?いいえ、もっとひどい難読言語です。難読だけど、機能だけみれば実用的。 処理系のインストール http://www.jsoftware.com/stable.htmからお使いのプラットフォームに合ったインストーラ/シェルスクリプト/ディスクイメージをダウンロードしよう。 J言語の基 品詞 まずは次のプログラムを見てほしい。 #include<st

    J言語の使用によるASCII文字の地獄への手引き - TopCoderとJ言語と時々F#
  • 将棋をモチーフにしたプログラミング言語「ModanShogi」が公開! | gihyo.jp

    はじめに コンピュータ将棋の分野では、年々ソフトウェアの棋力が向上しており、10年以内にソフトウェアが平手でプロ棋士を破る日が来るのではないかと予想されている。 しかしその一方で、人間の「直観」による高度かつ高速な計算力は、未だその詳細が明らかになっていない。 人間の意図を計算機に伝えるためのプログラミング言語の世界においても、脳の直観を最大限に活かすには、現代のプログラミング言語はいずれも単純すぎると言えるだろう。 しかし最近では、これを逆手に取って、人間同士が戦うボードゲームのルールや戦略を抽象化し、プログラミング言語の世界にフィードバックする試みが実用化され始めている。有名なところでは、Google社のプログラマの手による囲碁をモチーフにしたプログラミング言語が一般公開されたのも記憶に新しい。 ModanShogiはこのようなトレンドをいち早くキャッチし、日のポピュラーなボードゲー

    将棋をモチーフにしたプログラミング言語「ModanShogi」が公開! | gihyo.jp
  • 総合目次 - 苦しんで覚えるC言語

    苦Cの内容の転載などは自由ですが、苦Cからの引用であることを明記してください。 (どこかに「苦Cより」と書かれていればOKです。) 学校や会社などで生徒(新入社員)へのテキストとして使用することも自由です。 その際、内容を修正したり、印刷して配布するのも自由です。

    総合目次 - 苦しんで覚えるC言語
    Nagise
    Nagise 2010/03/17
    素晴らしい。簡単だとか3日でだとか楽さをアピールする胡散臭い書籍が多い中、苦しんで覚えろというのがイイ
  • 例外について色々と考えてみた - ぐるぐる~

    オブジェクト倶楽部、コーディング規約の会の「C# コーディング標準」の駄目なところ - ぐるぐる〜から派生して、 「他の例外クラスを継承しただけの例外クラスを作らない」に不同意の理由 - Diary of Dary、 例外クラスの指針 - とC#について書くmatarilloの雑記や、さらには TwitterJava の検査例外と非検査例外についての議論へと発展したので例外についてまじめに考えてみた。 あくまで、今の自分の考えなので真に受けない方がいいかも!そもそも経験が少ないので、トンチンカンなことを言ってるかもしれません。 あ、それと、用語は基的に Java から取ってきています。ただ、メソッドじゃなくて関数を使っているけど、これに深い意味はありません。多分。 例外とは まず、例外とは一体何者なのか、ということ。 ここでは面倒を避けるために、Meyer 先生の定義を借りること

    例外について色々と考えてみた - ぐるぐる~
    Nagise
    Nagise 2010/01/19
    throwsを変更した時点でインターフェースの更新、つまるところ契約の更新であるから「中間のクラスの再リリースという手間」が「開放閉鎖原則に違反する」というのは誤り。閉鎖を破ることが開放されているわけではない
  • AS3の*型の問題点とその代替案 〜その1.*型は問題点が多い〜 - 妄想宝箱

    目次 長くなったので3部構成 その1.*型は問題点が多い その2.オブジェクトリテラルの長所 その3.解決策 静的に解決出来るところはすべてそうするべき 私は動的型付け言語は嫌いだ。どれくらい嫌いかというと、RubyもSchemeも、Pythonも、動的型付けという理由だけで、勉強しようとしないぐらい。 動的型付け言語なんて滅びればいいのに。 AS1のを使っていた頃に、嫌というほど味わったのが私の中では大きい。(しかもAS1は弱い型付けだ!) AS2、AS3とバージョンが上がり、Javaのように静的型チェックをしてくれるようになった。 しかしながら、AS3では*型やオブジェクトリテラル、dynamicクラスを使うことによって動的型付けでもコーディングすることは可能だ。 これらは動的にしか解決できない場合に使用すると大きな効果が期待される。が、それ以外の場面では、型(クラス)をきちんと作り、

    AS3の*型の問題点とその代替案 〜その1.*型は問題点が多い〜 - 妄想宝箱
  • 小学生が学ぶビジュアル言語ビスケットがすごい - A Successful Failure

    情報処理10月号では、『特集 未来のコンピュータ好きを育てる』としてコンピュータに魅力を感じる人材を育成する試みを紹介している。とても面白い特集となっているので、送付されてきたまま袋から出さずに放置してある人は是非一読する事を薦めたい。 小中学校における情報科学教育は世界的に重要視されつつある。ACMのモデルカリキュラムでは、第8学年(中学2年生)までにコンピュータ操作、デジタル化、情報の表現、問題解決などを履修し、第9-10学年で、コンピュータの構成、アルゴリズム、抽象化、数学との関連などの情報科学を学ぶ事を提言している。 ところが、現在の日の情報教育は文字入力やWeb情報探索など、コンピュータの利用法に関する教育に終始し、情報科学をはじめとする情報技術の原理・仕組みに関してはほとんど重要視されていない。一方、韓国の情報教育 ━初・中等学校情報通信技術(ICT)教育運営指針と改訂中・高

    小学生が学ぶビジュアル言語ビスケットがすごい - A Successful Failure
  • Matzにっき(2009-10-03) - the 0.8 true language

    << 2009/10/ 1 2 3 1. [言語] the 0.8 true language 4 1. ロンドン地下鉄 5 6 7 8 9 10 11 12 13 14 15 16 1. 日経済新聞夕刊「拓くひと」 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >> _ [言語] the 0.8 true language あらゆることに使える完璧な言語(the one true language)が存在しないことは明らかである。 たとえば、Rubyがどんなにすばらしい言語でも、Ruby自身はRubyでは記述されていない。 また、OSなどRubyで記述するには向かない分野はいくらでもある。 そもそもRubyが向かないプログラマーもいるようだが、その点には今回は触れない。 しかし、100%を考えるから、完璧な言語は存在しないわけだが、 仮に80

    Nagise
    Nagise 2009/10/05
    ヒューマンエラー対策のことはMatzの頭の中にはないのかな。マシンのことを考慮しないにしてもRubyのプログラミングがヒューマンエラー対策できるようになるまで何年を要するだろうか
  • d.y.d.

    19:34 09/09/19 ※Multi Exit 「C言語の関数呼び出しで引数は何個も渡せるのに返値は1個しかないのはどうしたことだどうせスタックに置く個数が変わるだけなのに」問題に関連する話に 「リターンアドレスが1個しかないのはどうしたことだ」問題があります。 どうにかしてみましょう。 String|NotFound get( Map<Int,String> map, Int key ) { if( lowlevel_primitive_map_has_key(map, key) ) return lowlevel_primitive_unsafe_map_get(map, key); // 1個目のリターンアドレスに返る return new NotFound("Error: the key \""+key+"\" not found"); // 2個目のリターンアドレスに返る

    Nagise
    Nagise 2009/09/24
    引数の場合も発生するけど、型の代入互換性の関係で表現が曖昧になるときがあるんだよなぁ。
  • プログラミング言語Noopのコンセプトに「そうそう。そういうのがあってもいい」と感じる人も多いのでは?:森崎修司の「どうやってはかるの?」:オルタナティブ・ブログ

    プログラミング言語Noopのコンセプトに「そうそう。そういうのがあってもいい」と感じる人も多いのでは? Alex Eagle氏、Jeremie Lenfant-Engelmann氏(2人ともGoogleの所属だそうだ)がJVM Language Summitで発表されたプログラミング言語Noopの説明をいくつか読んだ。詳細は@ITのニュース記事やpublickey新野氏の記事等を参照いただきたい。 Noopの目指すところとして、メンテナンス容易性(2人以上で開発するための言語)、テスト容易性が挙げられている。この2つをプログラミング言語に求めている開発者の層は厚いのではないかと思うが、この層の人たちがプログラミング言語を作るということはそれほど多くないように思う。通常は既存のソフトウェアの移行を考え、あきらめてしまいそうだ。。 プログラミング言語の目的、コンセプトというと思想的なぼんやりし

    プログラミング言語Noopのコンセプトに「そうそう。そういうのがあってもいい」と感じる人も多いのでは?:森崎修司の「どうやってはかるの?」:オルタナティブ・ブログ
    Nagise
    Nagise 2009/09/24
    むしろ、こうしたコンセプトがやっと出てきたかという印象
  • プログラミング言語の進化の方向 - 世界線航跡蔵

    セキュリティ&プログラミングキャンプ のBoFで、笹田さんがやってたセッションで話したことがある。言語の進化はベストプラクティスの取り込みにある、と。 ベストプラクティス取り込みの歴史 計算可能である事柄を計算するだけが問題であるなら、チューリング完全な言語なら何でも良いということになるし、不完全な言語は出る幕すらない。ラムダ計算からの自然なマップを考えるならS式で書いて何か実行すれば良いんだし、最小のプリミティブから出発するのが目的ならLazy Kなんかもいいかもしれない。 でも、工学的要請からは、計算可能関数が等しく計算の対象となるわけではない。そして、ある種の計算の傾向、パターンに対して「こうすればいい」「こう考えればいい」「こう設計すればいい」というベストプラクティスが生まれてくる。プログラミング言語の歴史を眺めていると、経験の中から立ち現れるベストプラクティスを取り込んだものが多

    プログラミング言語の進化の方向 - 世界線航跡蔵
    Nagise
    Nagise 2009/09/24
    「ベストプラクティス」のサポートという側面もあると思うが、この考察にない機能性としてはプログラミング作業の機械化というかヒューマンエラー対策と言うかそういう側面もあるんじゃないかな
  • Scala のXMLリテラル - hidemonのブログ

    ScalaにはXMLをリテラルとして書く機能がある.文字列としてではなく,XMLのオブジェクトとして直接解釈される.具体的には scala.xml.Elem という型になるようだ.しかも,Scalaの式を'{','}'で囲んで埋め込むことができる. 下記はReferenceからの引用. val b = <book> <title>The Scala Language Specification</title> <version>{scalaBook.version}</version> <authors>{scalaBook.authors.mkList("", ", ", "")}</authors> </book>なんらかのクォートで囲むでも無く,いきなり書くことができる. おかしな(?)挙動 パーザは,XMLの開始っぽい部分を発見するとXMLモードに入る.なのでこんな変なことが起こる

    Scala のXMLリテラル - hidemonのブログ
    Nagise
    Nagise 2009/07/21
    プログラミング言語のシンタックスを考えるときにはパーサビリティが必要だと思うんだ。IDEとかも作りやすいしね。
  • ゆの in Smalltalk - みねこあ

    http://www.kt.rim.or.jp/~kbk/zakkicho/08/zakkicho0807a.html#D20080708-5さんより サーモスタット。 ただし、手抜き版です。 Object subclass: #X instanceVariableNames: 'str' classVariableNames: '' poolDictionaries: '' category: 'Yuno' X class >> / value ^X new , 'スケッチ' X >> , value str := str, value X >> / value str := str, '365' X >> < msg str := str, ' ', msg X >> initialize str := 'ひだまり' X >> printString ^str して、後はワークスペース

    ゆの in Smalltalk - みねこあ
  • d.y.d.Я9Я∽

    10:14 08/04/29 いろいろ 来月末 東京メトロ沿線ウォーキング のために、じゃなかった、友人結婚式があるらしいので、ちょっと一瞬日に戻ります。 いやまあ、メトロウォーキングには行きますが。 りふぁらにれす アニメ、というのが通説らしいですが個人的にはゲーム。 プログラミングと俺(続き) 前回 書き忘れた。中学校の"技術"の授業で LOGO でタートルグラフィックスとかもやりました。 使ってた処理系でどこまでできたのかは全く知らないのですが、まあひたすらお絵描きしてました。 つまりメガデモ製作です(違。いろんな図形を描くときそれに伴って動くタートルをいかに作品内に取り込むか など真剣に考えたりしてました。LOGO っていう言語についてはもう、「てじゅんは」っていうキーワードしか 覚えてないですね。タートルグラフィックスって、適当なコードを適当にパラメタ変えて色々走らせると す

  • 1