Rubyの 実装が 増えている arton RubyKaigi 2007. アジェンダ 処理系 ブリッジ 考察 まとめ.

Slides:



Advertisements
Similar presentations
G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,
Advertisements

2002/2/8 ASUG Conference in PAGE 2002 Mac OS X 開発環境と AppleScript MDOnline 編集長 新居雅行.
オープンソースとマイクロソフト の良い関係 ~ Ruby on Rails on Azure ~ 日本Rubyの会 arton (Tajima Akio) D5-302.
Visual Studio 2010 の新機能 Coded UI Test
WinDBG6によるRTX5.5デバッグ RTX開発環境 WinDBG6.0 debugモードで起動 232Cクロスケーブル
IIS 4.0で開発をするコツ Webアプリケーション構築.
Windows HPC Server を使ってみる
.NET Framework 4.0 世代の Expression Trees
コンピュータプラクティス I 再現性 水野嘉明
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
第3回参考文献発表 PHP言語 岩永逸平.
静岡大学大学院理工学研究科 阿部 秀尚 Weka入門(セットアップ編) 静岡大学大学院理工学研究科 阿部 秀尚
2006年11月22日 植田龍男 Webサービス II (第9回) 年11月22日 植田龍男.
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
東京工科大学 コンピュータサイエンス学部 亀田弘之
オペレーティングシステムⅡ 第11回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト.
Expression Blend 3で始めるSilverlight 3アプリケーション開発
Androidソースリーディング 「ツール編」
背景 我々の研究室で開発しているJavaプログラム解析フレ ームワークでは,解析情報はメモリ上に保持される 問題点
全体ミーティング (4/25) 村田雅之.
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
Ruby Extended Library Howto
技術トピックス 2014/08.
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
Ruby Extended Library Howto
日本Rubyの会 / 東京大学大学院 情報理工学系研究科創造情報学専攻 笹田耕一
ソースコード品質概論 なぜソースの品質を追求するのか
稚内北星学園大学 情報メディア学部 助教授 安藤 友晴
Microsoft .NET 入門 Silverlight のための 福井コンピュータ株式会社 小島 富治雄
講 義 ガ イ ダ ン ス オペレーティングシステム 第1回.
Visual Studio LightSwitchの概要
Androidソースコード公開後のJNI
MSBuild 色々出来るよ 2011/04/02 お だ.
はじめてのASP.NET 楽しいアプリ制作の会 #1 TWorks.
「C++言語」習得のための実践的研究 -「テンプレート」,「例外処理」,「実行時型情報」-
心理学情報処理法Ⅰ コンピュータ言語の歴史.
の まとめ 2007/04/02 (Mon) / d;id:hzkr
オープンソフトウェア利用促進事業 第3回OSSモデルカリキュラム導入実証
TA 高田正法 B10 CPUを作る 2日目 SPIMのコンパイル TA 高田正法
SAP & SQL Server テクニカルアーキテクチャ概要 マイクロソフト株式会社 SAP/Microsoft コンピテンスセンター
Flyingware : バイトコード変換による 安全なエージェントの実行
2004年度 サマースクール in 稚内 JavaによるWebアプリケーション入門
2003年度 データベース論 安藤 友晴.
コンパイラの解析 (2) GCJのデータ構造 - 1.
【プログラミング応用】 必修2単位 通年 30週 授業形態:演習.
プロジェクト演習Ⅱ インタラクティブゲーム制作 イントロダクション2
Expression Blend 3で始めるSilverlight 3アプリケーション開発
Windows Azure (CTP) 触ってみた
インラインスクリプトに対するデータフロー 解析を用いた XHTML 文書の構文検証
プログラミング言語入門.
Java Virtual Machine 高速化のためのbyte code 解析 An analysis of byte code to improve the performance of Java Virtual Machine 鈴木タカハル 谷研究室 Feb, 2003.
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
COM コンポーネント・オブジェクト・モデル.
JXTA Shell (1) P2P特論 (ソフトウェア特論) 第4回 /
Windows Azure (CTP) 触ってみた
インタラクティブ・ゲーム制作 プログラミングコース 補足資料
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
B演習(言語処理系演習)第2回 田浦.
コンパイラ 2012年10月1日
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
Webインテリジェンス論 Protégé演習 (インストール)
第2回 開発環境とゲーム 05A1030 佐々木 和也.
SMP/マルチコアに対応した 型付きアセンブリ言語
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
コンパイラ 2012年10月11日
プロジェクト演習Ⅱ インタラクティブゲーム制作
1.2 言語処理の諸観点 (1)言語処理の利用分野
0.1 DXライブラリの導入 必要なファイルの準備.
Presentation transcript:

Rubyの 実装が 増えている arton RubyKaigi 2007

アジェンダ 処理系 ブリッジ 考察 まとめ

前提と結論 選択肢が増えることは 善

疑問 なぜMatzRubyではないのか? – ここではCで書かれた、1.9 以降はYARV上で実行される Rubyのこと。 – 本当のMatzRuby(MatzSandbox) は、別問題

処理系

Java Virtual Machine JRuby

developers Charles Nutter Thomas E Enebo Ola Bini Nick Sieger et al

インストールと使い方 もう普通に使えるよ っていうか、 午前のセッ ション rg/jruby/

Common Language Runtime Gardens Point Ruby.NET Compiler

developers Professor John Gough Dr Wayne Kelly et al

インストールと使い方 Visual Studio 2005と Visual Studio 2005 SDKを入れ たほうがベター (Interopが容 易) からWindows Installerのリンク経由 でmsiをダウンロードして、実行

GAC マジック C:\WINDOWS\assembly\gac_msil\qut.rubyru ntime\ __834595ca8023c318\QUT.R ubyRuntime.dll 他の言語から利用する場合には、 QUT.RubyRuntime.dllを参照設定する

Common Language Runtime IronRuby

IronRuby Ruby.NETの字句解析器と構文 解析器を利用 (ただし、生成される構文木 はDLRを利用するので、まっ たく異なる実装となる) 7月のOSCONでリリース予定 ライセンスはMs-PL

developers John Lam et Microsoft DLR Team

ブリッジ

関係ないので 省略

論点

このあたり? 速度 スレッド 言語仕様がない ぎゃっ! (バグFixとは 関係なく動作が変わる)

速度 Ruby ( YARV ) ko1

ぎゃっ! (バグFixとは 関係なく 動作が変わる) mput knu

言語仕様がない 処理系作る人には大問題 でも ビジネスプログラマーは、 言語仕様を読まない。 (やさしい入門書を読む)

スレッド マルチプロセスを統合し て扱うフレームワーク (ライブラリ)の欠如に ついて語っているのであ れば、同意

スレッド 同時にランダムに実行される スレッドを正しく扱える? もし正しく扱えるのであれば、 逆に必要ない(一部の特定分 野を除く)んじゃない? (言ってみてるだけ?)

参考 (IIS) キャッシュ HttpProtocolHandler ユーザーモード カーネルモード

シェアドナッシング シングルスレッドアパートメント

多重IO Ruby 1.8 Multiplexer

マルチVM+緑スレッド Process Multiplexer

補足(6/10) セッション終了後、ko1さんから以下の指摘がある – Ruby1.8のThreadはスレッドの切り替えにスタックのコピーが 必要となるため、ネイティブスレッドの切り替えより時間がか かる 後出し(arton):消費されるCPU時間が平均的なIO待ち時間より短けれ ば意味はある(アプリケーションモデルに依存する世界に入ってくる ので、選択の問題ではないか?) – Ruby1.9のFiberは、VMスタックへのポインタの切り替えで済 むため、Threadより軽量 – ただし、現在のFiberの実装ではIO待ちによる他のFiberへの切 り替えは行えないため、Threadの代替とはならないことは認識 している Ruby1.9のThreadが、良いとこどりを目指しているという点について は納得(arton)。 したがって前頁の図は必ずしも理想的とは言えない→実行時 モデルからパターンを抽出して、言語でサポートしたほうが 良いものと、アプリケーションで考えるべきものとの切り分 け、及び実装の現実性から総合的に判断しなければならない。

考察

なぜ MatzRubyじゃないの? Silverlight (IronRuby) –Pseud Flash on CLR – 理由は簡単(MatzRubyは 動かない) – まだどこにもないけど – (……DLR)

なぜ MatzRubyじゃないの?

Stranger Than … Rubyのビジネス価値

ブルーカヤック曰く 多言語統合 JVMが動けばどこでも実行 J2EEなどを利用可能

多言語統合? C API DL Win32OLE(ASR) ブリッジ(Rjb、 RubyClr…) Ruby+固い言語+?

どこでも実行? MatzRubyはポータブル POSIX – Linux、Windows、 Solaris、BSD、HPUX、 DJGPP(DOS Extender) などにポートされている

明らかな利点 C拡張ライブラリ VS Java/C#(VB)のクラス – 開発の手引き、API、規約 – やさしい入門書

VM既定クラスライブラリ GUI – Swing、Windows Forms RDBMS Interface – JDBC(JPA?)、ADO.NET Native Interface – NIO、P/Invoke

言語重要 ビジネスで利用される言 語は、ビジネス言語(ふ いんき)を用いて説明で きなければならない 例)速度、再利用、ス レッド、callcc

まとめ MatzRuby プログラマに優しい Ruby プログラマを信用する Ruby

おまけの預言 これから、 インデント 4 桁、 ハードタブ(\x09) 空白(\x20)混在の ソースが増える! (Juggernautがそうだったなぁ)