Компилатор на език Tinygo a Go, базиран на LLVM

tinyGO Това е проект в който е разработен компилатор на език "Go" на области, които изискват компактно представяне на получения код и ниско потребление на ресурсикато микроконтролери и компактна еднопроцесорна система. Кодът се разпространява под лиценза BSD.

Изграждане за множество целеви платформи Той се реализира с помощта на LLVM и за поддържане на езика се използват библиотеки, които се използват главно от инструментите на проекта Go. Компилираната програма може да се изпълнява директно на микроконтролери, което ви позволява да използвате Go като език за писане на скриптове за автоматизация.

Относно Тиниго

Причината за създаването на проекта TinyGO беше желанието да се използва езикът Go, често срещан в компактни устройства- Разработчиците разсъждаваха, че ако има версия на Python за микроконтролери, тогава защо да не създадете подобна за езика Go?

Go е избрано вместо Rust, тъй като е по-лесно да се научи, осигурява поддръжка, базирана на гофриране, за независима от нишки поддръжка и предлага обширна стандартна библиотека ("батериите са включени")

В текущата форма, Поддържат се 15 модела микроконтролери, включително различни платки Adafruit, Arduino, BBC micro, bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary и Phytec.

Програмите могат да бъдат създадени и за работа в браузър във формат на уеб версия и като изпълними файлове за Linux.

Все още няма поддръжка за контролерите ESP8266 / ESP32, но се разработва проект за добавяне на поддръжка за чипа Xtensa в LLVM, който все още е маркиран като нестабилен и не е готов за интеграция на TinyGo.

Основни цели на проекта:

  • Генериране на много компактни изпълними файлове
  • Поддръжка за най-често срещаните модели платки за микроконтролер
  • Възможност за използване за мрежата
  • Поддръжка на CGo с минимални режийни разходи при извикване на C функции
  • Поддръжка за повечето стандартни пакети и възможност за компилиране на съществуващ типичен код, без да го модифицирате.

Поддръжката на многоядрени системи не е една от основните цели, ефективното освобождаване на голям брой съпрограми (самото съдебно издание е напълно подкрепено), постигане на нивото на производителност на компилатора на gc бенчмарк (оптимизацията, която се прехвърля към LLVM и в някои приложения Tinygo може да бъде по-бърз от gc) и пълна съвместимост с всички приложения в Go.

Основната разлика с компилатора emgo е опитът да се запази оригиналният модел за управление на паметта на Go с помощта на събирача на боклук и да се използва LLVM, за да се генерира ефективен код, вместо да се компилира в C представяне.

Tinygo предлага и нова библиотека по време на изпълнение, която прилага оптимизиран график за компактни системи., система за разпределение на паметта и контролери за низове. Въз основа на новото време на изпълнение бяха пресъздадени някои пакети, като синхронизиране и отразяване.

Относно Tinygo версия 0.7

В момента Tinygo е в своята версия 0.7 и в тази версия на основните промени, които могат да бъдат споменати има изпълнение на командата "tinygo test", която осигурява поддръжка на събирането на боклука за повечето целеви платки (базирани на ARM Cortex-M) и WebAssembly, които Поддържа HiFive1 rev B, базиран на RISC-V архитектура и Arduino nano33 платка, Подобрява езиковата съвместимост (поддръжка за битови полета, използващи гетери и сетери, поддръжка за анонимни структури).

Как да инсталирам Tinygo на Ubuntu и деривати?

За тези, които се интересуват от възможността да инсталират Tinygo, на Debian, Raspbian, Ubuntu и деривати. Те трябва да отворят терминал и в него ще изпълним следната команда:

wget https://github.com/tinygo-org/tinygo/releases/download/v0.7.0/tinygo_0.7.0_amd64.deb

sudo dpkg -i tinygo_0.7.0_amd64.deb

За специалния случай на системи за ARM устройства (Версии на Raspbian и Ubuntu)

Ще въведем следното:

wget https://github.com/tinygo-org/tinygo/releases/download/v0.7.0/tinygo_0.7.0_armhf.deb

sudo dpkg -i tinygo_0.7.0_armhf.deb

След като завършите инсталацията, те трябва да се уверят, че пътят на мъничето е в техния ПЪТ.

export PATH=$PATH:/usr/local/tinygo/bin

И накрая, за да проверим инсталацията, ще напишем следната команда:

tinygo versión

И той трябва да ни хвърли нещо подобно

tinygo version 0.7.0 linux/amd64

За да научите повече за него, можете да се консултирате следната връзка. 


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.