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

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

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

Π’ Π³Π»Π°Π²Π΅ 8 ΠΎΠΏΠΈΡΡ‹Π²Π°Π»ΠΎΡΡŒ использованиС спСциализированных ΠΌΠΈΠ½ΠΈ-языков. Π’ Π³Π»Π°Π²Π΅ 14 прСдставлСны Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ языков ΠΎΡ‡Π΅Π½ΡŒ высокого уровня. Π’ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ рассматриваСтся нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² конструкции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, управляСмых Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ряд ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ особого ΠΊΠΎΠ΄Π°. НСкоторыС срСдства Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° описаны Π² Π³Π»Π°Π²Π΅ 15. Как ΠΈ ΠΌΠΈΠ½ΠΈ-языки, Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ количСство строк ΠΊΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΈ соотвСтствСнно ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ врСмя ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° сопровоТдСниС.

9.1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, управляСмых Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

ΠŸΡ€ΠΈ создании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, управляСмых Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (data-driven programming), ΠΊΠΎΠ΄ ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ воздСйствуСт, Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΡ‚Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡƒΡ‚Π΅ΠΌ рСдактирования Π½Π΅ ΠΊΠΎΠ΄Π°, Π° структуры Π΄Π°Π½Π½Ρ‹Ρ….

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

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

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

На Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ ΡˆΠΊΠ°Π»Ρ‹ слоТности созданиС управляСмых Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ сливаСтся с написаниСм ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² для p-ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ простых ΠΌΠΈΠ½ΠΈ-языков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»ΠΈΡΡŒ Π² Π³Π»Π°Π²Π΅ 8. На Π΄Ρ€ΡƒΠ³ΠΈΡ… Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ… ΠΎΠ½ΠΎ сливаСтся с Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΎΠ². Различия фактичСски Π½Π΅ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½Ρ‹. Π’Π°ΠΆΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ являСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· ТСстко Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… структур Π² Π΄Π°Π½Π½Ρ‹Π΅.

9.1.1. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ascii

Автор этой ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая называСтся ascii ΠΈ прСдставляСт собой ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΊΠ°ΠΊ названия ASCII-символов (ASCII, American Standard Code for Information Interchange β€” АмСриканский стандартный ΠΊΠΎΠ΄ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ) ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ всС эквивалСнтныС названия. Код ΠΈ докумСнтация Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ доступны Π½Π° сайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° <http://www.catb.org/~esr/ascii>. НиТС приводится ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ копия экрана.

[email protected]:~/WWW/writings/taoup$ ascii 10

ASCII 1/0 is decimal 016, hex 10, octal 020, bits 00010000: called ^P, DLE

Official name: Data Link Escape


ASCII 0/10 is decimal 010, hex 0a, octal 012, bits 00001010: called LF, NL

Official name: Line Feed

C escape: '\n'

Other names: Newline


ASCII 0/8 is decimal 008, hex 08, octal 010, bits 00001000: called ^H, BS

Official name: Backspace

C escape: '\b'

Other names:


ASCII 0/2 is decimal 002, hex 02, octal 002, bits 00000010: called ^B, STX

Official name: Start of Text

О Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² основу Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ идСя, ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ способом β€” ΠΊΠ°ΠΊ быстроС Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ CLI-срСдство для прСобразования дСсятичных, ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ…, Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ прСдставлСния Π±Π°ΠΉΡ‚ΠΎΠ².

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

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

Подобная организация ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Π½Π°Π·Π²Π°Π½ΠΈΠΉ символов, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ старых Π½Π°Π·Π²Π°Π½ΠΈΠΉ просто ΠΏΡƒΡ‚Π΅ΠΌ рСдактирования Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π½Π΅ затрагивая ΠΊΠΎΠ΄Π°.

Бпособ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Unix-стилСм, Π½ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΅Π΅ Π²Ρ‹Π²ΠΎΠ΄Π° ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ. Π’Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ практичСски ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π² качСствС Π²Π²ΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, поэтому ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° слабо приспособлСна ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ.

9.1.2. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: статистичСская Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ спама

Одним интСрСсным случаСм управляСмых Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ статистичСскиС ΡΠ°ΠΌΠΎΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ для обнаруТСния спама (Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ массы элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹). Π¦Π΅Π»Ρ‹ΠΉ класс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΡ‡Ρ‚Ρ‹ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Web, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, popfile, spambayes ΠΈ bogofilter) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… взаимосвязи слов ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½Ρƒ для слоТной условной Π»ΠΎΠ³ΠΈΠΊΠΈ спам-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Π½Π° основС сличСния с ΠΎΠ±Ρ€Π°Π·Ρ†Π°ΠΌΠΈ.

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ стали ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнными Π² Internet ΠΎΡ‡Π΅Π½ΡŒ быстро послС Π²Ρ‹Ρ…ΠΎΠ΄Π° Π² 2002 Π³ΠΎΠ΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ Пола ГрэхСма (Paul Graham) "A Plan for Spam" [31]. Пока наблюдался Π±ΡƒΡ€Π½Ρ‹ΠΉ рост, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹ΠΉ растущими Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ Π½Π° Π³ΠΎΠ½ΠΊΡƒ Π²ΠΎΠΎΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… сличСния с ΠΎΠ±Ρ€Π°Π·Ρ†Π°ΠΌΠΈ, идСя статистичСской Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π±Ρ‹Π»Π° Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΈ быстрСС принята Π² срСдС Unix. ΠžΡ‚Ρ‡Π°ΡΡ‚ΠΈ это, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π±Ρ‹Π»ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ всС Internet-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС всСх Π±Ρ‹Π»ΠΈ ΠΎΠ·Π°Π±ΠΎΡ‡Π΅Π½Ρ‹ спамом ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠΌΠ΅Π»ΠΈ наибольший стимул ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ эффСктивныС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ) ΡΠ²Π»ΡΡŽΡ‚ΡΡ Unix-прСдприятиями. Π­Ρ‚ΠΎΠΌΡƒ, нСсомнСнно, Ρ‚Π°ΠΊΠΆΠ΅ способствовало согласиС с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ идСями Π² конструировании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для Unix.

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ спам-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ систСмный администратор (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ отвСтствСнноС Π»ΠΈΡ†ΠΎ) ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π» ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΠ±Ρ€Π°Π·Ρ†Π°Ρ… тСкста, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π² спамС, β€” ΠΈΠΌΠ΅Π½Π° ΡƒΠ·Π»ΠΎΠ², Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ спама, Ρ„Ρ€Π°Π·Ρ‹-ΠΏΡ€ΠΈΠΌΠ°Π½ΠΊΠΈ, часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ порнографичСскими сайтами ΠΈΠ»ΠΈ Internet-мошСнниками, ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ свСдСния. Π’ своСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ ГрэхСм Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΠΎΠ΄ΠΌΠ΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ программистам нравится идСя Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·Ρ†Π°ΠΌ, ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½Π΅ способны "Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π·Π° Ρ€Π°ΠΌΠΊΠΈ" Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈΠΌ Ρ‚Π°ΠΊΠΈΠ΅ возмоТности ΠΏΡ€ΠΎΡΠ²ΠΈΡ‚ΡŒ свою ΡΠΎΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, статистичСскиС спам-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, накапливая ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ спамом, Π° Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚. Π”Π°Π½Π½Ρ‹Π΅ свСдСния вносятся Π² Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… статистичСских коррСляционных коэффициСнтов ΠΈΠ»ΠΈ вСсов, ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… слова ΠΈΠ»ΠΈ Ρ„Ρ€Π°Π·Ρ‹ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ классификациСй спам/нСспам. Π’ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ частныС случаи Ρ‚Π΅ΠΎΡ€Π΅ΠΌΡ‹ БайСса ΠΎΠ± условных вСроятностях, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ полиномиального Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ).

Π’ΠΎ всСх Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… коррСляционная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° прСдставляСт собой ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ. ВСсовыС коэффициСнты, подставлСнныС Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ, наряду с провСряСмым сообщСниСм слуТат Π² качСствС нСявной ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ структуры для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

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