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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 319

Автор ΠœΡΡ‚ΡŒΡŽ НСйл

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ позволяСт Π²Π°ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡ…ΠΈΡ‚Ρ€ΠΈΡ‚ΡŒ, просто ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π² Ρ„Π°ΠΉΠ» app_mysql.c Π² Ρ„Π°ΠΉΠ» app_mysql.cpp; Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ смоТСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ исходный Ρ„Π°ΠΉΠ» Π½Π° языкС Π‘++. Π­Ρ‚ΠΎ устраняСт нСбольшоС услоТнСниС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ рСдактирования связСй ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π° языкС Π‘ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π° языкС Π‘++,

$ <b>qmake cdapp.pro -ΠΎ Makefile</b>

$ <b>make</b>

$ <b>./Π°Ρ€Ρ€</b>

Если всС Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисков!

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π»ΡƒΠ±ΠΆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ KDE/Qt, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² интСрфСйсС MySQL, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡ€ΠΎΠΆΠ΅ΠΊ Π² ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диски ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисков. Π’Π°ΠΌ понадобятся Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°, Π½ΠΎΠ²Ρ‹Π΅ элСмСнты мСню ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, придСтся Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ. Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ!

РСзюмС 

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

Π“Π»Π°Π²Π° 18

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ Linux

ОБ Linux появилась сначала Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ ядро систСмы. К соТалСнию, ядро само ΠΏΠΎ сСбС Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ; ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ Π½ΡƒΠΆΠ½Π° рСгистрация, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, компиляция Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Ρ‚.Π΄. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ систСму ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GNU Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅ срСдства. Они прСдставляли собой ΠΊΠ»ΠΎΠ½Ρ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΠΌΠ΅Π²ΡˆΠΈΡ…ΡΡ Π² UNIX ΠΈ UNIX-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСмах Ρ‚ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ систСмы Linux Π² ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ UNIX-систСмы установило ΠΏΠ΅Ρ€Π²Ρ‹Π΅ стандарты для Linux, прСдоставляя программистам Π½Π° языкС Π‘ Π·Π½Π°ΠΊΠΎΠΌΡƒΡŽ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ срСду.

Π Π°Π·Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ОБ UNIX (Π° ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Linux) вставляли собствСнныС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈ Π² состав систСмы, ΠΈ структура ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм Ρ‚ΠΎΠΆΠ΅ слСгка ΠΎΡ‚Π»ΠΈΡ‡Π°Π»Π°ΡΡŒ. ВсС это затрудняло созданиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, способных Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… систСмах. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, программист Π½Π΅ ΠΌΠΎΠ³ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности систСмы Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ мСстС.

Π‘Ρ‚Π°Π»ΠΎ ясно, Ρ‡Ρ‚ΠΎ для сохранСния подобия UNIX-систСм Π½ΡƒΠΆΠ½Π° стандартизация, ΠΈ такая Ρ€Π°Π±ΠΎΡ‚Π° сСйчас вСдСтся.

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стандарты двигались Π²ΠΏΠ΅Ρ€Π΅Π΄, Π½ΠΎ ΠΈ ОБ Linux с Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰Π΅ΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π»Π°ΡΡŒ сообщСством, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½Π½Ρ‹ΠΌ коммСрчСскими организациями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Red Hat ΠΈ Canonical, ΠΈ Π΄Π°ΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Π½Π΅-Linux, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠ΅ΠΉ IBM. По ΠΌΠ΅Ρ€Π΅ развития Linux наряду с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ компиляторов gcc Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ слСдила Π·Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ стандартами, Π½ΠΎ ΠΈ опрСдСляла Π½ΠΎΠ²Ρ‹Π΅ стандарты, Ссли ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ нСэффСктивными. Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ОБ Linux ΠΈ связанныС с нСю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ срСдства ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ всС Π±ΠΎΠ»Π΅Π΅ популярными, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ UNIX-систСм Π½Π°Ρ‡Π°Π»ΠΈ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² свои ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ совмСстимыми с ОБ Linux.

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

Π’ особСнности ΠΌΡ‹ коснСмся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Π΅ΠΌ:

░ стандарт языка программирования Π‘;

░ стандарты UNIX, Π² особСнности POSIX, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ IEEE, ΠΈ стандарт Single UNIX Specification, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Open Group;

β–‘Β Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Free Standards Group, Π² особСнности Linux Standard Base, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΌΠ°ΠΊΠ΅Ρ‚ стандартной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Linux.

Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ для знакомства со стандартами, относящимися ΠΊ ОБ Linux, слуТит стандарт Linux Standard Base (LSB), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° Web- сайтС Linux Foundation ΠΏΠΎ адрСсу http://www.linux-foundation.org/.

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

Π―Π·Ρ‹ΠΊ программирования Π‘

Π―Π·Ρ‹ΠΊ программирования Π‘ β€” de facto язык программирования ОБ Linux, поэтому, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π‘ для Linux, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Π΅Π³ΠΎ истоках, ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ мСнялся язык, ΠΈ, Ρ‡Ρ‚ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° соотвСтствиС стандартам.

ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠΊ истории

Π’Π΅ΠΌ, ΠΊΡ‚ΠΎ Π½Π΅ слишком Π»ΡŽΠ±ΠΈΡ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, Π½Π΅ стоит Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ: эта ΠΊΠ½ΠΈΠ³Π° ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π° Π½Π΅ ΠΎΠ± истории, поэтому ΠΎΠ±Π·ΠΎΡ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ.

Π―Π·Ρ‹ΠΊ программирования Π‘ появился Π² Π½Π°Ρ‡Π°Π»Π΅ 1970-Ρ… Π³ΠΎΠ΄ΠΎΠ² ΠΈ Π±Ρ‹Π» основан отчасти Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½Π΅ΠΌ языкС программирования BCPL ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΡ… для языка Π’. ДСннис Π ΠΈΡ‚Ρ‡ΠΈ (Dennis М. Ritchie) написал руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для языка Π² 1974 Π³., ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² это ΠΆΠ΅ врСмя Π‘ Π±Ρ‹Π» использован ΠΊΠ°ΠΊ язык программирования для ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ядра UNIX Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… PDP-11. Π’ 1978 Π³. Π‘Ρ€Π°ΠΉΠ°Π½ ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½ (Brian W. Kernighan) ΠΈ Π ΠΈΡ‚Ρ‡ΠΈ написали классичСскоС руководство ΠΏΠΎ, языку "The Π‘ Programming Language" ("Π―Π·Ρ‹ΠΊ программирования Π‘").

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

Π’ 1983 Π³. ANSI (American National Standards Institute, АмСриканский институт стандартов) основал ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ стандартов X3J11 для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ ΠΈ строгого опрСдСлСния языка. ΠŸΠΎΠΏΡƒΡ‚Π½ΠΎ ΠΎΠ±Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ вносили Π² язык Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния, Π² особСнности придавая Π΅ΠΌΡƒ Π΄ΠΎΠ»Π³ΠΎΠΆΠ΄Π°Π½Π½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π½ΠΎ Π² основном ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ просто вносил ΡΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ логичСскоС обоснованиС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ опрСдСлСния Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ составляло ΠΎΠ±Ρ‰Π΅ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ языка. ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ стандарт Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² 1989 Π³. ΠΊΠ°ΠΊ ANSI Standard Programming Language Π‘, X3.159-1989 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎ C89, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΡ‹ΠΉ C90. (Π­Ρ‚ΠΎΡ‚ послСдний прСвратился Π² стандарт ISO/IEC 9899:1990, Programming Languages β€” Π‘. Оба стандарта Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹.)

Как ΠΈ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° стандартов, публикация Π½Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π» ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСточности, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Π² спСцификации, ΠΈ Π² 1993 Π³. Π½Π°Ρ‡Π°Π» Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ Π½ΠΎΠ²ΠΎΠΉ вСрсиСй стандарта, Π½Π°Π·Π²Π°Π½Π½ΠΎΠ³ΠΎ C9X. ΠšΠΎΠΌΠΈΡ‚Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π», Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ обновлСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ стандарта Π² 1994-1996 Π³Π³.

Новая вСрсия стандарта Π±Ρ‹Π»Π° сдСлана Π² 1990 Π³Π³. ΠΈ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ стала стандартом Π‘99; ΠΎΠ½Π° Π±Ρ‹Π»Π° принята ISO ΠΊΠ°ΠΊ стандарт ISO/IEC 9899:1999. Π”ΠΎ сих ΠΏΠΎΡ€ сущСствуСт Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ J11, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдит Π·Π° стандартизациСй языка Π‘ ΠΈ Π΅Π³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π³Ρ€ΡƒΠΏΠΏΡ‹ International Committee for Information Technology Standards (ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ ΠΏΠΎ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹ΠΌ стандартам Π² сфСрС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΠΎ стандартизации Π‘ см. Π½Π° Web-сайтС http://j11.incits.org/.