tinygo编译的原理是什么

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

创新互联自2013年创立以来,是专业互联网技术服务公司,拥有项目成都网站建设、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元扶余做网站,已为上家服务,为扶余各地企业和个人服务,联系电话:028-86922220

说明

tinygo本身是个针对微控制器的编译器+工具,可以build、flush。

tinygo依赖自己的go-llvm

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

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

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

例如 channel的发送:

compiler/channel.go

37 	c.createRuntimeCall("chanSend", []llvm.Value{coroutine, ch, valueAllocaCast, valueSize}, "")
38
39	// End the lifetime of the alloca.

src/runtime/chan.go

44 // chanSend sends a single value over the channel. If this operation can
45 // complete immediately (there is a goroutine waiting for a value), it sends the
46 // value and re-activates both goroutines. If not, it sets itself as waiting on
47 // a value.
48 func chanSend(sender *coroutine, ch *channel, value unsafe.Pointer, size uintptr) {

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

文章题目:tinygo编译的原理是什么
文章分享:https://www.cdcxhl.com/article26/goejcg.html

成都网站建设公司_创新互联,为您提供自适应网站网站收录微信小程序标签优化品牌网站建设网站内链

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作