BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース GraalVMがCOBOLをサポート

GraalVMがCOBOLをサポート

原文(投稿日:2020/12/23)へのリンク

GraalVMはCOBOLのサポートを導入した。単一のランタイムが複数の相互運用可能な言語をサポートできるようサポートを拡張している。これにより、複数のプラットフォームで実行できることであったJava(言語)でできる範囲が、多くのプラットフォームで多くの言語を実行できるJava(仮想マシン)にまで拡大された。

この取り組みは、10月にJKUリンツ大学での研究を通じてChristoph Schobesberger氏によって紹介された。このテクノロジーは、GraalVMとLLVMビットコードのインテグレーションにより機能する。LLVMを経由するパスは、HotSpot実装がNashorn(Java 8のJavaScript)やJRuby(アクティブな外部プロジェクト)などの代替言語のサポートする方法とは異なる。HotSpotの実装がJavaバイトコードとJSR-292(動的言語)およびそれに続くJIT最適化を対象としている場合、TruffleRubyなどのGraalVM言語は、ネイティブの事前コンパイルのためにLLVMレベルでの最適化を追求する。GraalVMは、ネイティブコンパイルとは別にHotSpotモードも提供する。

数カ国語の混合(多言語)プログラミングの役割はGraalVMの狙いである。これによって、開発者はネイティブコンパイルされた相互運用可能なソフトウェアを作成し、別の言語からライブラリに接続してメリットを提供できるようになる。しかし、作成者には理解できない場合がある。COBOLの場合、GnuCobolでコンパイルされたアプリケーションは、Javaを理解している開発者が参加できる。このブリッジは、COBOLで記述されていて保守が難しい古いソフトウェアシステムを保守するためのギャップを埋めるのに役立つ。IBM Systems Mediaは、COBOLエンジニアの約10%が毎年平均58歳で退職しており、Javaとの相互運用性のためにシステムを変更できることを示しています。IBMはまた、さまざまな年齢差別訴訟において従業員の強制退職を奨励したとされている

COBOLイングレーションとは別に、GraalVMは、プログラムを実行するための命令を含む多言語のアクティブなリストを保持している。このリストには、JavaScript/Node、Python、R、Ruby、WebAssemblyなどの他の言語が含まれている。この取り組みの多くは、2015年のACM論文である「多言語ランタイムでの高性能な言語間相互運用性」に記載されているThomas Wurthingerらの研究に由来している。言語間での実行を管理するための重要な機能の1つは、コンパイラレベルで欠陥がないかそれらの言語の実行を確認および視覚化する機能である。この視覚化は、Ideal Graph Visualizerで実現できる。

GraalVMとその多言語モデルの記載は開発者にアピールできるが、AOTコンパイルの主な利点は、リソースとコストを削減するために必ずしも望ましい結果を達成するとは限らない。Payaraによるブログ投稿では、サーバーレスまたはコンテナ化された実行モデルでのさまざまなワークロードの実行コストを分析した。一部のアプリケーションはコストメリットを享受できるが、メモリ需要とアプリケーション使用パターンをベースとしてケースでは、コストメリットが得られないこともある。一連の小さな機能として、ほとんどのサーバーレスシステムは、多言語機能ではなく単一の言語を使用する。

この記事に星をつける

おすすめ度
スタイル

BT