Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ Π΅Π³ΠΎ 11 ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ…

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ программирования, ΠΌΡ‹ рассмотрим исходный ΠΊΠΎΠ΄ – Π΅Π³ΠΎ Π³Π»Π°Π²Π½Ρ‹Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ.

Π§Π°ΡΡ‚ΡŒ 2 – Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ части ΠΌΡ‹ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ Π°Π·Ρ‹ программирования, Π³Π΄Π΅ рассказали ΠΎ машинном языкС, прСобразоватСлях, языках программирования ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с CLI. ДвигаСмся дальшС.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ называСтся основной Ρ„Π°ΠΉΠ» Π²Ρ€ΠΎΠ΄Π΅ Microsoft (.doc), Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π­Ρ‚ΠΎ тСкстовый Ρ„Π°ΠΉΠ», написанный с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Windows Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚. Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ пСрСчислили, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ»ΠΈ компиляторы ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ исходный ΠΊΠΎΠ΄ Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ сохранСн Π² Ρ„Π°ΠΉΠ»Π΅, Ρ‡Ρ‚ΠΎ пСрСдаСтся для Π²Π²ΠΎΠ΄Π° Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ (ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ).

Когда Π²Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, запуститС Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ. Рассмотрим Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° запуск ΠΊΠΎΠ΄Π° Π½Π° языкС Python с использованиСм ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ python.

Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹: ваша пСрвая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

3. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π² Π½Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Анатомия Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ рассмотрим содСрТимоС Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° исходного ΠΊΠΎΠ΄Π°. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ рСгулярныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова

ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ слова, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ. Они свойствСнны ΠΈΠ·ΡƒΡ‡Π°Π΅ΠΌΠΎΠΌΡƒ Π²Π°ΠΌΠΈ языку ΠΈ ΠΎΠ½ΠΈ особСнны. Π˜Ρ… просто Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ. Π’ΠΎΡ‚ нСбольшой Π½Π°Π±ΠΎΡ€ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Python.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹

Π‘Π»ΠΎΠ²Π°, ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π½Ρ‹Π΅ Π²Π°ΠΌΠΈ. Π”Π°, Π½Π΅ ΡƒΠ΄ΠΈΠ²Π»ΡΠΉΡ‚Π΅ΡΡŒ! Π’Ρ‹, программист. Π­Ρ‚ΠΈ слова ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ. Они ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы Π²Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ программистами. Они ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Ρ‹ Π² ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹, Π±ΠΎΠ»Π΅Π΅ извСстныС ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Math. Она позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ функциям, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ (Math.sqrt), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² JavaScript.

МногиС языки программирования ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ со мноТСством Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Они ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ SDK (ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния). Π—Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ вмСстС с компилятором для дальнСйшСго создания Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, созданныС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅.

НСкоторыС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ языком Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² качСствС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся слово string Π² Java. Π’Π°ΠΊΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ вмСстС с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ словами Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π—Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π‘Π»ΠΎΠ²Π°ΠΌΠΈ. Они Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ особыми.

ВсС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ. Π’Π°ΠΊΠΆΠ΅ слова, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ смысл для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΈΡ… Π²ΠΈΠ΄ΠΈΡ‚.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π¦Π΅Π»Ρ‹Π΅ числа ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ, большими ΠΈ ΠΌΠ°Π»Ρ‹ΠΌΠΈ. ПослСдниС фактичСски зависят ΠΎΡ‚ объСма памяти, Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ для Ρ‚Π°ΠΊΠΈΡ… чисСл. Π•ΡΡ‚ΡŒ числа с дСсятичными частями, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ double ΠΈ float, Π² зависимости ΠΎΡ‚ языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚Π΅.

Π’Π°ΠΊΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ логичСскиС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… boolean, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true ΠΈΠ»ΠΈ false.

Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ Ρ‚ΠΈΠΏΡ‹ извСстны ΠΊΠ°ΠΊ элСмСнтарныС, ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Π΅. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ….

Массив (Array) – это ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ Ρ„ΠΎΡ€ΠΌΠ° слоТного Ρ‚ΠΈΠΏΠ°. Π‘Ρ‚Ρ€ΠΎΠΊΠ° (String) – это массив символов. ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· этих Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΈΡ… ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π°.

ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ символов – это строка. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ аналогию, строка для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ слово ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ. Π‘Π»ΠΎΠ²ΠΎ Β«Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Β» состоит ΠΈΠ· 9 символов – ΠΌΡ‹ просто Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ это строкой символов. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° строк – это ΠΎΠ±ΡˆΠΈΡ€Π½Π°Ρ Ρ‚Π΅ΠΌΠ°, которая Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ программистом.

Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ языков программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ. Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ систСмы классов. Π­Ρ‚ΠΎ явлСниС Ρ‚Π°ΠΊΠΆΠ΅ извСстно ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ООП).

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ – это просто ΠΈΠΌΠ΅Π½Π° областСй памяти. Иногда Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² исходном ΠΊΠΎΠ΄Π΅ Π² мСстС, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это мСсто памяти, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠ΅Ρ‚ компилятор/ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€. Нам Π½ΡƒΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ имя этим ячСйкам памяти, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΡ… Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ. Рассмотрим Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° Python Π½ΠΈΠΆΠ΅:

pet_name – ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, хранящихся Π² pet_name, являСтся строкой, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ строковой. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ числовыС. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ….

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ – это значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° протяТСнии всСго ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π§Π°Ρ‰Π΅ всСго Π² ΠΈΡ… ΠΈΠΌΠ΅Π½Π°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π·Π°Π³Π»Π°Π²Π½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹. НСкоторыС языки ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ созданиС постоянных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ – Π½Π΅Ρ‚.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки программирования, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… каТдая пСрСмСнная Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π’Ρ‹Π±Ρ€Π°Π² Ρ‚ΠΈΠΏ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π²Ρ‹ большС Π½Π΅ смоТСтС Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Java – Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ЯП.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΆΠ΅ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Они ΡΠ²Π»ΡΡŽΡ‚ΡΡ свободно Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ динамичСскими языками программирования. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – Python.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ постоянноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² JavaScript:

Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ исходном ΠΊΠΎΠ΄Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠ²ΡΡŽΠ΄Ρƒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΈΡ… ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ. Π­Ρ‚ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ слСдуСт ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ константами. Ни ΠΎΠ΄ΠΈΠ½ исходный ΠΊΠΎΠ΄ Π½Π΅ обходится Π±Π΅Π· Π½ΠΈΡ…. Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ строками, числами, дСсятичными Π·Π½Π°ΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ слово Β«HippoΒ» являСтся строковым Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ. Π­Ρ‚ΠΎ всСгда Π±ΡƒΠ΄Π΅Ρ‚ Β«HippoΒ», ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ исходный ΠΊΠΎΠ΄. Когда Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊΠΎΠ΄ΠΈΡ‚ΡŒ, ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°.

ΠŸΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΡ/Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ написанных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ прСпинания Π² зависимости ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ языка программирования. НапримСр, Π² Java ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ большС Π·Π½Π°ΠΊΠΎΠ² прСпинания, Ρ‡Π΅ΠΌ Π² Python.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя Π·Π°ΠΏΡΡ‚ΡƒΡŽ (,), Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой (;), Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ (:), Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки (<>), ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки (()), ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ([]), ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ («» ΠΈΠ»ΠΈ »), Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ (|), слэш (\), Ρ‚ΠΎΡ‡ΠΊΡƒ (.), Π·Π½Π°ΠΊ вопроса (?), ΠΊΠ°Ρ€Π΅Ρ‚ (^) ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ (%).

Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠΈΡ€ программирования, Π³Π΄Π΅ Π·Π½Π°ΠΊΠΈ прСпинания – ваши Π»ΡƒΡ‡ΡˆΠΈΠ΅ Π΄Ρ€ΡƒΠ·ΡŒΡ. Π‘ΠΊΠΎΡ€ΠΎ Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ΄Π΅ ΠΈΡ… всСгда ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

Шансы, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ для выполнСния ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΡ€Π°ΠΉΠ½Π΅ высоки. Π›ΡŽΠ±Ρ‹Π΅ языки программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя мноТСство ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π‘Ρ€Π΅Π΄ΠΈ примСняСмых Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ слоТСниС (+), Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (/) ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ (*), Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ () ΠΈ Π·Π½Π°ΠΊ большС (>).

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ДокумСнтация Π±ΡƒΠ΄Π΅Ρ‚ Π²Π°ΠΆΠ½Ρ‹ΠΌ аспСктом Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² сфСрС программирования. Π­Ρ‚ΠΎ Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚Π΅ свой ΠΊΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌ программистам. ПодобноС дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ частям ΠΊΠΎΠ΄Π°. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΡ… программистов Ρ‡Π΅Ρ€Π΅Π· Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ строки ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ коммСнтариями.

ОбъявлСниС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Ρ€Π°Π·Π½ΠΎΠ΅ для Ρ€Π°Π·Π½Ρ‹Ρ… языков. НапримСр, # ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² языкС Python.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ коммСнтария Π² Python:

ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, созданныС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅. Они ставятся ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΈΠ»ΠΈ клавиши табуляции Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅.

ДвигаСмся дальшС

Π’Ρ‹ познакомились с исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ Π΅Π³ΠΎ содСрТимоС. Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ ряду ΠΏΡ€ΠΈΡ‡ΠΈΠ½. Π­Ρ‚ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ связаны с ошибками. ДСйствиС поиска ΠΈ удалСния ошибок называСтся ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ ΠΈ являСтся Π½Π°Π²Ρ‹ΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ. Ошибки ΠΌΡ‹ рассмотрим Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части.

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроили Python Π² своСй ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ систСмС, ΠΈ запуститС свою ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

Π’ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Π°

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ, Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π° Java:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹: Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΅Π³ΠΎ Π·Π°ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ?

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ β€” это Ρ‚ΠΎΡ‚ самый ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΈΡˆΠ΅Ρ‚ программист, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ³Ρ€Π° Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»Π°. Он ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ написан Π½Π° любом ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ программисту языкС программирования.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹

Иногда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ β€” ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ исходники ΠΈΠ³Ρ€Ρ‹ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ, ΠΊΡ‚ΠΎ смыслит Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, смог внСсти свою Π»Π΅ΠΏΡ‚Ρƒ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹. ΠŸΡ€ΠΈ этом авторскоС ΠΏΡ€Π°Π²ΠΎ сохраняСтся Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ³Ρ€Ρ‹ ΠΈ рСгулируСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ лицСнзиями ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ.

Но Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ³Ρ€ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ. Когда программист ΠΏΠΈΡˆΠ΅Ρ‚ ΠΈΠ³Ρ€Ρƒ, ΠΎΠ½ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ исходный ΠΊΠΎΠ΄ ΠΎΡ‚ посторонних Π³Π»Π°Π· ΠΈ Π·Π°Ρ‚Π΅ΠΌ распространяСт ΠΈΠ³Ρ€Ρƒ Π² Π²ΠΈΠ΄Π΅ скомпилированного Ρ„Π°ΠΉΠ»Π°. Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Ρ‚Π°ΠΊ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ ΠΈΠ· ассСмблСрных ΠΊΠΎΠΌΠ°Π½Π΄.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π²Π΅Ρ‰ΡŒ : Π² основном ΠΈΠ³Ρ€Ρ‹ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языках. А это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ процСсс компиляции, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠ³ Β«ΠΏΠΎΠ½ΡΡ‚ΡŒΒ» ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. А компиляция β€” это односторонний процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всСгда происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” это всСго лишь ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹: для Ρ‡Π΅Π³ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ для Ρ‡Π΅Π³ΠΎ Π΅Π³ΠΎ хочСтся Π·Π°ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ

Для Ρ‡Π΅Π³ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ исходный ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹? На самом Π΄Π΅Π»Π΅, ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ вопрос β€” это Ρ‚Π΅ΠΌΠ° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ достоинств Π° ΠΈ нСдостатки Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ распространСния ΠΈΠ³Ρ€ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ:

с Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ;

с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.

Π‘ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ΅ Π½Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚. Однако качСствСнная рСвСрсная инТСнСрия Π΄Π°Π΅Ρ‚ свои ΠΏΠ»ΠΎΠ΄Ρ‹. Она позволяСт Β«ΡƒΠ»ΠΎΠ²ΠΈΡ‚ΡŒΒ» основныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈΠ³Ρ€Ρ‹, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Π±Π΅Π· исходного ΠΊΠΎΠ΄Π° ΠΈ воссозда Π²Π°Ρ‚ΡŒ Π΅Π΅ Π½Π° любом языкС программирования. Однако Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Π΄Ρ€Π΅ΠΌΠ»ΡŽΡ‚ ΠΈ прСкрасно Π·Π½Π°ΡŽΡ‚ ΠΎΠ± ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, поэтому ΠΎΠ½ΠΈ максимально Β«Π·Π°ΠΏΡƒΡ‚Ρ‹Π²Π°ΡŽΡ‚ слСды», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, свой ΠΈ сходный ΠΊΠΎΠ΄ ΠΎΠ½ΠΈ проводят Ρ‡Π΅Ρ€Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΎΠ±Ρ„Ρƒ ск Π°Ρ†ΠΈΠΈ. ΠžΠ±Ρ„Ρƒ ск ация β€” это процСсс запутывания ΠΊΠΎΠ΄ Π° Ρ‚ Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ исходный ΠΊΠΎΠ΄ Π½Π΅ всСгда Π±ΡƒΠ΄Π΅Ρ‚ ясСн, Ссли Π΅Π³ΠΎ Π²Π΄Ρ€ΡƒΠ³ ΡƒΠΊΡ€Π°Π΄ΡƒΡ‚. Но обфусицированный ΠΊΠΎΠ΄ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΅Ρ‰Π΅ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ β€” это Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ услоТняСт Ρ€Π΅Π²Π΅Ρ€ΡΠ½ΡƒΡŽ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈ ю ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ восстановлСниС Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π° практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ.

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ исходный ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡ‡Π΅Π½ΡŒ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½Ρ‹

Ссли ΠΏΠΎΠ΄ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ²ΡˆΠ΅ΠΌΡΡ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠΌ Π’Ρ‹ Π½Π°ΠΆΠΌΡ‘Ρ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтСй ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ докумСнтация, Π΄Π° ΠΈ сам ΠΏΠΎ сСбС исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для понимания ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΅Π΅ частСй, Π½ΠΎ ΠΈ для обучСния Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… программистов, изучСния примСняСмых Ρ‚Π΅Ρ…Π½ΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. БовмСстноС использованиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° позволяСт ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ программистов.

Π’ случаС примСнСния Ρ‚Π°ΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π΄Π° ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅, исходного ΠΊΠΎΠ΄Π° самого ΠΏΠΎ сСбС, Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ являСтся ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° этих ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ….

ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² (дСсятки, тысячи Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΊΠΎΠ΄ΠΎΠΌ), Π° Ρ‚Π°ΠΊΠΆΠ΅ написаны Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках программирования. НапримСр, Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС программирования Π‘ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ части ΠΊΠΎΠ΄Π° Π½Π° языкС ассСмблСра.

Для удобства ΠΈ облСгчСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с исходным ΠΊΠΎΠ΄ΠΎΠΌ сущСствуСт мноТСство инструмСнтов, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ написаниС ΠΊΠΎΠ΄Π°, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π½Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΈ понимания Β«Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°Β» ΠΈΠ»ΠΈ Β«ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°Β». ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρƒ ΠΆΠ΅, для понимания Ρ‡Ρ‚ΠΎ происходит Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, написанной Π΄Ρ€ΡƒΠ³ΠΈΠΌ программистом, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ написания Π½ΠΎΠ²Ρ‹Ρ… частСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, качСство исходного ΠΊΠΎΠ΄Π° являСтся ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠΉ Π²Π΅Ρ‰ΡŒΡŽ. Π’Π΅Π΄ΡŒ Ссли ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π΅Π½ для понимания, Π΅Π³ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π° Ссли Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π½Π° это ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сущСствСнно услоТнит Тизнь программиста. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ качСство ΠΊΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ трСбованиям:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊ

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π˜ΡΡ…ΠΎΜΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (Ρ‚Π°ΠΊΠΆΠ΅ исхо́дный тСкст) β€” тСкст ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ языкС программирования. Π’ ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΠΎΠΌ смыслС β€” Π»ΡŽΠ±Ρ‹Π΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для транслятора.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π»ΠΈΠ±ΠΎ транслируСтся Π² исполняСмый ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ компилятора, Π»ΠΈΠ±ΠΎ исполняСтся нСпосрСдствСнно ΠΏΠΎ тСксту ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

НазначСниС

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π»ΠΈΠ±ΠΎ выполняСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ. ИзмСнСния Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π°Π΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π΄ исходным, с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ.

Π”Ρ€ΡƒΠ³ΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ исходного ΠΊΠΎΠ΄Π° β€” Π² качСствС описания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. По тСксту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π΅Ρ‘ повСдСния. Для облСгчСния понимания исходного ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ срСдства, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ автоматичСски ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ исходному ΠΊΠΎΠ΄Ρƒ β€” Ρ‚. Π½. Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, исходный ΠΊΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ инструмСнт обучСния; Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ программистам Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ исходный ΠΊΠΎΠ΄ для изучСния Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ инструмСнт общСния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌΠΈ программистами, благодаря своСй (идСально) Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΠΉ ΠΈ нСдвусмыслСнной ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅. БовмСстноС использованиС ΠΊΠΎΠ΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ часто упоминаСтся ΠΊΠ°ΠΊ Ρ„Π°ΠΊΡ‚ΠΎΡ€, ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ ΠΎΠΏΡ‹Ρ‚Π° программистов.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ часто пСрСносят исходный ΠΊΠΎΠ΄ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Ρ‡Ρ‚ΠΎ носит Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π° (Software reusability).

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ β€” ваТнСйший ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ для процСсса портирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π‘Π΅Π· исходного ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ части ПО, ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΈΠ±ΠΎ слишком слоТно, Π»ΠΈΠ±ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ части ПО (модуля, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°) ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ². Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ языкС программирования. НапримСр, часто ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° языкС Π‘ΠΈ, с Ρ†Π΅Π»ΡŒΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, содСрТат вставки ΠΊΠΎΠ΄Π° Π½Π° языкС ассСмблСра. Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ситуации, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ»ΠΈ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках, с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ сборкой Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ исполняСмый ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ извСстной ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (library linking).

Π‘Π»ΠΎΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΏΡ€ΠΈ сборкС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования дСсятков, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ сотСн Ρ„Π°ΠΉΠ»ΠΎΠ² с исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях для упрощСния сборки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², содСрТащиС описаниС зависимостСй ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ с исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ процСсс сборки. Π­Ρ‚ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ компилятора ΠΈ срСды проСктирования. Для Ρ€Π°Π·Π½Ρ‹Ρ… срСд проСктирования ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… срСдах эти Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π² тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΠΌ для нСпосрСдствСнного рСдактирования программистом с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… срСдах ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, Π° созданиС ΠΈ измСнСния Ρ„Π°ΠΉΠ»ΠΎΠ² производится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² понятиС «исходный ΠΊΠΎΠ΄Β». Π’ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ соврСмСнных языковых срСд ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π²Π½Π΅ зависимости ΠΎΡ‚ слоТности ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ исходного ΠΊΠΎΠ΄Π°, входящСго Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Часто ΠΏΠΎΠ΄ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ рСсурсов, содСрТащиС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, графичСскиС изобраТСния, Π½ΡƒΠΆΠ½Ρ‹Π΅ для сборки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Для облСгчСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с исходным ΠΊΠΎΠ΄ΠΎΠΌ, для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ программистов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ систСмы управлСния вСрсиями.

ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π΅Ρ‚ Β«Ρ…ΠΎΡ€ΠΎΡˆΠΎ написанного» ΠΈΠ»ΠΈ Β«ΠΏΠ»ΠΎΡ…ΠΎ написанного» ΠΊΠΎΠ΄Π°. Но Ρ‚ΠΎ, ΠΊΠ°ΠΊ написан ΠΊΠΎΠ΄, ΠΌΠΎΠΆΠ΅Ρ‚ сильно Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° процСсс сопровоТдСния ПО. О качСствС исходного ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ:

НСисполняСмый исходный ΠΊΠΎΠ΄

ΠšΠΎΠΏΠΈΠ»Π΅Ρ„Ρ‚Π½Ρ‹Π΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ для свободного ПО Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ распространСния исходного ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ для Ρ€Π°Π±ΠΎΡ‚, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΈΠ³Ρ€.

Π’ Ρ‚Π°ΠΊΠΈΡ… случаях исходным ΠΊΠΎΠ΄ΠΎΠΌ считаСтся Ρ„ΠΎΡ€ΠΌΠ° Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ для Π΅Ρ‘ рСдактирования. Π’ лицСнзиях, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ПО, ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ вСрсиСй Π² Β«ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅Β». Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

Π˜ΡΡ…ΠΎΜΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (Ρ‚Π°ΠΊΠΆΠ΅ исхо́дный тСкст) β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² тСкстовом Π²ΠΈΠ΄Π΅ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ языкС программирования. Π’ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠΌ смыслС β€” Π»ΡŽΠ±Ρ‹Π΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для транслятора.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π»ΠΈΠ±ΠΎ транслируСтся Π² исполняСмый ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ компилятора, Π»ΠΈΠ±ΠΎ исполняСтся нСпосрСдствСнно ΠΏΠΎ тСксту ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°.

НазначСниС

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π»ΠΈΠ±ΠΎ выполняСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ. ИзмСнСния Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π°Π΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π΄ исходным, с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ.

Π”Ρ€ΡƒΠ³ΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ исходного ΠΊΠΎΠ΄Π° β€” Π² качСствС описания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. По тСксту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π΅Ρ‘ повСдСния. Для облСгчСния понимания исходного ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ срСдства, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ автоматичСски ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ исходному ΠΊΠΎΠ΄Ρƒ β€” Ρ‚. Π½. Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, исходный ΠΊΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ инструмСнт обучСния; Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ программистам Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ исходный ΠΊΠΎΠ΄ для изучСния Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ инструмСнт общСния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌΠΈ программистами, благодаря своСй (идСально) Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΠΉ ΠΈ нСдвусмыслСнной ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅. БовмСстноС использованиС ΠΊΠΎΠ΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ часто упоминаСтся ΠΊΠ°ΠΊ Ρ„Π°ΠΊΡ‚ΠΎΡ€, ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ ΠΎΠΏΡ‹Ρ‚Π° программистов.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ часто пСрСносят исходный ΠΊΠΎΠ΄ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Ρ‡Ρ‚ΠΎ носит Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π° (Software reusability).

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ β€” ваТнСйший ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ для процСсса портирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π‘Π΅Π· исходного ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ части ПО, ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΈΠ±ΠΎ слишком слоТно, Π»ΠΈΠ±ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ части ПО (модуля, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°) ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ². Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ языкС программирования. НапримСр, часто ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° языкС Π‘ΠΈ, с Ρ†Π΅Π»ΡŒΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, содСрТат вставки ΠΊΠΎΠ΄Π° Π½Π° языкС ассСмблСра. Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ситуации, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ»ΠΈ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках, с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ сборкой Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ исполняСмый ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ извСстной ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (library linking).

Π‘Π»ΠΎΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΏΡ€ΠΈ сборкС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования дСсятков, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ сотСн Ρ„Π°ΠΉΠ»ΠΎΠ² с исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях для упрощСния сборки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², содСрТащиС описаниС зависимостСй ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ с исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ процСсс сборки. Π­Ρ‚ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ компилятора ΠΈ срСды проСктирования. Для Ρ€Π°Π·Π½Ρ‹Ρ… срСд проСктирования ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… срСдах эти Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π² тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌ для нСпосрСдствСнного рСдактирования программистом с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… срСдах ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, Π° созданиС ΠΈ измСнСния Ρ„Π°ΠΉΠ»ΠΎΠ² производится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² понятиС «исходный ΠΊΠΎΠ΄Β». Π’ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ соврСмСнных языковых срСд ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π²Π½Π΅ зависимости ΠΎΡ‚ слоТности ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ исходного ΠΊΠΎΠ΄Π°, входящСго Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Часто ΠΏΠΎΠ΄ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ рСсурсов, содСрТащиС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, графичСскиС изобраТСния, Π½ΡƒΠΆΠ½Ρ‹Π΅ для сборки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Для облСгчСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с исходным ΠΊΠΎΠ΄ΠΎΠΌ, для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ программистов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ систСмы управлСния вСрсиями.

ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π΅Ρ‚ Β«Ρ…ΠΎΡ€ΠΎΡˆΠΎ написанного» ΠΈΠ»ΠΈ Β«ΠΏΠ»ΠΎΡ…ΠΎ написанного» ΠΊΠΎΠ΄Π°. Но Ρ‚ΠΎ ΠΊΠ°ΠΊ написан ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ сильно Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° процСсс сопровоТдСния ПО. О качСствС исходного ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π² контСкстС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

НСисполняСмый исходный ΠΊΠΎΠ΄

ΠšΠΎΠΏΠΈΠ»Π΅Ρ„Ρ‚Π½Ρ‹Π΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ для свободного ПО Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ распространСния исходного ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ для Ρ€Π°Π±ΠΎΡ‚, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΈΠ³Ρ€.

Π’ Ρ‚Π°ΠΊΠΈΡ… случаях исходным ΠΊΠΎΠ΄ΠΎΠΌ считаСтся Ρ„ΠΎΡ€ΠΌΠ° Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ для Π΅Ρ‘ рСдактирования. Π’ лицСнзиях, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ПО, ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ вСрсиСй Π² Β«ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅Β». Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ†, сам Ρ„Π°ΠΉΠ», Ссли ΠΎΠ½ удовлСтворяСт ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ условиям, Π»ΠΈΠ±ΠΎ Ссли Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ вСрсии просто Π½Π΅ сущСствовало.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *