javascript - ユーザーが動的に提供する Scala コードを解釈する機能を維持したまま、Scala をブラウザーにコンパイル (トランスパイル) することは可能ですか?

okwaves2024-01-25  7

Scala.js が JS にトランスパイルできることは知っていますが、リフレクションはサポートされていません。 サーバー側に再送信せずに、ユーザーが提供した Scala コードを解釈する方法はありますか?

この方法で Scala を解釈することが不可能な場合、ユーザーが提供した JavaScript コードを Scala コードから (つまり、トランスパイルされる Scala コードから) 実行することは可能ですか?

あなたの最終目標は何ですか?ユーザーが提供した任意のコードを評価する必要は本当にありますか?

– ルイス・ミゲル・メジャスーレズ

2020 年 9 月 4 日 20:43

最初は、数学演算や印刷などのいくつかのプリミティブだけです。関数定義も同様です。おそらくリスト操作...

– ダウィド

2020 年 9 月 4 日 20:44

1

独自のミニマルな言語を作成し、独自のパーサーを作成して、通訳は?

– ルイス・ミゲル・メジャ・スーレス

2020 年 9 月 4 日 20:45

実際には、これはすべて、何らかの形式の「ネイティブ」言語を組み込んだ最小限の言語のためのものです。何かをできるようにするコード。これは、極端なミニマルなアプローチによるものです。すべての機能はホスト言語から (ライブラリとして) 取得されます。

– ダウィド

2020 年 9 月 4 日 20:50



------------------------

最初の質問に対して: いいえ、それは不可能です。 Scala コンパイラーはさまざまな理由から JavaScript にコンパイルできません。そのため、ユーザーが提供したコードをブラウザーでコンパイルすることができなくなります。

2 番目の質問: はい、js.eval(dynamicJSCodeString) を使用します。 eval とセキュリティに関する標準の警告が適用されます。



------------------------

最初の質問に対して: はい、それは間違いなく可能です。 ECMAScript または ECMAScript へのコンパイラが存在する言語 (TypeScript、CoffeeScr など) で Scala インタープリタを作成するだけです。ipt、Python、Ruby、Kotlin、もちろん Scala)、または ECMAScript で記述されたインタプリタが存在する言語、または ECMAScript へのコンパイラが存在する言語で記述された言語でも…そしてもちろん、これらのアプローチを次のように連鎖させることもできます。そうですね。

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。