tinygo编译的原理是什么

  介绍

这篇文章主要讲解了“tinygo编译的原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“tinygo编译的原理是什么”吧!

说明

tinygo本身是个针对微控制器的编译器+工具,可以构建、冲洗。

tinygo依赖自己的go-llvm

tinygo的实现中依赖的自己的go-llvm,其实就是llvm的一个去的绑定,最终依赖系统的llvm

通过go-llvm/llvm实现了一个基本的编译器

tinygo基于去的编译器,通过go-llvm/llvm实现了一个基本的编译器,所以支持的语法,特性主要和去类似

例如频道的发送:编译器/channel.go

<>前37,c.createRuntimeCall (“chanSend", [] llvm.Value {ch,协同程序,还以为,valueAllocaCast, valueSize},,,,)   38   39//,最终获得,lifetime  of 从而alloca。

src/运行/chan.go

<>前44,//,chanSend  sends  a  single  value 配套;从而频道只If 却;能够operation    45,//,complete  immediately  (there  is  a  goroutine  waiting  for  a 价值),it  sends    46,//,value 以及re-activates  both 了goroutine只If 不,it  sets  itself  as  waiting    47,//,a 价值。   48,func  chanSend (sender  *协同程序,ch  *频道,value  unsafe.Pointer,, size  uintptr), {

感谢各位的阅读,以上就是“tinygo编译的原理是什么”的内容了,经过本文的学习后,相信大家对tinygo编译的原理是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

tinygo编译的原理是什么