Emscripten (original) (raw)
Emscriptenは、CおよびC++ソースコードを、主にウェブブラウザ上で実行することを目的として、WebAssembly(または、2017年にWebAssemblyが登場するまで当初のターゲットであった、として知られるJavaScriptのサブセット)にコンパイルする、LLVM/Clangベースのコンパイラ。 Emscriptenを利用することで、CまたはC++で書かれたアプリケーションやライブラリを事前コンパイルして、ウェブブラウザ上で効率的に、特に動的にコンパイルされたあるいはインタプリタ実行されたJavaScriptと同等か、より速いスピードで実行することが可能になる。さらに最新のWebAssembly System Interface(WASI)の開発成果物とNode.js、Wasmtime、WasmerなどのWebAssemblyランタイムと組み合わせると、Emscriptenは非Web環境で実行するためのWebAssembly埋め込み用にコンパイルすることもできる。
Property | Value |
---|---|
dbo:abstract | Emscripten is an LLVM/Clang-based compiler that compiles C and C++ source code to WebAssembly (or to a subset of JavaScript known as asm.js, its original compilation target before the advent of WebAssembly in 2017), primarily for execution in web browsers. Emscripten allows applications and libraries written in C or C++ to be compiled ahead of time and run efficiently in web browsers, typically at speeds comparable to or faster than interpreted or dynamically compiled JavaScript. It even emulates an entire POSIX operating system, enabling programmers to use functions from the C standard library (libc). With the more recent development of the WebAssembly System Interface (WASI) and WebAssembly runtimes such as Node.js, Wasmtime, and Wasmer, Emscripten can also be used to compile to WebAssembly for execution in non-Web embeddings as well. (en) Emscripten ist ein LLVM-zu-Web-Compiler. Emscripten kompiliert LLVM-Assemblercode zu Standard-JavaScript oder zu WebAssembly. Je nach verwendeter Programmiersprache werden bei der Übersetzung verschiedene Ansätze verfolgt. Der Sourcecode wird entweder direkt von LLVM-Bytecode in JavaScript übersetzt (z. B. C++ oder C), oder die Ausführungsumgebung der Programmiersprache wird in JavaScript übersetzt. Die kompilierte Ausführungsumgebung wird dann genutzt um Code der jeweiligen Programmiersprache auszuführen (z. B. CPython). Emscripten unterstützt eine ganze Reihe von Programmiersprachen, der Fokus der Entwickler liegt aber auf der Übersetzung von C und C++. Ein Beispiel für die Anwendung von Emscripten zeigt die Portierung der Unreal Engine 4 auf JavaScript. (de) Emscripten es un programa informático, un tipo de compilador denominado compilador Source-to-source o transcompilador. Puede procesar bytecode de LLVM, normalmente creado al compilar código C o C++. Este nos devuelve como salida un archivo en el lenguaje de programación JavaScript que puede procesarse en navegadores web.Es compatible con el estándar de la API de desarrollo de C/C++ como STL, SDL o incluso OpenGL. El fundador de este proyecto es Alon Zakai. Con este software, se ha compilado en Javascript varios proyectos de código abierto. Como ejemplo, podemos citar Gnuplot, zlib, el juego SuperTux, un intérprete de Lua o el SGBD SQLite.Uno de los proyectos más conocidos realizados con este software es BananaBread, un juego para navegador compilado mediante Emscripten. (es) Emscripten est un compilateur source à source open source permettant de compiler du LLVM en asm.js, qui peut être exécuté par les navigateurs web. Le bytecode LLVM étant généré à partir de programmes écrits en langage C ou C++, par extension Emscripten permet donc de compiler un programme C ou C++ en JavaScript. Utilisé avec , il permet de produire du WebAssembly. Il est compatible avec quelques interfaces de programmation courantes comme la Standard Template Library, la Simple DirectMedia Layer et OpenGL. Grâce à ce logiciel, des portages JavaScript de différents projets open source ont déjà été réalisés : Gnuplot, zlib, SuperTux, SQLite, etc. En mars 2013, Mozilla annonce avoir porté, avec l'aide des équipes d'Epic Games le moteur de jeux Unreal Engine sous Firefox, notamment grâce à Emscripten et LLVM. Cette démonstration s'inscrit dans le cadre du développement du module asm.js dans l’interpréteur javascript OdinMonkey destiné à améliorer la vitesse d'exécution des scripts dans le navigateur Mozilla Firefox. (fr) Emscriptenは、CおよびC++ソースコードを、主にウェブブラウザ上で実行することを目的として、WebAssembly(または、2017年にWebAssemblyが登場するまで当初のターゲットであった、として知られるJavaScriptのサブセット)にコンパイルする、LLVM/Clangベースのコンパイラ。 Emscriptenを利用することで、CまたはC++で書かれたアプリケーションやライブラリを事前コンパイルして、ウェブブラウザ上で効率的に、特に動的にコンパイルされたあるいはインタプリタ実行されたJavaScriptと同等か、より速いスピードで実行することが可能になる。さらに最新のWebAssembly System Interface(WASI)の開発成果物とNode.js、Wasmtime、WasmerなどのWebAssemblyランタイムと組み合わせると、Emscriptenは非Web環境で実行するためのWebAssembly埋め込み用にコンパイルすることもできる。 (ja) Emscripten은 LLVM 컴파일러에 대한 백엔드로서 실행되는 소스 대 소스 컴파일러로서, Asm.js라는 이름의 자바스크립트 하위 집합을 생성한다. 웹어셈블리도 생성이 가능하다. 이를 통해 표준 실행 파일로서 실행되도록 설계된 애플리케이션과 라이브러리들이 클라이언트 사이드 웹 애플리케이션과 연동될 수 있게 해준다. asm.js는 브라우저에 의해 미리 컴파일이 가능한데, 이 말은 컴파일된 프로그램들이 자바스크립트로 전통적으로 작성된 것들보다 훨씬 더 빠르게 실행될 수 있음을 의미한다. Emscripten은 언리얼 엔진 3, SQLite, MeshLab, 불릿 물리 엔진, 오토캐드,, Qt 애플리케이션 프레임워크 등을 이식하기 위해 사용되고 있다. (ko) Emscripten - kompilator kodu LLVM do Javascriptu lub WebAssembly. Skompilowane programy działają na każdym silniku JavaScriptu kompatybilnym ze specyfikacją EcmaScript 5, z szybkością dochodzącą do 2/3 szybkości programów natywnych. Kompilacja odbywa się przez skompilowanie kodu źródłowego do kodu bajtowego LLVM (zwykle kodu C lub C++ z użyciem Clanga), a następnie do kodu z wykorzystaniem HTML5 do obsługi multimediów. Emscripten stworzono do przenoszenia gier (implementuje SDL, OpenGL i inne popularne API) i przeniesiono nań silnik Unreal Engine 4. Działają w nim jednak praktycznie dowolne aplikacje, czego przykładem jest środowisko Qt. Licencja Emscripten umożliwia bezpłatne wykorzystanie komercyjne. (pl) Emscripten — компилятор LLVM-байткода в код JavaScript, который может быть запущен в веб-браузере. LLVM-байткод может быть получен из исходного кода на языке C или C++. Основателем проекта является Алон Закай (Alon Zakai).Распространяется по лицензии MIT. JavaScript-разработчики довольно часто сталкиваются с непростыми задачами, которые зачастую уже решены, но не на нужном им JavaScript, а совсем на другом языке программирования. Переписывать десятки, а то и сотни тысяч строк кода с C / C ++ на JavaScript — удовольствие на любителя. Это вовсе не прибавляет энтузиазма. Дополнительная проблема портирования связана с тем, что эмуляция кода заведомо менее эффективна, чем исполнение нативного кода. И когда скорости пошагового моделирования работы чужого процессора не хватает, им приходится добавлять динамическую рекомпиляцию — автоматический перевод участков эмулируемого кода в JavaScript. Это довольно трудно, но после переработки умным JIT-компилятором код становится быстрее. Целью развития проекта Emscripten является создание инструмента, который позволил бы выполнять в Интернете код независимо от языка программирования, на котором этот код написан. Emscripten позволяет осуществить компиляцию байткода LLVM в код на языке JavaScript, который может быть выполнен внутри веб-браузера, используя только штатный JavaScript-движок, без необходимости задействования дополнительных плагинов. Байткод LLVM может быть сгенерирован из исходных текстов C / C ++ с помощью компиляторов llvm-gcc и clang, а также из кода на другом языке программирования, для которого существует LLVM-фронтенд. Emscripten поддерживает трансляцию вывода библиотеки SDL через canvas, а также оказывает поддержку OpenGL через WebGL. Среди проектов, которые удалось успешно пересобрать для работы в браузере, можно отметить ядро NetBSD, интерпретаторы CPython, Ruby и Lua, PDF-просмотрщик Poppler, систему рендеринга TrueType-шрифтов FreeType, декодировщик видео H.264, игры Doom и Doom 3, игровой движок Unreal Engine, и другие. (ru) Emscripten — компілятор типу код-у-код або транскомпілятор. На вході він приймає LLVM-байткод, звичайно отриманий компіляцією початкового коду мовою C або C++. На виході він видає файл з кодом мовою JavaScript, що може бути запущений у вебпереглядачі. Засновником проекту є Алон Закай (Alon Zakai). Поширюється на умовах ліцензії MIT. Основною метою розвитку проекту Emscripten є створення інструменту, який дозволив би виконувати у Вебі код незалежно від мови програмування, якою цей код написаний. Emscripten дозволяє здійснити компіляцію біткода LLVM в скрипт мовою JavaScript, який може бути виконаний всередині веббраузера, використовуючи тільки штатний JavaScript-рушій, без необхідності задіяння додаткових плаґінів. Біткод LLVM може бути згенерований з C/C++ за допомогою компіляторів lvm-gcc і clang, а також з коду на будь-якою іншою мовою програмування, для якої є LLVM-фронтенд. Emscripten підтримує трансляцію виведення бібліотеки SDL через canvas, а також надає підтримку OpenGL через WebGL. Серед проектів, які вдалося успішно перезібрати для роботи в браузері, можна відзначити ядро NetBSD, інтерпретатори CPython, Ruby і Lua, PDF-переглядач , систему рендеринга TrueType-шрифтів FreeType, декодувальник відео H.264, гру Doom, 3D гру засновану на рушії Sauerbraten, ігровий рушій Unreal Engine, Quake. (uk) |
dbo:genre | dbr:Compiler |
dbo:latestReleaseDate | 2021-08-26 (xsd:date) |
dbo:latestReleaseVersion | 2.0.29 |
dbo:license | dbr:MIT_License dbr:University_of_Illinois/NCSA_Open_Source_License |
dbo:programmingLanguage | dbr:C++ dbr:C_(programming_language) dbr:JavaScript |
dbo:thumbnail | wiki-commons:Special:FilePath/Emscripten_logo.svg?width=300 |
dbo:wikiPageExternalLink | https://emscripten.org/docs/ https://github.com/appcypher/awesome-wasm-runtimes https://github.com/emscripten-core/emscripten https://github.com/emscripten-core/emscripten/wiki/Porting-Examples-and-Demos |
dbo:wikiPageID | 35614465 (xsd:integer) |
dbo:wikiPageLength | 7740 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1119207084 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Qt_(software) dbc:Software_using_the_NCSA_license dbr:Unity_(game_engine) dbr:Unreal_Engine dbr:Interpreter_(computing) dbc:Software_using_the_MIT_license dbr:Compiler dbr:SQLite dbr:Clang dbr:Godot_(game_engine) dbr:Google_Native_Client dbr:MS-DOS dbr:AutoCAD dbr:Bullet_(software) dbr:C++ dbr:C_(programming_language) dbr:WebAssembly dbr:Web_browsers dbr:Just-in-time_compilation dbr:DOSBox dbr:Node.js dbr:POSIX dbr:Source_code dbr:Haxe dbr:Internet_Archive dbr:JavaScript dbc:Source-to-source_compilers dbr:Asm.js dbc:Compilers dbc:JavaScript_libraries dbr:LLVM dbr:C_standard_library dbr:MeshLab dbr:OpenFrameworks dbr:MIT_License dbr:Runtime_system dbr:University_of_Illinois/NCSA_Open_Source_License dbr:Porting |
dbp:author | Alon Zakai (en) |
dbp:genre | dbr:Compiler |
dbp:latestReleaseDate | 2021-08-26 (xsd:date) |
dbp:latestReleaseVersion | 2 (xsd:integer) |
dbp:license | dbr:MIT_License dbr:University_of_Illinois/NCSA_Open_Source_License |
dbp:logo | Emscripten logo.svg (en) |
dbp:name | Emscripten (en) |
dbp:programmingLanguage | dbr:C++ dbr:C_(programming_language) dbr:JavaScript |
dbp:title | Emscripten (en) |
dbp:wikiPageUsesTemplate | dbt:Infobox_software dbt:Official_website dbt:Portal dbt:Reflist dbt:Short_description dbt:Start_date_and_age dbt:JavaScript |
dcterms:subject | dbc:Software_using_the_NCSA_license dbc:Software_using_the_MIT_license dbc:Source-to-source_compilers dbc:Compilers dbc:JavaScript_libraries |
gold:hypernym | dbr:Compiler |
rdf:type | owl:Thing dbo:Software schema:CreativeWork dbo:Work wikidata:Q386724 wikidata:Q7397 yago:Abstraction100002137 yago:Code106355894 yago:CodingSystem106353757 yago:Communication100033020 yago:Writing106359877 yago:WrittenCommunication106349220 yago:Software106566077 |
rdfs:comment | Emscriptenは、CおよびC++ソースコードを、主にウェブブラウザ上で実行することを目的として、WebAssembly(または、2017年にWebAssemblyが登場するまで当初のターゲットであった、として知られるJavaScriptのサブセット)にコンパイルする、LLVM/Clangベースのコンパイラ。 Emscriptenを利用することで、CまたはC++で書かれたアプリケーションやライブラリを事前コンパイルして、ウェブブラウザ上で効率的に、特に動的にコンパイルされたあるいはインタプリタ実行されたJavaScriptと同等か、より速いスピードで実行することが可能になる。さらに最新のWebAssembly System Interface(WASI)の開発成果物とNode.js、Wasmtime、WasmerなどのWebAssemblyランタイムと組み合わせると、Emscriptenは非Web環境で実行するためのWebAssembly埋め込み用にコンパイルすることもできる。 (ja) Emscripten은 LLVM 컴파일러에 대한 백엔드로서 실행되는 소스 대 소스 컴파일러로서, Asm.js라는 이름의 자바스크립트 하위 집합을 생성한다. 웹어셈블리도 생성이 가능하다. 이를 통해 표준 실행 파일로서 실행되도록 설계된 애플리케이션과 라이브러리들이 클라이언트 사이드 웹 애플리케이션과 연동될 수 있게 해준다. asm.js는 브라우저에 의해 미리 컴파일이 가능한데, 이 말은 컴파일된 프로그램들이 자바스크립트로 전통적으로 작성된 것들보다 훨씬 더 빠르게 실행될 수 있음을 의미한다. Emscripten은 언리얼 엔진 3, SQLite, MeshLab, 불릿 물리 엔진, 오토캐드,, Qt 애플리케이션 프레임워크 등을 이식하기 위해 사용되고 있다. (ko) Emscripten - kompilator kodu LLVM do Javascriptu lub WebAssembly. Skompilowane programy działają na każdym silniku JavaScriptu kompatybilnym ze specyfikacją EcmaScript 5, z szybkością dochodzącą do 2/3 szybkości programów natywnych. Kompilacja odbywa się przez skompilowanie kodu źródłowego do kodu bajtowego LLVM (zwykle kodu C lub C++ z użyciem Clanga), a następnie do kodu z wykorzystaniem HTML5 do obsługi multimediów. Emscripten stworzono do przenoszenia gier (implementuje SDL, OpenGL i inne popularne API) i przeniesiono nań silnik Unreal Engine 4. Działają w nim jednak praktycznie dowolne aplikacje, czego przykładem jest środowisko Qt. Licencja Emscripten umożliwia bezpłatne wykorzystanie komercyjne. (pl) Emscripten is an LLVM/Clang-based compiler that compiles C and C++ source code to WebAssembly (or to a subset of JavaScript known as asm.js, its original compilation target before the advent of WebAssembly in 2017), primarily for execution in web browsers. With the more recent development of the WebAssembly System Interface (WASI) and WebAssembly runtimes such as Node.js, Wasmtime, and Wasmer, Emscripten can also be used to compile to WebAssembly for execution in non-Web embeddings as well. (en) Emscripten es un programa informático, un tipo de compilador denominado compilador Source-to-source o transcompilador. Puede procesar bytecode de LLVM, normalmente creado al compilar código C o C++. Este nos devuelve como salida un archivo en el lenguaje de programación JavaScript que puede procesarse en navegadores web.Es compatible con el estándar de la API de desarrollo de C/C++ como STL, SDL o incluso OpenGL. El fundador de este proyecto es Alon Zakai. (es) Emscripten ist ein LLVM-zu-Web-Compiler. Emscripten kompiliert LLVM-Assemblercode zu Standard-JavaScript oder zu WebAssembly. Je nach verwendeter Programmiersprache werden bei der Übersetzung verschiedene Ansätze verfolgt. Der Sourcecode wird entweder direkt von LLVM-Bytecode in JavaScript übersetzt (z. B. C++ oder C), oder die Ausführungsumgebung der Programmiersprache wird in JavaScript übersetzt. Die kompilierte Ausführungsumgebung wird dann genutzt um Code der jeweiligen Programmiersprache auszuführen (z. B. CPython). Emscripten unterstützt eine ganze Reihe von Programmiersprachen, der Fokus der Entwickler liegt aber auf der Übersetzung von C und C++. (de) Emscripten est un compilateur source à source open source permettant de compiler du LLVM en asm.js, qui peut être exécuté par les navigateurs web. Le bytecode LLVM étant généré à partir de programmes écrits en langage C ou C++, par extension Emscripten permet donc de compiler un programme C ou C++ en JavaScript. Utilisé avec , il permet de produire du WebAssembly. Il est compatible avec quelques interfaces de programmation courantes comme la Standard Template Library, la Simple DirectMedia Layer et OpenGL. (fr) Emscripten — компилятор LLVM-байткода в код JavaScript, который может быть запущен в веб-браузере. LLVM-байткод может быть получен из исходного кода на языке C или C++. Основателем проекта является Алон Закай (Alon Zakai).Распространяется по лицензии MIT. JavaScript-разработчики довольно часто сталкиваются с непростыми задачами, которые зачастую уже решены, но не на нужном им JavaScript, а совсем на другом языке программирования. Переписывать десятки, а то и сотни тысяч строк кода с C / C ++ на JavaScript — удовольствие на любителя. Это вовсе не прибавляет энтузиазма. (ru) Emscripten — компілятор типу код-у-код або транскомпілятор. На вході він приймає LLVM-байткод, звичайно отриманий компіляцією початкового коду мовою C або C++. На виході він видає файл з кодом мовою JavaScript, що може бути запущений у вебпереглядачі. Засновником проекту є Алон Закай (Alon Zakai). Поширюється на умовах ліцензії MIT. (uk) |
rdfs:label | Emscripten (en) Emscripten (de) Emscripten (es) Emscripten (fr) Emscripten (ko) Emscripten (ja) Emscripten (pl) Emscripten (ru) Emscripten (uk) |
owl:sameAs | freebase:Emscripten wikidata:Emscripten dbpedia-de:Emscripten dbpedia-es:Emscripten dbpedia-fr:Emscripten dbpedia-ja:Emscripten dbpedia-ko:Emscripten dbpedia-pl:Emscripten dbpedia-ru:Emscripten dbpedia-uk:Emscripten https://global.dbpedia.org/id/2cPBE |
prov:wasDerivedFrom | wikipedia-en:Emscripten?oldid=1119207084&ns=0 |
foaf:depiction | wiki-commons:Special:FilePath/Emscripten_logo.svg |
foaf:isPrimaryTopicOf | wikipedia-en:Emscripten |
foaf:name | Emscripten (en) |
is dbo:wikiPageWikiLink of | dbr:List_of_Doom_ports dbr:RetroArch dbr:Cube_2:_Sauerbraten dbr:Unreal_Engine dbr:Index_of_JavaScript-related_articles dbr:Comparison_of_HTML5_and_Flash dbr:Mathomatic dbr:Source-to-source_compiler dbr:Epic_Citadel dbr:Google_Native_Client dbr:Google_Web_Toolkit dbr:CrossBridge dbr:Löve_(game_engine) dbr:Snes9x dbr:Transfer-matrix_method_(optics) dbr:Microwindows dbr:WebAssembly dbr:Allegro_(software_library) dbr:DOSBox dbr:EC_(programming_language) dbr:Haxe dbr:Asm.js dbr:AssemblyScript dbr:LLVM dbr:Meson_(software) dbr:OpenFrameworks |
is foaf:primaryTopic of | wikipedia-en:Emscripten |