Нови програмски јСзик ΠœΠ°ΡΡ…

НСколико Π³ΠΎΠ΄ΠΈΠ½Π° сам сС ΠΎΠΊΡƒΡˆΠ°ΠΎ Ρƒ Ρ€Π°Π·Π²ΠΎΡ˜Ρƒ сопствСног програмског јСзика. Π–Π΅Π»Π΅ΠΎ сам Π΄Π° створим, ΠΏΠΎ ΠΌΠΎΠΌ ΠΌΠΈΡˆΡ™Π΅ΡšΡƒ, Π½Π°Ρ˜Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΈΡ˜ΠΈ, Π½Π°Ρ˜Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈΡ˜ΠΈ ΠΈ најпогоднији ΠΌΠΎΠ³ΡƒΡ›ΠΈ јСзик.

Π£ ΠΎΠ²ΠΎΠΌ Ρ‡Π»Π°Π½ΠΊΡƒ ΠΆΠ΅Π»ΠΈΠΌ Π΄Π° истакнСм Π³Π»Π°Π²Π½Π΅ Ρ„Π°Π·Π΅ свог Ρ€Π°Π΄Π° ΠΈ, Π·Π° ΠΏΠΎΡ‡Π΅Ρ‚Π°ΠΊ, опишСм ΠΊΡ€Π΅ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ јСзика ΠΈ ΡšΠ΅Π³ΠΎΠ²Ρƒ ΠΏΡ€Π²Ρƒ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Ρƒ, Π½Π° којој Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½ΠΎ Ρ€Π°Π΄ΠΈΠΌ.

Π£Π½Π°ΠΏΡ€Π΅Π΄ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ Π΄Π° сам Ρ†Π΅ΠΎ ΠΏΡ€ΠΎΡ˜Π΅ΠΊΠ°Ρ‚ написао Ρƒ Π€Ρ€Π΅Π΅ ΠŸΠ°ΡΡ†Π°Π»-Ρƒ, Ρ˜Π΅Ρ€... ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π½Π° ΡšΠ΅ΠΌΡƒ сС ΠΌΠΎΠ³Ρƒ саставити Π·Π° ΠΎΠ³Ρ€ΠΎΠΌΠ°Π½ Π±Ρ€ΠΎΡ˜ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ, Π° сам ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ Π²Π΅ΠΎΠΌΠ° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΎΠ²Π°Π½Π΅ Π±ΠΈΠ½Π°Ρ€Π½Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ (свС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚Π° сакупљам са О2 заставицом).

Π’Ρ€Π΅ΠΌΠ΅ ΠΈΠ·Π²ΠΎΡ’Π΅ΡšΠ° јСзика

ΠŸΡ€Π΅ свСга, Π²Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΈΡ‡Π°Ρ‚ΠΈ ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΎΡ˜ машини ΠΊΠΎΡ˜Ρƒ сам ΠΌΠΎΡ€Π°ΠΎ Π΄Π° напишСм Π·Π° ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ Π±ΡƒΠ΄ΡƒΡ›ΠΈΡ… Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° свом Ρ˜Π΅Π·ΠΈΠΊΡƒ. ΠžΠ΄Π»ΡƒΡ‡ΠΈΠΎ сам Π΄Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ стСка, ΠΌΠΎΠΆΠ΄Π°, Π·Π°Ρ‚ΠΎ ΡˆΡ‚ΠΎ јС Ρ‚ΠΎ Π±ΠΈΠΎ најлакши Π½Π°Ρ‡ΠΈΠ½. Нисам нашао Π½ΠΈ јСдан Π½ΠΎΡ€ΠΌΠ°Π»Π°Π½ Ρ‡Π»Π°Π½Π°ΠΊ ΠΎ Ρ‚ΠΎΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Ρ‚ΠΎ Π΄Π° ΡƒΡ€Π°Π΄ΠΈΠΌ Π½Π° руском, ΠΏΠ° сам, Π½Π°ΠΊΠΎΠ½ ΡˆΡ‚ΠΎ сам сС ΡƒΠΏΠΎΠ·Π½Π°ΠΎ са ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΎΠΌ Π½Π° СнглСском, сСо Π΄Π° Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°ΠΌ ΠΈ напишСм свој Π±ΠΈΡ†ΠΈΠΊΠ». Π—Π°Ρ‚ΠΈΠΌ Ρ›Ρƒ прСдставити својС β€žΠ½Π°ΠΏΡ€Π΅Π΄Π½Π΅β€œ идСјС ΠΈ Ρ€Π°Π·Π²ΠΎΡ˜Π΅ ΠΏΠΎ ΠΎΠ²ΠΎΠΌ ΠΏΠΈΡ‚Π°ΡšΡƒ.

Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° стСка

ΠžΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎ, Π½Π° Π²Ρ€Ρ…Ρƒ Π’Πœ-Π° јС стСк. Π£ мојој ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜ΠΈ Ρ€Π°Π΄ΠΈ Ρƒ Π±Π»ΠΎΠΊΠΎΠ²ΠΈΠΌΠ°. Π£ ΡΡƒΡˆΡ‚ΠΈΠ½ΠΈ ΠΎΠ²ΠΎ јС Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π°Π½ Π½ΠΈΠ· ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡Π° ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π° Π·Π° Ρ‡ΡƒΠ²Π°ΡšΠ΅ индСкса Π²Ρ€Ρ…Π° стСка.
Када сС ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Π»ΠΈΠ·ΡƒΡ˜Π΅, ΠΊΡ€Π΅ΠΈΡ€Π° сС Π½ΠΈΠ· ΠΎΠ΄ 256 Π΅Π»Π΅ΠΌΠ΅Π½Π°Ρ‚Π°. Ако сС вишС ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡Π° Π³ΡƒΡ€Π½Π΅ Π½Π° стСк, њСгова Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° сС ΠΏΠΎΠ²Π΅Ρ›Π°Π²Π° Π·Π° слСдСћих 256 Π΅Π»Π΅ΠΌΠ΅Π½Π°Ρ‚Π°. Π‘Ρ…ΠΎΠ΄Π½ΠΎ Ρ‚ΠΎΠΌΠ΅, ΠΏΡ€ΠΈΠ»ΠΈΠΊΠΎΠΌ ΡƒΠΊΠ»Π°ΡšΠ°ΡšΠ° Π΅Π»Π΅ΠΌΠ΅Π½Π°Ρ‚Π° ΠΈΠ· наслага, њСгова Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° сС ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΡ’Π°Π²Π°.

Π’Πœ користи Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ стСкова:

  1. Π“Π»Π°Π²Π½ΠΈ стСк.
  2. Π‘Ρ‚Π΅ΠΊ Π·Π° Ρ‡ΡƒΠ²Π°ΡšΠ΅ ΠΏΠΎΠ²Ρ€Π°Ρ‚Π½ΠΈΡ… Ρ‚Π°Ρ‡Π°ΠΊΠ°.
  3. Π‘Ρ‚ΠΎΠ³ Π·Π° ΡΠ°ΠΊΡƒΠΏΡ™Π°ΡšΠ΅ смСћа.
  4. ΠŸΡ€ΠΎΠ±Π°Ρ˜Ρ‚Π΅/ΡƒΡ…Π²Π°Ρ‚ΠΈΡ‚Π΅/ΠΊΠΎΠ½Π°Ρ‡Π½ΠΎ Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ˜Ρ‚Π΅ стСк Ρ€ΡƒΠΊΠΎΠ²Π°ΠΎΡ†Π°.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π΅ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅

Овај јС Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π°Π½. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π΅ сС ΠΎΠ±Ρ€Π°Ρ’ΡƒΡ˜Ρƒ Ρƒ посСбном ΠΌΠ°Π»ΠΎΠΌ Π΄Π΅Π»Ρƒ ΠΊΠΎΠ΄Π° ΠΈ доступнС су Ρƒ Π±ΡƒΠ΄ΡƒΡ›ΠΈΠΌ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°ΠΌΠ° ΠΏΡ€Π΅ΠΊΠΎ статичких адрСса. ΠŸΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅ су Π½ΠΈΠ· ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡Π° ΠΎΠ΄Ρ€Π΅Ρ’Π΅Π½Π΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅, приступ њСговим Ρ›Π΅Π»ΠΈΡ˜Π°ΠΌΠ° сС Π²Ρ€ΡˆΠΈ индСксом – Ρ‚Ρ˜. статичка адрСса. ΠŸΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅ сС ΠΌΠΎΠ³Ρƒ Π³ΡƒΡ€Π½ΡƒΡ‚ΠΈ Π½Π° Π²Ρ€Ρ… стСка ΠΈΠ»ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΠΈ ΠΎΠ΄Π°Ρ‚Π»Π΅. Π—Π°ΠΏΡ€Π°Π²ΠΎ, Ρ˜Π΅Ρ€ Π”ΠΎΠΊ нашС Π²Π°Ρ€ΠΈΡ˜Π°Π±Π»Π΅ Ρƒ ΡΡƒΡˆΡ‚ΠΈΠ½ΠΈ Ρ‡ΡƒΠ²Π°Ρ˜Ρƒ ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡Π΅ Π½Π° врСдности Ρƒ Π’Πœ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜ΠΈ, јСзиком Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€Π° Ρ€Π°Π΄ са ΠΈΠΌΠΏΠ»ΠΈΡ†ΠΈΡ‚Π½ΠΈΠΌ ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡ΠΈΠΌΠ°.

Π‚ΡƒΠ±Ρ€Π΅Ρ‚Π°Ρ€

Π£ ΠΌΠΎΠΌ Π’Πœ-Ρƒ јС полуаутоматски. ОнС. ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ сам ΠΎΠ΄Π»ΡƒΡ‡ΡƒΡ˜Π΅ ΠΊΠ°Π΄Π° Ρ›Π΅ ΠΏΠΎΠ·Π²Π°Ρ‚ΠΈ сакупљача смСћа. НС Ρ€Π°Π΄ΠΈ ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠΎΠ±ΠΈΡ‡Π½ΠΎΠ³ Π±Ρ€ΠΎΡ˜Π°Ρ‡Π° ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡Π°, ΠΊΠ°ΠΎ Ρƒ ΠŸΠΈΡ‚Ρ…ΠΎΠ½, ΠŸΠ΅Ρ€Π», Π ΡƒΠ±ΠΈ, Π›ΡƒΠ°, ΠΈΡ‚Π΄. Π Π΅Π°Π»ΠΈΠ·ΡƒΡ˜Π΅ сС ΠΊΡ€ΠΎΠ· систСм ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π°. ОнС. ΠΊΠ°Π΄Π° јС ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²ΠΎΡ˜ намСњСно Π΄Π° јој сС Π΄ΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΈΠ²Ρ€Π΅ΠΌΠ΅Π½Π° врСдност, ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡ Π½Π° ΠΎΠ²Ρƒ врСдност сС додајС стСку сакупљача смСћа. Π£ будућности, ΠΊΠΎΠ»Π΅ΠΊΡ‚ΠΎΡ€ Π±Ρ€Π·ΠΎ ΠΏΡ€ΠΎΠ»Π°Π·ΠΈ ΠΊΡ€ΠΎΠ· Π²Π΅Ρ› ΠΏΡ€ΠΈΠΏΡ€Π΅ΠΌΡ™Π΅Π½Ρƒ листу ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡Π°.

Π ΡƒΠΊΠΎΠ²Π°ΡšΠ΅ Π±Π»ΠΎΠΊΠΎΠ²ΠΈΠΌΠ° Ρ‚Ρ€ΠΈ/Ρ†Π°Ρ‚Ρ†Ρ…/Ρ„ΠΈΠ½Π°Π»Π»ΠΈ

Као ΠΈΡƒ сваком ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΎΠΌ Ρ˜Π΅Π·ΠΈΠΊΡƒ, Ρ€ΡƒΠΊΠΎΠ²Π°ΡšΠ΅ ΠΈΠ·ΡƒΠ·Π΅Ρ‚Ρ†ΠΈΠΌΠ° јС Π²Π°ΠΆΠ½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. ΠˆΠ΅Π·Π³Ρ€ΠΎ Π’Πœ-Π° јС ΡƒΠΌΠΎΡ‚Π°Π½ΠΎ Ρƒ Π±Π»ΠΎΠΊ Ρ‚Ρ€ΠΈ..Ρ†Π°Ρ‚Ρ†Ρ…, који ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²Ρ€Π°Ρ‚ΠΈ Π½Π° ΠΈΠ·Π²Ρ€ΡˆΠ΅ΡšΠ΅ ΠΊΠΎΠ΄Π° Π½Π°ΠΊΠΎΠ½ ΡˆΡ‚ΠΎ ΡƒΡ…Π²Π°Ρ‚ΠΈ ΠΈΠ·ΡƒΠ·Π΅Ρ‚Π°ΠΊ Ρ‚Π°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ›Π΅ Π½Π΅ΠΊΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π΅ ΠΎ ΡšΠ΅ΠΌΡƒ Π³ΡƒΡ€Π½ΡƒΡ‚ΠΈ Ρƒ стСк. Π£ ΠΊΠΎΠ΄Ρƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ дСфинисати Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΊΠΎΠ΄Π° Ρ‚Ρ€ΠΈ/Ρ†Π°Ρ‚Ρ†Ρ…/Ρ„ΠΈΠ½Π°Π»Π»ΠΈ, ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ˜ΡƒΡ›ΠΈ ΡƒΠ»Π°Π·Π½Π΅ Ρ‚Π°Ρ‡ΠΊΠ΅ Π½Π° Ρ†Π°Ρ‚Ρ†Ρ… (ΡƒΠΏΡ€Π°Π²Ρ™Π°Ρ‡ ΠΈΠ·ΡƒΠ·Π΅Ρ‚ΠΊΠΎΠΌ) ΠΈ ΠΊΠΎΠ½Π°Ρ‡Π½ΠΎ/ΠΊΡ€Π°Ρ˜ (ΠΊΡ€Π°Ρ˜ Π±Π»ΠΎΠΊΠ°).

ΠœΡƒΠ»Ρ‚ΠΈΡ‚Ρ…Ρ€Π΅Π°Π΄ΠΈΠ½Π³

ΠŸΠΎΠ΄Ρ€ΠΆΠ°Π½ јС Π½Π° Π½ΠΈΠ²ΠΎΡƒ Π’Πœ. ΠˆΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²Π°Π½ јС ΠΈ Π·Π³ΠΎΠ΄Π°Π½ Π·Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Ρƒ. Π Π°Π΄ΠΈ Π±Π΅Π· систСма ΠΏΡ€Π΅ΠΊΠΈΠ΄Π°, Ρ‚Π°ΠΊΠΎ Π΄Π° ΠΊΠΎΠ΄ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС ΠΈΠ·Π²Ρ€ΡˆΠ°Π²Π° Ρƒ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Π½ΠΈΡ‚ΠΈ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΏΡƒΡ‚Π° Π±Ρ€ΠΆΠ΅, рСспСктивно.

ЕкстСрнС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π·Π° Π’Πœ

Π‘Π΅Π· ΠΎΠ²ΠΎΠ³Π° сС Π½ΠΈΠΊΠ°ΠΊΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅. Π’Πœ ΠΏΠΎΠ΄Ρ€ΠΆΠ°Π²Π° ΡƒΠ²ΠΎΠ·, слично ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ˜Π΅Π·ΠΈΡ†ΠΈΠΌΠ°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ написати Π΄Π΅ΠΎ ΠΊΠΎΠ΄Π° Ρƒ ΠœΠ°ΡΡ…, Π° Π΄Π΅ΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΡšΠΈΠΌ Ρ˜Π΅Π·ΠΈΡ†ΠΈΠΌΠ°, Π° Π·Π°Ρ‚ΠΈΠΌ ΠΈΡ… ΠΏΠΎΠ²Π΅Π·Π°Ρ‚ΠΈ Ρƒ јСдан.

ΠŸΡ€Π΅Π²ΠΎΠ΄ΠΈΠ»Π°Ρ† са ΠœΠ°ΡΡ… јСзика високог Π½ΠΈΠ²ΠΎΠ° Ρƒ Π±Π°Ρ˜Ρ‚ ΠΊΠΎΠ΄ Π·Π° Π’Πœ

Π‘Ρ€Π΅Π΄ΡšΠΈ јСзик

Π”Π° Π±ΠΈΡ… Π±Ρ€Π·ΠΎ написао ΠΏΡ€Π΅Π²ΠΎΠ΄ΠΈΠ»Π°Ρ† са слоТСног јСзика Ρƒ Π’Πœ ΠΊΠΎΠ΄, ΠΏΡ€Π²ΠΎ сам Ρ€Π°Π·Π²ΠΈΠΎ ΡΡ€Π΅Π΄ΡšΠΈ јСзик. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ јС Π±ΠΈΠΎ уТасан спСктакл Π½Π°Π»ΠΈΠΊ асСмблСру који ΠΎΠ²Π΄Π΅ Π½Π΅ΠΌΠ° посСбнС сврхС Ρ€Π°Π·ΠΌΠ°Ρ‚Ρ€Π°Ρ‚ΠΈ. Π Π΅Ρ›ΠΈ Ρ›Ρƒ само Π΄Π° Π½Π° ΠΎΠ²ΠΎΠΌ Π½ΠΈΠ²ΠΎΡƒ ΠΏΡ€Π΅Π²ΠΎΠ΄ΠΈΠ»Π°Ρ† ΠΎΠ±Ρ€Π°Ρ’ΡƒΡ˜Π΅ Π²Π΅Ρ›ΠΈΠ½Ρƒ константи ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²ΠΈΡ…, ΠΈΠ·Ρ€Π°Ρ‡ΡƒΠ½Π°Π²Π° ΡšΠΈΡ…ΠΎΠ²Π΅ статичкС адрСсС ΠΈ адрСсС ΡƒΠ»Π°Π·Π½ΠΈΡ… Ρ‚Π°Ρ‡Π°ΠΊΠ°.

АрхитСктура ΠΏΡ€Π΅Π²ΠΎΠ΄ΠΈΠΎΡ†Π°

Нисам ΠΈΠ·Π°Π±Ρ€Π°ΠΎ Π½Π°Ρ˜Π±ΠΎΡ™Ρƒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Ρƒ. ΠŸΡ€Π΅Π²ΠΎΠ΄ΠΈΠ»Π°Ρ† Π½Π΅ Π³Ρ€Π°Π΄ΠΈ ΠΊΠΎΠ΄Π½ΠΎ стабло, ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ Ρ‚ΠΎ Ρ€Π°Π΄Π΅ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€Π΅Π²ΠΎΠ΄ΠΈΠΎΡ†ΠΈ. Он Π³Π»Π΅Π΄Π° Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚Π°ΠΊ структурС. ОнС. Π°ΠΊΠΎ Π΄Π΅ΠΎ ΠΊΠΎΠ΄Π° који сС Ρ€Π°ΡˆΡ‡Π»Π°ΡšΡƒΡ˜Π΅ ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΊΠ°ΠΎ β€žΠ²Ρ…ΠΈΠ»Π΅ :β€œ, ΠΎΠ½Π΄Π° јС ΠΎΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎ Π΄Π° јС ΠΎΠ²ΠΎ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ˜Π° Π²Ρ…ΠΈΠ»Π΅ ΠΏΠ΅Ρ‚Ρ™Π΅ ΠΈ Π΄Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС ΠΎΠ±Ρ€Π°Π΄ΠΈ ΠΊΠ°ΠΎ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ˜Π° Π²Ρ…ΠΈΠ»Π΅ ΠΏΠ΅Ρ‚Ρ™Π΅. ΠΠ΅ΡˆΡ‚ΠΎ ΠΊΠ°ΠΎ слоТСно ΠΊΡƒΡ›ΠΈΡˆΡ‚Π΅ ΠΏΡ€Π΅ΠΊΠΈΠ΄Π°Ρ‡Π°.

Π—Π°Ρ…Π²Π°Ρ™ΡƒΡ˜ΡƒΡ›ΠΈ ΠΎΠ²ΠΎΠΌ архитСктонском Ρ€Π΅ΡˆΠ΅ΡšΡƒ, ΠΏΡ€Π΅Π²ΠΎΠ΄ΠΈΠ»Π°Ρ† сС ΠΏΠΎΠΊΠ°Π·Π°ΠΎ Π½Π΅ баш Π±Ρ€Π·ΠΈΠΌ. ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, Π»Π°ΠΊΠΎΡ›Π° њСговС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ Π·Π½Π°Ρ‡Π°Ρ˜Π½ΠΎ сС ΠΏΠΎΠ²Π΅Ρ›Π°Π»Π°. Π”ΠΎΠ΄Π°ΠΎ сам ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π΅ структурС Π±Ρ€ΠΆΠ΅ Π½Π΅Π³ΠΎ ΡˆΡ‚ΠΎ јС моја ΠΊΠ°Ρ„Π° ΠΌΠΎΠ³Π»Π° Π΄Π° сС ΠΎΡ…Π»Π°Π΄ΠΈ. ΠŸΠΎΡ‚ΠΏΡƒΠ½Π° ООП ΠΏΠΎΠ΄Ρ€ΡˆΠΊΠ° јС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° Π·Π° мањС ΠΎΠ΄ Π½Π΅Π΄Π΅Ρ™Ρƒ Π΄Π°Π½Π°.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ˜Π° ΠΊΠΎΠ΄Π°

ОвдС јС, Π½Π°Ρ€Π°Π²Π½ΠΎ, ΠΌΠΎΠ³Π»ΠΎ ΠΈ Π±ΠΎΡ™Π΅ Π΄Π° сС ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈ (ΠΈ Π±ΠΈΡ›Π΅ спровСдСно, Π°Π»ΠΈ каснијС, Ρ‡ΠΈΠΌ сС Π΄ΠΎΡ’Π΅ Π΄ΠΎ Ρ‚ΠΎΠ³Π°). Π”ΠΎ сада, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ само Π·Π½Π° ΠΊΠ°ΠΊΠΎ Π΄Π° одсСчС Π½Π΅ΠΈΡΠΊΠΎΡ€ΠΈΡˆΡ›Π΅Π½ΠΈ ΠΊΠΎΠ΄, константС ΠΈ ΡƒΠ²ΠΎΠ·Π΅ ΠΈΠ· склопа. Π’Π°ΠΊΠΎΡ’Π΅, Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ константи са истом Π²Ρ€Π΅Π΄Π½ΠΎΡˆΡ›Ρƒ сС Π·Π°ΠΌΠ΅ΡšΡƒΡ˜Ρƒ јСдном. Π’ΠΎ јС свС.

Маш јСзик

Основни појам јСзика

Π“Π»Π°Π²Π½Π° идСја јС Π±ΠΈΠ»Π° Π΄Π° сС Ρ€Π°Π·Π²ΠΈΡ˜Π΅ ΡˆΡ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈΡ˜ΠΈ ΠΈ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΈΡ˜ΠΈ јСзик. Мислим Π΄Π° сС Ρ€Π°Π·Π²ΠΎΡ˜ носи са својим Π·Π°Π΄Π°Ρ‚ΠΊΠΎΠΌ са праском.

Π‘Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅

Π‘Π²Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ˜Π΅ Ρƒ Ρ˜Π΅Π·ΠΈΠΊΡƒ ΠΎΡ‚Π²Π°Ρ€Π°Ρ˜Ρƒ сС Π΄Π²ΠΎΡ‚Π°Ρ‡ΠΊΠΎΠΌ. : Π° Π·Π°Ρ‚Π²Π°Ρ€Π° ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚Π΅Ρ€ ΠΊΡ€Π°Ρ˜.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅ су дСкларисанС ΠΊΠ°ΠΎ ΠΏΡ€ΠΎΡ† ΠΈ Ρ„ΡƒΠ½Ρ†, рСспСктивно. АргумСнти су Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ Ρƒ Π·Π°Π³Ρ€Π°Π΄Π°ΠΌΠ°. Π‘Π²Π΅ јС ΠΊΠ°ΠΎ Π²Π΅Ρ›ΠΈΠ½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… јСзика.

ΠžΠΏΠ΅Ρ€Π°Ρ‚Π΅Ρ€ ΠΏΠΎΠ²Ρ€Π°Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ€Π°Ρ‚ΠΈΡ‚ΠΈ врСдност ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ€Π°Π·Π±ΠΈΡ‚ΠΈ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π²Π°ΠΌ Π΄Π° ΠΈΠ·Π°Ρ’Π΅Ρ‚Π΅ ΠΈΠ· ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅/Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅ (Π°ΠΊΠΎ јС ΠΈΠ·Π²Π°Π½ ΠΏΠ΅Ρ‚Ρ™ΠΈ).

Primer koda:

...

func summ(a, b):
  return a + b
end

proc main():
  println(summ(inputln(), inputln()))
end

ΠŸΠΎΠ΄Ρ€ΠΆΠ°Π½ΠΈ дизајни

  • ΠŸΠ΅Ρ‚Ρ™Π΅: Π·Π°..ΠΊΡ€Π°Ρ˜, Π΄ΠΎΠΊ..ΠΊΡ€Π°Ρ˜, Π΄ΠΎ..ΠΊΡ€Π°Ρ˜
  • Услови: ΠΈΡ„..[СлсС..]Π΅Π½Π΄, свитцх..[цасС..Π΅Π½Π΄..][СлсС..]Π΅Π½Π΄.
  • ΠœΠ΅Ρ‚ΠΎΠ΄Π΅: ΠΏΡ€ΠΎΡ† ():... Π΅Π½Π΄, Ρ„ΡƒΠ½Ρ† ():... Π΅Π½Π΄
  • Ознака & ΠΈΠ΄ΠΈ: :, скочи
  • Π•Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡ˜Π΅ ΠΈ Π½ΠΈΠ·ΠΎΠ²ΠΈ константи.

ΠŸΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅

ΠŸΡ€Π΅Π²ΠΎΠ΄ΠΈΠ»Π°Ρ† ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΡ… ΠΎΠ΄Ρ€Π΅Π΄ΠΈ аутоматски, ΠΈΠ»ΠΈ Π°ΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ напишС Π²Π°Ρ€ ΠΏΡ€Π΅ Π½Π΅Π³ΠΎ ΡˆΡ‚ΠΎ ΠΈΡ… Π΄Π΅Ρ„ΠΈΠ½ΠΈΡˆΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π°:

a ?= 10
b ?= a + 20

var a = 10, b = a + 20

ΠŸΠΎΠ΄Ρ€ΠΆΠ°Π½Π΅ су Π³Π»ΠΎΠ±Π°Π»Π½Π΅ ΠΈ Π»ΠΎΠΊΠ°Π»Π½Π΅ Π²Π°Ρ€ΠΈΡ˜Π°Π±Π»Π΅.

OOP

Па, дошли смо Π΄ΠΎ Π½Π°Ρ˜ΡƒΠΊΡƒΡΠ½ΠΈΡ˜Π΅ Ρ‚Π΅ΠΌΠ΅. ΠœΠ°ΡΡ… ΠΏΠΎΠ΄Ρ€ΠΆΠ°Π²Π° свС ΠΎΠ±Ρ˜Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΡ˜Π΅Π½Ρ‚ΠΈΡΠ°Π½Π΅ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ°. ОнС. класС, Π½Π°ΡΠ»Π΅Ρ’ΠΈΠ²Π°ΡšΠ΅, ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·Π°ΠΌ (ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜ΡƒΡ›ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡ΠΊΠΈ), Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡ΠΊΠ° аутоматска Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π° ΠΈ ΠΈΠ½Ρ‚Ρ€ΠΎΡΠΏΠ΅ΠΊΡ†ΠΈΡ˜Π° (ΠΏΡƒΠ½Π°).

Π‘Π΅Π· Π΄Π°Ρ™Π΅Π³ одлагања, Π±ΠΎΡ™Π΅ јС само Π΄Π°Ρ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π°.

ΠˆΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½Π° класа ΠΈ Ρ€Π°Π΄ са њом:

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

Π˜Π·Π΄Π°Ρ›Π΅: Ρ‚Π°Ρ‡Π½ΠΎ, Ρ‚Π°Ρ‡Π½ΠΎ.

О ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΠΌΠ° Π΄ΠΎΠ΄Π΅Π»Π΅ ΠΈ Сксплицитним ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡ΠΈΠΌΠ°

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ?= сС користи Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²ΠΎΡ˜ Π΄ΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡ врСдности Ρƒ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜ΠΈ.
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ = мСња врСдност Ρƒ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜ΠΈ користСћи ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡ ΠΈΠ· ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅.
А сада ΠΌΠ°Π»ΠΎ ΠΎ Сксплицитним ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡ΠΈΠΌΠ°. Π”ΠΎΠ΄Π°ΠΎ сам ΠΈΡ… Ρƒ јСзик Π΄Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅.
@ β€” ΡƒΠ·Π΅Ρ‚ΠΈ Сксплицитни ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Ρƒ.
? β€” Π΄ΠΎΠ±ΠΈΡ˜Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Ρƒ ΠΏΠΎ ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡Ρƒ.
@= β€” Π΄ΠΎΠ΄Π΅Π»ΠΈΡ‚ΠΈ врСдност ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²ΠΎΡ˜ Сксплицитним ΠΏΠΎΠΊΠ°Π·ΠΈΠ²Π°Ρ‡Π΅ΠΌ Π½Π° ΡšΡƒ.

Primer koda:

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.

ΠŸΠΎΠΊΡƒΡˆΠ°Ρ˜Ρ‚Π΅..[ΡƒΡ…Π²Π°Ρ‚ΠΈ..][ΠΊΠΎΠ½Π°Ρ‡Π½ΠΎ..]ΠΊΡ€Π°Ρ˜

Primer koda:

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

Планови Π·Π° будућност

Π‘Ρ‚Π°Π»Π½ΠΎ Π³Π»Π΅Π΄Π°ΠΌ ΠΈ Π³Π»Π΅Π΄Π°ΠΌ Π“Ρ€Π°Π°Π»Π’Πœ & Π’Π°Ρ€Ρ‚ΡƒΡ„. МојС Ρ€ΡƒΠ½Ρ‚ΠΈΠΌΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ΅ Π½Π΅ΠΌΠ° ЈИВ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€, Ρ‚Π°ΠΊΠΎ Π΄Π° јС Ρƒ ΠΏΠΎΠ³Π»Π΅Π΄Ρƒ пСрформанси Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½ΠΎ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎ само ΠŸΠΈΡ‚Ρ…ΠΎΠ½-Ρƒ. Надам сС Π΄Π° Ρ›Ρƒ ΠΌΠΎΡ›ΠΈ Π΄Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌ ЈИВ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ˜Ρƒ засновану Π½Π° Π“Ρ€Π°Π°Π»Π’Πœ-Ρƒ ΠΈΠ»ΠΈ Π›Π›Π’Πœ-Ρƒ.

Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ

ΠœΠΎΠΆΠ΅Ρ‚Π΅ сС ΠΈΠ³Ρ€Π°Ρ‚ΠΈ са Ρ€Π°Π·Π²ΠΎΡ˜Π΅ΠΌ ΠΈ сами ΠΏΡ€Π°Ρ‚ΠΈΡ‚ΠΈ ΠΏΡ€ΠΎΡ˜Π΅ΠΊΠ°Ρ‚.

Π‘Π°Ρ˜Ρ‚
Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ Π½Π° Π“ΠΈΡ‚Π₯ΡƒΠ±-Ρƒ

Π₯Π²Π°Π»Π° Π²Π°ΠΌ ΡˆΡ‚ΠΎ стС ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ Π΄ΠΎ ΠΊΡ€Π°Ρ˜Π° Π°ΠΊΠΎ Ρ˜Π΅ΡΡ‚Π΅.

Π˜Π·Π²ΠΎΡ€: Π²Π²Π².Ρ…Π°Π±Ρ€.Ρ†ΠΎΠΌ

Π”ΠΎΠ΄Π°Ρ˜ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€