Path: sran124!katsu From: katsu@sra.co.jp (WATANABE Katsuhiro) Message-ID: Date: 12 Aug 90 15:47:44 Organization: Software Research Associates, Inc.,Japan In-reply-to: suzuki@nttcoin.ntt.jp's message of 10 Aug 90 10:43:37 GMT Newsgroups: fj.lang.st80 Subject: ParcPlace Smalltalk V2.5 (Re: CaseSwitch) Distribution: fj References: <7771@fxvax.fujixerox.co.jp> <3867@nttcoin.ntt.jp> 記事 <3867@nttcoin.ntt.jp> で suzuki@nttcoin.ntt.jp (MUNeYOSHI Suzuki) さんいはく > > [:i | > > | returnValue | > > returnValue := (thenBlocks at: i) value. > > おや,これは VI2.5 ではないと許されない構文ですね. > :=とは昔の←の事ですか?最新版は昔のVI2.2あたりとどこが違うの > でしょうか? ParcPlace の version2.5 では、... := は _(←)と同じです。もちろん←も使えます。文法の字づらの面では #'Can contain space' が 'Can contain space' asSymbol と同じだとか、 #(nil true false) が nil と true と false からなる配列を表すように なった(前は3つの sSymbol の配列)等の変更がありました。 # でも、この配列の中身の扱い方はあまり美しくないような感じがしますね。 それから、上で鈴木さんもおっしゃったように、ブロックの中で一時変数が 使えるようになりました。同時に、ブロック引数はブロックの外からは見えなく なりました。たとえば |x| x _ 0. [:x | ] value: 1. x を print it すると、前は「1」がでましたが、V2.5 では「0」が出ます。これに 伴い、CompiledMethod とは別に、ブロックのコードを保持する CompiledBlock とかいうクラスができていたりします。 とにかくこのあたりの実装は大きく書き変わりました。 私が面白いと思っているのは、ストリームを通じてオブジェクトを読み書きする BOSS (Binary Object Streaming Service)という機能が提供されるように なったことです。前からある storeOn: とか readFrom: とかと違って、 再帰的な構造があってもかまわないとか、オブジェクトの同一性が保存される (同じオブジェクトを参照しているところが複数箇所あっても、ロードした後で 別々のオブジェクトになってしまうことがない)とか、ストア/ロードにかかる 時間が短いとかの特徴があります。クラスを fileIn/fileOut するかわりに、 クラスオブジェクト自体を BOSS で読み書きしてしまうなんていう技もできる という話です。(私はまだやってみたことありません。) あと、使ってみてはいないのですが、Stripper という開発者向けの 環境があって、完成したアプリケーションのイメージから、開発時のみに 必要だったクラスを削除してアプリケーションユーザーに提供することが できるようになっているようです。 ほかにもエラーチェックが厳しくなったとか、例外処理の機能が強化された等の 洗練をうけています。 ところで、V2.5 をお使いのみなさんは、速度についてどうお感じになります? (私はワークスペースで遊ぶのが関の山なので、遅いか速いかわかりません。) -- ----____----____ 渡邊克宏 SRAソフトウェア工学研究所