ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ , ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Π±ΡΡΡΡΡΠ°ΠΏΠΈΠ½Π³ (bootstrap) Π·Π° GCC ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΎΡΠ΅Π½ ΡΠΈΠΊΡΠ» Π½Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΎΡ ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²Π΅.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΡΡ ΡΠ΅ΡΠ°Π²Π° Π·Π°Π΄Π°ΡΠ°ΡΠ° Π·Π° Π²Π΅ΡΠΈΡΠΈΡΠΈΡΠ°Π½ΠΎ Π½Π°ΡΠ°Π»Π½ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ, ΠΊΠ°ΡΠΎ ΠΏΡΠ΅ΠΊΡΡΠ²Π° Π²Π΅ΡΠΈΠ³Π°ΡΠ° Π½Π° ΡΠΈΠΊΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ (Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ Π²Π΅ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ, Π° Π±ΠΈΠ½Π°ΡΠ½ΠΈΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° ΡΠ° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π΅Π½ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° ΡΠΊΡΠΈΡΠΈ Π·Π°Π»ΠΎΠΆΠ±ΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π°ΠΏΡΠ»Π½ΠΎ Π΄Π° ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΡΠ΅Π»ΠΎΡΡΡΠ° Π½Π° ΡΠ±ΠΎΡΠΊΠΈΡΠ΅ ΠΎΡ Π΅ΡΠ°Π»ΠΎΠ½Π½ΠΈ ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²Π΅).
Π GNU Mes ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π΅Π½ (self-hosting) ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π·Π° Π΅Π·ΠΈΠΊΠ° Scheme, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΠΊΠ° C, ΠΈ Π½Π°ΠΉ-ΠΏΡΠΎΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ Π·Π° Π΅Π·ΠΈΠΊΠ° C (MesCC), Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΠΊΠ° Scheme. Π Π΄Π²Π°ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Ρ Π²Π·Π°ΠΈΠΌΠ½ΠΎ. ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡΡ Π½Π° Scheme Π΄Π°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° C-ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° MesCC, ΠΊΠΎΠΉΡΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΊΡΠ°ΡΠ΅Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° (tcc), ΡΠΈΠΉΡΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²Π΅ΡΠ΅ ΡΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° GCC.
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡΡ Π½Π° Π΅Π·ΠΈΠΊΠ° Scheme Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ΅Π½, Π·Π°Π΅ΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 5000 ΡΠ΅Π΄Π° ΠΊΠΎΠ΄ Π½Π° Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΎΡΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π° Π΅Π·ΠΈΠΊΠ° C ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½ Π² ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ» Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ ΠΈΠ»ΠΈ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡΡ C-ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ, ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Ρ ΡΠ΅ Π°ΡΠ΅ΠΌΠ±Π»Π΅Ρ , ΠΊΠΎΠΉΡΠΎ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π²ΡΠ½ΡΠ½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΈ ΡΠΎΠ²Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ²Π° ΠΏΡΠ»Π½ΠΎΡΠ΅Π½ ΡΠ±ΠΎΡΠ½ΠΈΠΊ ΠΎΡ Π±ΠΎΠΊΠ»ΡΡΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π΅ΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
Π Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½ΠΈΡ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΈ mes+mescc ΠΈΠ»ΠΈ guile+mescc Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ GNU Guix, Debian GNU/Linux ΠΈ NixOS. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Π½Π° Scheme Mes Π² GNU Hurd, Π½ΠΎ C-ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΡΡ mescc Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ Π»ΠΈΠΏΡΠ° Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, fork/exec). ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½Π°ΡΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° FreeBSD. ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° Π±ΡΡΡΡΡΠ°ΠΏΠΈΠ½Π³ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° Guix Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Scheme (ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π» Gash (Guile as Shell) Π²ΠΌΠ΅ΡΡΠΎ bash ΠΈ Gash Core Utils Π²ΠΌΠ΅ΡΡΠΎ coreutils, grep, sed, gzip, make, awk ΠΈ tar).
Π ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π° Π΄Π° Π±ΡΠ΄Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π±ΡΡΡΡΡΠ΅ΠΏΠΈΠ½Π³ Π·Π° NixOS, Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π±ΡΡΡΡΡΠ΅ΠΏΠΈΠ½Π³Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠ°ΠΌΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Scheme Π² ΠΊΠ»ΠΎΠ½Π° wip-bootstrap, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ARM, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Mes.c Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° M2-Planet, ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Guile, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° mescc Ρ ΡΠ΄ΡΠΎΡΠΎ Hurd.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
