从C++转成JS的那些事

前言

JS的一些硬伤与尝试

是编译还是解释

变量是动态还是静态

asm.js

wasm

LLVM

编译过程与LLVM

关于两种编译器和的小历史

顺带了解一下的AST

WebAssembly

Emscripten

记录下emscripten的安装过程

构建系统

工具对wasm的支持

V8引擎

nodeJS


前言

最近接触到了不少前端的技术,作为一个老的C++程序员,了解到竟然可以把C++代码直接编译成JS在前端运行感觉到不可思议,于是就跳入了这个大坑。

从我这个老的C++程序员的理解顺序来说,我是从如下几个方面去了解整个webassembly技术的。

  • JS的一些性能问题已经解决过程。明白为啥要把C++的代码放在前端运行。

  • 编译过程,只有了解了这个过程才知啥C++往JS转有哪些问题,是为了解决啥问题

  • LLVM架构。解决如何从一门语言向另外语言转换的问题,提出了一个基础架构。

  • 基于LLVM的编译工具与构建系统。比如Emscripten,ninja,cmake等工具在这个过程中的作用。

  • 浏览器,服务器对webassembly的支持。大名鼎鼎的chrome V8引擎;基于V8引擎的JS服务器nodeJS等。

通过这样一个过程了解到asm.js,LLVM,nodeJS,V8,Emscripten等概念,把这些概念串到一起来理解,更有助于理解每个工具使用,这篇文章里不涉及到任何一个工具的详细使用。

JS的一些硬伤与尝试

这个标题起的

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新兴AI民工

码字不易,各位看客随意

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值