ΠΠ° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π»Π΅Ρ Ρ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΠ²ΠΎΠΈ ΡΠΈΠ»Ρ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ, ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠ·ΡΠΊ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Ρ
ΠΎΡΡ ΠΎΡΠ²Π΅ΡΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ°ΠΏΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΠΈ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡ ΡΠ·ΡΠΊΠ° ΠΈ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π°Π΄ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Ρ.
ΠΠ°ΡΠ°Π½Π΅Π΅ ΡΠΊΠ°ΠΆΡ, ΡΡΠΎ ΠΏΠΈΡΠ°Π» Π²Π΅ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° Free Pascal, Ρ.ΠΊ. ΠΏΡΠΎΠ³ΠΈ Π½Π° Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±ΡΠ°ΡΡ ΠΏΠΎΠ΄ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, Π΄Π° ΠΈ ΡΠ°ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΠΈ (ΡΠΎΠ±ΠΈΡΠ°Ρ Π²ΡΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ O2 ΡΠ»Π°Π³ΠΎΠΌ).
Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ°
ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΡΡΠΎΠΈΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΠΈΡΠ°ΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΌΠΎΡΠΌ ΡΠ·ΡΠΊΠ΅. Π Π΅ΡΠΈΠ» Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΡΠ΅ΠΊΠΎΠ²ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΊ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ. ΠΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΠΊΠ°ΠΊ ΠΌΠ½Π΅ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π° ΡΡΡΡΠΊΠΎΠΌ Ρ Π½Π΅ Π½Π°ΡΠ΅Π», ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ Ρ Π°Π½Π³Π»ΠΎΡΠ·ΡΡΠ½ΡΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ Ρ Π·Π°ΡΠ΅Π» Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°. ΠΠ°Π»Π΅Π΅ Π±ΡΠ΄Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ²ΠΎΠΈ Β«ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΠ΅Β» ΠΈΠ΄Π΅ΠΈ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΡΡΠΎΠΌ Π΄Π΅Π»Π΅.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΅ΠΊΠ°
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π²ΠΎ Π³Π»Π°Π²Π΅ ΠΠ Π»Π΅ΠΆΠΈΡ ΡΡΠ΅ΠΊ. Π ΠΌΠΎΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ. ΠΠΎ ΡΡΡΠΈ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π²Π΅ΡΡΠΈΠ½Ρ ΡΡΠ΅ΠΊΠ°.
ΠΡΠΈ Π΅Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² Π½Π° 256 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠ»ΠΈ Π² ΡΡΠ΅ΠΊ Π·Π°ΠΊΠΈΠ΄ΡΠ²Π°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠΎ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ 256 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΡΡΠ΅ΠΊΠ° β Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΡΡΡ.
Π ΠΠ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅ΠΊΠΎΠ²:
- ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ΅ΠΊ.
- Π‘ΡΠ΅ΠΊ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΠ΅ΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°.
- Π‘ΡΠ΅ΠΊ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°.
- Π‘ΡΠ΅ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° try/catch/finally Π±Π»ΠΎΠΊΠΎΠ².
ΠΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
Π‘ ΡΡΠΈΠΌ Π²ΡΠ΅ ΠΏΡΠΎΡΡΠΎ. ΠΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΡΡΠΊΠΎΠΌ ΠΊΠΎΠ΄Π° ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π°Π΄ΡΠ΅ΡΠ°ΠΌ. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, Π΄ΠΎΡΡΡΠΏ ΠΊ Π΅Π³ΠΎ ΡΡΠ΅ΠΉΠΊΠ°ΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ β Ρ.Π΅. ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π² Π²Π΅ΡΡΠΈΠ½Ρ ΡΡΠ΅ΠΊΠ° ΠΈΠ»ΠΈ ΡΠΈΡΠ°ΡΡ Π΅Ρ ΠΎΡΡΡΠ΄Π°. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Ρ.ΠΊ. Ρ Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠΎ ΡΡΡΠΈ Ρ ΡΠ°Π½ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΠ, ΡΠΎ Π² ΡΠ·ΡΠΊΠ΅ ΠΏΡΠ΅ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ°Π±ΠΎΡΠ° Ρ Π½Π΅ΡΠ²Π½ΡΠΌΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ.
Π‘Π±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°
Π ΠΌΠΎΠ΅ΠΉ ΠΠ ΠΎΠ½ ΠΏΠΎΠ»ΡΠ°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ. Π’.Π΅. ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠ°ΠΌ ΡΠ΅ΡΠ°Π΅Ρ ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°. Π Π°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ½ Π½Π΅ ΠΏΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠΌΡ ΡΡΠ΅ΡΡΠΈΠΊΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠ°ΠΊ Π² ΡΠ΅Ρ ΠΆΠ΅ Python, Perl, Ruby, Lua ΠΈ Ρ.Π΄. ΠΠ½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠ΅ΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠ°ΡΠΊΠ΅ΡΠΎΠ². Π’.Π΅. ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΡΠ΅ΠΊ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΠ±ΠΎΡΡΠΈΠΊ Π±ΡΡΡΡΠΎ ΠΏΡΠΎΠ±Π΅Π³Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΠΎΠΌΡ ΡΠΏΠΈΡΠΊΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° try/catch/finally Π±Π»ΠΎΠΊΠΎΠ²
ΠΠ°ΠΊ ΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ β Π²Π°ΠΆΠ½Π°Ρ Π΅Π³ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ. Π―Π΄ΡΠΎ ΠΠ ΠΎΠ±Π΅ΡΠ½ΡΡΠΎ Π² try..catch Π±Π»ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠΈΠΌΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ² Π² ΡΡΠ΅ΠΊ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½Π΅ΠΌ. Π ΠΊΠΎΠ΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ try/catch/finally Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°, ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π½Π° catch (ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ) ΠΈ Π½Π° finally/end (ΠΊΠΎΠ½Π΅Ρ Π±Π»ΠΎΠΊΠ°).
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ
ΠΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΠ. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π Π°Π±ΠΎΡΠ°Π΅Ρ Π±Π΅Π· ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ, ΡΠ°ΠΊ ΡΡΠΎ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π±ΡΡΡΡΠ΅Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΠ½Π΅ΡΠ½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΠΠ
ΠΠ΅Π· ΡΡΠΎΠ³ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ. ΠΠ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠΌΠΏΠΎΡΡΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ . ΠΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° Π½Π° Mash ΠΈ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° Π½Π° Π½Π°ΡΠΈΠ²Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ , Π·Π°ΡΠ΅ΠΌ ΡΠ²ΡΠ·Π°Π² ΠΈΡ Π² ΠΎΠ΄Π½ΠΎ ΡΠ΅Π»ΠΎΠ΅.
Π’ΡΠ°Π½ΡΠ»ΡΡΠΎΡ Ρ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Mash Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ Π΄Π»Ρ ΠΠ
ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊ
ΠΠ»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π² ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΠ Ρ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π» ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊ. ΠΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΡΡΠ°ΡΠ½ΠΎΠ΅ Π·ΡΠ΅Π»ΠΈΡΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π·Π΄Π΅ΡΡ Π½Π΅ΡΡ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°. Π‘ΠΊΠ°ΠΆΡ Π»ΠΈΡΡ ΡΠΎ, ΡΡΠΎ Π½Π° ΡΡΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΈ Π°Π΄ΡΠ΅ΡΠ° ΡΠΎΡΠ΅ΠΊ Π²Ρ ΠΎΠ΄Π°.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°
ΠΡΠ±ΡΠ°Π» Ρ Π½Π΅ ΡΠ°ΠΌΡΡ Ρ ΠΎΡΠΎΡΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π’ΡΠ°Π½ΡΠ»ΡΡΠΎΡ Π½Π΅ ΡΡΡΠΎΠΈΡ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΎΠ±Π°Π΅Ρ ΠΏΡΠΎΡΠΈΠΌ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°ΠΌ. ΠΠ½ ΡΠΌΠΎΡΡΠΈΡ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ. Π’.Π΅. Π΅ΡΠ»ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄ Β«while <ΡΡΠ»ΠΎΠ²ΠΈΠ΅>:Β», ΡΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ while ΡΠΈΠΊΠ»Π° ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΅Ρ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ while ΡΠΈΠΊΠ»Π°. Π§ΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ switch-case.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ°ΠΊΠΎΠΌΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎΠΌΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠΆ Π±ΡΡΡΡΡΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΎΡΡΠΎΡΠ° Π΅Π³ΠΎ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΠΎΠ·ΡΠΎΡΠ»Π° Π² ΡΠ°Π·Ρ. ΠΡΠΆΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ» Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΌΠΎΠ³ ΠΎΡΡΡΡΡ ΠΌΠΎΠΉ ΠΊΠΎΡΠ΅. ΠΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΠΠ ΠΈ Π²ΠΎΠ²ΡΠ΅ Π±ΡΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅ΠΌ Π·Π° Π½Π΅Π΄Π΅Π»Ρ.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π°
Π’ΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π»ΡΡΡΠ΅ (ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, Π½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅, ΠΊΠ°ΠΊ ΡΡΠΊΠΈ Π΄ΠΎΠΉΠ΄ΡΡ). ΠΠΎΠΊΠ° ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΌΠ΅Π΅Ρ ΠΎΡΡΠ΅ΠΊΠ°ΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈ ΠΈΠΌΠΏΠΎΡΡΡ ΠΎΡ ΡΠ±ΠΎΡΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°ΠΌΠ΅Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ. ΠΠΎΡ ΠΈ Π²ΡΠ΅.
Π―Π·ΡΠΊ Mash
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΠ·ΡΠΊΠ°
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ΄Π΅Π΅ΠΉ Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ·ΡΠΊ. Π‘ΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΠΎ ΡΠ²ΠΎΠ΅ΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π° ΡΡΠ°.
ΠΠ»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² ΡΠ·ΡΠΊΠ΅ ΠΎΡΠΊΡΡΠ²Π°ΡΡΡΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ : ΠΈ Π·Π°ΠΊΡΡΠ²Π°ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ end.
ΠΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ proc ΠΈ func ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. Π ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ. ΠΡΠ΅ ΠΊΠ°ΠΊ Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ².
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ return ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ break ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΉΡΠΈ ΠΈΠ· ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ/ΡΡΠ½ΠΊΡΠΈΠΈ (Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΡΠΎΠΈΡ Π²Π½Π΅ ΡΠΈΠΊΠ»ΠΎΠ²).
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
...
func summ(a, b):
return a + b
end
proc main():
println(summ(inputln(), inputln()))
end
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ
- Π¦ΠΈΠΊΠ»Ρ: for..end, while..end, until..end
- Π£ΡΠ»ΠΎΠ²ΠΈΡ: if..[else..]end, switch..[case..end..][else..]end
- ΠΠ΅ΡΠΎΠ΄Ρ: proc <ΠΈΠΌΡ>():β¦ end, func <ΠΈΠΌΡ>():β¦ end
- Label & goto: <ΠΈΠΌΡ>:, jump <ΠΈΠΌΡ>
- Enum ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
Π’ΡΠ°Π½ΡΠ»ΡΡΠΎΡ ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π»ΠΈΠ±ΠΎ Π΅ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΈΡΠ΅Ρ var ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°:
a ?= 10
b ?= a + 20
var a = 10, b = a + 20
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
ΠΠΠ
ΠΡ Π²ΠΎΡ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π»ΠΈΡΡ ΠΌΡ ΠΊ ΡΠ°ΠΌΠΎΠΉ Π²ΠΊΡΡΠ½ΠΎΠΉ ΡΠ΅ΠΌΠ΅. Π ΡΠ·ΡΠΊΠ΅ Mash ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π²ΡΠ΅ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π’.Π΅. ΠΊΠ»Π°ΡΡΡ, Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ (Π² Ρ.Ρ. Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ), Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡ ΠΈ ΠΈΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡ (ΠΏΠΎΠ»Π½Π°Ρ).
ΠΠ΅Π· Π»ΠΈΡΠ½ΠΈΡ ΡΠ»ΠΎΠ², Π»ΡΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°.
ΠΡΠΎΡΡΠΎΠΉ ΠΊΠ»Π°ΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΠΈΠΌ:
uses <bf>
uses <crt>
class MyClass:
var a, b
proc Create, Free
func Summ
end
proc MyClass::Create(a, b):
$a = new(a)
$b = new(b)
end
proc MyClass::Free():
Free($a, $b)
$rem()
end
func MyClass::Summ():
return $a + $b
end
proc main():
x ?= new MyClass(10, 20)
println(x->Summ())
x->Free()
end
ΠΡΠ²Π΅Π΄Π΅Ρ: 30.
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ:
uses <bf>
uses <crt>
class MyClass:
var a, b
proc Create, Free
func Summ
end
proc MyClass::Create(a, b):
$a = new(a)
$b = new(b)
end
proc MyClass::Free():
Free($a, $b)
$rem()
end
func MyClass::Summ():
return $a + $b
end
class MyNewClass(MyClass):
func Summ
end
func MyNewClass::Summ():
return ($a + $b) * 2
end
proc main():
x ?= new MyNewClass(10, 20)
println(x->Summ())
x->Free()
end
ΠΡΠ²Π΅Π΄Π΅Ρ: 60.
Π§ΡΠΎ Π½Π° ΡΡΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ°? ΠΠ° ΡΡΠΎ ΠΆΠ΅ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡ!:
uses <bf>
uses <crt>
class MyClass:
var a, b
proc Create, Free
func Summ
end
proc MyClass::Create(a, b):
$a = new(a)
$b = new(b)
end
proc MyClass::Free():
Free($a, $b)
$rem()
end
func MyClass::Summ():
return $a + $b
end
class MyNewClass(MyClass):
func Summ
end
func MyNewClass::Summ():
return ($a + $b) * 2
end
proc main():
x ?= new MyClass(10, 20)
x->Summ ?= MyNewClass::Summ
println(x->Summ())
x->Free()
end
ΠΡΠ²Π΅Π΄Π΅Ρ: 60.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ΄Π΅Π»ΠΈΠΌ ΠΌΠΈΠ½ΡΡΠΊΡ ΠΈΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²:
uses <bf>
uses <crt>
class MyClass:
var a, b
end
proc main():
x ?= new MyClass
println(BoolToStr(x->type == MyClass))
x->rem()
println(BoolToStr(typeof(3.14) == typeReal))
end
ΠΡΠ²Π΅Π΄Π΅Ρ: true, true.
ΠΠ± ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ²Π½ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡ
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ?= ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ = ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
Π ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΡΠ²Π½ΡΡ
ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡ
. ΠΠΎΠ±Π°Π²ΠΈΠ» Ρ ΠΈΡ
Π² ΡΠ·ΡΠΊ ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ.
@<ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ> β Π²Π·ΡΡΡ ΡΠ²Π½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ.
?<ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ> β ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
@= β ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎ ΡΠ²Π½ΠΎΠΌΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½Π΅Ρ.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
uses <bf>
uses <crt>
proc main():
var a = 10, b
b ?= @a
PrintLn(b)
b ?= ?b
PrintLn(b)
b++
PrintLn(a)
InputLn()
end
ΠΡΠ²Π΅Π΄Π΅Ρ: ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΡΠΈΡΠ»ΠΎ, 10, 11.
Try..[catch..][finally..]end
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
uses <bf>
uses <crt>
proc main():
println("Start")
try:
println("Trying to do something...")
a ?= 10 / 0
catch:
println(getError())
finally:
println("Finally")
end
println("End")
inputln()
end
ΠΠ»Π°Π½Ρ Π½Π° Π±ΡΠ΄ΡΡΠ΅Π΅
ΠΡΠ΅ ΠΏΡΠΈΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡ Π΄Π° ΠΏΡΠΈΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡ ΠΊ GraalVM & Truffle. Π£ ΠΌΠΎΠ΅ΠΉ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ JIT ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΡΠ°ΠΊ ΡΡΠΎ Π² ΠΏΠ»Π°Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ½ ΠΏΠΎΠΊΠ° ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡ ΡΠ°Π·Π²Π΅ ΡΡΠΎ ΠΏΠΈΡΠΎΠ½Ρ. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΌΠ½Π΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΠΎΠ΄ ΡΠΈΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ JIT ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π½Π° Π±Π°Π·Π΅ GraalVM ΠΈΠ»ΠΈ LLVM.
Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΡΡ Ρ Π½Π°ΡΠ°Π±ΠΎΡΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΠ°ΠΌΠΈ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ Π΄ΠΎΡΠΈΡΠ°Π»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°, Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com