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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для UnixΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 13

Автор Π Π΅ΠΉΠΌΠΎΠ½Π΄ Π­Ρ€ΠΈΠΊ Π‘Ρ‚ΠΈΠ²Π΅Π½

НСобходимо ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π‘ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ программисты ΠΈΠ»ΠΈ систСмныС администраторы.

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

МногиС ΠΈΠ· этих Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΉ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π³Π»Π°Π²Π°Ρ… 5 ΠΈ 10.

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

Π“Π΅Π½Ρ€ΠΈ БпСнсСр.

1.6.11.Β ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ Ρ‚ΠΈΡˆΠΈΠ½Ρ‹: Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ "ΡΠΊΠ°Π·Π°Ρ‚ΡŒ" Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ΅, Ρ‚ΠΎ Π΅ΠΉ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ слСдуСт "Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ"

Одно ΠΈΠ· ΡΡ‚Π°Ρ€Π΅ΠΉΡˆΠΈΡ… ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ постоянных ΠΏΡ€Π°Π²ΠΈΠ» проСктирования Π² Unix гласит: Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ "ΡΠΊΠ°Π·Π°Ρ‚ΡŒ" Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ интСрСсноС ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅, Ρ‚ΠΎ Π΅ΠΉ слСдуСт "ΠΌΠΎΠ»Ρ‡Π°Ρ‚ΡŒ". ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Unix-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ "нСнавязчиво", с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΡˆΡƒΠΌΠΎΠΌ ΠΈ бСспокойством. ΠœΠΎΠ»Ρ‡Π°Π½ΠΈΠ΅ β€” Π·ΠΎΠ»ΠΎΡ‚ΠΎ.

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ "ΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΠ΅ β€” Π·ΠΎΠ»ΠΎΡ‚ΠΎ" Ρ€Π°Π·Π²ΠΈΠ²Π°Π»ΠΎΡΡŒ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ опСрационная систСма Unix ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Π»Π° видСодисплСям. На ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°Ρ… Π² 1969 Π³ΠΎΠ΄Ρƒ каТдая строка излишнСго Π²Ρ‹Π²ΠΎΠ΄Π° Π²Ρ‹Π·Ρ‹Π²Π°Π»Π° ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ наши Π΄Π½ΠΈ Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ снято, ΠΎΠ΄Π½Π°ΠΊΠΎ вСскиС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ для краткости ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ.

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ Unix-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ являСтся Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ стиля. Когда Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ становится Π²Π²ΠΎΠ΄ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, идСнтификация Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ простой. ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ чСловСчСский Ρ„Π°ΠΊΡ‚ΠΎΡ€ β€” ваТная информация Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ свСдСниями ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Если вся отобраТаСмая информация являСтся Π²Π°ΠΆΠ½ΠΎΠΉ, Ρ‚ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π²Π°ΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ просто.

КСн ΠΡ€Π½ΠΎΠ»ΡŒΠ΄.

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

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ‚ΠΈΡˆΠΈΠ½Ρ‹ ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ для Π΅Π³ΠΎ соблюдСния описаны Π² ΠΊΠΎΠ½Ρ†Π΅ Π³Π»Π°Π²Ρ‹ 11.

1.6.12.Β ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ исправности: ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ, это Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ явно ΠΈ ΠΏΠΎ возмоТности быстро

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

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

Рассмотрим Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΡŽ ΠŸΠΎΡΡ‚Π΅Π»Π° (Postel)7: "Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π»ΠΈΠ±Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, ΠΈ консСрвативны ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ отправляСтС". ΠŸΠΎΡΡ‚Π΅Π» Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… сСтСвых слуТб, ΠΎΠ΄Π½Π°ΠΊΠΎ лСТащая Π² основС Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° идСя являСтся Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅ΠΉ. Π˜Π·ΡΡ‰Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π°ΡŽΡ‚ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, извлСкая ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС смысла ΠΈΠ· Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ сформированных Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Π»ΠΈΠ±ΠΎ ΡˆΡƒΠΌΠ½ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°ΡŽΡ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Ρ‡Π΅Ρ‚ΠΊΠΈΠ΅ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅.

Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ прСдостСрСТСниС.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π»ΠΈ "Π±Ρ‹Ρ‚ΡŒ Π²Π΅Π»ΠΈΠΊΠΎΠ΄ΡƒΡˆΠ½Ρ‹ΠΌΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅", ΠΈ с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ это сбивало нас с Ρ‚ΠΎΠ»ΠΊΡƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ подмноТСство спСцификаций. ИмСнно спСцификации Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ "Π²Π΅Π»ΠΈΠΊΠΎΠ΄ΡƒΡˆΠ½Ρ‹", Π° Π½Π΅ ΠΈΡ… интСрпрСтация.

Π”ΡƒΡ‚ ΠœΠ°ΠΊΠΈΠ»Ρ€ΠΎΠΉ.

ΠœΠ°ΠΊΠΈΠ»Ρ€ΠΎΠΉ ΡƒΠ±Π΅ΠΆΠ΄Π°Π΅Ρ‚ нас Π²Π΅Π»ΠΈΠΊΠΎΠ΄ΡƒΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π° Π½Π΅ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½Ρ‹Π΅ стандарты с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΡΠ΅ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ. Π˜Π½Π°Ρ‡Π΅, ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚, ΠΎΡ‡Π΅Π½ΡŒ просто всС закончится смСшСниСм Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ.

1.6.13. ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ экономии: врСмя программиста стоит Π΄ΠΎΡ€ΠΎΠ³ΠΎ; поэтому экономия Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с экономиСй машинного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

"Π’ Ρ€Π°Π½Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈ-ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° Unix" вынСсСнная Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ идСя Π±Ρ‹Π»Π° довольно Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ (ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Ρ‚ΠΎΠ³Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈ Π±Ρ‹Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΎΡ€ΠΎΠ³ΠΈΠΌΠΈ). Π’ настоящСС врСмя, ΠΊΠΎΠ³Π΄Π° каТдая Π³Ρ€ΡƒΠΏΠΏΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΉ ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ядСрных Π²Π·Ρ€Ρ‹Π²ΠΎΠ² ΠΈΠ»ΠΈ созданию Π—Πž-Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ) обСспСчСны Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΌΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌΠΈ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ слишком ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎ Π½Π΅ΠΉ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ.

Π₯отя ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, Π²ΠΈΠ΄ΠΈΠΌΠΎ, отстаСт ΠΎΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Если Π±Ρ‹ этот ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ принимался Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Ρ‹Π»ΠΈ Π±Ρ‹ написаны Π½Π° высокоуровнСвых языках Ρ‚ΠΈΠΏΠ° Perl, Tel, Python, Java, Lisp ΠΈ Π΄Π°ΠΆΠ΅ Π½Π° языках ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² β€” Ρ‚.Π΅. Π½Π° языках, ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ… Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° программиста, осущСствляя собствСнноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ([65]).

И это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ происходит Π² ΠΌΠΈΡ€Π΅ Unix, хотя Π·Π° Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, каТСтся, Π½Π΅ Π² состоянии ΠΎΡ‚ΠΎΠΉΡ‚ΠΈ ΠΎΡ‚ стратСгии старой ΡˆΠΊΠΎΠ»Ρ‹ Unix, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π‘ (ΠΈΠ»ΠΈ Π‘++). Данная стратСгия ΠΈ связанныС с Π½Π΅ΠΉ компромиссы ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ описаны Π΄Π°Π»Π΅Π΅ Π² настоящСй ΠΊΠ½ΠΈΠ³Π΅.

Π”Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ способом сохранСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ программиста являСтся "ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹" Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ большС Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°.

1.6.14.Β ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ: ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ кодирования Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ; Ссли Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

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

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

Π’ традициях Unix Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠΎΠ΄Π° интСнсивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‡Ρ€Π΅Π²Π°Ρ‚ΠΎΠΉ ошибками ΠΊΡ€ΠΎΠΏΠΎΡ‚Π»ΠΈΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠΎΠ΄Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ грамматичСскиС (parser) ΠΈ лСксичСскиС (lexer) Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹. Π‘ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ β€” Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ шакС-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ построитСли GUI-интСрфСйсов.

Π”Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π³Π»Π°Π²Π΅ 9.

1.6.15.Β ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ: создайтС ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹, Π·Π°ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

Π‘Π°ΠΌΡ‹ΠΉ основной Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ создания ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π±Ρ‹Π» Π²Ρ‹Π΄Π²ΠΈΠ½ΡƒΡ‚ ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½ΠΎΠΌ ΠΈ ΠŸΠ»ΠΎΠ΄ΠΆΠ΅Ρ€ΠΎΠΌ (Plauger): "90% Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ 100% Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ пСрспСктивной ΠΈ ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ". ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ созданиС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ слишком Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π·Π°Ρ‚Ρ€Π°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для получСния минимальной Π²Ρ‹Π³ΠΎΠ΄Ρ‹.