Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π±Π°ΠΉΡ ΠΊΠΎΠ΄Π° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Java
May 15 Β· 6 min read
ΠΠ°ΠΆΠ΄ΠΎΠΌΡ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊΡΡ ΡΠΎΠ»Ρ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ·ΡΠΊΠ° ΠΈΠ³ΡΠ°Π΅Ρ JVM. ΠΠ΄Π½Π°ΠΊΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ JVM ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ. Π₯ΠΎΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Java ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠΎΠ΄ ΡΡΠ°Π½Π΅Ρ Π»ΡΡΡΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ Π³Π»ΡΠ±ΠΆΠ΅ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅ JVM, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΊ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ JVM.
ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄. ΠΡΠ°ΠΊ, ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Π²Π²ΠΎΠ΄Π΅ ΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Java ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ Π²Π»ΠΈΡΠ΅Ρ Π½Π° JVM Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Java?
ΠΡΠ»ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ Π²Ρ ΡΠ»ΡΡΠ°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΏΠΎΠ²Π΅Π΄ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Ρ.
ΠΠ°ΠΊ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄?
ΠΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Java?
ΠΡΠ»ΠΈ Π²Π°ΠΌ Ρ ΠΎΡΠ΅ΡΡΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΠΌ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± β Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ JVM
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΡΡΠΎΠΈΡ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ JVM Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ.
ΠΠ΅ΡΠΎΠ΄Ρ β ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ JVM. Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β ΡΡΠΎ, ΠΏΠΎ ΡΡΡΠΈ, Π½Π°Π±ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ JVM. JVM ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΠ΅ΠΉΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌ Π½Π°Π²Π΅ΡΡ ΡΡΠ΅ΠΊΠ° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π€ΡΠ΅ΠΉΠΌ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°ΡΡΠΈΠ² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΡΡΠ΅ΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ². ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ.
ΠΠ°ΡΡΠΈΠ² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΠ°ΡΡΠΈΠ² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ Ρ ΡΠ°Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄.
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°: ΠΎΠ΄ΠΈΠ½ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, Π½ΠΎ ΡΡ ΠΎΠΆΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ.
ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π‘ΡΠ΅ΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ²
Π‘ΡΠ΅ΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² β ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π²Π½ΡΡΡΠΈ ΡΡΠ΅ΠΉΠΌΠ° ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΡΠ΅ΠΊ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΠΈ Π·Π°Π±ΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π²Π΅ΡΡ Π½Π΅ΠΉ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π»ΠΈΠ±ΠΎ ΡΡΠ°ΡΡΠ²ΡΡΡ Π² ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΡΡΠ΅ΠΊ, Π»ΠΈΠ±ΠΎ Π·Π°Π±ΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° load ΠΈ Π΅Π΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ ΡΠ°Π½ΡΡΠ΅Π³ΠΎΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π² ΡΡΠ΅ΠΊ. ΠΠ½ΡΡΡΡΠΊΡΠΈΡ store ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄
Π Π°Π΄ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²Π³Π»ΡΠ΄Π΅ΡΡΡΡ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΠΏΡΠΎΡΡΠΎΠΉ Java-ΠΊΠ»Π°ΡΡ:
ΠΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°
ΠΠ΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ: ΠΈΠ½Π΄Π΅ΠΊΡΡ, Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° β ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
Π§ΠΈΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡ Π΅Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ°. Π Π»ΡΠ±ΠΎΠΉ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΡ ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ², Π·Π° ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½ΠΎΠ»Ρ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ².
ΠΡΠ²ΠΎΠ΄
ΠΠ°Π΄Π΅ΡΡΡ, Π²Π°ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ·Π½Π°ΡΡ ΠΊΠΎΠ΅-ΡΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Java. Π‘ ΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΠΊΠΈΠΌ Π·Π½Π°Π½ΠΈΠ΅ΠΌ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΡΡΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠ°ΠΌΠΈΠΌ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ ASM.
ΠΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Java Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°: ΠΊΠΎΠ³Π΄Π°, ΠΊΠ°ΠΊ, Π° ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ?
ΠΠ½Π΅ Π½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ
Π ΡΠΏΠΈΠΊΠ΅ΡΠ΅
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΎΡΠΎΠ² ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ° Excelsior JET, ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Java SE, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Excelsior. Π Π°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Ρ 1997 Π³ΠΎΠ΄Π°, ΠΏΠΎΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π» Π² ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΎΡ ΡΠ΄ΡΠ° Π΄ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΡΡ ΡΠ²ΠΎΠΉΡΡΠ². Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΡΠ΅Ρ Ρ open source ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ c ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°ΠΌΠΈ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡ Π²Π΅Π±Ρ.
Π Π΄ΠΎΠΊΠ»Π°Π΄Π΅
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π²ΡΠ΅ ΡΠ°ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ Java Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π·ΠΈΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ JavΠ°. ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Java, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ javac Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ Java Π±Π°ΠΉΡ-ΠΊΠΎΠ΄. ΠΠΎ, ΡΠΏΡΡΠΊΠ°ΡΡΡ Π½Π° ΡΡΠΎΠ²Π΅Π½Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, ΡΠ°ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° Π΅Π³ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡΡ. ΠΠ½Π°ΡΠ΅ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ Π±ΡΠ΄Π΅Ρ j.l.VerifyError, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ JVM ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Java Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° ΡΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΠΈΡ Π·Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½Π° Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΡΠΎΠΆΠ΄Π°Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π·Π½Π°ΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ β Π½ΡΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Java byte-code Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΠΊΠ°ΠΊΠΎΠΉ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΎΠ½ ΡΡΠΈΡΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ, Π° ΠΊΠ°ΠΊΠΎΠΉ Π½Π΅Ρ.
Π ΡΡΠΎΠΌ Π΄ΠΎΠΊΠ»Π°Π΄Π΅ ΠΠΈΠΊΠΈΡΠ° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠ°ΡΠ΅Π»ΡΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊΡΡ ΠΌΠΈΡΡΠΈΡ Π² JVM Π½Π΅ΡΠ΅Ρ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠΏΠ°ΡΠ½ΠΎ Π΅Π³ΠΎ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ.
ΠΡΡΡ ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° V8
V8 β ΡΡΠΎ JavaScript-Π΄Π²ΠΈΠΆΠΎΠΊ Google Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Chrome, Node.js ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠΌ Google Π€ΡΠ°Π½ΡΠΈΡΠΊΠΎΠΉ Π₯ΠΈΠ½ΠΊΠ΅Π»ΡΠΌΠ°Π½Π½, ΠΏΠΎΡΠ²ΡΡΡΠ½ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° V8. ΠΠ°ΠΉΡ-ΠΊΠΎΠ΄ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π²Π΅ΡΠΈ.
ΠΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ V8
ΠΠ°ΠΆΠΈΠ³Π°Π½ΠΈΠ΅! ΠΡΡΠΊ! ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Ignition, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΊΠ°ΠΊ Β«Π·Π°ΠΆΠΈΠ³Π°Π½ΠΈΠ΅Β», ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ V8 Ρ 2016-Π³ΠΎ Π³ΠΎΠ΄Π°
ΠΠΎΠ³Π΄Π° V8 ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ JavaScript-ΠΊΠΎΠ΄, ΠΏΠ°ΡΡΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ β ΡΡΠΎ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ JS-ΠΊΠΎΠ΄Π°. ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Ignition Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΈΠ· ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ TurboFan, Π² ΠΈΡΠΎΠ³Π΅, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΈΠ· Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄.
ΠΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ V8
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ V8 ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° ΡΠ΅ΠΆΠΈΠΌΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π²Π·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΠΌΠΎΡ Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅ Ρ JSConfEU.
ΠΡΠ½ΠΎΠ²Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° V8
ΠΠ°ΠΉΡ-ΠΊΠΎΠ΄ β ΡΡΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΡΠ΅, Π΅ΡΠ»ΠΈ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠΉ ΠΆΠ΅ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ ΡΠ°ΡΡΠΎ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²ΡΠΌΠΈ ΠΈΠ»ΠΈ ΡΡΠ΅ΠΊΠΎΠ²ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ.
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Ignition β ΡΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Ρ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΠΎΠΌ.
ΠΠΎΠ΄ ΡΠ»Π΅Π²Π° ΡΠ΄ΠΎΠ±Π΅Π½ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ. ΠΠΎΠ΄ ΡΠΏΡΠ°Π²Π° β Π΄Π»Ρ ΠΌΠ°ΡΠΈΠ½
ΠΠ½Π°Π»ΠΈΠ· Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ° Π½Π΅ΠΌΠ°Π»ΡΡ ΡΠ°ΡΡΡ ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ, ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠ²ΡΠΈΡΡ Π½Π° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°Ρ . ΠΠΎΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌ.
ΠΠΎΠΌΠ°Π½Π΄Π° LdaSmi [1] Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ 1 Π² Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ.
LdaNamedProperty a0, [0], [4]
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΠΎΡΠ²ΡΡΡΠ½ ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² V8 Π²Π΅ΡΡΠΈΠΈ 6.2, Π² Chrome 62 ΠΈ Π² Π΅ΡΡ Π½Π΅ Π²ΡΠΏΡΡΠ΅Π½Π½ΠΎΠΌ Node 9. ΠΡ, Π² Google, ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°Π΄ V8 Π² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ. Π Π΄ΡΡΠ³ΠΈΡ Π²Π΅ΡΡΠΈΡΡ V8 Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π·Π΄Π΅ΡΡ.
ΠΡΠΎΠ³ΠΈ
ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ V8 ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ-ΡΠ°ΠΊΠΈ Π·Π°Π³Π°Π΄ΠΎΡΠ½ΡΠΌ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Ρ ΠΌΠ°ΡΡΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Ignition β ΡΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Ρ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΠΎΠΌ, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ½ΡΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠ².
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! ΠΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Π²Π°ΡΠΈΡ JS-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ?
Java Bytecode Fundamentals
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Java ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² Π·Π½Π°Π½ΠΈΠΈ ΠΎ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π΅, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΌΡΡ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΠΌ, ΠΊΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Java ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ²ΠΎΠΈΡ
ΡΠ΅Π»ΡΡ
. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΈΠΏΠ° ASM, cglib, Javassist ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ² Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
Π ΡΡΠ°ΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ ΡΠ°ΠΌΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ, ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΠ°ΡΠΊΠ°ΠΏΡΠ²Π°Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΡ (ΠΏΡΠΈΠΌ. ΠΏΠ΅Ρ.).
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½ΡΠΌ Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ POJO Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ»Π΅ΠΌ ΠΈ Π³Π΅ΡΡΠ΅ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΡΠ΅ΡΠΎΠΌ Π΄Π»Ρ Π½Π΅Π³ΠΎ.
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΠ΅ ΠΊΠ»Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ javac Foo.java, Ρ Π²Π°Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠ°ΠΉΠ» Foo.class, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄. ΠΠΎΡ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π² HEX-ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅:
ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠ°ΡΠ° ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ ΡΠΈΡΠ΅Π» (Π±Π°ΠΉΡ) ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠΏΠΊΠΎΠ΄Ρ (ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ°). ΠΡΠ»ΠΎ Π±Ρ ΠΆΠ΅ΡΡΠΎΠΊΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΎ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΡΠ½ΠΎΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ.
ΠΠ»Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΠΊΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄-Π²Π΅ΡΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (ΠΊΠ°ΠΊ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡ JVM).
ΠΠ°Π»Π΅Π΅, ΠΈΠ·ΡΡΠ°Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (Ρ Π½Π°Ρ ΡΡΠΎ aload_0 ΠΈ aload_1), ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΡ ΡΠΈΠΏΠ° aload_0 ΠΈ istore_2. ΠΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ. ΠΡΠ΅ΡΠΈΠΊΡ Β«aΒ» ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠΏΠΊΠΎΠ΄ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ. Β«iΒ», ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ integer.
Π’Π΅ΠΏΠ΅ΡΡ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΡΠΎ Π·Π° ΡΡΡΠ°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, #2:
const #2 = Field #3.#18; // Foo.bar:Ljava/lang/String;
const #3 = class #19; // Foo
const #18 = NameAndType #5:#6;// bar:Ljava/lang/String;
ΠΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ (0: aload_0). ΠΡΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²Π½ΡΡΡΠΈ ΡΡΠ΅ΠΉΠΌΠ° β Π΄Π°Π»ΡΡΠ΅ ΠΎΠ±ΡΡΡΠ½Ρ, ΡΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΠΌΠΎΠ΄Π΅Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. JVM ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ΅ΠΊΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ΅Π΄ ΠΈΠΌΠ΅Π΅Ρ JVM-ΡΡΠ΅ΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΡΠ΅ΠΉΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Π΅Π±Π°Π³Π³Π΅ΡΠ΅, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΡ:
ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ΅ΠΉΠΌ. Π€ΡΠ΅ΠΉΠΌ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°, ΠΌΠ°ΡΡΠΈΠ²Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΏΡΠ» ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΊΠ»Π°ΡΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°.
Π Π°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π°. Π‘ΡΠ΅ΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² β LIFO-ΡΡΠ΅ΠΊ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΡΡΠ΅ΠΊΠ΅; ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΊΠΎΠ΄Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΡΠ΅ΠΊ, Π΄ΡΡΠ³ΠΈΠ΅ Π±Π΅ΡΡΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π² ΡΡΠ΅ΠΊ. Π‘ΡΠ΅ΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ (return values).
ΠΠ°ΠΉΡΠΊΠΎΠ΄ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΡΡ ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ². ΠΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΠΊΠΎΠ΄, aload_0, ΠΏΡΠΎΡΠ°Π»ΠΊΠΈΠ²Π°Π΅Ρ Π² ΡΡΠ΅ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 0 ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . Π‘ΡΡΠ»ΠΊΠ° this Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΈ instance-ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π²ΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ 0. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠΊΠΎΠ΄, getfield, Π΄ΠΎΡΡΠ°Π΅Ρ ΠΏΠΎΠ»Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, areturn, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π°.
Π’Π°ΠΊ, Π±Π°ΠΉΡΠΊΠΎΠ΄ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄Π° getBar β 2A B4 00 02 B0. 2A ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ aload_0, B0 β ΠΊ areturn. ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΡΠ°Π½Π½ΡΠΌ, ΡΡΠΎ Π±Π°ΠΉΡΠΊΠΎΠ΄ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π±Π°ΠΉΡ 5 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ getfield (B4) Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² Π΄Π²ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ
(00 02), Π·Π°Π½ΠΈΠΌΠ°ΡΡΠΈΡ
ΠΏΠΎΠ·ΠΈΡΠΈΠΈ 2 ΠΈ 3 Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, ΠΎΡΡΡΠ΄Π° ΠΈ 5 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΠ½ΡΡΡΡΠΊΡΠΈΡ areturn ΡΠ΄Π²ΠΈΠ³Π°Π΅ΡΡΡ Π½Π° 4 ΠΏΠΎΠ·ΠΈΡΠΈΡ.
Π’Π°Π±Π»ΠΈΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΠ»Ρ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΅ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ:
ΠΠ΄Π΅ΡΡ Π΄Π²Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ int b. ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄:
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this LExample;
0 6 1 a I
2 4 2 b I
ΠΠ΅ΡΠΎΠ΄ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ 1 Ρ ΠΏΠΎΠΌΠΎΡΡΡ iconst_1 ΠΈ Π»ΠΎΠΆΠΈΡ Π΅Ρ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ 2 Ρ ΠΏΠΎΠΌΠΎΡΡΡ istore_2. Π’Π΅ΠΏΠ΅ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΠ»ΠΎΡ 2 Π·Π°Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ b, ΠΊΠ°ΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ. ΠΠ°Π»Π΅Π΅, iload_1 Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΠ΅ΠΊ, iload_2 Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ b. iadd Π²ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅Ρ 2 ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° ΠΈΠ· ΡΡΠ΅ΠΊΠ°, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΈΡ
ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ try-catch-finally.
ΠΠ°ΠΉΡ-ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄Π° foo():
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° try-catch-finally: finallyMethod() Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠΈ ΡΠ°Π·Π°(!). ΠΠ»ΠΎΠΊ try ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ try Π½Π΅ Π±ΡΠ»ΠΎ ΠΈ ΠΎΠ½ Π±ΡΠ» ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ½ Ρ finally:
0: aload_0
1: invokespecial #2; //Method tryMethod:()V
4: aload_0
5: invokespecial #3; //Method finallyMethod:()V
ΠΡΠ»ΠΈ Π±Π»ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ goto ΠΏΠ΅ΡΠ΅ΠΊΠΈΠ΄ΡΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° 30-Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Ρ ΠΎΠΏΠΊΠΎΠ΄ΠΎΠΌ return.
ΠΡΠ»ΠΈ tryMethod Π±ΡΠΎΡΠΈΡ Exception, Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°Π½ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ (Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ) ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠ· ΡΠ°Π±Π»ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΡ Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΎΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π²Π½Π° 11:
0 4 11 Class java/lang/Exception
ΠΡΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠΈΠ΄ΡΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° catchMethod() ΠΈ finallyMethod():
11: astore_1
12: aload_0
13: invokespecial #5; //ΠΌΠ΅ΡΠΎΠ΄ catchMethod:()V
16: aload_0
17: invokespecial #3; //ΠΌΠ΅ΡΠΎΠ΄ finallyMethod:()V
ΠΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π±ΡΠΎΡΠ΅Π½ΠΎ Π΄ΡΡΠ³ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½Π° 23:
0 4 23 any
11 16 23 any
23 24 23 any
ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ 23:
23: astore_2
24: aload_0
25: invokespecial #3; //Method finallyMethod:()V
28: aload_2
29: athrow
30: return
Π’Π°ΠΊ ΡΡΠΎ finallyMethod() Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Ρ aload_2 ΠΈ athrow, Π±ΡΠΎΡΠ°ΡΡΠΈΠΌ Π½Π΅ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ Π±Π°ΠΉΡΠΊΠΎΠ΄Π° JVM. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΡΠ΅ΡΠΏΠ½ΡΡΠΎ ΠΈΠ· ΡΡΠ°ΡΡΠΈ developerWorks Peter Haggar β Java bytecode: Understanding bytecode makes you a better programmer. Π‘ΡΠ°ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°ΡΠ΅Π»Π°, Π½ΠΎ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π°ΠΊΡΡΠ°Π»ΡΠ½Π°. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ BCEL ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄ΠΎΡΡΠΎΠΉΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» Π±Ρ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠΌΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π½ΠΎ Π΅Π΅ Π½Π΅Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°ΡΡ, ΠΊΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΏΡΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ.
Π ΡΠ΅Π»ΠΎΠΌ, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠΌ Π² ΡΠ³Π»ΡΠ±Π»Π΅Π½ΠΈΠΈ ΡΠ²ΠΎΠΈΡ Π·Π½Π°Π½ΠΈΠΉ Π² Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΏΡΠΈΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌ JVM-ΡΠ·ΡΠΊΠΎΠ² ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌ.
ΠΠΎΠ»ΡΡ ΡΠ²ΠΈΠ½ΡΠΈ, ΠΈΠ»ΠΈ ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°
«No matter how hard you try, you can’t make a racehorse out of a pig. You can, however, make a faster pig» (ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΠΌΠ°ΠΊΡΠ°)
ΠΡΠ΅ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΡΠ²ΠΈΠ½ΡΠΈ Π½Π΅ Π»Π΅ΡΠ°ΡΡ. ΠΠ΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠ² ΠΊΠ°ΠΊ ΡΠ΅Ρ Π½ΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π½Π΅ ΠΏΠΎΠ΄Π΄Π°ΡΡΡΡ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΠ΄ΠΎΡΠΌΠΊΠΎΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠ΅ΡΠΈΠΈ ΡΡΠ°ΡΠ΅ΠΉ ΠΎΠ± ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠ² Ρ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΡΠ΅ΠΊΠΎΠ²ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΠΠΠ (Β«ΠΠΎΡΠΎΡΡΡΡΡ ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΠ°ΡΠΈΠ½Π°Β») ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π½Π΅ Π²ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½ΠΎ Π΄Π»Ρ ΡΡΡΠ΄ΠΎΠ»ΡΠ±ΠΈΠ²ΡΡ ΠΏΠΎΡΠΎΡΡΡ Ρ Π°ΠΌΠ±ΠΈΡΠΈΡΠΌΠΈ ΠΈ ΡΡΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ (Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ) ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ C Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΏΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ Π² ΠΏΠΎΠ»ΡΠΎΡΠ° ΡΠ°Π·Π°.
ΠΠΎΡΠΎΡΠ΅Π½ΠΎΠΊΠΠ
Β«ΠΠΎΡΠΎΡΡΠ½ΠΎΠΊΠΠΒ» β Π·Π°ΡΡΡΠ΄Π½Π°Ρ ΡΡΠ΅ΠΊΠΎΠ²Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠ΅ΡΠΈΠΈ ΡΡΠ°ΡΠ΅ΠΉ. ΠΠ°ΡΠ° ΡΠ²ΠΈΠ½ΠΊΠ° Π·Π½Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ β 64-Π±ΠΈΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ, Π° Π²ΡΠ΅ (ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅) Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π½Π° ΡΡΠ΅ΠΊΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π³Π»ΡΠ±ΠΈΠ½ΠΎΠΉ Π² 256 ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΡΠ»ΠΎΠ². ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠ΅ΠΊΠ°, Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΡΡΠ½ΠΊΠ° ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΏΠ°ΠΌΡΡΡ ΠΎΠ±ΡΡΠΌΠΎΠΌ 65 536 ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΡΠ»ΠΎΠ². Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β ΠΎΠ΄Π½ΠΎ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ β ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ-ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ (stdout).
ΠΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² ΠΌΠ°ΡΠΈΠ½Π΅ Β«ΠΠΎΡΠΎΡΡΠ½ΠΎΠΊΠΠΒ» Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅:
ΠΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ½Π΅ΡΡΠΈ ΡΡΡ ΠΌΠ°ΡΠΈΠ½Ρ ΠΊ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΌΠ°ΡΠΈΠ½Π°ΠΌ, ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡΡΡ Π½Π° ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
ΠΠ· ΠΊΠΎΠ΄Π° Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠΏΠΊΠΎΠ΄ ΠΏΠΎΡΠΎΡΡΠ½ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½:
ΠΠΎΠ»Π΅Π·Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π·Π΄Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΡΡΠΎΠΌ ΠΏΡΠ½ΠΊΡΠ΅, Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ β Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ: Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (ΠΏΡΠ½ΠΊΡ 4), ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΏΠΊΠΎΠ΄Π° (ΠΏΡΠ½ΠΊΡ 2), ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠ°Π»ΠΎ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΡΠ΄Π½ΠΎΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΉ ΡΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ (ΠΏΡΠ½ΠΊΡ 3).
Π‘Π»ΠΎΠ²ΠΎΠΌ, Ρ Ρ ΡΡΡΠΊΠΈ ΡΠ²Π½ΠΎ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΌΠ°ΡΡΡ ΡΠ΅Π»Π°, ΠΈ Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π΅Ρ Π² ΡΠΎΡΠΌΡ, ΡΠΎ ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΡΠΈΠΌΠΈ ΠΈΠ·Π»ΠΈΡΠ΅ΡΡΠ²Π°ΠΌΠΈ Π±ΠΎΡΠΎΡΡΡΡ.
Π‘Π²ΠΈΠ½ΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΠΈ ΡΠ΅ΡΠ΅ΡΠΎ ΠΡΠ°ΡΠΎΡΡΠ΅Π½Π°
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌΡΡ Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈΠ³ΡΡ.
ΠΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΠΏΡΡΠΌΠΎ Π² C β ΠΌΠΎΠ²Π΅ΡΠΎΠ½, Π½ΠΎ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ β Π΄ΠΎΠ»Π³ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Ρ ΠΏΠΎΡΠΎΡΡΠ½ΠΊΠΎΠΌ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡΡΡ ΡΠ²ΠΈΠ½ΡΠΊΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π²ΡΡΠΈΡΠ»ΡΡΡΠ°Ρ ΡΡΠΌΠΌΡ ΡΠΈΡΠ΅Π» ΠΎΡ 1 Π΄ΠΎ 65 536, Π½Π° ΡΡΠΎΠΌ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠ΅ Python, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½ΠΎ Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΠΏΠΎΡΠΎΡΡΡΡΠ΅Π³ΠΎ ΡΡΠ°ΡΡΡΡ ΡΡΡ Π΅ΡΡΡ: ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΌΠ΅ΡΠΊΠΈ, ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΈ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΏΠΎ Π½ΠΈΠΌ, ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ Π΄Π»Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ.
Π ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅ Ρ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ Β«ΠΠΎΡΠΎΡΡΠ½ΠΎΠΊΠΠΒ» ΠΈΠ΄ΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΈ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΌΠ΅Π»ΡΠ΅ Π΄ΡΡ ΠΎΠΌ ΠΈ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π² Π±ΠΎΡ.
Π§ΠΈΡΠ»Π° ΡΡΠΌΠΌΠΈΡΡΡΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ Π½Π°ΠΏΠΈΡΠ°Π» Π΄ΡΡΠ³ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β Π½Π°ΠΈΠ²Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠ΅ΡΠ° ΠΡΠ°ΡΠΎΡΡΠ΅Π½Π°.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΠΎΡΠΎΡΡΠ½ΠΎΠΊ ΠΈ ΡΠ°ΠΊ Π±Π΅Π³Π°Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ (Π΅Π³ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π±Π»ΠΈΠ·ΠΊΠΈ ΠΊ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ), ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²Π½ΡΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΊΠ°ΠΆΠ΄ΡΠΉ Π·Π°ΠΌΠ΅Ρ Ρ Π±ΡΠ΄Ρ Π΄Π΅Π»Π°ΡΡ Π΄Π»Ρ ΡΡΠ° Π·Π°ΠΏΡΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ΅ΡΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ Π½Π°ΡΠ΅ΠΉ Π½Π΅ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ²ΠΈΠ½ΡΠΈ Π±Π΅Π³Π°Π΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠΎΠ»ΡΠ΅ΠΊΡΠ½Π΄Ρ! Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Π½Π΅ΡΠ΅ΡΡΠ½ΠΎΠ΅, Π½ΠΎ ΡΠΎΡ ΠΆΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π½Π° Python ΡΡΠΎ ΠΏΡΠΎΠ±Π΅ΠΆΠ΅ΠΊ Π΄Π΅Π»Π°Π΅Ρ ΡΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅:
4,5 ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΠΈΠ»ΠΈ Π² Π΄Π΅Π²ΡΡΡ ΡΠ°Π· ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅. ΠΠ°Π΄ΠΎ ΠΎΡΠ΄Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ΅ ΠΏΠΎΡΠΎΡΡΠ½ΠΊΡ β ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ! ΠΡ Π° ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ Π½Π°ΡΠ° ΡΠ²ΠΈΠ½ΡΡ Π½Π°ΠΊΠ°ΡΠ°ΡΡ ΠΏΡΠ΅ΡΡ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅: ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠΏΠ΅ΡΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ
ΠΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° β Π½Π΅ Π΄Π΅Π»Π°ΡΡ Π»ΠΈΡΠ½Π΅ΠΉ ΡΠ°Π±ΠΎΡΡ. ΠΡΠΎΡΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° β Π½Π΅ Π΄Π΅Π»Π°ΡΡ Π»ΠΈΡΠ½Π΅ΠΉ ΡΠ°Π±ΠΎΡΡ Π½ΠΈΠΊΠΎΠ³Π΄Π°. Π’Π°ΠΊ ΠΊΠ°ΠΊΡΡ Π»ΠΈΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ Π΄Π΅Π»Π°Π΅Ρ Β«ΠΠΎΡΠΎΡΡΠ½ΠΎΠΊΠΠΒ»?
ΠΠ°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅: ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π²ΡΡΡΠ΅ΡΠ°ΡΡΠΈΠ΅ΡΡ ΡΠ°ΡΠ΅ Π΄ΡΡΠ³ΠΈΡ . ΠΠ΅ Π±ΡΠ΄Π΅ΠΌ ΡΠΈΠ»ΡΠ½ΠΎ ΠΌΡΡΠΈΡΡ Π½Π°ΡΡ ΡΠ²ΠΈΠ½ΡΡ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΡΠ°ΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ:
Π ΠΌΠ°ΡΠΈΠ½Π΅ Β«ΠΠΎΡΠΎΡΡΠ½ΠΎΠΊΠΠΒ» ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ 20 ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π° Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅Π»ΡΠΉ Π±Π°ΠΉΡ β 256 Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ½Π΅ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π§ΡΠΎ ΠΌΡ ΠΈ ΡΠ΄Π΅Π»Π°Π΅ΠΌ:
ΠΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ:
ΠΠ³ΠΎ! ΠΠΎΠ΄Π° Π²ΡΠ΅Π³ΠΎ-ΡΠΎ Π½Π° ΡΡΠΈ Π½ΠΎΠ²ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π° Π²ΡΠΈΠ³ΡΠ°Π»ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΠΎΡΡ ΡΠΎΡΠ½ΠΈ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄!
ΠΡΠΈΠ³ΡΡΡ Π·Π΄Π΅ΡΡ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΎΠΌΡ, ΡΡΠΎ Π½Π°Ρ ΠΏΠΎΡΠΎΡΡΠ½ΠΎΠΊ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ Π»ΠΈΡΠ½ΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ: ΠΏΠΎΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ Π²ΡΠ²Π°Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² Π³Π»Π°Π²Π½ΡΠΉ ΡΠΈΠΊΠ», Π½ΠΈΡΠ΅Π³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ, Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π½Π΅ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ Π»ΠΈΡΠ½ΠΈΠΉ ΡΠ°Π· ΡΠ΅ΡΠ΅Π· ΡΡΠ΅ΠΊ.
ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΠΏΠ΅ΡΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΎ ΠΏΡΠΎΡΡΠ°Ρ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Π² ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ»Π°Π²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠΏΠ΅ΡΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π±Π΅Π· ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ. Π Π°Π·Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΈ ΡΠ·Π½Π°ΡΡ ΡΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠ°ΠΏΠ΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ ΠΌΠΎΠ³Π»Π° Π±Ρ ΡΡΠ°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΡΠΏΠ΅ΡΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎ Π΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠΏΠ΅ΡΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (Π² 90-Π΅ ΠΈ Π² Π½Π°ΡΠ°Π»Π΅ 2000-Ρ ΡΡΠΎΡ ΠΏΡΠΈΡΠΌ ΠΈΠ³ΡΠ°Π» ΡΠΎΠ»Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠΉ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ).
Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ Π‘ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° Π»Π΅ΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ Π½Π°Ρ ΠΏΠΎΡΠΎΡΡΠ½ΠΎΠΊ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ Π½Π΅ ΡΡΠΈΡΠ°Π΅Ρ ΡΡΠΎ ΡΠ΅ΡΡΠ½ΡΠΌ ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π ΡΡΠ°ΡΡΡΡ, Ρ ΠΌΠ΅Π½Ρ Π΄Π»Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΠΏΠ°ΡΠ° ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΡΡΡΠ΅.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ Π²ΡΠΎΡΠΎΠ΅: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ²
Π‘Π»Π΅Π΄ΡΡ Π½Π°ΡΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π΅ΡΡ ΡΠ°Π· Π·Π°Π΄Π°Π΄ΠΈΠΌΡΡ Π²Π΅ΡΠ½ΡΠΌ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ: ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ?
ΠΠΎΠ³Π΄Π° ΠΌΡ Π·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΌΠ°ΡΠΈΠ½Ρ Β«ΠΠΎΡΠΎΡΡΠ½ΠΎΠΊΠΠΒ», Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ» Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΏΠΊΠΎΠ΄Π°. Π ΠΏΡΠ½ΠΊΡ 2 (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΏΠΊΠΎΠ΄Π° Π½Π° Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ switch) Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΈΡΠΌΠΎΡΡΠΈΠΌΡΡ ΠΊ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ GCC ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ switch:
ΠΠΎ Π·Π°ΡΠ΅ΠΌ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ? ΠΡ ΡΡΠΈΡΠ°Π΅ΠΌ, ΡΡΠΎ ΠΎΠΏΠΊΠΎΠ΄ Π±ΡΠ²Π°Π΅Ρ Π»ΠΈΠ±ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ β Π·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ OP_DONE, Π»ΠΈΠ±ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ β Π²ΡΡΠ΅Π΄ΡΠΈΠΉ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°. Π₯Π²ΠΎΡΡ ΠΏΠΎΡΠΎΠΊΠ° ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ² ΠΎΡΠΌΠ΅ΡΠ΅Π½ Π½ΡΠ»ΡΠΌ, Π° Π½ΠΎΠ»Ρ β ΠΎΠΏΠΊΠΎΠ΄ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ OP_ABORT, Π·Π°Π²Π΅ΡΡΠ°ΡΡΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.
ΠΡΡ ΠΎΠ΄ΠΈΡ, ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Π°! Π ΠΏΠΎΡΠΎΡΡΠ½ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΌΠ΅ΡΡ Π΄ΠΎΠ½ΠΎΡΠΈΡΡ ΡΡΡ ΠΌΡΡΠ»Ρ Π΄ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΡ Π³Π»Π°Π²Π½ΡΠΉ switch:
ΠΠ½Π°Ρ, ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Ρ Π½Π°Ρ Π²ΡΠ΅Π³ΠΎ 26, ΠΌΡ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌ Π±ΠΈΡΠΎΠ²ΡΡ ΠΌΠ°ΡΠΊΡ (Π²ΠΎΡΡΠΌΠ΅ΡΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0x1f β ΡΡΠΎ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ 0b11111, ΠΏΠΎΠΊΡΡΠ²Π°ΡΡΠ΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΡ 0 Π΄ΠΎ 31) Π½Π° ΠΎΠΏΠΊΠΎΠ΄ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π° Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π΅ ΠΎΡ 26 Π΄ΠΎ 31.
ΠΠΈΡΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ β ΠΎΠ΄Π½ΠΈ ΠΈΠ· ΡΠ°ΠΌΡΡ Π΄Π΅ΡΡΠ²ΡΡ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ x86, ΠΈ ΠΎΠ½ΠΈ ΡΠΆ ΡΠΎΡΠ½ΠΎ Π΄Π΅ΡΠ΅Π²Π»Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΡ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² Π²ΡΠΎΠ΄Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΈΠ³ΡΡΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΊΠ»ΠΎΠ² Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎΠΉΠΌΡΡ Π½Π°Ρ Π½Π°ΠΌΡΠΊ.
ΠΡΡΠ°ΡΠΈ, ΡΠΏΠΎΡΠΎΠ± ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² case β Π½Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ C, Π° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ GCC. ΠΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½Π΅Π½ΡΠΆΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ.
ΠΡΡ 50 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄! ΠΠΎΡΠΎΡΡΠ½ΠΎΠΊ, ΡΡ Π±ΡΠ΄ΡΠΎ Π±Ρ Π² ΠΏΠ»Π΅ΡΠ°Ρ ΡΠ°Π·Π΄Π°Π»ΡΡ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠ΅: ΡΡΠ°ΡΡΡ
ΠΠ°ΠΊΠΈΠ΅ Π΅ΡΡ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π½Π°ΡΠ΅ΠΌΡ ΠΏΠΎΡΠΎΡΡΠ½ΠΊΡ? Π‘Π°ΠΌΡΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΏΠ΅ΡΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ. Π ΠΎΠ½ΠΈ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΡ ΠΎΠ΄ΠΎΠ² Π² Π³Π»Π°Π²Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ².
Π¦Π΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ switch β Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Ρ Π²Π½Π΅ΠΎΡΠ΅ΡΠ΅Π΄Π½ΡΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΉ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°ΠΆΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π½Π΅ΠΏΡΡΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ, Π½ΠΎ Β«ΡΠ°Π·ΠΌΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅Β» ΡΠΎΡΠ΅ΠΊ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΠΎ ΠΊΠΎΠ΄Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π±ΡΡΡΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΊ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
ΠΡΡΠ³Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β ΡΡΠΎ ΠΏΠΎΠ±Π°ΠΉΡΠΎΠ²ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°. Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΠΎΠΏΠ΅ΡΠΈΡΡΡΡ 64-Π±ΠΈΡΠ½ΡΠΌ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ ΠΈ Π½Π΅ ΠΎΡΠ΅Π½Ρ Π»ΡΠ±ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΡΠ°ΡΡΠΎ ΠΎΠΏΠ΅ΡΠΈΡΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π±Π΅Π· Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΌΠ΅ΡΠΎΠΊ Π²Π½ΡΡΡΠΈ. ΠΠ°Π·ΠΎΠ²ΡΠΉ Π±Π»ΠΎΠΊ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π»ΠΈΠ±ΠΎ Ρ Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π»ΠΈΠ±ΠΎ Ρ ΠΌΠ΅ΡΠΊΠΈ, Π° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠ»ΠΎΠ²Π½ΡΠΌ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΏΡΡΠΌΡΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠΌ ΠΊ ΠΌΠ΅ΡΠΊΠ΅, Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅ΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π±Π°Π·ΠΎΠ²ΡΠΉ Π±Π»ΠΎΠΊ.
Π£ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ², Π½ΠΎ Π½Π°ΡΡ ΡΠ²ΠΈΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Ρ ΠΊΠ»ΡΡΠ΅Π²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ: ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΠ»ΠΎ Π±Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ ΠΊΠ°ΠΊ-Π½ΠΈΠ±ΡΠ΄Ρ Π²ΡΠ΄Π΅Π»ΡΡΡ ΡΡΠΈ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² Π½ΠΈΡ , Π½Π΅ ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° Π²ΡΡ ΠΎΠ΄ Π² Π³Π»Π°Π²Π½ΡΠΉ ΡΠΈΠΊΠ».
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄ΠΎ ΡΡΠ°ΡΡΡ. Π’ΡΠ°ΡΡΠ° Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Ρ Β«ΠΠΎΡΠΎΡΡΠ½ΠΎΠΊΠΠΒ» Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ (ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ²) Π±Π°Π·ΠΎΠ²ΡΠ΅ Π±Π»ΠΎΠΊΠΈ.
ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π΅ΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ.
ΠΠ²ΡΡΠΈΡ Π²ΡΡ ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ°ΡΠ½ΠΎ ΠΈ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠΎΡΠΎΡΡΠ½ΠΎΠΊ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΡΠΎΠΌΠ½Π΅Π²Π°Π»ΡΡ Π² ΡΠ²ΠΎΠΈΡ ΡΠΈΠ»Π°Ρ , Π½ΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π²ΡΡ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π½Π΅ ΡΠ°ΠΊ ΠΏΠ»ΠΎΡ ΠΎ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ΄ΡΠΌΠ°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π²Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΡΠ°ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ:
ΠΠ΄Π΅ΡΡ arg β Π·Π°ΡΠ°Π½Π΅Π΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π° handler β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ°ΡΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π’ΠΎ Π΅ΡΡΡ ΡΡΠ°ΡΡΠ° β ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ s-ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ. Π‘Π°ΠΌ ΠΊΠ΅Ρ ΡΡΠ°ΡΡ Π²Π½ΡΡΡΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· ΡΡΠ°ΡΡ Π΄Π»ΠΈΠ½ΠΎΠΉ, Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡΠ΅ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π΄Π»ΠΈΠ½Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π»Π΅Π½ΠΈΠ²ΠΎΠ΅, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ.
Π Π½Π°ΡΠ°Π»Π΅ ΡΠ°Π±ΠΎΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡΠ°ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΌ ΡΠ΅Π±Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ:
ΠΠ»Π°Π²Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠΈΠΉ ΡΡΠ°ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΠΈ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠ±ΠΎΡΠΊΠΈ ΡΡΠ°ΡΡΡ, Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅ΠΉΡΡ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ:
ΠΠ°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ°ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ, Π½Π΅ Π΄Π΅Π»Π°ΡΡΠΈΠΉ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² Ρ Π²ΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΡΡ ΡΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΏΠ΅ΡΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π½ΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, Π΄Π°Π»ΠΎ Π»ΠΈ ΡΡΠΎ Π½Π°ΠΌ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ:
Π£ΡΠ°, Π΅ΡΡ 30 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄!
ΠΠ°ΠΊ ΠΆΠ΅ ΡΠ°ΠΊ? ΠΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΠΌΠ΅ΡΠΊΠ°ΠΌ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΡΡΠ°ΡΠΈΠΌ Π²ΡΠ΅ΠΌΡ Π½Π° Π²ΡΠ·ΠΎΠ²Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Π½ΠΎ Π½Π°Ρ ΠΏΠΎΡΠΎΡΡΠ½ΠΎΠΊ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π±Π΅Π³Π°Π΅Ρ ΠΏΠΎ ΡΡΠ°ΡΡΠ°ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ switch Ρ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ.
Π’Π°ΠΊΠΎΠΉ Π²ΡΠΈΠ³ΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΠ°ΡΡ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΡΠΌ ΡΠ°ΠΊΡΠΎΡΠ°ΠΌ:
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π²Π΅ΡΡΠΈ ΠΈΡΠΎΠ³ΠΈ Π½Π°ΡΠΈΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ, ΠΌΡ Ρ ΠΏΠΎΡΠΎΡΡΠ½ΠΊΠΎΠΌ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΡΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π΅ΡΡ ΠΎΠ΄Π½Ρ Π΄ΡΠ΅Π²Π½ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ β ΡΠΈΡΡΠΉ ΠΊΠΎΠ΄.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠ΅: «ΡΠΈΡΡΠΉ» ΠΊΠΎΠ΄
ΠΡΠ±Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠ°ΡΡΡ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠ²ΠΈΠ½ΡΡ ΡΠ»ΡΡΠ°Π»Π° ΠΏΡΠΎ ΡΠΈΡΡΠΉ ΠΊΠΎΠ΄ (Π°Π½Π³Π». threaded code). ΠΠ°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΡΠΌΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, Π½ΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ Π²ΠΌΠ΅ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ² ΠΈΠ΄ΡΠΈ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΊΠΈ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΏΠΎ Π½ΠΈΠΌ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ, Π±Π΅Π· ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠΊΠΎΠ΄Π°.
ΠΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ β Π΄Π΅Π»ΠΎ Π΄ΠΎΡΠΎΠ³ΠΎΠ΅ ΠΈ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π° Π² Π½Π°ΡΠΈ Π΄Π½ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡΠ΅Π΅; Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π΄ΡΡΠ³ΠΈΡ Π²Π΅ΡΡΠΈΠΉ ΡΠΈΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π΅ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΠ° Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ C. ΠΠ°ΠΆΠ΅ ΡΠ΅Ρ Π½ΠΈΠΊΠ°, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄ΡΡ Π½ΠΈΠΆΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΠΎΠ΅, Π½ΠΎ Π²ΡΡ ΠΆΠ΅ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ C β ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΌΠ΅ΡΠΊΠΈ.
Π Π²Π΅ΡΡΠΈΠΈ ΡΠΈΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (Π°Π½Π³Π». token threaded code), ΠΊΠΎΡΠΎΡΡΡ Ρ Π²ΡΠ±ΡΠ°Π» Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π½Π°ΡΠΈΡ ΡΠ²ΠΈΠ½ΡΠΊΠΈΡ ΡΠ΅Π»Π΅ΠΉ, ΠΌΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡΠΌ ΡΠ°Π±Π»ΠΈΡΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΎΠΏΠΊΠΎΠ΄Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π½Π° Π°Π΄ΡΠ΅ΡΠ° ΠΌΠ΅ΡΠΎΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»Ρ && β ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΌΠ΅ΡΠΊΠΈ Ρ ΡΠ΅Π»Π°ΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΡΠΎ ΡΠ°ΠΌΠΎΠ΅ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ GCC.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΡΠ³Π½ΡΡΡ ΠΏΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠ΅ΡΠΊΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΠΎΠΏΠΊΠΎΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
ΠΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° Π·Π΄Π΅ΡΡ Π½Π΅Ρ ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΡΠ°ΠΌΠ° Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΡΠΆΠΎΠΊ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ:
ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ switch Β«ΡΠ°Π·ΠΌΠ°Π·ΡΠ²Π°Π΅ΡΒ» ΡΠΎΡΠΊΠΈ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠ΅Π»Π°ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΡΡΠΎ Π² ΡΠ΅ΠΎΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΡΠΈ Π²Π½Π΅ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ. ΠΡ ΠΊΠ°ΠΊ Π±Ρ Π²ΡΡΡΠΎΠΈΠ»ΠΈ switch ΠΏΡΡΠΌΠΎ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ Π²ΡΡΡΠ½ΡΡ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ².
ΠΠΎΡ ΠΈ Π²ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΠ°. ΠΠΎΡΠΎΡΡΠ½ΠΊΡ ΠΎΠ½Π° ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΡΡΠΎΡΠΎΠΉ. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅:
Π£ΠΏΡ! ΠΡΠΎ ΡΠ°ΠΌΠ°Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π°Ρ ΠΈΠ· Π²ΡΠ΅Ρ Π½Π°ΡΠΈΡ ΡΠ΅Ρ Π½ΠΈΠΊ! Π§ΡΠΎ ΠΆΠ΅ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ? ΠΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ΅ ΠΆΠ΅ ΡΠ΅ΡΡΡ, Π²ΡΠΊΠ»ΡΡΠΈΠ² Π²ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ GCC:
ΠΠ΄Π΅ΡΡ ΡΠΈΡΡΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ΅Π±Ρ Π»ΡΡΡΠ΅.
Π’ΡΡ ΠΈΠ³ΡΠ°ΡΡ ΡΠΎΠ»Ρ ΡΡΠΈ ΡΠ°ΠΊΡΠΎΡΠ°:
ΠΠΎ ΡΡΠ°ΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΡ Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π² ΠΊΠΎΠ΄Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Python VM, Π½ΠΎ, ΡΠ΅ΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π² Π½Π°ΡΠΈ Π΄Π½ΠΈ ΡΡΠΎ ΡΠΆΠ΅ Π°ΡΡ Π°ΠΈΠ·ΠΌ.
ΠΠ°Π²Π°ΠΉΡΠ΅, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠΎΠ΄Π²Π΅Π΄ΡΠΌ ΠΈΡΠΎΠ³ΠΈ ΠΈ ΠΎΡΠ΅Π½ΠΈΠΌ ΡΡΠΏΠ΅Ρ ΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠ±ΠΈΠ»Π°ΡΡ Π½Π°ΡΠ° ΡΠ²ΠΈΠ½ΡΡ.
Π Π°Π·Π±ΠΎΡ ΠΏΠΎΡΠΎΡΡΡΡΠΈΡ ΠΏΠΎΠ»Π΅ΡΠΎΠ²
ΠΠ΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ ΠΏΠΎΠ»ΡΡΠΎΠΌ, Π½ΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ·Π½Π°Π΅ΠΌ, Π½Π°Ρ ΠΏΠΎΡΠΎΡΡΠ½ΠΎΠΊ ΠΏΡΠΎΡΡΠ» Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΡΡ ΠΎΡ 550 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ Π½Π° ΡΡΠΎ ΠΏΡΠΎΠ±Π΅ΠΆΠ΅ΠΊ ΠΏΠΎ Β«ΡΠ΅ΡΠ΅ΡΡΒ» Π΄ΠΎ ΡΠΈΠ½Π°Π»ΡΠ½ΡΡ
370 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅Ρ
Π½ΠΈΠΊΠΈ: ΡΡΠΏΠ΅ΡΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠΊΡ ΡΡΠ°ΡΡ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π΄Π°ΠΆΠ΅ ΡΠΈΡΡΠΉ ΠΊΠΎΠ΄. ΠΡΠΈ ΡΡΠΎΠΌ ΠΌΡ, Π² ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ, Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ
Π²Π΅ΡΠ΅ΠΉ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ
Π²ΠΎ Π²ΡΠ΅Ρ
ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°Ρ
C. Π£ΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»ΡΠΎΡΠ° ΡΠ°Π·Π°, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΈ ΠΏΠΎΡΠΎΡΡΠ½ΠΎΠΊ Π·Π°ΡΠ»ΡΠΆΠΈΠ» Π»ΠΈΡΠ½ΡΡ ΠΏΠΎΡΡΠΈΡ ΠΎΡΡΡΠ±Π΅ΠΉ Π² ΠΊΠΎΡΡΡΠ΅.
ΠΠ΄Π½ΠΎ ΠΈΠ· Π½Π΅ΡΠ²Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΡΠΎ ΡΠ²ΠΈΠ½ΡΡΠΉ ΡΠ΅Π±Π΅ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ, β ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠΎΠ²ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Β«ΠΠΎΡΠΎΡΡΠ½ΠΎΠΊΠΠΒ». ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π»ΠΈΡΠ½ΠΈΡ Π²ΡΡ ΠΎΠ΄ΠΎΠ² Π² Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ. ΠΡΠΌΠ°Ρ, Π΅ΡΡ 10β20% Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΡΠ΅Π·Π°ΡΡ.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΆΠ΅ Π½Π°ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ β ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ β ΡΠΎΠΆΠ΅ Π½Π΅ Π·Π°ΠΊΠΎΠ½ ΠΏΡΠΈΡΠΎΠ΄Ρ. ΠΠ°ΠΊΠ°ΡΠ°ΡΡ ΡΠ²ΠΈΠ½ΡΡ ΡΡΠ΅ΡΠΎΠΈΠ΄Π°ΠΌΠΈ Π² Π²ΠΈΠ΄Π΅ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² Π½Π°ΡΠΈ Π΄Π½ΠΈ ΠΎΡΠ΅Π½Ρ Π΄Π°ΠΆΠ΅ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ: Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ Π²ΡΠΎΠ΄Π΅ GNU Lightning ΠΈΠ»ΠΈ LibJIT Π²ΡΡ Π³ΡΡΠ·Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΡΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π½Π°. ΠΠΎ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΈ ΠΎΠ±ΡΠΈΠΉ ΠΎΠ±ΡΡΠΌ ΠΊΠΎΠ΄Π° Π΄Π°ΠΆΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π·Π΄ΠΎΡΠΎΠ²ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΈΡΠΌΡ, Π΄ΠΎ ΠΊΠΎΡΠΎΡΡΡ Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΡΡΠ½ΠΊΠ° Π½Π΅ Π΄ΠΎΡΠ»ΠΈ ΠΊΠΎΠΏΡΡΡΠ°. ΠΠΎ ΠΏΡΠ΅Π΄Π΅Π»ΠΎΠ² ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²Ρ Π½Π΅Ρ, ΠΈ Π½Π°ΡΠ΅ ΡΠ²ΠΈΠ½ΡΠΊΠΎΠ΅ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΠ΅ β Π²ΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ ΡΠ΅ΡΠΈΠΈ ΡΡΠ°ΡΠ΅ΠΉ ΠΏΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠ² β Π²ΡΡ ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π³Π΄Π΅-ΡΠΎ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡΡ. ΠΡΠ»ΠΈ ΡΠΈΡΠ°ΡΠ΅Π»ΡΠΌ ΠΏΡΠΈΠ΄ΡΡ Π² Π³ΠΎΠ»ΠΎΠ²Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ°Π·ΠΎΠ³Π½Π°ΡΡ ΡΠ²ΠΈΠ½ΡΡ, ΠΌΡ Ρ ΠΏΠΎΡΠΎΡΡΠ½ΠΊΠΎΠΌ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π΄Ρ ΠΈΡ ΠΈΡΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ.
PS ΠΡΠ΄Π΅Π»ΡΠ½Π°Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠ΅ΠΉ ΡΠ΅ΡΡΡΠ΅, Π Π΅Π½Π°ΡΠ΅ ΠΠ°Π·Π°Π½ΠΎΠ²ΠΎΠΉ, Π·Π° ΡΡΠΊΠΈΠ·Ρ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΉ, ΠΈ Π½Π°ΡΠ΅ΠΌΡ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΎΡΡ, ΠΠ»Π°Π΄ΠΈΠΌΠΈΡΡ Π¨ΠΎΠΏΠΎΡΠΎΠ²Ρ (https://www.instagram.com/vovazomb/), Π·Π° ΡΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ½ΠΊΠΈ.
PPS ΠΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎΠΊ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΡΠΈΠ² Π² ΡΠ΅Π»ΠΎΠΌ, ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ. ΠΠΎ true-grue ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ² ΡΠ΄Π΅Π»Π°Π» Π΄Π»Ρ Π½Π΅Π³ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ·ΡΠΊ β PigletC. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΡΠΊΠ°ΡΡ Π±Π΅Π· ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ!
PPPS Π§ΠΈΡΠ°ΡΠ΅Π»Ρ iliazeus ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ: ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ ΡΡΠ΅ΠΊΠ° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π£Π΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΡΠΈΡΡΠΉ ΠΊΠΎΠ΄ ΡΠ°ΠΌΡΠΌ Π±ΡΡΡΡΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ ΠΈΠ· Π²ΡΠ΅Ρ ; Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΠ΅ΡΠ΅ΡΠΎ ΠΡΠ°ΡΠΎΡΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π΄Π²Π° ΡΠ°Π·Π° Π±ΡΡΡΡΠ΅Π΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ Π½Π°ΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΡΠ΅Ρ Π»ΡΠ±ΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΎΡΡ ΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΠΊΠΎΠ΄.