[JAVA] Hallo Welt mit Web Assembly

Was ist Web Assembly?

Eine Technologie, mit der Sie Assemblersprachen in Ihrem Browser ausführen können. Es wird verwendet, um etwas zu beschleunigen oder zu tun, was das JavaScript-Verarbeitungssystem nicht kann.

Im Juni 2015 haben Mozilla, Google, Microsoft und Apple vereinbart, es als Standardformat zu entwickeln.

Unterstützte Sprachen sind C / C ++, Rust usw. In letzter Zeit kann Golang auch verwendet werden.

Kann ich WebAssembly verwenden? <Img width = "1272" alt = "Screenshot 2018-09-28 16.17.10.png " src = "https://qiita-image-store.s3.amazonaws.com/0/265344" /81bce170-2244-092c-e681-864551dedbd5.png ">

Wird derzeit von den meisten anderen Browsern als IE unterstützt.

Was ist eine Assemblersprache?

Schauen wir uns als Beispiel ein in C ++ in der Assemblersprache geschriebenes Hello World-Programm an.

hello.cpp


#include <iostream>
using namespace std;

int main() {
    cout << "Hello World!" << endl;
    return 0;
}

Sie können die Assemblersprache anzeigen, indem Sie die Option S zu g ++ hinzufügen.

$ g++ -S hello.cpp

Generiert eine Assembler-Datei namens hello.s.

Da die Datei mehr als 1000 Zeilen enthält, werde ich hier nur die ersten 15 Zeilen einfügen.

	.section	__TEXT,__text,regular,pure_instructions
	.macosx_version_min 10, 13
	.globl	_main                   ## -- Begin function main
	.p2align	4, 0x90
_main:                                  ## @main
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	subq	$32, %rsp
	movq	__ZNSt3__14coutE@GOTPCREL(%rip), %rdi
	leaq	L_.str(%rip), %rsi

Hallo Welt auf Web Assembly

Hier ist das Hauptproblem.

Installieren Sie Emscripten

Vorstellung der beliebtesten Emscripten.

git clone https://github.com/juj/emsdk.git
cd emsdk

#Installieren Sie die neuesten SDK-Tools
./emsdk install latest

#aktivieren Sie
./emsdk activate latest

#Legen Sie Pfad- und Umgebungsvariablen fest
source ./emsdk_env.sh

Es braucht viel Zeit, also trinke ich Tee.

Lauf

Nachdem Sie eine Build-Umgebung haben, kompilieren Sie sie und führen Sie sie aus.

hello.c


#include <stdio.h>

int main() {
    printf("Hello World!\n");
    return 0;
}
$ emcc -0 hello.js -O0 hello.c
$ node hello.js
Hello World!

Machen Sie die Ausgabedatei .html

$ emcc -o index.html hello.c

#Richten Sie einen lokalen Server ein
## Python3.x-Serie
$ python -m http.server
Serving HTTP on 0.0.0.0 port 8000 ...

## Python2.x-Serie
$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

Wenn Sie auf http: // localhost: 8000 / zugreifen,

スクリーンショット 2018-09-28 16.49.56.png

Hallo Welt! Wird richtig angezeigt.

Am Ende

Diesmal habe ich Hello World mit Web Assembly ausprobiert.

Wenn Sie Lust dazu haben, versuchen Sie es mit einer komplizierteren arithmetischen Verarbeitung.

das ist alles!

Recommended Posts

Hallo Welt mit Web Assembly
Hallo Welt mit AWS Lambda + Java
Java, Hallo Welt!
Java Hallo Welt
Hallo Welt auf Mac VSCode Java
"Hallo Welt" in Java
Java lernen (1) -Hallo Welt
Führen Sie JSP Hello World mit Tomcat auf Docker aus
Hallo Welt in Java
Java-Teil 1-Hallo Welt studieren
Hallo Welt mit Micronaut
[Einführung] Zeigen Sie Android Studio Hello World auf dem Emulator an
Hallo Welt mit Spring Boot
Hallo Welt mit Spring Boot!
Hallo Welt mit VS Code!
Java Hallo Welt, kompilieren, ausführen
Hallo Welt mit Spring Boot
Java-Anfänger lesen Hello World
Hallo Welt mit SpringBoot / Gradle
Hallo Welt, mit Asakusa Framework!
Versuchen Sie Hello World mit einfachem Java im Docker-Container
Bis Android Studio-Anfänger "Hello World" auf HUAWEI nova 2 anzeigen
Frühlingsstiefel Hallo Welt in Eclipse
Hallo Welt für ImageJ Java Plugin
Bis "Hallo Welt" mit Spring Boot
Hallo Welt mit Kotlin und JavaFX
Hallo Welt mit Docker und C Sprache
Hallo Welt von Java in Eclipse jetzt
(Intellij) Hallo Welt mit Spring Boot
Hallo Welt mit GlassFish 5.1 + Servlet + JSP
Erstellen Sie PDF mit itext7 ~ HelloWorld ~
Java 10 (JDK 10) wurde am 20. März 2018 veröffentlicht. Probieren wir also Hello World aus
"Hallo Welt" für ImageJ mit Eclipse
Hallo Welt mit GWT 2.8.2 und Maven
Android OS (7.1.2) Build und Hello World
Hallo Welt in Java und Gradle
Erstellen einer Elasticsearch-Plugin-Serie (1) Hello World
Hallo Welt mit Eclipse + Spring Boot + Maven
Hallo Welt! Im Bootstrap Loader Bereich
Hallo Welt mit Java Template Engine Thymeleaf
[Trainieren! ] Zeigen Sie Hello World mit Spring Boot an
Java-Entwicklung mit Codenvy: Hello World! Run
"Hallo Welt!" Mit Kotlin + CLI in 5 Minuten
Einführung in Ratpack (3) - Hallo Welt, detaillierte Erklärung
Hallo Welt mit Kotlin und Tornado FX
Wie Spring Security mit Hello World funktioniert
(IntelliJ + gradle) Hallo Welt mit Spring Boot
Minimale Java-Umgebungskonstruktion und Hello World
Hello World, eine plattformübergreifende GUI-App mit Groovy, die auf der Java-Plattform ausgeführt wird