# asm.js

> intermediate programming language

**Wikidata**: [Q13496636](https://www.wikidata.org/wiki/Q13496636)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Asm.js)  
**Source**: https://4ort.xyz/entity/asm-js

## Summary
asm.js is an intermediate programming language specification first published in 2013. It is classified as both a programming language and a web framework, designed to be executed efficiently in web browsers. The project is open-source, licensed under the Apache License, and maintained in a public GitHub repository.

## Key Facts
- **Classification:** Identified as an intermediate programming language and a web framework.
- **License:** Licensed under the Apache License.
- **Initial Publication:** The specification was published in 2013.
- **Website:** The official project website is located at http://asmjs.org.
- **Specification:** The technical specification is described at http://asmjs.org/spec/latest/.
- **Repository:** The source code is hosted on GitHub at https://github.com/dherman/asm.js.
- **Browser Integration:** It is tracked via Chrome Platform Status feature ID 5053365658583040 and has a corresponding "Can I Use" feature ID.
- **Community:** The entity has a dedicated tag on Stack Overflow and Wikipedia pages in 10 languages (including English, German, French, Japanese, and Chinese).

## FAQs
### Q: What is asm.js?
A: asm.js is an intermediate programming language optimized for high-performance web applications. It serves as a target for compilers to run code in the browser at near-native speed.

### Q: When was asm.js released?
A: The specification and initial implementation references date to 2013, specifically noted in Mozilla blog posts from March of that year.

### Q: Is asm.js free to use?
A: Yes, asm.js is available under the Apache License, making it open and free for commercial and personal use.

## Why It Matters
asm.js represents a critical step in the evolution of web performance and compiler technology. By defining a strict subset of JavaScript that can be optimized heavily by the browser engine, it allowed developers to run computationally heavy applications (such as games and image processors) on the web without plugins. It serves as a bridge between high-level web standards and low-level assembly-like execution, paving the way for modern web compilation techniques. The existence of specific feature IDs for browser compatibility highlights its role as a standard tracked closely by browser vendors like Mozilla and Chrome.

## Notable For
- **Intermediate Language:** Distinct from general-purpose languages, it is specifically designed as a compiler target.
- **Web Framework Classification:** Uniquely categorized as both a programming language and a web framework.
- **Open Specification:** Maintained via a public GitHub repository and official specification site.
- **Browser Optimization:** Recognized by major browser platforms (Chrome, Firefox) with specific tracking IDs for feature support.
- **Multilingual Documentation:** Has established a global presence with Wikipedia articles in 10 different languages.

## Body

### Identity and Definition
asm.js is defined strictly as an **intermediate programming language**. While it operates within the JavaScript environment, it is distinct in its purpose as a compilation target rather than a language intended to be written by hand. It holds a dual classification in knowledge bases as both a **programming language** and a **web framework**.

### Technical Specifications and Resources
The language is governed by the Apache License. The definitive technical description is hosted at `http://asmjs.org/spec/latest/`.
*   **Source Code:** The canonical repository is maintained on GitHub under the user `dherman`.
*   **Developer Resources:** Developers can utilize the Stack Overflow tag `asm.js` for community support.
*   **Compatibility:** The feature is tracked in the "Can I Use" database under the ID `asmjs` and in Chrome Platform Status under ID `5053365658583040`.

### Historical Context
The project's formal publication date is recorded as **2013**. Key historical references include:
*   **March 21, 2013:** A Mozilla blog post titled "asm.js in Firefox Nightly" announced its availability in the browser's nightly builds.
*   **June 20, 2013:** A follow-up blog post titled "What asm.js is and what asm.js isn't" clarified the scope and limitations of the technology.

### Web Presence
The entity maintains a significant digital footprint, evidenced by a sitelink count of 10 across various Wikipedia languages, including German (`de`), English (`en`), French (`fr`), Japanese (`ja`), Korean (`ko`), and Russian (`ru`). The official website remains `http://asmjs.org`.

## References

1. [Source](https://api.github.com/repos/dherman/asm.js)
2. [asm.js in Firefox Nightly. 2013](https://blog.mozilla.org/luke/2013/03/21/asm-js-in-firefox-nightly/)
3. [What asm.js is and what asm.js isn't. 2013](http://mozakai.blogspot.com/2013/06/what-asmjs-is-and-what-asmjs-isnt.html)