プロジェクトのために Ruby に変換する必要がある膨大な量のレガシー C コードを抱えています。
Ruby から C へのトランスレータをオンラインで見たことがありますが、その逆はありません。この特定の問題にアプローチする簡単な方法はありますか?
プロジェクトのために Ruby に変換する必要がある膨大な量のレガシー C コードを抱えています。
Ruby から C へのトランスレータをオンラインで見たことがありますが、その逆はありません。この特定の問題にアプローチする簡単な方法はありますか?
C から Ruby へのトランスレータを作成する必要がありますが、これは可能ですが、その労力は正当化できない可能性があります。または、最初のステップとして、Ruby ラッパーを作成できる小さなモジュールに C コードを分割することもできます。それらがすべて Ruby でラップされ、主要な制御フローが Ruby で完了したら、テスト ハーネスを作成し (置き換えコードの正確性を検証し、リバース エンジニアリングを支援するため)、C モジュールを Ruby モジュールに置き換え始めることができます。
モジュールをネイティブ拡張として使用する場合、分割統治アプローチは通常の Ruby で機能するはずですが、ランタイム環境として JRuby のようなものをターゲットにしている場合、これは明らかにさらなる問題を引き起こします。コメントに従ってJRubyで同様のことをしたい場合は、CモジュールをJNIでラップし、その方法でJVMから呼び出すことを検討しています。どちらの方法でも、C コードが Ruby コードと対話できるようになりますが、2 つのアプローチは互換性がありません。
どちらのアプローチも迅速ではなく、どちらも大変な作業になります。
CでのプログラミングとRubyでのプログラミングは、まったく異なるプログラミングパラダイムを持っています。したがって、Fortran(またはこの場合はC)コードを任意の言語で記述できるという古い言い方は真実ですが、機械翻訳によって最終的に取得されるRubyコードは、構文を除いて、Rubyではありません。
したがって、IMHOは、手動以外の方法(および熟練したRubyistによって行われる、私が付け加えるかもしれません)は不可能であるか、少なくともまったく役に立たないでしょう。
あなたは出来る:
多分あなたはこれを試すことができますhttps://github.com/jackieju/CPP2Ruby/ cppにとっては新鮮ですが、cからrubyまではより長く存在していました