术语表

通用

LLVM 后端

一个(Clang)编译器后端,它将 LLVM 中间表示 (IR) 转换为指定机器或其他语言的代码。在 Emscripten 的情况下,指定的目标是 JavaScript。

加载存储一致性

加载存储一致性 (LSC) 是指在将特定类型的值写入内存位置后,从该内存位置加载的值将是相同类型。因此,如果变量包含一个 32 位浮点数,那么对该变量的加载和存储都将是 32 位浮点值,而不是 16 位无符号整数或其他任何东西。

注意

此定义摘自 Emscripten:LLVM 到 JavaScript 编译器(第 2.1.1 节)。该论文中还有更多详细信息。

压缩

压缩 JavaScript 是从源代码中删除所有不必要的字符,而不会改变其功能的过程。在更高优化级别,Emscripten 使用 Closure Compiler 来压缩 Emscripten 代码。

重新循环

从 LLVM 程序集中出现的低级标签和分支重新创建高级循环和 if 结构(定义取自 这篇论文)。

SDL

简单直接媒体层 (SDL) 是一个跨平台开发库,旨在通过 OpenGL 和 Direct3D 提供对音频、键盘、鼠标、操纵杆和图形硬件的低级访问。

原始编译器支持许多其他内存模型和编译模式(参见 代码生成模式),但类型化数组模式 2 证明拥有,除其他优势外,对任意代码的最佳支持。

XHR

XMLHttpRequest 的缩写。Emscripten 使用 XHR 异步下载二进制数据。

Emscripten 工具和依赖项

Binaryen

Binaryen 是一个 WebAssembly 编译器工具包,Emscripten 使用它来修改和优化 Wasm。

Clang

Clang 是一个 C、C++ 和其他编程语言的编译器前端,它使用 LLVM 作为其后端。

Closure Compiler

Closure Compiler 用于在更高优化级别压缩 Emscripten 生成的代码。

编译器配置文件

编译器配置文件 存储 活动 工具和 SDK,如使用 emsdk activate 所定义。

emcc

Emscripten 编译器前端 (emcc)。Emscripten 的直接替换编译器,如 gcc

Emscripten 命令提示符

Emscripten Windows 命令提示符 (emcmdprompt.bat) 用于从 Windows 命令行调用 Emscripten 工具。

Fastcomp

Fastcomp 是 Emscripten 的第二个编译器核心,在 JS 编译器和新的 LLVM Wasm 后端之前。

Git

Git 是一个分布式版本控制系统。Emscripten 托管在 GitHub 上,可以使用 git 客户端对其进行更新和修改。

GitHub

GitHub 是一种 Git 存储库的基于 Web 的托管服务,它还提供基于项目的协作功能,包括 Wiki、任务管理和错误跟踪。

Emscripten 项目托管在 GitHub 上。

Java

Java 是一种编程语言和计算平台。它由 Emscripten 用于执行一些高级优化的代码。所需版本列在 工具链要求 中。

JavaScript

JavaScript (ECMAScript) 是一种主要用作 Web 浏览器一部分的编程语言,它提供对主机环境中对象的编程访问。使用 node.js,它也被用于服务器端网络编程。

asm.js JavaScript 子集是 Emscripten 的目标输出语言。

lli
LLVM 解释器

LLVM 解释器 (LLI)LLVM 位码执行程序。此工具未维护,并且存在奇怪的错误和崩溃。

LLVM

LLVM 是一个编译器基础设施,旨在允许优化用任意编程语言编写的程序。

node.js

Node.js 是一个跨平台的运行时环境,用于用 JavaScript 编写的服务器端和网络应用程序。它实质上允许你在浏览器上下文之外运行 JavaScript 应用程序。

Python

Python 是一种脚本语言,用于编写 Emscripten 的许多工具。所需版本列在 工具链要求 中。

SDK 术语

以下术语用于引用 SDK 和 Emscripten SDK (emsdk)

emsdk

Emscripten SDK (emsdk) 用于执行所有 SDK 维护,并且可以安装、更新、添加、删除和 激活 SDK工具。大多数操作形式为 ./emsdk command。要访问 emsdk 脚本,请启动 Emscripten 命令提示符

工具

捆绑在 SDK 中的基本软件单元。工具具有名称和版本。例如,clang-3.2-32bit 是一个包含 Clang v3.2 编译器 32 位版本的工具。Emscripten 使用的其他工具包括 JavaGitnode.js 等。

SDK

一组 工具。例如,sdk-1.5.6-32bit 是一个由以下工具组成的 SDK:clang-3.2-32bit、node-0.10.17-32bit、python-2.7.5.1-32bit 和 emscripten-1.5.6。

有许多不同的 Emscripten SDK 包。这些可以从 这里 下载。

活动工具/SDK

emsdk 可以存储多个版本的 工具SDK。活动工具/SDK 是在 Emscripten 命令提示符 上默认使用的工具集。此编译器配置存储在特定于 emsdk 的配置文件 (.emscripten) 中,可以使用 emsdk 更改。

emsdk 根目录

emsdk 可以管理任意数量的 工具SDK,这些工具和 SDK 存储在 emsdk 根目录子目录 中。emsdk 根目录 是首次安装 SDK 时指定的目录。

SDK 根目录

emsdk 可以存储任意数量的工具和 SDK。SDK 根目录 是用于存储特定 SDK 的目录。它的位置如下所示,相对于 emsdk 根目录<emsdk 根目录>\emscripten\<sdk 根目录>\

网站/Sphinx

reStructured text

用于定义本网站内容的标记语言。参见 reStructured text 简介