\input style \chapter{predislovie redaktora perevoda} pROGRAMMIROVANIE BOGATO I MNOGOOBRAZNO. vEDX KAZHETSYA NET TAKOJ SFERY CHELOVECHESKOJ DEYATELXNOSTI, GDE NELXZYA BYLO BY S POLXZOJ PRIMENITX VYCHISLITELXNUYU MASHINU DLYA OCENKI, INFORMACIONNO-SPRAVOCHNOGO OBSLUZHIVANIYA, PLANIROVANIYA, MODELIROVANIYA I T. P. i |TO MNOGOOBRAZIE ZADACH PEREHODIT V MNOGOOBRAZIE PROGRAMM, KOTORYE DOLZHNY RAZRABATYVATX PROGRAMMISTY. oNI PYTAYUTSYA SPRAVITXSYA S |TIM MNOGOOBRAZIEM, "ZAKLYUCHIV" EGO V PROBLEMNO-ORIENTIROVANNYE YAZYKI PROGRAMMIROVANIYA. yaZYKI VBIRAYUT V SEBYA SPECIFICHESKIE CHERTY KONKRETNYH SFER PROGRAMMIROVANIYA --- HARAKTERNYE STRUKTURY DANNYH, PRINCIPY ORGANIZACII TIPICHNYH PROCESSOV, SOOTVETSTVUYUSHCHUYU TERMINOLOGIYU --- I TAKIM OBRAZOM DELAYUT SAM PROCESS PROGRAMMIROVANIYA BOLEE UNIVERSALXNYM. oDNOVREMENNO ONI OSVOBOZHDAYUT PROGRAMMISTOV OT NEOBHODIMOSTI DETALIZIROVATX PROGRAMMY DO UROVNYA SLISHKOM MELKIH MASHINNYH KOMAND I DAZHE OT NEOBHODIMOSTI ZNATX OSOBENNOSTI KONKRETNYH VYCHISLITELXNYH MASHIN. bOLEE TOGO, OPERACIONNYE SISTEMY PRIZVANY PREVRATITX VYCHISLITELXNYE MASHINY IZ PREDMETA POSTOYANNOGO BESPOKOJSTVA V "SUSHCHESTVA", KOTORYE SAMI ZABOTYATSYA O PROGRAMMISTE I GOTOVY OKAZYVATX VSYACHESKIE USLUGI EMU I EGO PROGRAMME. i TEM NE MENEE, POSLE TOGO, KAK LYUBAYA BOLEE ILI MENEE SLOZHNAYA ZADACHA SFORMULIROVANA (PUSTX DAZHE V ADEKVATNYH I UDOBNYH TERMINAH) I MASHINA VYBRANA (PUSTX DAZHE V SAMOM DELE GOTOVAYA K VSEVOZMOZHNYM USLUGAM), KAZHDYJ PROGRAMMIST SNOVA I SNOVA OSTAETSYA ODIN NA ODIN SO SVOEJ SOBSTVENNOJ ZADACHEJ: EMU NUZHNO SOSTAVITX PROGRAMMU! vYBRATX, KAK IMENNO SLEDUET RASPOLOZHITX I SVYAZATX DANNYE V PAMYATI, PONYATX, KAKAYA IMENNO POSLEDOVATELXNOSTX OPERATOROV, --- SPOSOBNYH SDELATX VSE CHTO UGODNO I OTTOGO ODNOVREMENNO I PODATLIVYH I OPASNYH --- VYPOLNIT POSTAVLENNUYU ZADACHU. i KAK ORGANIZOVATX OPERATORY V CIKL, KOTORYJ BUDET S KAZHDYM SHAGOM PRIBLIZHATX MASHINU K NAMECHENNOJ CELI. vYBRATX, PONYATX, IZOBRESTI, PROVERITX, USOMNITXSYA I POVTORITX VSE SNACHALA. pOKAZATELXNO, CHTO HOTYA V TAKIH "VNESHNIH" RAZDELAH PROGRAMMIROVANIYA, KAK YAZYKI I TRANSLYATORY, OPERACIONNYE SISTEMY I BAZY DANNYH, SHIROKO RAZVIVAETSYA I ISPOLXZUETSYA TEORIYA (OT MATEMATICHESKOJ LINGVISTIKI I LOGIKI DO STATISTIKI I TEORII MASSOVOGO OBSLUZHIVANIYA), VO VNUTRENNIH, SOBSTVENNYH RAZDELAH PROGRAMMIROVANIYA GOSPODSTVUYUT UMENIE I INTUICIYA ILI V LUCHSHEM SLUCHAE "POLEZNYE SOVETY". eSTX, PRAVDA, NEKOTORYE ISSLEDOVANIYA, KASAYUSHCHIESYA UZHE GOTOVYH PROGRAMM, NO NET NIKAKOJ TEORII SAMOGO PROCESSA PROGRAMMIROVANIYA. pREDLAGAEMAYA KNIGA PpEDSTAVLYAET SOBOJ ODIN IZ PERVYH SHAGOV V |TOM NAPRAVLENII. v NEJ S KAZHDYM OPERATOROM, S IH KOMBINACIYAMI I, V TOM CHISLE, S CIKLAMI SVYAZYVAYUTSYA PREOBRAZOVANIYA PREDIKATOV, YAVLYAYUSHCHIESYA FORMALXNYM VYRAZHENIEM IH SVOJSTV, I OPREDELENIE SVOJSTV PROGRAMMY V CELOM PREVRASHCHAETSYA V ZADACHU LOGICHESKOGO VYVODA. oSOBENNO VAZHNO, CHTO aVTop OB®YASNYAET I DEMONSTRIRUET NA PRIMERAH, KAK |TIM FORMALIZMOM MOZHNO POLXZOVATXSYA DLYA PRAKTICHESKOGO PROGRAMMIROVANIYA. pRI |TOM ON, RAZUMEETSYA, NE DAET OTVETA NA VOPROS O TOM, KAK NAPISATX LYUBUYU PROGRAMMU, --- OTVETA NA |TOT VOPROS VOOBSHCHE NE SUSHCHESTVUET. oN PREDLAGAET NAM INSTRUMENT, POZVOLYAYUSHCHIJ PROVERYATX NASHI GIPOTEZY V PROCESSE PROEKTIROVANIYA PROGRAMM, A INOGDA I PODSKAZYVAYUSHCHIJ TE ILI INYE VARIANTY RESHENIJ. a |TO SOVSEM NE MALO. pREDSTAVXTE SEBE CHELOVEKA, ZHIVUSHCHEGO V |POHU ZAROZHDENIYA MATEMATICHESKOGO ANALIZA, KOTOROMU NUZHNO NAHODITX NEOPREDELENNYE INTEGRALY OT VESXMA GROMOZDKIH PODYNTEGRALXNYH VYRAZHENIJ I KOTORYJ ZNAET TOLXKO OPREDELENIE PERVOOBRAZNOJ FUNKCII I NE ZNAET NIKAKIH PRIEMOV INTEGRIROVANIYA. kAKIM DLYA NEGO BYLO BY PODSPORXEM, ESLI BY EMU cooBSHCHILI O PRAVILE INTEGRIROVANIYA PO CHASTYAM ILI O TAKOM PRIEME, KAK ZAMENA PEREMENNYH! eGO RABOTA NE PERESTANET BYTX TVORCHESKOJ, NO NASKOLXKO RASSHIRYATSYA EGO VOZMOZHNOSTI I KAK MNOGO PEREJDET IZ OBLASTI NAHODOK V OBLASTX TEHNIKI. tO, CHTO BYLO SLOZHNYM, STANET PROSTYM, TO, CHTO BYLO NEPOSILXNYM, STANET TOLXKO SLOZHNYM. sISTEMATICHESKOE ISPOLXZOVANIE, OBOBSHCHENIE I RASSHIRENIE |TIH PRIEMOV POZVOLIT POSTEPENNO PEREJTI K FORMALIZACII, ALGORITMIZACII, A ZATEM I K AVTOMATIZACII OTDELXNYH |TAPOV RESHENIYA ILI POLNOGO RESHENIYA SPECIALXNYH KLASSOV ZADACH AVTOR KNIGI, e.~dEJKSTRa, NE NUZHDAETSYA V PREDSTAVLENII,--- EGO RABOTY HOROSHO IZVESTNY SOVETSKIM PROGRAMMISTAM. vMESTE S ch.~hOAROM ONI NEDAVNO SOVERSHILI POEZDKU PO KRUPNEJSHIM GORODAM NASHEJ STRANY, VO VREMYA KOTOROJ VYSTUPILI S LEKCIYAMI PERED MNOGOCHISLENNYMI AUDITORIYAMI. o STRUKTURE I STILE KNIGI DOSTATOCHNO POLNO SKAZANO V PREDISLOVII AVTORA. tAM ZHE ON PREDUPREZHDAET, CHTO CHITATX EGO KNIGU TRUDNO. pRICHINA |TOGO ZAKLYUCHAETSYA V SLOZHNOSTI SAMIH PROGRAMM, POSLUZHIVSHIH DLYA NEE MATERIALOM. ya HOTEL BY DOBAVITX, CHTO ONI SLOZHNY DLYA NAS TOLXKO SEJCHAS, KOGDA TEORIYA PROGRAMMIROVANIYA DELAET SVOI PERVYE SHAGI. pRIDET VREMYA, I TAKIE PROGRAMMY SMOZHET SOSTAVLYATX (ILI VYVODITX) PRYAMO NA UROKE KAZHDYJ SHKOLXNIK. i CHTOBY |TO VREMYA PRIBLIZITX, NADO OSVAIVATX, VNEDRYATX I RAZVIVATX TEORIYU. a |TOT PROCESS LEGKO NE PROHODIT. pEREVOD PREDISLOVIYA I GLAV 1--7 VYPOLNEN v.v.~mARTYNYUKOM, GLAV 8--21 --- i.X.~zUSMAN, GLAV 22--27 --- l.v.~uHOVYM. \rightline{{\sl e.~3.~lYUBIMSKIJ}} \eject \vfill \chapter{predislovie} \medskip iSTORIKI TAKIH DREVNIH INTELLEKTUALXNYH DISCIPLIN, KAK PO|ZIYA, MUZYKA, ZHIVOPISX I NAUKA, VYSOKO OCENIVAYUT ROLX VYDAYUSHCHIHSYA PRAKTIKOV, CHXI DOSTIZHENIYA OBOGATILI OPYT I RASSHIRILI PREDSTAVLENIYA POKLONNIKOV |TIH DISCIPLIN, PROBUDILI I UKREPILI TALANTY POSLEDOVATELEJ. tO NOVOE, CHTO IMI VNESENO, OSNOVYVAETSYA NA SOCHETANII VIRTUOZNOGO PRAKTICHESKOGO MASTERSTVA I PRONICATELXNOGO OSMYSLIVANIYA FUNDAMENTALXNYH PRINCIPOV. vO MNOGIH SLUCHAYAH VLIYANIE |TIH LYUDEJ USILIVALOSX BLAGODARYA IH VYSOKOJ KULXTURE, BOGATSTVU I VYRAZITELXNOSTI IH RECHI. v |TOJ KNIGE V PRISUSHCHEM EE AVTORU UTONCHENNOM STILE PREDSTAVLENA PRINCIPIALXNO NOVAYA TOCHKA ZRENIYA NA SUSHCHESTVO PROGRAMMIROVANIYA. iSHODYA IZ |TOJ TOCHKI ZRENIYA, AVTOR RAZRABOTAL SOVOKUPNOSTX NOVYH METODOV PROGRAMMIROVANIYA I SREDSTV OBOZNACHENIYA, KOTORYE DEMONSTRIRUYUTSYA I PROVERYAYUTSYA NA MNOGOCHISLENNYH IZYASHCHNYH I SODERZHATELXNYH PRIMERAH. eTOT TRUD, NESOMNENNO, BUDET PRIZNAN ODNIM IZ VYDAYUSHCHIHSYA DOSTIZHENIJ V RAZRABOTKE NOVOJ INTELLEKTUALXNOJ DISCIPLINY --- PROGRAMMIROVANNYA DLYA VYCHISLITELXNYH MASHIN. \rightline{ch.~a.~r.~hOAR} \vfill \eject \chapter{ot avtora} uZHE DAVNO MNE HOTELOSX NAPISATX KNIGU TAKOGO RODA. ya ZNAL, CHTO PROGRAMMY MOGUT OCHAROVYVATX GLUBINOJ SVOEGO LOGICHESKOGO IZYASHCHESTVA, NO MNE POSTOYANNO PRIHODILOSX UBEZHDATXSYA, CHTO BOLXSHINSTVO IZ NIH POYAVLYAYUTSYA V VIDE, RASSCHITANNOM NA MEHANICHESKOE ISPOLNENIE, NO SOVERSHENNO NEPRIGODNOM DLYA CHELOVECHESKOGO VOSPRIYATIYA --- GDE UZH TAM GOVORITX OB IZYASHCHESTVE. mENYA NE UDOVLETVORYALO I TO, CHTO ALGORITMY CHASTO PUBLIKUYUTSYA V FORME GOTOVYH IZDELIJ, POCHTI BEZ UPOMINANIYA TEH RASSMOTRENIJ, KOTORYE PROVODILISX V PROCESSE RAZRABOTKI I SLUZHILI OBOSNOVANIEM DLYA OKONCHATELXNOGO VIDA ZAVERSHENNOJ PROGRAMMY. sNACHALA YA ZADUMAL IZLOZHITX NEKOTOROE KOLICHESTVO IZYASHCHNYH ALGORITMOV TAKIM SPOSOBOM, CHTOBY CHITATELX SMOG PROCHUVSTVOVATX IH KRASOTU; DLYA |TOGO YA SOBIRALSYA KAZHDYJ RAZ OPISYVATX ISTINNYJ ILI VOOBRAZHAEMYJ PROCESS POSTROENIYA, KOTORYJ PRIVODIL BY K POLUCHENIYU ISKOMOJ PROGRAMMY. ya NE IZMENIL SVOEMU PERVONACHALXNOMU NAMERENIYU V TOM SMYSLE, CHTO OSNOVOJ |TOJ MONOGRAFII OSTAETSYA DLINNAYA POSLEDOVATELXNOSTX GLAV, V KAZHDOJ IZ KOTORYH STAVITSYA I RESHAETSYA NOVAYA ZADACHA. tEM NE MENEE OKONCHATELXNYJ VARIANT KNIGI SUSHCHESTVENNO OTLICHAETSYA OT EE PERVONACHALXNOGO ZAMYSLA POSKOLXKU VOZLOZHENNAYA MNOYU NA SEBYA OBYAZANNOSTX PRESTAVLYATX RESHENIYA V ESTESTVENNOJ I UBEDITELXNOJ MANERE POVLEKLA ZA SOBOJ GORAZDO BOLXSHEE, CHEM YA OZHIDAL, I YA NAVSEGDA SOHRANYU CHUVSTVO BLAGODARNOSTI SUDXBE ZA TO, CHTO VZYALSYA ZA |TU RABOTU. kOGDA NACHINAESHX PISATX PODOBNUYU KNIGU, SRAZU VOZNIKAET PROBLEMA: KAKIM YAZYKOM PROGRAMMIROVANIYA POLXZOVATXSYA? i |TO NE TOLXKO VOPROS PREDSTAVLENIYA! nAIBOLEE VAZHNYM, NO V TO ZHE VREMYA I NAIBOLEE NEZAMETNYM SVOJSTVOM LYUBOGO INSTRUMENTA YAVLYAETSYA EGO VLIYANIE NA FORMIROVANIE PRIVYCHEK LYUDEJ, KOTORYE IMEYUT OBYKNOVENIE IM POLXZOVATXSYA. kOGDA |TOT INSTRUMENT --- YAZYK PROGRAMMIROVANIYA, EGO VLIYANIE, NEZAVISIMO OT NASHEGO ZHELANIYA, SKAZYVAETSYA NA NASHEM SPOSOBE MYSHLENIYA. pROANALIZIROVAV V SVETE |TOGO VLIYANIYA VSE IZVESTNYE MNE YAZYKI PROGRAMMIROVANIYA, YA PRISHEL K VYVODU, CHTO NI ONI SAMI, NI IH PODMNOZHESTVA NE PODHODYAT DLYA MOIH CELEJ. s DRUGOJ STORONY, YA SCHITAL SEBYA NASTOLXKO NE PODGOTOVLENNYM K SOZDANIYU NOVOGO YAZYKA PROGRAMMIROVANIYA, CHTO DAL ZAROK NE ZANIMATXSYA |TIM V BLIZHAJSHEE PYATILETIE, I YA TVERDO ZNAYU, CHTO |TOT SROK ESHCHE NE VYSHEL. (pREZHDE, POMIMO VSEGO PROCHEGO, MNE NUZHNO BYLO NAPISATX |TU MONOGRAFIYU.) ya POPYTALSYA VYBRATXSYA IZ |TOGO TUPIKA, SOZDAV LISHX PODHODYASHCHIJ DLYA MOIH CELEJ MINI-YAZYK I VKLYUCHIV V NEGO TOLXKO TE |LEMENTY, KOTORYE PREDSTAVLYAYUTSYA SOVERSHENNO NEOBHODIMYMI I DOSTATOCHNO OBOSNOVANNYMI. eTI MOI KOLEBANIYA I SAMOOGRANICHENIE, ESLI IH NEPRAVILXNO PONYATX, MOGUT RAZOCHAROVATX MNOGIH POTENCIALXNXNYH CHITATELEJ. nAVERNYAKA RAZOCHARUYUTSYA VSE TE, KTO OTOZHDESTVLYAET TRUDNOSTX PROGRAMMIROVANIYA S TRUDNOSTXYU IZOSHCHRENNOGO ISPOLXZOVANIYA GROMOZDKIH I PRICHUDLIVYH SOORUZHENIJ, IZVESTNYH POD NAZVANIEM "YAZYKI PROGRAMMIROVANIYA VYSOKOGO UROVNYA" ILI --- ESHCHE HUZHE! --- "SISTEMY PROGRAMMIROVANIYA". eSLI ONI SOCHTUT SEBYA OBMANUTYMI IZ-ZA TOGO, CHTO YA VOVSE NE KASAYUSX VSEH |TIH POGREMUSHEK I SVISTULEK, MOGU OTVETITX IM TOLXKO ODNO: "a VPOLNE LI VY UVERENY, CHTO VSE |TI POGREMUSHKI I SVISTULXKI, VSE |TI POTRYASAYUSHCHIE VOZMOZHNOSTI VASHIH, TAK SKAZATX, "MOSHCHNYH" YAZYKOV PROGRAMMIROVANIYA IMEYUT OTNOSHENIE K PROCESSU RESHENIYA, A NE K SAMIM ZADACHAM?" mNE OSTAETSYA LISHX NADEYATXSYA, CHTO, NESMOTRYA NA UPOTREBLENIE MNOYU MINI-YAZYKA, ONI VSE ZHE PROCHTUT PREDLAGAEMYJ TEKST. tOGDA ONI, VOZMOZHNO PRIZNAYUT, CHTO POMIMO POGREMUSHEK I SVISTULEK IMEETSYA OCHENX BOGATOE SODERZHANIE I VOZNIKNET VOPROS, STOILO LI BOLXSHINSTVO IZ NIH VOOBSHCHE PRIDUMYVATX. a VSEM CHITATELYAM, INTERESUYUSHCHIMSYA PREIMUSHCHESTVENNO RAZRABOTKOJ YAZYKOV PROGRAMMIROVANIYA, YA MOGU TOLXKO PRINESTI IZVINENIYA V SVYAZI S TEM, CHTO ESHCHE NE MOGU VYSKAZATXSYA NA |TU TEMU BOLEE OPREDELENNO. tEM VREMENEM |TA MONOGRAFIYA, VOZMOZHNO, NAVEDET IH NA NEKOTORYE RAZMYSHLENIYA I POMOZHET IM IZBEZHATX OSHIBOK, KOTORYE ONI MOGLI BY SOVERSHITX, ESLI BY NE PROCHLI EE. \bigskip pROCESS RABOTY NAD KNIGOJ, KOTORYJ YAVILSYA DLYA MENYA NEPRERYVNYM ISTOCHNIKOM UDIVLENIYA I VDOHNOVENIYA, PRIVEL K POYAVLENIYU TEKSTA, OSNOVATELXNO OTLICHAYUSHCHEGOSYA OT PERVONACHALXNOGO ZAMYSLA. sNACHALA U MENYA BYLO VPOLNE PONYATNOE NAMERENIE PREDSTAVITX POSTROENIE PROGRAMM S POMOSHCHXYU APPARATA, CHUTX BOLEE FORMALXNOGO CHEM TOT, KOTORYJ YA IMEL OBYKNOVENIE ISPOLXZOVATX V SVOIH VVODNYH LEKCIYAH, GDE SEMANTIKA OBYCHNO VVODILASX INTUITIVNO, A DOKAZATELXSTVA PRAVILXNOSTI PREDSTAVLYALI SOBOJ SMESX STROGIH RASSUZHDENIJ, ZHESTIKULYACII I KRASNORECHIYA. rAZRABATYVAYA NEOBHODIMYE OSNOVY DLYA BOLEE FORMALXNOGO PODHODA, YA OBNARUZHIL DVA NEOZHIDANNYH OBSTOYATELXSTVA. pERVAYA NEOZHIDANNOSTX SOSTOYALA V TOM, CHTO TAK NAZYVAEMYE "PREOBRAZOVATELI PREDIKATOV", VYBRANNYE MNOYU V KACHESTVE SREDSTVA IZ®YASNENIYA, POZVOLILI PRYAMO OPREDELYATX SVYAZX MEZHDU NACHALXNYM I KONECHNYM SOSTOYANIYAMI BEZ KAKIH-LIBO SSYLOK NA PROMEZHUTOCHNYE SOSTOYANIYA, KOTORYE MOGUT VOZNIKATX VO VREMYA VYPOLNENIYA PROGRAMMY. ya OBRADOVALSYA TOMU, CHTO |TO DAET VOZMOZHNOSTX PROVESTI CHETKOE RAZGRANICHENIE DVUH OSNOVNYH PROBLEMATIK PROGRAMMIROVANIYA: PROBLEMATIKI MATEMATICHESKOJ KORREKTNOSTI (RECHX IDET O PROVERKE, OPREDELYAET LI PROGRAMMA PRAVILXNOE SOOTNOSHENIE MEZHDU NACHALXNYM I KONECHNYM SOSTOYANIYAMI --- I PREOBRAZOVATELI PREDIKATOV OBESPECHIVAYUT NAM FORMALXNOE SREDSTVO DLYA TAKOGO ISSLEDOVANIYA BEZ RASSMOTRENIYA VYCHISLITELXNOGO PROCESSA) I INZHENERNOJ PROBLEMATIKI |FFEKTIVNOSTI (BLAGODARYA RAZGRANICHENIYU STANOVITSYA OCHEVIDNYM, CHTO POSLEDNYAYA PROBLEMATIKA OPREDELENA TOLXKO V SVYAZI S REALIZACIEJ). pOZHALUJ, SAMOE POLEZNOE OTKRYTIE SOSTOIT V TOM, CHTO ODIN I TOT ZHE TEKST PROGRAMMY DOPUSKAET DVE (V IZVESTNOM SMYSLE DOPOLNYAYUSHCHIE DRUG DRUGA) INTERPRETACII. iNTERPRETACIYA V VIDE KODA PREOBRAZOVATELEJ PREDIKATOV, KOTORAYA PREDSTAVLYAETSYA BOLEE PODHODYASHCHEJ DLYA NAS, PROTIVOSTOIT INTERPRETACII V VIDE KODA DLYA VYPOLNENIYA --- EE YA PREDPOCHITAYU OSTAVLYATX MASHINAM! vTOROJ NEOZHIDANNOSTXYU OKAZALOSX TO, CHTO SAMYE ESTESTVENNYE I SISTEMATIZIROVANNYE "KODY PREOBRAZOVATELEJ PREDIKATOV", KAKIE YA MOG SEBE PREDSTAVITX, POTREBOVALI BY NEDETERMINIROVANNOJ REALIZACII, ESLI RASSMATRIVATX IH KAK "KODY DLYA VYPOLNENIYA". vNACHALE YA SODROGALSYA OT MYSLI, CHTO PRIDETSYA VVESTI NEDETERMINIROVANNOSTX UZHE V ODNOPROGRAMNOM REZHIME (SLISHKOM HOROSHO MNE BYLI IZVESTNY SLOZHNOSTI, VOZNIKAYUSHCHIE IZ-ZA |TOGO V MULXTIPROGRAMMIROVANII); ODNAKO POTOM YA PONYAL, CHTO INTERPRETACIYA TEKSTA KAK KODA PREOBRAZOVATELYA PREDIKATOV IMEET PRAVO NA NEZAVISIMOE SUSHCHESTVOVANIE. (oGLYADYVAYASX NAZAD, MY MOZHEM OTMETITX, CHTO MNOGIE PROBLEMY MULXTIPROGRAMMIROVANIYA, STAVIVSHIE NAS PREZHDE V TUPIK, YAVLYAYUTSYA VSEGO LISHX SLEDSTVIEM APRIORNOJ TENDENCII PRIDAVATX DETERMINIROVANNOSTI SLISHKOM BOLXSHOE ZNACHENIE.) v KONCE KONCOV YA PRISHEL K TOMU, CHTO STAL SCHITATX NEDETERMINIROVANNOSTX ESTESTVENNOJ SITUACIEJ, PRI |TOM DETERMINIROVANNOSTX SVELASX K DOVOLXNO BANALXNOMU CHASTNOMU SLUCHAYU. uSTANOVIV |TI OSNOVY, YA PRISTUPIL, KAK I NAMEREVALSYA, K RESHENIYU DLINNOJ POSLEDOVATELXNOSTI ZADACH. eTO ZANYATIE OKAZALOSX NEOZHIDANNO UVLEKATELXNYM. ya UBEDILSYA V TOM, CHTO FORMALXNYJ APPARAT POZVOLYAET MNE UHVATYVATX SUSHCHESTVO DELA GORAZDO CHETCHE, CHEM RANXSHE. ya POLUCHIL UDOVOLXSTVIE, OBNARUZHIV, CHTO YAVNAYA POSTANOVKA VOPROSA O ZAVERSHIMOSTI MOZHET IMETX BOLXSHOE |VRISTICHESKOE ZNACHENIE; TUT YA DAZHE NACHAL SOZHALETX OB IZLISHNE RASPROSTRANENNOJ SKLONNOSTI K CHASTICHNOJ KORREKTNOSTI. nO SAMOE PRIYATNOE SOSTOYALO V TOM, CHTO BOLXSHINSTVO RESHENNYH MNOYU RANEE ZADACH TEPERX UVENCHALOSX BOLEE IZYASHCHNYMI RESHENIYAMI. ya VOSPRINYAL |TO KAK VESXMA OBODRYAYUSHCHEE SVIDETELXSTVO TOGO, CHTO RAZRABOTANNAYA METODIKA I V SAMOM DELE ULUCHSHILA MOI PROGRAMMISTSKIE VOZMOZHNOSTI. \bigskip kAK SLEDUET IZUCHATX |TU MONOGRAFIYU? lUCHSHEE, CHTO YA MOGU POSOVETOVATX: PRERYVAJTE CHTENIE, KAK TOLXKO USVOITE POSTANOVKU ZADACHI, I PYTAJTESX SNACHALA RESHITX EE SAMOSTOYATELXNO, ZATEM PRODOLZHAJTE CHTENIE. pOPYTKA SAMOSTOYATELXNOGO RESHENIYA ZADACHI PREDSTAVLYAETSYA EDINSTVENNYM SPOSOBOM PROCHUVSTVOVATX, NASKOLXKO ONA TRUDNA; KROME TOGO, VY MOZHETE SRAVNIVATX MOE RESHENIE S VASHIM I POLUCHITX UDOVLETVORENIE, ESLI VASHE OKAZHETSYA LUCHSHE. pREDUPREZHDAYU ZARANEE: NE OGORCHAJTESX, KOGDA UVIDITE, CHTO |TOT TEKST CHITAETSYA OTNYUDX NE LEGKO. tE, KTO IZUCHALI EGO V RUKOPISI, CHASTO ISPYTYVALI ZATRUDNENIYA (NO VPOLNE VOZNAGRAZHDALISX ZA |TO). vPROCHEM, KAZHDYJ PRI ANALIZE IH ZATRUDNENIJ MY SOVMESTNO UBEZHDALISX V TOM, CHTO "VINOVNYM" OKAZYVALSYA VOVSE NE TEKST (T. E. SPOSOB IZLOZHENIYA), A SAM IZLAGAEMYJ MATERIAL. mORALX |TOGO MOZHET BYTX TOLXKO TAKOVA: NETRIVIALXNYJ ALGORITM I VPRAVDU NETRIVIALEN, A EGO OKONCHATELXNAYA ZAPISX NA YAZYKE PROGRAMMIROVANIYA SLISHKOM LAKONICHNA PO SRAVNENIYU S RASSUZHDENIYAMI, OBOSNOVYVAYUSHCHIMI EGO RAZRABOTKU; |TA KRATKOSTX OKONCHATELXNOGO TEKSTA NE DOLZHNA NAS DEZORIENTIROVATX. oDIN IZ MOIH SOTRUDNIKOV VNES PREDLOZHENIE (A YA DOVOZHU EGO DO VASHEGO SVEDENIYA, POSKOLXKU ONO MOZHET OKAZATXSYA POLEZNYM), CHTOBY NEBOLXSHIE GRUPPY STUDENTOV IZUCHALI KNIGU VMESTE. (zDESX YA DOLZHEN DOBAVITX V SKOBKAH ZAMECHANIE PO POVODU "TRUDNOSTI" |TOGO TEKSTA. pOSVYATIV NEMALO LET SVOEJ NAUCHNOJ ZHIZNI TOMU CHTOBY PROYASNITX ZADACHI PROGRAMMISTA I SDELATX IH BOLEE PODVLASTNYMI NASHEMU INTELLEKTU, YA OBNARUZHIL S UDIVLENIEM (I RAZDRAZHENIEM), CHTO MOE STREMLENIE VNESTI YASNOSTX PRIVODIT K SISTEMATICHESKIM OBVINENIYAM V TOM, CHTO YA "VNES V PROGRAMMIROVANIE TRUDNOSTI". nO |TI TRUDNOSTI VSEGDA V NEM BYLI; I TOLXKO SDELAV IH VIDIMYMI, MY SMOZHEM NADEYATXSYA, CHTO NAUCHIMSYA RAZRABATYVATX PROGRAMMY S VYSOKOJ STEPENXYU NADEZHNOSTI, A NE PROSTO "LEPITX KOMANDY", T.~E. VYDAVATX TEKSTY, OSNOVANNYE NA NEUBEDITELXNYH PREDPOLOZHENIYAH, SOSTOYATELXNOSTX KOTORYH MOZHET VYYAVITXSYA POSLE PERVOGO ZHE PROTIVORECHASHCHEGO PRIMERA. nEZACHEM I GOVORITX, CHTO NI ODNA PROGRAMMA IZ |TOJ MONOGRAFII NE PROVERYALASX NA MASHINE.) ya DOLZHEN OB®YASNITX CHITATELYU, POCHEMU YA POLXZUYUSX MINI-YAZYKOM, STOLX OGRANICHENNYM, CHTO V NEM NET DAZHE PROCEDUR I REKURSII. pOSKOLXKU KAZHDOE SLEDUYUSHCHEE RASSHIRENIE YAZYKA DOBAVLYALO BY K |TOJ KNIGE ESHCHE NESKOLXKO GLAV, TEM SAMYM SOOTVETSTVENNO UVELICHIVAYA EE STOIMOSTX, OTSUTSTVIE BOLXSHINSTVA VOZMOZHNYH RASSHIRENIJ (TAKIH, KAK, NAPRIMER, MULXTIPROGRAMMIROVANIE) NE NUZHDAETSYA V DOPOLNITELXNYH OPRAVDANIYAH. oDNAKO PROCEDURY VSEGDA ZANIMALI TAKOE VAZHNOE MESTO, A REKURSIYA DLYA VYCHISLITELXNOJ NAUKI V TAKOJ STEPENI SCHITALASX PRIZNAKOM AKADEMICHESKOJ RESPEKTABELXNOSTI, CHTO NEKOTOROE RAZ®YASNENIE PREDSTAVLYAETSYA NEOBHODIMYM. pREZHDE VSEGO |TA KNIGA PREDNAZNACHENA NE DLYA NACHINAYUSHCHIH, I YA RASSCHITYVAYU, CHTO MOI CHITATELI UZHE ZNAKOMY S UKAZANNYMI PONYATIYAMI. vO-VTORYH, KNIGA NE YAVLYAETSYA VVODNYM TEKSTOM PO KAKOMU-TO KONKRETNOMU YAZYKU PROGRAMMIROVANIYA, TAK CHTO OTSUTSTVIE V NEJ |TIH KONSTRUKCIJ I PRIMEROV IH UPOTREBLENIYA NE SLEDUET OB®YASNYATX MOEJ NESPOSOBNOSTXYU ILI NEZHELANIEM IMI POLXZOVATXSYA ILI ZHE VOSPRINIMATX KAK NAMEK NA TO, CHTO VOOBSHCHE LUCHSHE VOZDERZHIVATXSYA OT IH PRIMENENIYA. pROSTO ONI NE POTREBOVALISX MNE DLYA RAZ®YASNENIYA MOEJ GLAVNOJ MYSLI O TOM, NASKOLXKO SUSHCHESTVENNO TSHCHATELXNOE RAZGRANICHENIE PROBLEMATIK DLYA RAZRABOTKI VSESTORONNE VYSOKOKACHESTVENNYH PROGRAMM; SKROMNYE SREDSTVA MINI-YAZYKA PREDOSTAVLYAYUT NAM BOLEE CHEM DOSTATOCHNYJ PROSTOR DLYA NETRIVIALXNYH I V TO ZHE VREMYA VPOLNE PRIEMLEMYH RAZRABOTOK. mOZHNO OBOJTISX |TIM OB®YASNENIEM, NO ONO VSE ZHE NE YAVLYAETSYA ISCHERPYVAYUSHCHIM. ya VSE RAVNO SCHITAL SEBYA OBYAZANNYM VVESTI POVTORENIE KAK SAMOSTOYATELXNUYU KONSTRUKCIYU, POSKOLXKU MNE PREDSTAVLYALOSX, CHTO |TO SLEDOVALO SDELATX UZHE DAVNO. kOGDA YAZYKI PROGRAMMIROVANIYA ZAROZHDALISX, "DINAMICHESKAYA" PRIRODA OPERATORA PRISVAIVANIYA KAZALASX NE OCHENX PRISPOSOBLENNOJ K "STATICHESKOJ" PRIRODE TRADICIONNOJ MATEMATIKI. iZ-ZA OTSUTSTVIYA SOOTVETSTVUYUSHCHEJ TEORII MATEMATIKI OSHCHUSHCHALI NEKOTORYE ZATRUDNENIYA, SVYAZANNYE S |TIM OPERATOROM, A POSKOLXKU IMENNO KONSTRUKCIYA POVTORENIYA SOZDAET NEOBHODIMOSTX V PRISVAIVANIYAH PEREMENNYM, MATEMATIKI OSHCHUSHCHALI ZATRUDNENIYA I V SVYAZI S POVTORENIEM. kOGDA BYLI RAZRABOTANY YAZYKI BEZ PRISVAIVANIYA I BEZ POVTORENIJ --- TAKIE, KAK CHISTYJ lisp,--- MNOGIE POCHUVSTVOVALI ZNACHITELXNOE OBLEGCHENIE. oNI SNOVA OSHCHUTILI POD NOGAMI ZNAKOMUYU POCHVU I UVIDELI PROBLESK NADEZHDY PREVRATITX PROGRAMMIROVANIE V ZANYATIE S TVERDOJ I SOLIDNOJ MATEMATICHESKOJ OSNOVOJ. (dO SEGO VREMENI SREDI SKLONNYH K TEORETIZIROVANIYU SPECIALISTOV PO MASHINNOJ MATEMATIKE VSE ESHCHE SHIROKO RASPROSTRANENO MNENIE, CHTO REKURSIVNYE PROGRAMMY "BOLEE ESTESTVENNY", CHEM PROGRAMMY S POVTORENIYAMI.) dRUGOGO VYHODA IZ POLOZHENIYA PUTEM NADEZHNOGO I DEJSTVENNOGO MATEMATCHESKOGO OBOSNOVANIYA PARY PONYATIJ "POVTORENIE" I "PRISVAIVANIE PEREMENNOJ" NAM PREDSTOYALO ZHDATX ESHCHE DESYATX LET. a VYHOD, KAK POKAZANO V |TOJ MONOGRAFII, ZAKLYUCHALSYA V TOM, CHTO SEMANTIKU KONSTRUKCII POVTORENIYA MOZHNO OPISATX S POMOSHCHXYU REKURRENTNYH OTNOSHENIJ MEZHDU PREDIKATAMI, TOGDA KAK DLYA OPISANIYA SEMANTIKI OBSHCHEJ REKURSII TREBUYUTSYA REKURRENTNYE OTNOSHENIYA MEZHDU PREOBRAZOVATELYAMI PREDIKATOV. oTSYUDA SOVERSHENNO OCHEVIDNO, POCHEMU YA SCHITAYU OBSHCHUYU REKURSIYU NA PORYADOK BOLEE SLOZHNOJ KONSTRUKCIEJ, CHEM PROSTOE POVTORENIE; I PO|TOMU MNE BOLXNO SMOTRETX, KAK SEMANTIKU KONSTRUKCII POVTORENIYA $$ "\kwd{while } B \kwd{ do } S" $$ OPREDELYAYUT KAK SEMANTIKU OBRASHCHENIYA $$ "whiledo(B,S)" $$ K REKURSIVNOJ PROCEDURE (OPISANNOJ V SINTAKSISE YAZYKA algol 60): {\obeylines \kwd{procedure} \var{whiledo}(\var{USLOVIE}, \var{OPERATOR}); \kwd{begin} \kwd{if} \var{USLOVIE} \kwd{then} \kwd{begin} \var{OPERATOR}; whiledo(\var{USLOVIE},\var{OPERATOR}) \kwd{end} \kwd{end} } nESMOTRYA NA FORMALXNUYU PRAVILXNOSTX, |TO MNE NEPRIYATNO, POTOMU, CHTO YA NE LYUBLYU, KOGDA IZ PUSHKI STRELYAYUT PO VOROBXYAM, VNE ZAVISIMOSTI OT TOGO, NASKOLXKO |FFEKTIVNO PUSHKA SPRAVLYAETSYA S TAKOJ RABOTOJ. dLYA POKOLENIYA TEORETIKOV MASHINNOJ MATEMATIKI, KOTORYE PODKLYUCHALISX K |TOJ TEMATIKE V TECHENIE SHESTIDESYATYH GODOV, PRIVEDENNOE VYSHE REKURSIVNOE OPREDELENIE CHASTO YAVLYAETSYA NE TOLXKO "ESTESTVENNYM", NO DAZHE "SAMYM PRAVILXNYM". oDNAKO VVIDU TOGO, CHTO BEZ PONYATIYA POVTORENIYA MY NE MOZHEM DAZHE OPISATX POVEDENIE MASHINY tXYURINGA, PREDSTAVLYAETSYA NEOBHODIMYM PROIZVESTI NEKOTOROE VOSSTANOVLENIE RAVNOVESIYA. pO POVODU OTSUTSTVIYA BIBLIOGRAFII YA NE PREDLAGAYU NI OB®YASNENIJ, NI IZVINENIJ. {\sl bLAGODARNOSTI.} sLEDUYUSHCHIE LICA OKAZALI NEPOSREDSTVENNOE VLIYANIE NA RAZRABOTKU |TOJ KNIGI, LIBO PRINYAV UCHASTIE V OBSUZHDENII EE PREDPOLAGAEMOGO SODERZHANIYA, LIBO VYSKAZAV ZAMECHANNYA OTNOSITELXNO GOTOVOJ RUKOPISI ILI EE CHASTEJ: k.~bRON, r.~bERSTALL, u.~fEJEN, ch.~hOAR, d.~kNUT, m.~rEM, dZH.~rEJNOLXDS, d.~rOSS, k.~shOLTEN, g.~zIGMYULLER, n.~vIRT I m.~vUDZHER. ya SCHITAYU CHESTXYU DLYA SEBYA VOZMOZHNOSTX PUBLICHNO VYRAZITX IM MOYU PRIZNATELXNOSTX ZA SOTRUDNICHESTVO. kROME TOGO, YA VESXMA OBYAZAN KORPORACII Burroughs, SOZDAVSHEJ MNE BLAGOPRIYATNYE USLOVIYA I PREDOSTAVIVSHEJ NEOBHODIMYE SREDSTVA, I BLAGODAREN MOEJ ZHENE ZA NEIZMENNUYU PODDERZHKU I ODOBRENIE. \rightline{e. v. dEJKSTRA} \leftline{nEJEN } \leftline{nIDERLANDY} \bye