• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            Duktape:在C/C++項目中嵌入JavaScript

            轉載自:http://www.infoq.com/cn/news/2014/12/Duktape-Embedded-JavaScript

            軟件可能正在吞噬世界,而JavaScript又可能正在吞噬軟件世界。憑借可以嵌入到任何C/C++項目中的、完整兼容ECMAScript 5的引擎,Duktape使得JavaScript超越了瀏覽器或服務器的界限。

            Duktape較小的代碼庫、簡單的構建系統,使其非常適合嵌入在其他系統中使用。從技術角度看,它本質上和Lua項目很像,但是它運行的JavaScript卻有著更大的生態系統和更多的開發者。——Tim Caswell

            盡管Lua并不比JavaScript年長多少,但是JavaScript在瀏覽器中、在服務器上(通過node.js),無處不在,從而獲得了更大的認可。對于想嵌入一門腳本語言的項目,Duktape支持使用一種非常流行的語言及其生態系統。Duktape項目的創建者Sami Vaarala指出,“最初動機就是想為JavaScript創建一個類似Lua的實現。”

            使用Duktape非常簡單,只需要把duktape.c和duktape.h添加到項目中。JavaScript和C之間的綁定是雙向的,所以可以相互調用。“Hello World!”示例如下:

            #include "duktape.h"

            int main(int argc, char *argv[]) {
              duk_context *ctx = duk_create_heap_default();
              duk_eval_string(ctx, "print('Hello world!');");
              duk_destroy_heap(ctx);
              return 0;
            }

            Tim Caswell摘取了Duktape的核心,用Dukluv加以擴展,創建了一個較小的“針對小型設備的類node.js環境”。Caswell提到,他的項目加入了libuv到Duktape的綁定:

            使得Duktape可以訪問操作系統,從而成為一個支持非阻塞I/O、定時器(timer)、子進程,并支持加載libuv所提供的有用的工具函數的完整通用編程環境。

            需要嵌入腳本語言的需求并不新鮮。電子游戲已經這么干了好多年了,比如魔獸世界就使用了Lua,用于定制界面。Stack Overflow上有一個很受歡迎的回答指出,Lua之所以常用,原因在于:

            Lua很小,可移植,而且是用ANSI C實現的,易于修改;容易嵌入到其他項目中,好擴展,而且對于游戲開發者最重要的是,運行時占用的內存非常少。

            像SpiderMonkey和V8等瀏覽器引擎也可以嵌入在其他項目中,但是它們很龐大,不適合小型應用。Caswell說,對于簡單的任務或低功率的機器,它們“太過重量級”了。Espruino項目也為微控制器提供了JavaScript,但是它和ECMAScript的兼容性只在95%左右,而Duktape是完全兼容的。

            Duktape基于MIT許可協議開源,源代碼托管在GitHub上。使用過的開發者都對其豐富的文檔贊口不絕。

            查看英文原文:JavaScript on a Toaster: Embedded JavaScript with Duktape


            posted on 2016-04-13 17:11 楊粼波 閱讀(1916) 評論(0)  編輯 收藏 引用

            国产亚洲欧美精品久久久| 久久se精品一区精品二区国产| 老司机午夜网站国内精品久久久久久久久 | 亚洲日本va午夜中文字幕久久| 日韩十八禁一区二区久久| 人妻无码αv中文字幕久久琪琪布| 久久婷婷五月综合色奶水99啪| 久久精品国产亚洲一区二区| 亚洲国产精品无码久久青草| 国内精品久久久人妻中文字幕| 欧美精品一区二区久久| 国内精品久久久久久99蜜桃| 三级韩国一区久久二区综合 | 91精品国产91久久久久久蜜臀| 久久精品不卡| 潮喷大喷水系列无码久久精品| 亚洲精品乱码久久久久久不卡| 国产产无码乱码精品久久鸭| 欧美精品乱码99久久蜜桃| 欧美激情精品久久久久| 五月丁香综合激情六月久久| 欧美性大战久久久久久| 久久久久综合网久久| 久久精品人人做人人爽97| 久久九九久精品国产免费直播| 国产伊人久久| 国产精自产拍久久久久久蜜| 国产成人无码久久久精品一| 亚洲午夜久久久久妓女影院| 精品久久久久久无码不卡| 久久伊人影视| 亚洲精品无码专区久久同性男| 一本大道久久a久久精品综合| AV无码久久久久不卡网站下载| 漂亮人妻被黑人久久精品| 国产精品久久久久蜜芽| 人妻无码精品久久亚瑟影视| 精品无码久久久久国产动漫3d| 亚洲人AV永久一区二区三区久久| 欧美大战日韩91综合一区婷婷久久青草 | 久久久久人妻一区精品性色av|