Компајлер језика Тиниго а Го заснован на ЛЛВМ-у

ТиниГО То је пројекат у коме је развијен компајлер за језик „Го“ подручја која захтевају компактни приказ резултујућег кода и малу потрошњу ресурсакао што су микроконтролери и компактни једнопроцесорски систем. Код се дистрибуира под БСД лиценцом.

Направите за више циљних платформи Примењује се помоћу ЛЛВМ-а, а за подршку језику користе се библиотеке које углавном користе алати Го пројекта. Састављени програм може се директно покретати на микроконтролерима, што вам омогућава да Го користите као језик за писање скрипти за аутоматизацију.

О Тинигу

Разлог за стварање ТиниГО пројекта била је жеља да се користи језик Го уобичајен у компактним уређајима- Програмери су образложили да ако постоји верзија Питхона за микроконтролере, зашто онда не створити сличну за језик Го?

Го је изабрано уместо Руст, јер је лакше научити, пружа подршку засновану на валовитости за подршку независну од нити и нуди опсежну стандардну библиотеку („батерије укључене“).

У тренутном облику, Подржаних је 15 модела микроконтролера, укључујући разне плоче Адафруит, Ардуино, ББЦ мицро, бит, СТ Мицро, Дигиспарк, Нордиц Семицондуцтор, Макердиари и Пхитец.

Програми се такође могу креирати за покретање у прегледачу у формату веб верзије и као извршне датотеке за Линук.

Још нема подршке за ЕСП8266 / ЕСП32 контролере, али у току је пројекат за додавање подршке за Кстенса чип у ЛЛВМ, који је и даље означен као нестабилан и није спреман за интеграцију са ТиниГо.

Кључни циљеви пројекта:

  • Генерација врло компактних извршних датотека
  • Подршка за најчешће моделе плоча микроконтролера
  • Могућност коришћења за веб
  • ЦГо подршка са минималним додатним трошковима приликом позивања Ц функција
  • Подршка за већину стандардних пакета и могућност компајлирања постојећег типичног кода без његовог мењања.

Подршка за вишејезгрене системе није један од главних циљева, ефикасно објављивање великог броја кореутина (потпуно је подржано и форензичко издање), постизање нивоа перформанси компајлера гц референтне вредности (оптимизација пребачена на ЛЛВМ а у неким апликацијама Тиниго може бити бржи од гц) и Потпуна компатибилност са свим апликацијама у Го-у.

Главна разлика у емго компајлеру је покушај да се сачува Гоов оригинални модел управљања меморијом помоћу сакупљача смећа и користи ЛЛВМ за генерисање ефикасног кода, уместо да се компајлира у Ц представу.

Тиниго такође нуди нову рунтиме библиотеку која примењује оптимизовани роковник за компактне системе., систем алокације меморије и контролери низова. На основу новог рунтиме-а, поново су створени неки пакети, попут синхронизације и зрцаљења.

О верзији Тиниго 0.7

Тренутно је Тиниго у верзији 0.7 и овој верзији главних промена које се могу поменути постоји имплементација наредбе „тиниго тест“, која пружа подршку за сакупљање смећа за већину циљних плоча (заснованих на АРМ Цортек-М) и ВебАссембли, који Подржава ХиФиве1 рев Б заснован на РИСЦ-В архитектури и Ардуино нано33 плочи, Побољшава компатибилност језика (подршка за битна поља која користе гетере и постављаче, подршка анонимним структурама).

Како инсталирати Тиниго на Убунту и деривате?

За оне који су заинтересовани за могућност инсталирања Тиниго-а, на Дебиан, Распбиан, Убунту и деривате. Требали би отворити терминал и у њему ћемо извршити следећу наредбу:

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

За посебан случај система за АРМ уређаје (Верзије Распбиан и Убунту)

Откуцаћемо следеће:

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. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.