Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«The Programmers Stone (ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ΡΠΊΠΈΠΉ камСнь)Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 21

Автор Alan Carter

Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ совмСщСнноС с ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ пошаговой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ своС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ маловСроятно, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π΄Π΅Π³Ρ€Π°Π΄ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄ΠΎ ΠΌΠ°Ρ€Π°Π·ΠΌΠ° Ρ€Π΅Π»ΠΈΠ³ΠΈΠΎΠ·Π½Ρ‹Ρ… Π²ΠΎΠΉΠ½ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ стиля ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сСйчас тратят своС врСмя ΠΌΠ½ΠΎΠ³ΠΈΠ΅ высокооплачиваСмыС программисты.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ кодирования ΠΈ руководства ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ

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

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

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ стандарты кодирования ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ частично ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡŽ картостроитСлСй, частично ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡŽ ΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠΎΠ², ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ†Π΅Π»ΠΈ создатСлСй стандартов ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ. ΠŸΡ€ΠΎΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π±Π°Ρ€ΡŒΠ΅Ρ€ ΠΌΠ΅ΠΆΠ΄Ρƒ картостроитСлями ΠΈ ΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠ°ΠΌΠΈ, поэтому картостроитСли Ρ€Π²ΡƒΡ‚ Π½Π° сСбС волосы, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠΈ Ρ€Π°ΡΡ‚ΠΈΡ€Π°ΡŽΡ‚ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ станСт Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ страницС, цитируя ΠŸΠ°ΠΊΠ΅Ρ‚ Π—Π½Π°Π½ΠΈΠΉ 47684 (Π―ΡΠ½ΠΎΡΡ‚ΡŒ Π­Ρ‚ΠΎ Π₯ΠΎΡ€ΠΎΡˆΠΎ) ΠΈ Π² Ρ‚ΠΎ ΠΆΠ΅ самоС врСмя вытирая ΡΡΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ· Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Если ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ картостроСниС ΠΈ TQM β€” основы Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ программирования, ΠΈ Ρ‡Ρ‚ΠΎ ΡΡƒΡ‚ΡŒ картостроСния ΠΈ TQM β€” ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ (ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ), ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ†Π΅Π»ΠΈ ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ стандартов кодирования ΠΈ руководств ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎ ясности. Π•ΡΡ‚ΡŒ идСя, Ρ‡Ρ‚ΠΎ использованиС синтаксичСского богатства языка β€” это ΠŸΠ»ΠΎΡ…Π°Ρ Π’Π΅Ρ‰ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это «слоТно». Ни ΠΊΠΎΠ³Π΄Π° составной синтаксис ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΈΠ΄ΠΈΠΎΠΌΡƒ. Ни Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° эта ΠΈΠ΄ΠΈΠΎΠΌΠ° вводится ΠΈ обсуТдаСтся Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. И Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π½ΡƒΠΆΠ½Π° Π½ΠΈ ΠΏΡ€ΠΈ ΠΊΠ°ΠΊΠΈΡ… условиях. Когда ΠΡŒΡŽΡ‚ΠΎΠ½ писал Β«ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹Β» (Newton's Principia), Ρ‚ΠΎ написал ΠΈΡ… словами, хотя ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ алгСбраичСскиС символы, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Ρ‹Π» сооткрыватСлСм Ρ„Π»ΡŽΠΊΡΠΈΠΉ, ΠΈΠ»ΠΈ исчислСний. Π’ нашС врСмя ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с алгСбраичСской Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ описании. БСйчас Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ Π±Ρ‹ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… страниц тСкста, Π² алгСбраичСской Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π·Π°ΠΉΠΌΠ΅Ρ‚ всСго страницу, ΠΈ хотя ΠΏΡ€ΠΈ этом ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ чтСния страницы сниТаСтся, ΠΎΠ±Ρ‰Π΅Π΅ врСмя чтСния стопки тСкста большС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² стопкС тСкста Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ ΠΏΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΠΌΡ‹ΡΠ»ΡŒ. Π˜Ρ‚Π°ΠΊ, слСдуСт Π»ΠΈ нашим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌΠΈ Π½Π° ΠΏΡ€ΠΎΠ·Ρƒ ΠΏΠΎ ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ†ΠΈΠΈ слоТности Π½Π° страницу ΠΈΠ»ΠΈ Π½Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ ΠΈΠΌ слСдуСт Π±Ρ‹Ρ‚ΡŒ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅? ΠœΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ссли Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ β€” Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² языкС, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, Ссли ΠΎΠ½ смоТСт ΠΎΡ‚Ρ‡Π΅Ρ‚Π»ΠΈΠ²ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всю структуру ΠΈ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ страницу нСсколько ΠΌΠΈΠ½ΡƒΡ‚, Ρ‡Π΅ΠΌ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ΄ΠΈΠΎΡ‚ΡΠΊΡƒΡŽ строчку ΠΈ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, для Ρ‡Π΅Π³ΠΎ это написано! Как часто Π½Π°ΠΌ приходится Π²ΠΈΠ΄Π΅Ρ‚ΡŒ напряТСнных людСй, сидящих ΠΏΠ΅Ρ€Π΅Π΄ стопкой ΠΊΠΎΠ΄Π°, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… понятия, с Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ, ΠΈ Π΄ΡƒΠΌΠ°ΡŽΡ‰ΠΈΡ…, Ρ‡Ρ‚ΠΎ это ΠΈΡ… Π²ΠΈΠ½Π°.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” соглашСния. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ соглашСниС, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ даст большС, Ρ‡Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚ΠΎΠΈΡ‚ΡŒ. ΠœΡ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚ΠΎ ΠΎΠ½ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΎΡ‚ знания Π΅Π΅ Ρ‚ΠΈΠΏΠ°[15]. Но это Π½Π΅ просто Π²ΠΊΠ»Π°Π΄ Π² ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΌΠΎΠ·Π³Π° соглашСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΊΠ°ΠΊ прСдполагаСтся, Β«Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅Β» программисты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π·Π½Π°Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ само ΠΏΠΎ сСбС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Π”Π΅Π»ΠΎ Π΅Ρ‰Π΅ ΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ слишком большого количСства соглашСний Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ нСкрасивым ΠΈ Π΄Π°ΠΆΠ΅ ΡƒΡ€ΠΎΠ΄Π»ΠΈΠ²Ρ‹ΠΌ. Если ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ красотС минимального ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ этого слоТнСС Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ постоянно Π½Π°Ρ‚Ρ‹ΠΊΠ°ΡΡΡŒ Π½Π° ΠΎΠ±Π²Π΅ΡˆΠ°Π½Π½Ρ‹Ρ… мусором ΡƒΡ€ΠΎΠ΄Ρ†Π΅Π² Ρ‚ΠΈΠΏΠ° gzw_upSaDaisies. Никогда Π½Π΅ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ подавляСт стрСмлСниС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Π»ΠΈΠΊΠΈΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚. Π‘Ρ‹Π»ΠΎ мСсто, Π³Π΄Π΅ Π΄ΡƒΠΌΠ°Π»ΠΈ, Ρ‡Ρ‚ΠΎ соглашСния β€” Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ Π’Π΅Ρ‰ΡŒ. НСсколько людСй Π±Ρ‹Π»ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠŸΡ€Π°Π²ΠΈΠ»Π°, ΠΈ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°Π»ΠΈ это Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Один ΠΈΠ· Π½ΠΈΡ… объявил, Ρ‡Ρ‚ΠΎ Π΄Π»ΠΈΠ½Π° ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ 31 символом. ΠžΡ‡Π΅Π½ΡŒ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ β€” ΠΌΠ½ΠΎΠ³ΠΈΠ΅ компиляторы ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Π½Π΅ Π΄Π»ΠΈΠ½Π½Π΅Π΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ. Π”Ρ€ΡƒΠ³ΠΎΠΉ объявил, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, описанныС Π² подсистСмС, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Ρ‚Ρ€Π΅Ρ…Π±ΡƒΠΊΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π°Π»ΡŒΡ„Π°-ΠΊΠΎΠ΄Π° подсистСмы. Π›ΡŽΠ±Π°Ρ пСрСмСнная, Π΄Π°ΠΆΠ΅ Ссли Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π΅ глобально. (Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΏΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.) Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π» ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Π»ΠΈΠ²ΡƒΡŽ схСму Ρ‚ΠΈΠΏΠΎΠ², ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΡƒΡŽ собствСнным составным Ρ‚ΠΈΠΏΠ°ΠΌ языка, ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π» Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± этих Ρ‚ΠΈΠΏΠ°Ρ… Π² ΠΈΠΌΠ΅Π½Π°. Π—Π°Ρ‡Π΅ΠΌ β€” ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ. Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» список сокращСний ΠΈΠΌΠ΅Π½ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΊΠΎΠ΄Π°, извСстных ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ сказал, Ρ‡Ρ‚ΠΎ это Ρ‚ΠΎΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. И Ρ‚. Π΄. Наступило настоящСС вСсСльС, ΠΊΠΎΠ³Π΄Π° оказалось, Ρ‡Ρ‚ΠΎ всС эти ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡˆΡ‚ΡƒΡ‡ΠΊΠΈ плюс ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠ° Ρ‚ΠΈΠΏΠ° Β«ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΡƒΡŽ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° запись» прСвысили 31 символ. Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΠΈ Π—Π°ΠΊΠΎΠ½ΠΎΠ² просто сказали, эта конструкция ΠΎΡ‡Π΅Π½ΡŒ слоТна ΠΈ Π΅Π΅ Π½Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, хотя это Π±Ρ‹Π»ΠΎ Π³Π»Π°Π²Π½Ρ‹ΠΌ для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΈ Ρ‚ΠΎΠΏΡ‚Π°Π»ΠΈΡΡŒ Π²ΠΎΠΊΡ€ΡƒΠ³ описывания ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ привСдСния Ρ‚ΠΈΠΏΠΎΠ² Π²ΠΎ врСмя присваивания ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π»ΠΎ Π½ΠΈ ясности Π½ΠΈ эффСктивности. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΏΡƒΠ·Ρ‹Ρ€ΡŒ Π»ΠΎΠΏΠ½ΡƒΠ» ΠΈ ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прагматичСскиС стандарты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ выглядСли ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π½Π°ΠΌ, ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ словаря ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° быстро ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ имя ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Π΅ сокращСния. Если ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΊΠ°Ρ€Ρ‚ΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒ/ΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊ, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ситуация Ρ€Π°Π·Π²ΠΈΠ²Π°Π»Π°ΡΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΠΈ Π—Π°ΠΊΠΎΠ½ΠΎΠ² Π±Ρ‹Π»ΠΈ ΠžΠ±ΡŠΡΠ²ΠΈΡ‚Π΅Π»ΡΠΌΠΈ ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠŸΡ€Π°Π²ΠΈΠ», Ρ‡Ρ‚ΠΎ Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ Π’Π΅Ρ‰ΡŒ, Π½ΠΎ Ρ†Π΅Π½Π°, цСна…

Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” ΠΎ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΈΡ€ΠΏΠΈΡ‡Π΅ΠΉ. Для Ρ†Π΅Π»Π΅ΠΉ сохранСния Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ порядка руководство ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ, содСрТащСС многослойный Π²ΠΈΠ½Π΅Π³Ρ€Π΅Ρ‚ ΠΈΠ· соглашСний ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΈΠ΄ΠΈΠΎΠΌ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ коллСкция ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… (ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊ исполнСнию) инструкций, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ программиста ΠΈΡΠΊΠ°Ρ‚ΡŒ ΡΠ»Π΅Π³Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Если Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ Π² скобки, Π° ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅ΠΉ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ваш супСрпроСкт?

Π§Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” ΠΎΠ± этих ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π°Ρ…. Π•ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ срСдства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ стоило ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ scanf() ΠΈ gets()Π² UNIX. Указания Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅ Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹. Но Π΅ΡΡ‚ΡŒ Ρ†Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… просто Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ бСзопасно Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ, Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΡƒΡ‚Π΅ΠΌ. И всСгда остаСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° баланса ясности. ΠœΡ‹ рассмотрим Π΄Π²Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… станСт Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π‘ΠΈ всС ΠΆΠ΅ сущСствуСт Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΠΎΠ²ΠΎΠ΄ для использования goto β€” хотя Π²Π°ΠΌ ΠΌΠΎΠ³Π»ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΠ²ΠΎΠ΄ΠΎΠ² Π½Π΅Ρ‚.

Π’ΠΎΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, здСсь Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ способа. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ рСкурсивный ΠΎΠ±Ρ…ΠΎΠ΄ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°:

void Walk(NODE *Node) { // Do whatever we came here to do… // Shall we recurse left? if(Node->Left) Walk(Node->Left); // Shall we recurse right? if(Node->Right) Walk(Node->Right); }

По ΠΌΠ΅Ρ€Π΅ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π΄Π΅Ρ€Π΅Π²Π°, ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π΄Π΅Π»Π°Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²Ρ‹, Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ нас Π²Π»Π΅Π²ΠΎ, Π²Π»Π΅Π²ΠΎ, Π²Π»Π΅Π²ΠΎ, влСво… ΠΈ Ρ‚Π°ΠΊ Π΄ΠΎ самого Π½ΠΈΠ·Π°. Π—Π°Ρ‚Π΅ΠΌ просматриваСм ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Π²Π»Π΅Π²ΠΎ, Π²Π»Π΅Π²ΠΎ, Π²ΠΏΡ€Π°Π²ΠΎ, Π²ΠΏΡ€Π°Π²ΠΎ, влСво… ΠΈ Ρ‚. Π΄., Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ просмотрим всС Π²Π΅Ρ‚Π²ΠΈ, ΠΈ Π½Π΅ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π΅ΠΌ всС Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Ρ‹ ΠΈΠ· нашСго послСднСго Π²ΠΈΠ·ΠΈΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π²ΠΏΡ€Π°Π²ΠΎ, Π²ΠΏΡ€Π°Π²ΠΎ, Π²ΠΏΡ€Π°Π²ΠΎ, вправо….

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

void Walk(NODE *Node) { Label:// Do whatever we came here to do… // Shall we recurse left? if(Node->Left) Walk(Node->Left); // Shall we recurse right? if(Node->Right) { // Tail recursion elimination used for efficiency Node = Node->Right; goto Label; } }

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ стСк для отслСТивания Ρ‚ΠΎΠ³ΠΎ, ΠΊΡƒΠ΄Π° ΠΌΡ‹ ΠΏΠΎΠΏΠ°Π»ΠΈ слСва, Π½ΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ обошли Π»Π΅Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΏΡ€Π°Π²ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ хранСния полоТСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ устраняСм 50 % Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Ρ‹. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π½Π° Π‘ΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ассСмблСрного модуля. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, посмотритС Π½Π° ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π”Π°Ρ„Ρ„Π° (Duff's Device) Π² ΠΊΠ½ΠΈΠ³Π΅ Бтрауструпа Β«Π―Π·Ρ‹ΠΊ программирования C++Β» (Stroustrup's The C++ Programming Language).

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ касаСтся чистоты стиля β€” Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅Ρ‚ нСобходимости ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ язык ассСмблСра. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ДСйкстра посчитал goto Π²Ρ€Π΅Π΄Π½Ρ‹ΠΌ, ΠΎΠ½ ΠΈΠΌΠ΅Π» Π² Π²ΠΈΠ΄Ρƒ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ goto для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ управлСния Π² нСструктурированном ΠΊΠΎΠ΄Π΅ 60-Ρ… Π³ΠΎΠ΄ΠΎΠ². ИдСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ мСньшС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ goto ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΡΡΠ½ΠΎΡΡ‚ΡŒ. ИдСя Π½Π΅ состояла Π² ΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΎΡΡ‚ΡŒΡŽ избСгая goto любой Ρ†Π΅Π½ΠΎΠΉ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅ΠΌ, ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ соСдинСниС, Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ (logon) ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» (download). Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ, Π² любом мСстС, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² самоС Π½Π°Ρ‡Π°Π»ΠΎ. Π”ΠΎΠΌΠΎΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ структуралист ΠΌΠΎΠ³ Π±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅Ρ‡Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅: