"Besedi o programmirovanii" -- eto kniga skoree ne o tom, kak
nado programmirovat', a o tom, kak razvivalos' programmirovanie
v nashej strane.
Esli vzglyanut' na "Besedi" s sovremennoj tochki zreniya, to ikh,
ochevidno, sleduet otnesti k razdelu: "Istoriya razvitiya
programmirovaniya". Delo v tom, chto kogda u nas stali poyavlyat'sya
EVM, mnogie ne ponyali, kakoe mesto v zhizni lyudej zajmut
komp'yuteri. A te, kto ponyal, razdelilis' na dve chasti: idti
svoim putem ili kopirovat' zagranitsu. Mezhdu etimi gruppami lyudej
shla ozhestochennaya bor'ba. Ona-to i otobrazhena v "Besedakh
o programmirovanii". Skoree dazhe -- "Besedi" yavlyayutsya elementom
etoj bor'bi.
Za kadrami knigi ostalis' beskonechnie obrascheniya avtora "Besed"
v visokie instantsii -- bukval'no kriki dushi o tom, chto nado u NAS
razvivat' stroitel'stvo svoikh mashin, nado privlekat' sil'nikh
konstruktorov i matematikov -- a oni u nas est' -- k razrabotke
novikh komp'yuterov. Bilo prodemonstrirovano ne na slovakh, a na dele, chto mi eto mozhem, chto mi sil'nee. Naprimer, nasha mashina
M-20 obigrala v shakhmati so schetom 3:1 mashinu iz Stenforda.
No pobedili te, kotorie reshili kopirovat' zagranitsu. Teper' vse
komp'yuteri inostrannie, vse "govoryat" po-anglijski. I dazhe
teoremu Adel'son-Vel'skogo i Landisa, kotoruyu u nas korotko
nazivayut AVL, teper' chitayut ABL.
No v "Besedakh o programmirovanii" rasskazano ne tol'ko
o bor'be raznikh napravlenij. I dazhe eto ne glavnoe. Mi upomyanuli
ob etoj bor'be, pozhaluj, tol'ko dlya togo, chtobi chitatelyu bil
ponyaten ton ili stil', kotorim napisana kniga.
Na nash vzglyad, glavnoe v "Besedakh" -- eto zadachi, o kotorikh
govoril A.S.Kronrod. Kniga bila napisana v 1963 godu. Teper' uzhe
vidno, po kakomu puti poshlo programmirovanie -- po predlozhennomu
Kronrodom ili net. A nazival A.S. eti zadachi -- IGRAMI.
"Besedi o programmirovanii" bili poslani na retsenzii raznim
lyudyam. Retsenzii bilo bi tozhe interesno prochitat'. Storonniki
A.S., estestvenno, khvalili etu knigu. Protivniki -- polemizirovali.
No nado skazat', chto vse, dazhe razgromnie,
retsenzii konchalis' slovami: "Tem ne menee, knigu nado
napechatat'!"
"Besedi o programmirovanii" proshli obyazatel'nuyu togda tsenzuru,
i bilo napechatano 10 signal'nikh ekzemplyarov. I vdrug kniga bila
zapreschena. Kem? Matematikami! Kak govoril Kronrod "Inogda takie
lyudi zanimali dolzhnosti dazhe i dovol'no visokie". Pokhozhe bilo,
chto oni ne viderzhali polemiki, podnyatoj v etoj knige. No oni
ne zapreschali vsyu knigu: kto-to treboval unichtozhit' kakoj-nibud'
paragraf v "Besede", kto-to -- napisat' slovo ne s bol'shoj, a s malen'koj bukvi, i t.p.
Kronrod otkazalsya im podchinit'sya. Kniga izdana ne bila.
Teper' -- po proshestvii bolee 30 let s momenta napisaniya etoj
knigi -- mnogoe budet v nej neponyatno. Chtobi izbezhat' etogo,
mozhno bilo bi v kontse "Besed" k kazhdoj stranitse dat'
poyasneniya. No, skoree vsego, mozhno obojtis' i bez nikh. Prosto:
"Imeyuschij ushi slishat' -- da slishit".
Teper' mozhno perekhodit' k chteniyu "Besed o programmirovanii"
Aleksandra Semenovicha Kronroda.
Predislovie (Kronrod L. A.) |
Beseda pervaya: Kak A. L. Brudno pridumal programmirovanie v soderzhatel'nikh oboznacheniyakh |
| § 1. | Chto bilo sperva |
| § 2. | Chto bilo potom |
Beseda vtoraya: Chto takoe blochnoe programmirovanie, kotoroe velel nam pridumat' Brudno |
| § 1. | Struktura bol'shikh programm |
| § 2. | Chto mi na etom poteryali? |
| § 3. | Chto mi pri etom viigrali? |
| § 4. | Kak obraschat'sya k blokam. |
Beseda tret'ya: Koe-chto ob otladke programm |
| § 1. | Zachem programmistu baraban? |
| § 2. | O rospisi pamyati i o kontrol'nom summirovanii |
| | Zadachi |
| § 3. | Programmi dlya raboti s pul'ta |
| § 4. | Kakimi dolzhni bit' programmi pechati |
| § 5. | Ob organizatsii kontrol'nikh proschetov |
| § 6. | Odin primer organizatsii kontrol'nogo scheta |
Beseda chetvertaya: Esche koe-chto ob otladke programm |
| § 1. | Ob otladochnikh programmakh |
| § 2. | Standartizatsiya oboznachenij |
| § 3. | Yachejka omega pri otladke |
| § 4. | Nemnozhko o kodirovke |
Beseda pyataya: Pro biblioteku standartnikh programm |
| § 1. | Chto dolzhno bit' v biblioteke |
| § 2. | Standartnie yachejki |
| § 3. | Chto sluchitsya s programmami, esli mi izmenim bibliotechnie podprogrammi?/ |
| § 4. | Bibliotechnoe DZU |
| § 5. | Vizov bibliotek |
| § 6. | Vizov so sdvigom |
| § 7. | Bibliotechnie karti |
Beseda shestaya: Pro biblioteku standartnikh programm (prodolzhenie) |
| § 1. | Programmi s informatsiej |
| § 2. | Sistema INFO-GFK |
| § 3. | Pro programmu INTEGRAL. Zachem eta programma dolzhna bit' sovershenno standartnoj |
| § 4. | Rabota so sluchajnimi chislami |
Beseda sed'maya: Chto nuzhno peredelat' v trekhadresnoj mashine, chtobi bilo khorosho |
| § 1. | Mashinno-videlennie yachejki |
| § 2. | Adresa dlya registrov |
| § 3. | Stop pri popitke peredat' upravlenie |
| § 4. | Bol'she DZU! |
| § 5. | Bol'she razryadov v kode komandi! |
| § 6. | Kakie komandi nuzhno dobavit' i kakie -- ubrat' |
| § 7. | Obraschenie k funktsiyam |
| § 8. | FA i FK |
| § 9. | Dopolnitel'nie logicheskie komandi |
| § 10. | Smeshannaya arifmetika |
| § 11. | Peredachi upravleniya |
| § 12. | Trojnaya arifmetika |
| § 13. | Zapyataya sverkhdal'nego plavaniya |
| § 14. | Spetsial'no pro mashinu s registrom adresa |
Beseda vos'maya: Kak v trekhadresnoj mashine ustroit' dlinnuyu pamyat' |
| § 1. | Kak eto, po-moemu, nuzhno sdelat' |
| § 2. | Kak eto sdelano na M-2 |
| § 3. | Stoit li vse zhe primenyat' blochnuyu pamyat'? |
| § 4. | Kakie izmeneniya vnosit dlinnaya pamyat' v biblioteku |
Beseda devyataya: Pofantaziruem o mashinakh nashego zavtra ili peremennaya adresnost' i mikroprogrammirovanie |
| § 1. | Kak bit' s pamyat'yu? |
| § 2. | A kak zhe bit' s razryadnost'yu yachejki?/ |
| § 3. | Ob adresnosti mashini |
| § 4. | Otkuda vzyat' stol'ko kodov? |
| § 5. | Zadanie mikroprogrammi |
| § 6. | Raspredelenie kodov u mashini s mikroprogrammirovaniem |
| § 7. | Esche o pol'ze mikroprogramm |
| § 8. | Ob etom zhe |
| § 9. | Chego ne znal avtor, kogda pisal pervie 8 paragrafov etoj glavi ili kak (i mozhno li) obojtis' bez mikroprogrammirovaniya |
Beseda desyataya: O rabotakh N. I. Bessonova |
| § 1. | Zachem napisana eta beseda |
| § 2. | RVM. Kaskadnij printsip |
| § 3. | RVM. Sistema upravleniya |
| § 4. | RVM. Neskol'ko slov o pamyati |
| § 5. | Kommutator Bessonova |
| § 6. | O stile |
Beseda odinnadtsataya: Chelovek i mashina |
| § 1. | Mozhet li mashina dumat'? |
| § 2. | Kto rabotaet skoree -- mashina ili mozg? |
| § 3. | Dva sposoba dumaniya |
| § 4. | Kak svyazani soznanie i podsoznanie |
| § 5. | Pochemu tak medlenno obuchaetsya chelovek |
| § 6. | Kak zhe bit' mashinam? |
| § 7. | Mozhno li zaglyanut' v podsoznanie? |
| § 8. | Chto mi tam uvidim? |
| § 9. | Dve tochki zreniya na neizvestnoe |
| § 10. | Glavnie zadachi programmirovaniya |
| § 11. | O bessmertii |
Beseda dvenadtsataya: Nevichislitel'nie zadachi |
| § 1. | Shakhmati G. M. Adel'sona-Vel'skogo, V. Arlazarova i A. Uskova |
| § 2. | Bor'ba za vremya. Predvaritel'naya otsenka. UKhUDU I PUP |
| § 3. | Bor'ba za vremya. Tekhnicheskie priemi |
| § 4. | Vaterloo AVAU. Uroki Vaterloo |
| § 5. | Obschaya perebornaya skhema |
| § 6. | Uskorenie po Brudno |
| § 7. | Perebornaya skhema. Obobscheniya. Vektornaya otsenka |
| § 8. | OBSchIJ REShATEL' amerikantsev. Slovo v zaschitu byurokratii |
| § 9. | Shakhmati i narodnoe khozyajstvo |
Beseda trinadtsataya: O vzveshivanii monetok |
| § 1. | Postanovka zadachi |
| § 2. | A kak eto mozhno osuschestvit' v programme? Chto znachit poluchit' otvet? |
| § 3. | Vozrazheniya po forme (otveta) |
| § 4. | Perebor vozmozhnostej. Molekuli |
| § 5. | Perebor vozmozhnostej. Molekulyarnij ves. Rangi gipotez |
| § 6. | Reshenie zadachi chelovekom |
| § 7. | Vernemsya k programme |
| § 8. | Da, imenno tak |
| § 9. | Udastsya li vse-taki sozdat' programmu? |
| § 10. | Zachem vse eto nuzhno? Nuzhno li eto voobsche? Ne luchshe li zanyat'sya chem-nibud' drugim? |
Beseda chetirnadtsataya: Vichislitel'nie zadachi s tochki zreniya nevichislitel'nikh |
| § 1. | Izderzhki avtomatizatsii |
| § 2. | Pochemu vdrug ponadobilos' ekonomit'? |
| § 3. | Kak viglyadela ran'she programma SOVERShENNO STANDARTNIJ INTEGRAL i kak viglyadit ona teper' |
| § 4. | Kak programma INTEGRAL budet viglyadet' zavtra |
| § 5. | Pro vneshnee integrirovanie |
| § 6. | A dolzhna li voobsche programma INTEGRAL bit' sovershenno standartnoj? |
| § 7. | Reshenie sistemi dvukh uravnenij s dvumya neizvestnimi |
Beseda pyatnadtsataya i poslednyaya: Kibernetika ili matematika? Kto takie programmisti? |
| § 1. | Chto takoe nauka kibernetika? |
| § 2. | Esche odna analogiya |
| § 3. | Kak dolzhna razvivat'sya nauka-kibernetika? |
| § 4. | Kto takie programmisti |
| § 5. | Nuzhno li kazhdomu matematiku samomu programmirovat'? |
| § 6. | Vzaimootnoshenie programmirovaniya i matematiki |
| § 7. | Nauka dlya nauki? |
| § 8. | Nauka. Prikladnaya Nauka. Nauka dlya Nauki |
| § 9. | O kriteriyakh/ |
| § 10. | Predlagaet li avtor zapretit' chistuyu matematiku? |
| § 11. | Ne isklyuchit' li zato programmirovanie iz matematiki? |
Posleslovie |
Prilozhenie 1 (Adel'son-Vel'skij G. M., Arlazarov V. L., Leferov E. V., Reznikovskij P. T., Khabarova S. A.) |
Prilozhenie 2 |
Neskol'ko slov ob avtore (Arlazarov V. L.) |
Aleksandr Semenovich Kronrod (1921--1986) -- chelovek
primechatel'nij. So studencheskoj skam'i on ushel dobrovol'tsem
na front. Cherez tri goda, posle tyazhelogo raneniya, vernulsya,
slozhil v stol nagradi i snova stal studentom. A esche cherez pyat'
let -- on uzhe doktor nauk, sozdatel' teorii funktsij dvukh
peremennikh, laureat Stalinskoj premii, rukovoditel' (khochetsya
skazat' -- predvoditel') seminara molodikh, chestolyubivikh,
talantlivikh uchenikh.
I vdrug... (khotya nichego u nego, konechno, ne vdrug. Prosto
kharakter, talant i vera v sebya), vdrug on kladet v stol uzhe
gotovie k publikatsii matematicheskie raboti i polnost'yu
pereklyuchaetsya na programmirovanie na EVM. Kstati, cherez dvadtsat'
let A.S.Kronrod tochno tak zhe pokonchit s programmirovaniem
i zajmetsya lecheniem raka. Stoit li udivlyat'sya, no opyat' -- s uspekhom.
Itak, vichislitel'nie mashini. On znaet, chto za nimi buduschee. On
sozdaet nastoyaschij konvejer resheniya fizicheskikh zadach. On
pridumivaet, kak sdelat' rabotu matematika za pul'tom udobnoj,
kakie smeni dolzhni bit' u operatorov, kak dobit'sya bezoshibochnoj
kodirovki i nabivki programm -- tisyacha melochej, kotorie otnyud'
ne kazhutsya emu melochami. Sledi etogo vi, navernoe, zametili pri
chtenii knigi.
No ego nastoyaschaya tsel' -- sozdanie mashin, reshayuschikh slozhnie,
"chelovecheskie" zadachi. I Kronrod organizuet novij seminar, gde
zanimayutsya programmirovaniem igr, zadachami uznavaniya,
pridumivayutsya novie vichislitel'nie i nevichislitel'nie algoritmi.
S nim ryadom druz'ya i soratniki. Ya ne nazivayu ikh, Kronrod nikogda
ne zabivaet sdelat' eto sam, obichno slegka pritushevivaya
sobstvennuyu rol'. Odnako imenno blagodarya A.S.Kronrodu etot
seminar viros v tseluyu shkolu programmirovaniya, i mnozhestvo uchenikh
uspeshno predstavlyayut ee i v Evrope, i v Amerike, i dazhe
v Avstralii.
Glavnoj chertoj shkoli Kronroda yavlyayutsya metodi resheniya zadachi,
pri kotorikh na kazhdom etape chetko prosmatrivaetsya svyaz' s ee
fizicheskim smislom. Ibo togda legche sledit' za tem, chto
vibrannij metod vedet k tseli, uverenno vesti otladku, da i,
voobsche, epigraf k kazhdoj glave etoj knigi est' zhiznennoe kredo
avtora.
V etom smisle "Besedi" i segodnya prekrasnij uchebnik dlya
znakomstva s nekotorimi ideyami iskusstvennogo intellekta
i "intellektual'nimi" podkhodami k vichislitel'nim problemam.
Eta kniga napisana pochti sorok let nazad. Razumeetsya, segodnya
chto-to v nej pokazhetsya banal'nost'yu, a chto-to glupost'yu. Avtor
ne vinovat: sorok let nazad banal'nostej ne bilo. Zato est'
i plyusi: za sorok let glupostej stalo zametno men'she.
Vi obratili vnimanie, s chego nachinaetsya kniga? Konechno, sejchas
vse programmiruyut "strukturno". No Kronrod izlagaet eto kak
ochevidnij sposob napisaniya programm za mnogo let do "otkritiya"
etogo metoda Dejkstroj. I emu yasno, chto sdelat' programmu
ponyatnoj mozhno tol'ko na ploskosti, risuya ne tol'ko komandi
i bloki, no i svyazi mezhdu nimi. Akh, kak ne khvataet emu segodnyashnikh
tsvetnikh graficheskikh monitorov, khotya bi dlya togo, chtobi risovat'
strelki! On-to vsegda programmiruet vizual'no, da vot tol'ko
na listakh bumagi. Otsyuda i ego nepriyatie ALGOLA, yavno tyagoteyuschego
k tomu, chtobi vityanut' programmu v linejku.
Esche primer. Pomnite, zachem programmistu baraban? Trivial'nost'?
No etot vopros bil predmetom nasmeshek mnogikh retsenzentov. Da chto
govorit', esche v 1990 godu ochen' ser'eznij spetsialist
po translyatoram, nine uvazhaemij professor, vser'ez dokazival, chto
otladochnaya informatsiya ne dolzhna khranit'sya v rabochee vremya, tak
kak otnimaet pamyat'. Ponadobilas' mosch' i "naglost'"
Mikrosofta, chtobi vse privikli, chto eta informatsiya absolyutno
neobkhodima.
Vprochem, ya dumayu, chto i esche cherez 40 let mozhno budet
naslazhdat'sya i ponimaniem programmirovaniya i neordinarnost'yu
mishleniya, blestkami istinnoj mudrosti schedro razbrosannimi
po stranitsam etoj knigi.
Arlazarov V.L.