Jscexは公式にリリースされたBSDライセンスを使用します



Jscex Use Bsd License Officially Released



Jscexはある程度の成果を上げようとしていますが、実際、技術的な障壁が「変わる」ことはめったにありません。私たちは壊れる可能性がありますが、Jscexには本当のチャンスがあると思います。HTML5、Node.jsはすべて真っ赤なものです。数日前、私は中途半端なChinglishと2泊しましたが、Githubのプロジェクトホームページに配置されたより完全なキャプションは、数時間後に受け取ることを期待していなかったと書いています。 StratifiedJS (Jscexを目標とするやや類似したプロジェクト)メールで、StratifiedJSについていくつか言及しました。 StratifiedJSがJscexの原則の実装についても説明した詳細のいくつかを彼に相談しました。今 Jscexは公式にリリースされたBSDライセンスを使用しています (近い将来、チャイニーズステーションが立ち上げられます)、その後、細部の最適化を開始してプロモーションを開始する必要があります。

最新のものは、不要な遅延最適化メソッド呼び出しの削除です。遅延の目的は、コードの実行時間を遅らせることです。適切な時間にのみ実行されるようにします。これは、「遅延」がなく、言語が副作用を持つために非常に重要です。 F#署名メソッドの遅延は次のとおりです(Jscexも同様)。



// async.Delay ((unit -> Async) -> Async)

遅延機能はネストを継続できますが、効果は次の点で変わらないと述べています。

builder.Delay(function () { return builder.Delay(function () { return builder.Delay(function () { return builder.Loop(...) }) }) })

ビルダーの真上。ループコードは比較結果に影響を与えないため、生成されたコードから、見た目がすっきりとしていて、見た目も美しく(試運転に関連している可能性があります)、パフォーマンスが低下することは明らかです。コンパイラが不要な遅延を生成する前のJscex(もちろん、上記でそれほど誇張されることはありません)。これは、前のコードジェネレータが、コードを生成する方法でASTパーサーUglifyJSを直接トラバースすることによってのみ取得されるためです。新しいコンパイラは、構造と戦略を再調整し、最初にASTのUglifyJSを中間形式に変換します。これをJscex ASTと呼び、次にコードジェネレーターにJscexASTからコードを生成させます。新しいジェネレーターは動作中であり、いくつかの遅延ノードをスキップし、メソッド呼び出しの不要な遅延を削除する目的を達成するために、独自のノードから直接コードを生成します。



たとえば、クイックソート関数Jscex:

var bubbleSortAsync = eval(Jscex.compile('async', function (array) { for (var x = 0 x for (var y = 0 y var r = $await(compareAsync(array[y], array[y + 1])) if (r > 0) { $await(swapAsync(array, y, y + 1)) } } } }))

次のコードを生成します(および 以前の結果 Delayメソッド呼び出しの一部を削除することと比較して):

var bubbleSortAsync = (function (array) { var $_builder_$ = Jscex.builders['async'] return $_builder_$.Start(this, $_builder_$.Delay(function () { return $_builder_$.Delay( function () { var x = 0 return $_builder_$.Loop( function () { return x function () { x++ }, $_builder_$.Delay(function () { return $_builder_$.Delay( function () { var y = 0 return $_builder_$.Loop( function () { return y <(array.length - x) }, function () { y++ }, $_builder_$.Delay(function () { return $_builder_$.Bind(compareAsync(...), function (r) { return $_builder_$.Delay( function () { if (r > 0) { return $_builder_$.Bind(swapAsync(...), function () { return $_builder_$.Normal() }) } else { return $_builder_$.Normal() } }) }) }), false ) }) }), false ) }) })) })

もちろん、Jscexにはさらに最適化の余地があります。たとえば、「バインドしない操作」コードブロック、「ネストされたJscex関数」などを含めます。最近、いくつかの更新があるはずです。非同期JavaScriptを使用してプログラムを開発している場合は、Jscexを一緒に使用することもできます。これにより、プログラミングの寿命が大幅に向上することは間違いありません。



コマーシャル時間: 第4回nBazaar技術セミナーが4月23日(土)にチョンスタービル(浦東新区、上海888ビボロード、メトロライン張江ハイテクパーク駅、徒歩10分)で開催されます。到着を歓迎するために、13:00までに時間通りに到着してください。サインアップしなかった友達もオンサイト登録できます。リーダーシップのサポートがあるので、私たちはフィールドに出ます ShandaBambookの市場価格は999ドル 贈り物の幸運な視聴者として、さらにTuring Pressは、12冊以上の本を後援し、前向きな声明を聴衆に提供します。詳細については、を参照してください。 イベントホーム

元の: Jscexは公式にリリースされたBSDライセンスを使用します

複製:https://my.oschina.net/abcijkxyz/blog/721663