ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° , ΠΊΠΎΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ Π½Π° Π΅Π·ΠΈΠΊΠ° Go Π·Π° ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΈ Π½ΠΈΡΠΊΠ° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° ΡΠ΅ΡΡΡΡΠΈ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΈ Π΅Π΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· BSD.
ΠΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π»Π΅Π²ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° LLVM, Π° Π΅Π·ΠΈΠΊΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Go. ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Go Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ.
ΠΠΎΡΠΈΠ²Π°ΡΠΈΡΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ Π±Π΅ΡΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΡΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ·Π½Π°ΡΠΈΡΡ Π΅Π·ΠΈΠΊ Go Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° - ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΠ°Π·ΡΡΠΆΠ΄Π°Π²Π°Ρ Π°, ΡΠ΅ ΡΠΎΠΌ ΠΈΠΌΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Python Π·Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ, ΡΠΎΠ³Π°Π²Π° Π·Π°ΡΠΎ Π΄Π° Π½Π΅ ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ Π½Π΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π·Π° Π΅Π·ΠΈΠΊΠ° Go. Π²ΠΌΠ΅ΡΡΠΎ Rust, Π·Π°ΡΠΎΡΠΎ Π΅ ΠΏΠΎ-Π»Π΅ΡΠ΅Π½ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅, ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ° ΠΎΡ Π½ΠΈΡΠΊΠΈΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΠΊΠΎΡΡΡΠΈΠ½ΠΈ, ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΈΠ·ΡΠ΅ΡΠΏΠ°ΡΠ΅Π»Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° (βΠ±Π°ΡΠ΅ΡΠΈΠΈΡΠ΅ ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈβ).
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ 15 ΠΌΠΎΠ΄Π΅Π»Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΠΊΠΈ ΠΎΡ Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary ΠΈ Phytec. ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π² Π±ΡΠ°ΡΠ·ΡΡ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ WebAssembly ΠΈ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° Linux. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ ESP8266/ESP32 , Π½ΠΎ ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΈΠΏΠ° Xtensa ΠΊΡΠΌ LLVM, ΠΊΠΎΠΉΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΅ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ ΠΊΠ°ΡΠΎ Π½Π΅ΡΡΠ°Π±ΠΈΠ»Π΅Π½ ΠΈ Π½Π΅ Π΅ Π³ΠΎΡΠΎΠ² Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ TinyGo.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΡΠ΅Π»ΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°:
ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄ΡΠ΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π½Π΅ Π΅ Π΅Π΄Π½Π° ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΠ΅Π»ΠΈ,
Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ³ΡΠΎΠΌΠ΅Π½ Π±ΡΠΎΠΉ ΠΊΠΎΡΡΡΠΈΠ½ΠΈ (ΡΠ°ΠΌΠΎΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΡΡΡΠΈΠ½ΠΈ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΎ), ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½ΠΈΡ gc ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ (ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° Π΅ ΠΎΡΡΠ°Π²Π΅Π½Π° Π½Π° LLVM ΠΈ Π² Π½ΡΠΊΠΎΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Tinygo ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΏΠΎ-Π±ΡΡΠ· ΠΎΡ gc) ΠΈ ΠΏΡΠ»Π½ΠΎ Ρ Π²ΡΠΈΡΠΊΠΈ Go ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ Tinygo ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π» Π½Π° Go Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠ΅Π· ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° LLVM Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ° Π² C ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅. Tinygo ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΈ Π½ΠΎΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΡΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ, ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΊΠ°ΡΠΎ sync ΠΈ reflect, ΡΠ° ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π½ΠΎΠ²Π°ΡΠ° ΡΡΠ΅Π΄Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΡΠ² Π²Π΅ΡΡΠΈΡ 0.7 Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° "tinygo test", ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ΅Π»Π΅Π²ΠΈ ΠΏΠ»Π°ΡΠΊΠΈ (Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ARM Cortex-M) ΠΈ WebAssembly, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΠ»Π°ΡΠΊΠ°ΡΠ° HiFive1 rev B, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° RISC-V Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ°, ΠΈ ΠΏΠ»Π°ΡΠΊΠ°ΡΠ° Arduino nano33.
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅Π·ΠΈΠΊΠΎΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° (ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π±ΠΈΡΠΎΠ²ΠΈ ΠΏΠΎΠ»Π΅ΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ getters ΠΈ setters, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
