あまり知られていない JavaScript の再生方法

黄舟
リリース: 2017-02-21 11:23:48
オリジナル
1228 人が閲覧しました



Stack OverFlow の共同創設者である Jeff Atwood は、かつて次のような有名な「アトウッドの法則」を提案しました。 JavaScript で実装できるアプリケーションは、最終的には JavaScript で実装されることになります。

JavaScript が現時点で最も人気のあるプログラミング言語の 1 つであることに疑いの余地はありません。これについては、フロントエンドとバックエンド、さらにはフルスタックについて議論する必要はありません。エンジニアは間違いなくあなたのことを心配しているでしょう。最近、ハッカーアートは、2016 年の主流のプログラミング言語の使用法について説明したブログ投稿を公開しました:

あまり知られていない JavaScript の再生方法あまり知られていない JavaScript の再生方法 したがって、彼らは、今年最も人気のある言語は次のものになると予測しています: あまり知られていない JavaScript の再生方法あまり知られていない JavaScript の再生方法

JavaScript
  • Java

  • Python

  • PHP

  • Matlab

  • Arduino

  • Swift

  • は、JavaScriptを拡張しました多くの領域への触手 多くの新しい方法があります。次のコンテンツでは、あまり知られていない JavaScript の再生方法をいくつか試してみます:

  • Espruino

Espruino は、マイクロコントローラー (MCU) 用に特別に設計された JavaScript インタプリタで、最小リソース オーバーヘッドは 128KB のフラッシュと 8KB RAM です。 、MPL-2.0プロトコルを使用するオープンソース。

著者の Gordon Williams は単なる何でも屋で、最近 Espruino をサポートするハードウェア Puck.js を設計しました。

この巨人の肩には、自分で開発したハードウェアと互換性を持たせるためにいくつかの変更を加えました。変更したコードを GitHub に送信しました。興味のある友人はそれを複製して遊ぶことができます。

Star

$ git clone http://www.php.cn/
$ cd Espruino

# 将 YS-Beacon 连接至 PC
$ YS_BEACON=1 RELEASE=1 make flash

# 终端跳出一大堆字符,板子上的蓝色灯闪烁,最后一切轻松搞定~
...
[====================] 100%
DEBUG:root:reset stop on Reset  
INFO:root:Programmed 446464 bytes (109 pages) at 14.56 kB/s  
DEBUG:root:uninit board <pyOCD.board.mbed_board.MbedBoard object at 0x1025e8a90>  
DEBUG:root:closing interface
ログイン後にコピー

Espruino にはサポート開発ツール Espruino Web IDE もあり、コードの編集、プログラムのダウンロード、さらにはグラフィカル プログラミングにも使用できます。以下は、単純に LED の点滅を実装するコードです。

var on = false;  
setInterval(function() {  
  on = !on;
  LED1.write(on);
}, 500);
ログイン後にコピー

興味深いことに、Espruino ハードウェアは JavaScript インタプリタを実行し、それにアップロードされた JavaScript コードは RAM にのみ保存されます。これはブラウザとまったく同じであり、動的解析特性も反映しています。

JerryScriptあまり知られていない JavaScript の再生方法

Espruino が少しおもちゃっぽいとしたら、JerryScript はより製品指向であると言うべきで、JerryScript のリソース オーバーヘッドは高くなく、RAM は 64KB 未満、ROM は 200KB 未満にすることができます。

JerryScript に関して言えば、IoT.js と Samsung は切っても切れない関係にあります。その「三角関係」は次のとおりです。

IoT.js は JavaScript で書かれた IoT アプリケーション プラットフォームです。デバイス用の小さな JavaScript エンジン、Samsung のオープンソースの IoT.js および JerryScript。

全体の内部構造は次のとおりです:

次の小さなコードは、JerryScript の基本的なワークフローを示しています: エンジンの初期化 → JavaScript コードの解析 → コードの実行 → 実行の終了とメモリの解放。

{
  jerry_init(JERRY_FLAG_ENABLE_LOG);

  char script[] = "print (&#39;Hello, World!&#39;);";
  jerry_parse(script, strlen(script));

  jerry_run();

  jerry_cleanup();
}
ログイン後にコピー

JerryScript のソース コードを確認すると、既に一部の RTOS (Zephyr、mbed OS など) で実行できることがわかります。昨年深センで開催された mbed Connect Asia 2016 カンファレンスで、Jan Jongboom 氏は mbed OS 5 に JerryScript を導入したと述べ、いくつかの簡単な例を紹介しました。 あまり知られていない JavaScript の再生方法

mbed OS 5 がサポートされているので、開発するハードウェアを簡単にサポートできます。開発環境の構築については、README を参照することができます。実装は難しくありません。

$ git clone http://www.php.cn/

$ cd mbed-js-example

# 国内的朋友可以使用淘宝镜像安装依赖:cnpm install
$ npm install 

# 此处 gulp 用于获取 JerryScript 源码
$ gulp

# 获取 mbed os 最新源码
$ cd ./build/jerryscript/targets/mbedos5/mbed-os
$ git checkout master
$ git pull

# 从我的仓库拉回相关目标硬件配置文件
$ git remote set-url origin http://www.php.cn/
$ git pull

# 指定目标板子,自动编译
$ gulp --target=YS_BEACON
ログイン後にコピー

JavaScript で書かれたアプリケーションのソース コードを見てみましょう。奇妙でありながらも親しみを感じますか: あまり知られていない JavaScript の再生方法

// blink_leds.js
var led = DigitalOut(LED1);

var blink = function() {  
    led.write(led.read() ? 0 : 1);
    print("blink! LED is now " + led.read());
};

module.exports = blink;

// main.js
var blink = require(&#39;./blink_leds&#39;);

setInterval(function() {  
    blink();
}, 1000);
ログイン後にコピー
コンパイルされた mbedos5.hex ファイルをターゲット ボードにダウンロードし、結果が正しいかどうかを確認してください。欲しいもの:

Blockly

プログラミング言語やコマンドラインウィンドウのカーソルの点滅が怖いなら、Blockly があなたを救い、楽しく興味深いものにしてくれるツールかもしれません。 あまり知られていない JavaScript の再生方法Blockly は、Google が開発しオープンソース化した JavaScript ライブラリで、変数、式、ループなどを表すいくつかのグラフィカル ブロックをドラッグして組み合わせるだけでプログラミングが完了します。いいね?

実際、Blockly はビジュアル編集とコード生成という 1 つのことだけを行います。 Blockly はコードの背後にある動作を気にしないため、開発者には想像力の余地がたくさんあります。たとえば、Ozobot は、Blockly を使用してロボットの動作をプログラムできます。

ビデオタグをサポートしていません。

楽しいじゃないですか?ロボットがいないのが残念です。ただし、Espruino を使用して最初に Blockly のゲームプレイを体験し、その後段階的に独自のロボットを構築することができます (はい、前述の Espruino は Blockly をサポートしています): あまり知られていない JavaScript の再生方法

続きます

まだ十分に楽しんでいませんか?私はまだもっと面白いことを模索中です。興味のある方はぜひシェアしてください。

上記は JavaScript のあまり知られていないゲームプレイの内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!