主页 > 施洛斯 > 编程语言界再填新锐Google 前工程师开源 Toit 语言
编程语言界再填新锐Google 前工程师开源 Toit 语言

  11 月 22 日,Toit 编程语言联合创始人 Kasper Lund 正式宣布 Toit 编程语言开源。Toit 是一种面向对象的物联网编程语言,它具有现代、简单、易理解、声明性和静态可分析性等理想特性。

  其中联合创始人 Kasper Lund 在 Google 工作了 12 年,担任高级工程师和站点负责人,是一位编程语言和虚拟机老手。他在 Google 任职期间和团队共同创建了 V8 和 Dart 项目,并作为 Crankshaft 项目的技术负责人为 JavaScript 带来了自适应优化,最终让网络变得更快。正由于 Kasper 团队在 Google 为 Flutter 构建 V8 JavaScript 引擎和 Dart 语言的项目中积累的丰富经验,他们开始为了连接到互联网的嵌入式设备构建、部署和维护软件,研发最佳平台。

  Toit 语言在 ESP 32 上执行代码的速度比 MicroPython 快 30 倍以上,且 Python 开发人员可以在几个小时内学会。Toit 平台允许在像 ESP 32 这样的小型微控制器上并排安装独立开发的应用程序。虚拟机内置支持基于比特流和重定位信息在闪存中构建应用程序映像。重定位信息至关重要,因为它允许设备在闪存中自由选择安装应用程序的位置。Kasper 团队没有奢侈地使用虚拟内存让系统相信应用程序总是从内存中的特定位置运行,因此他们必须使应用程序映像适应它最终存储在闪存中的实际位置。

  Toit 平台通过 CoAP 到 TLS 流式传输应用程序图像结束,设备一次接收 32 个字,并在它们写入闪存之前重新定位它们。Kasper 团队设计了它,所以他们永远不必将完整图像保存在 RAM 中。一旦他们完成了所有应用程序图像位,他们就使用校验和机制验证它们,最后提交标头,将应用程序转换为有效且可运行的功能块。

  典型的 Toit 应用程序映像总共约为 30 KB。其中绝大多数是以易于解释的形式描述各个方法的行为的字节码。Kasper 团队从程序的层次结构、类和接口中提取基本信息,并以紧凑的形式存储它们。类似地,Kasper 团队通过将方法作为一个扁平的字节序列集中存储在类似于 ELF 文件的 .text 段的东西中来节省空间。图像中唯一的结构化对象是应用程序附带的编译时常量。

  Toit 虚拟机最终就像一个基于闪存的文件系统,带有动态重定位链接器,用于安装、升级和卸载可以直接从闪存运行的应用程序映像。应用程序是完全独立的,仅共享设备上虚拟机提供的内容。

  Kasper 团队表示一开始就意识到在某些时候 Toit 编程语言必须开源, 所有主要的编程语言都是开源的,你可以从开源中获得充满活力的生态系统,这样才能大规模采用一种编程语言。

  经过多次迭代和在实际环境中使用 Toit 的大量经验,Kasper 团队运用 Toit 语言为微控制器编写了强大软件非常有用的构建块,他们也希望更多的开发人员能够从中受益。他们等待这一天已经很久了,因此很高兴能开源分享 Toit 语言,并通过 GitHub ()来提供它。

  为助力云原生开发者更好迎接即将到来的 黄金十年 ,CSDN 特别发起《2021 中国云原生开发者调查报告》,围绕 云原生开发者画像、人才和技术分布版图、一线开发者的技术实践、场景与应用分析、云原生的技术未来 等五大方面进行深度调查和解析。

  本次问卷调查共 10 个问题,可能占用您 3-5 分钟时间,感谢您的倾力支持。手机即时现场直播报码