VM」上でもRuby言語がサポートされる可能性が出てきた。Rubyプロジェクト」について明らかにしている。Server」は、J2EEと独自言語ABAPによるアプリケーション開発が可能なVMを備えている。Rubyプロジェクトは、開発効率が高くアジャイル開発に適したRubyの世界と、すでに実績があり堅牢なSAPのWebアプリケーションサーバの世界をつなぐもの、という。Languages)を作成する環境も、Rubyによって実現できる。Language)と呼ぶバイトコードに変換。VMと呼ぶスタックマシン上で走らせる。VM上で動くプロセスの1つで、同じABAPのVM上に載ることから、Rubyアプリケーションから、ABAPのすべてのオブジェクトにアクセスできるほか、オブジェクトの生成や、それらオブジェクトへのメッセージの送信が可能という。逆に、ABAPアプリケーションからRubyのメソッドを呼ぶこともできる。Rubyのソースコードは、仮想ファイルシステムシステムを通してデータベースに保存される。RubyソースコードのBRILへのコンパイルは、セーブ時に毎回行われるため、起動時のオーバーヘッドはないという。Ruby向けに作られたバイトコードで、動的言語の特徴を持っている。文法エラーがあっても、コンパイル時にエラーを出すのではなく、実行時に例外を上げるといった違いがあるという。ABAPが提供するAPI(RFC)をRubyで利用する例。VMは、既存のVM環境の中で1つのプロセスとしてサンドボックス化されて動くRubyのソースコードと対応するBRILの例(クリックで拡大)RubyからABAP、ABAPからRubyの双方向の呼び出しには制限もある。Ruby側からは、ABPA側のすべてにアクセスできるできるわけではなく、とりわけ、データベースアクセスに関しては、ブリッジと呼ばれるインターフェイスを通しABAPアプリケーションからのみ可能。これは、Ruby開発者が既存のプラットフォームを破壊しないようにするための設計で、こうしたコントロールがなければ、業務目的での利用は望めないだろうとしている。Rubyは、2009年3月27日時点でRubyの互換性を検証するrubyspecテストに70%程度パスしているという。OSに依存するプロセス関連や、低レベルなネットワーク関連ライブラリはなく、I/O関連も仮想化ファイルシステムのライブラリとして実装されているなどの違いがある。Pythonなども計画しているという。VM上のRuby実装としてJRubyの開発を支援している。SAPのRuby言語サポート追加が実現すれば、エンタープライズ用途へのRuby普及が加速するかもしれない。World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。(2017/7/6)日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。Excel」で使えるVBAを紹介する。