Kompajler jezika Tinygo a Go zasnovan na LLVM-u

tinyGO To je projekt u kojem je razvijen kompajler jezika "Go" područja koja zahtijevaju kompaktni prikaz rezultirajućeg koda i malu potrošnju resursakao što su mikrokontroleri i kompaktni jednoprocesorski sustav. Kôd se distribuira pod BSD licencom.

Izrada za više ciljnih platformi Provodi se pomoću LLVM-a, a za podršku jeziku koriste se knjižnice koje uglavnom koriste alati Go projekta. Sastavljeni program može se izravno pokretati na mikrokontrolerima, što vam omogućuje da Go koristite kao jezik za pisanje skripti za automatizaciju.

O Tinygu

Razlog za stvaranje projekta TinyGO bila je želja za korištenjem jezika Go uobičajenog u kompaktnim uređajima- Programeri su zaključili da ako postoji verzija Pythona za mikrokontrolere, zašto onda ne stvoriti sličnu za jezik Go?

Go je odabran umjesto Rust, jer je lakše naučiti, pruža podršku zasnovanu na valovitosti za potporu neovisnu o niti i nudi opsežnu standardnu ​​knjižnicu ("baterije uključene").

U trenutnom obliku, Podržanih je 15 modela mikrokontrolera, uključujući razne ploče Adafruit, Arduino, BBC micro, bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary i Phytec.

Programi se također mogu stvoriti za pokretanje u pregledniku u formatu web verzije i kao izvršne datoteke za Linux.

Još nema podrške za kontrolere ESP8266 / ESP32, ali u fazi je izrada projekta za dodavanje podrške za Xtensa čip u LLVM-u, koji je i dalje označen kao nestabilan i nije spreman za integraciju TinyGo.

Ključni ciljevi projekta:

  • Generacija vrlo kompaktnih izvršnih datoteka
  • Podrška za najčešće modele ploča mikrokontrolera
  • Mogućnost korištenja za web
  • CGo podrška s minimalnim dodatnim troškovima prilikom pozivanja C funkcija
  • Podrška za većinu standardnih paketa i mogućnost kompajliranja postojećeg tipičnog koda bez njegovog mijenjanja.

Podrška za višejezgrene sustave nije jedan od glavnih ciljeva, učinkovito objavljivanje velikog broja sukladnih programa (potpuno je podržano i forenzičko izdanje), postizanje razine performansi kompajlera gc referentne vrijednosti (optimizacija prebačena na LLVM a u nekim programima Tinygo može biti brži od gc) i Potpuna kompatibilnost sa svim aplikacijama u programu Go.

Glavna razlika u emgo kompajleru je pokušaj spremanja Go-ovog izvornog modela upravljanja memorijom pomoću sakupljača smeća i korištenja LLVM-a za generiranje učinkovitog koda, umjesto da ga prevede u C prikaz.

Tinygo također nudi novu runtime knjižnicu koja implementira optimizirani rokovnik za kompaktne sustave., sustav za dodjelu memorije i kontroleri nizova. Na temelju novog vremena izvođenja, ponovno su stvoreni neki paketi, poput sinkronizacije i zrcaljenja.

O verziji Tinygo 0.7

Trenutno je Tinygo u svojoj verziji 0.7 i u ovoj verziji glavnih promjena koje se mogu spomenuti postoji implementacija naredbe "tinygo test", koja pruža podršku za odvoz smeća za većinu ciljnih ploča (temeljenih na ARM Cortex-M) i WebAssembly, koji Podržava HiFive1 rev B na temelju RISC-V arhitekture i Arduino nano33 ploče, Poboljšava kompatibilnost jezika (podrška za bitna polja pomoću getera i postavljača, podrška za anonimne strukture).

Kako instalirati Tinygo na Ubuntu i derivate?

Za one koji su zainteresirani za mogućnost instaliranja Tinyga, na Debian, Raspbian, Ubuntu i derivate. Trebali bi otvoriti terminal i u njemu ćemo izvršiti sljedeću naredbu:

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

Za poseban slučaj sustava za ARM uređaje (Verzije Raspbian i Ubuntu)

Utipkat ćemo sljedeće:

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

Nakon završetka instalacije, trebali bi se pobrinuti da je put malenog puta u njihovom PUTU.

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

Konačno, da bismo provjerili instalaciju, upišemo sljedeću naredbu:

tinygo versión

I mora nam tako nešto baciti

tinygo version 0.7.0 linux/amd64

Da biste saznali više o tome, možete se posavjetovati sljedeći link. 


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.