„Donald e whip“ programavimo menas. „Programavimo menas“ - legendinės knygų serijos apžvalga

] Autorius: Knutas Donaldas Ervinas (Donaldas Ervinas Knutas). Mokslinis leidinys. Iš anglų kalbos vertė R.M. Kuznetsas, O.A. Makhovaya, N.V. Tretjakovas, Yu.V. Tyumentsevas, redagavo I.A. Smagratis. Menininkas I.I. Kulikova.
(Maskva: leidykla „Mir“, leidykla „ACT“, 2003 m. – Serija „Leidybos technologijų biblioteka“)
Nuskaitymas, apdorojimas, Djv formatas: ???, pateikė: Michailas, 2016 m

  • TRUMPAS TURINYS:
    Vertimų redaktoriaus pratarmė (5).
    Pratarmė (11).
    Nuorodos į šaltinius (16).
    1 skyrius. Spausdinimas kompiuteriu (19).
    2 skyrius. Matematinė tipografija (36).
    3 skyrius. Pastraipų išdėstymas (79).
    4 skyrius. Tekstų, skaitomų iš dešinės į kairę ir iš kairės į dešinę, derinys (167).
    5 skyrius. Receptai ir frakcijos (187).
    6 skyrius. TEX sistemos logotipas įvairiais šriftais (192).
    7 skyrius. Mėgstamų puslapių generavimas (194).
    8 skyrius. Jill parašytos makrokomandos (196).
    9 skyrius. Šeštadienio ryto problema (205).
    10 skyrius. Pratimai knygai TEX: The Program (207).
    11 skyrius. Mini rodyklės savaiminio dokumentavimo programoms (235).
    12 skyrius. Virtualūs šriftai. Pramogos tikriems meistrams (256).
    13 skyrius. S raidė (273).
    14 skyrius. Mano pirmoji pažintis su indų raštija (293).
    15 skyrius. Metafonto koncepcija (296).
    16 skyrius. METRFONT pamokos (321).
    17 skyrius. AMS Euler – naujas matematinis šriftas (344).
    18 skyrius. Konkrečios matematikos knygų rinkinys (369).
    19 skyrius. Iš patirties mokant programuoti METAFONT"e (381).
    20 skyrius. Metafont Punk (393).
    21 skyrius. Diskrečių pustonių šriftai (415).
    22 skyrius. Pustonių skaitmeninimas naudojant taškinę difuziją (447).
    23 skyrius. Pastabos apie kampų skaitmeninimą (469).
    24 skyrius. TEXDR.AFT (477).
    25 skyrius. TEX.ONE (506).
    26 skyrius. TEX inkunabulai (539).
    27 skyrius. TEX"a" ir METAFONT"a piktogramos (552).
    28 skyrius. Kompiuteriai ir knygų leidyba (559).
    29 skyrius. Naujos TEX"a ir METRFONT"a versijos (567).
    30 skyrius. TEX"a" ir METRFONT"a ateitis (576).
    31 skyrius. Klausimai ir atsakymai, I (578).
    32 skyrius. Klausimai ir atsakymai, II (604).
    33 skyrius. Klausimai ir atsakymai, III (625).
    34 skyrius. Naujausios TEX klaidos (651).
    Dalyko rodyklė (659).

Leidyklos santrauka: D. Knutho darbų rinkinys, parašytas jo darbo metu kuriant visame pasaulyje žinomų TEX ir metafontų sistemas, kuriame taip pat yra pastarųjų metų straipsnių šia tema. Knygą sudaro 34 skyriai, suskirstyti į tris dalis: TEX ir susijusios temos; metafontas ir susiję klausimai; TEX ir metafontas iš istorinės perspektyvos. Pateikiama gausi iliustracinė medžiaga ir programų sąrašai.
Kaip ir visose D. Knutho knygose, labai rimtos problemos pateikiamos paprastai ir įtraukiančiai, todėl, atsižvelgiant į tarpdisciplininį knygos akcentą, ji tampa prieinama įvairių mokslo sričių specialistams.
Knyga domina visų specialybių mokslininkus, savarankiškai ruošiančius savo darbus spaudai, informatikos ir leidybos sistemų srities specialistus, taip pat matematikus, besidominčius nestandartinėmis taikymėmis.

Trumpa legendinės Donaldo Knutho monografijos „Programavimo menas“ – esminio darbo kompiuterių mokslo srityje – apžvalga.

1 tomas. Pagrindiniai algoritmai

Pirmasis tomas yra įvadas į pagrindinius algoritmus ir duomenų struktūras, aprašant pagrindines programavimo koncepcijas ir metodus. Čia taip pat aptariama duomenų atvaizdavimo kompiuterio atmintyje ir efektyvaus darbo su jais tema.

Knygoje gausu simbolinio skaičiavimo, skaitmeninių metodų, modeliavimo metodų ir daug kitų pavyzdžių.

Pavyzdinės programos parašytos vadinamąja „MIX assembler“ kalba, skirta veikti hipotetiniame „MIX kompiuteryje“. Trečiasis leidimas pakeitė senąjį MIX į MMIX, kuriam yra sukurta programinė įranga, skirta jį mėgdžioti.

Žemo lygio kalbos vartojimas atbaido daugelį skaitytojų, tačiau pats autorius savo pasirinkimą pagrindžia neblogai. Susiejimas su architektūra leidžia spręsti apie tokias algoritmo charakteristikas kaip greitis ir sudėtingumas (t. y. atminties naudojimas).

2 tomas. Išvestiniai algoritmai

Antroji knyga – įvadas į pusiau skaitmeninius algoritmus. Atskiras skyrius skirtas aritmetiniams, atsitiktiniams skaičiams ir jų generavimo algoritmams. Pateikiami pusiau skaitmeninių algoritmų teorijos pagrindai, paremti daugybe pavyzdžių.

Atskiro paminėjimo nusipelno nauja Knutho šiame leidime pasiūlyta atsitiktinių skaičių generatorių interpretacija, taip pat skaičiavimo metodų svarstymas naudojant formalias laipsnių eilutes.

3 tomas. Rūšiavimas ir paieška

3 tome pateikiama išsami klasikinių rūšiavimo ir paieškos algoritmų apžvalga. Ši medžiaga papildo pirmoje dalyje pateiktą informaciją apie duomenų struktūras, tapdama savotišku loginiu pirmojo tomo tęsiniu.

Čia autorius pasakoja apie vidinę ir išorinę atmintį, apie didelių ir mažų duomenų bazių kūrimą ir darbą su jomis. Visiems knygoje aptartiems algoritmams pateikiama lyginamoji jų efektyvumo analizė. Speciali dalis skirta optimaliems rūšiavimo metodams ir naujosios permutacijos bei universalios maišos teorijos aprašymui.

4 tomas. Kombinuoti algoritmai

Ketvirtasis tomas pats yra kelių tomų rinkinys. Kombinacinė paieška yra turtinga ir svarbi tema, o Knutas pateikia per daug naujos, įdomios ir naudingos medžiagos, kad tilptų į vieną ar du (o gal net tris) tomus. Vien šioje knygoje yra apie 1500 pratimų su atsakymais savarankiškam darbui, taip pat šimtai naudingų faktų, kurių nerasite jokiuose kituose leidiniuose.

Vardas: Programavimo menai – 1 tomas.

Pirmasis knygų serijos „Programavimo menas“ tomas pradedamas pagrindinių programavimo sąvokų ir metodų aprašymu. Toliau autorius nagrinėja informacijos struktūras, informacijos atvaizdavimą kompiuteryje, struktūrinius ryšius tarp duomenų elementų ir efektyvaus darbo su jais būdus. Pateikiami modeliavimo metodų, simbolinių skaičiavimų, skaitmeninių metodų ir programinės įrangos kūrimo metodų elementarių programų pavyzdžiai. Palyginti su ankstesniu leidimu, buvo pridėta dešimtys paprastų, bet kartu ir labai svarbių algoritmų. Atsižvelgiant į šiuolaikines tyrimų kryptis, matematinis įvadas buvo gerokai pataisytas.

Kiekviena knyga turi savo likimą. Kai kurie pasirodo nepastebėti ir lygiai taip pat nepastebimai išnyksta laiko tėkmėje, pasidengdami dulkėmis bibliotekų lentynose. Kiti tam tikrą laikotarpį paklausūs siaurame specialistų rate, kol juos pakeis nauji žinynai. Dar kiti, iškylantys virš laiko, daro didelę įtaką technologinei visuomenės raidai. Į pastarąją kategoriją patenkančių knygų nėra tiek daug. Jų pasirodymas pasaulyje visada yra šventė. Metai bėga, technologijos keičiasi, bet naujos kartos su nuolatiniu susidomėjimu perskaito savo puslapius. Įžymaus amerikiečių mokslininko Donaldo Erwino Knutho skaitytojui pasiūlytas kelių tomų veikalas „Programavimo menas“ priklauso būtent tokioms knygoms.
Kokia D. E. Knutho programavimo meno sėkmė:
Pirma, ši knyga yra puikus kompiuterinių algoritmų projektavimo ir analizės vadovėlis. Jos skyriai gali būti įtraukti į daugelį universitetų kursų apie programavimo technologijas, algoritmų teoriją ir diskrečiąją matematiką. Knygą gali skaityti ir su programavimo pradmenimis susipažinę gimnazistai. Autorius pagrindine įrašymo algoritmų kalba pasirinko hipotetinio MIX universalaus kompiuterio mašinų komandų kalbą. Tai leidžia sukurti optimalias programas, atsižvelgiant į kompiuterių ypatybes. MIX programas perkelti į tikrus kompiuterius arba perrašyti aukšto lygio kalbomis nėra ypač sunku. Programos logika beveik visada paaiškinama naudojant paprastas blokines diagramas.
Antra, kruopščiai atrinkta medžiaga, įtraukta į knygą, apima pagrindines pagrindines algoritmų klases, kurios viena ar kita forma dažniausiai sutinkamos programavimo praktikoje.
Trečia, svarbus D. E. Knutho knygos sėkmės veiksnys yra pristatymo enciklopediškumas. Profesorius Knuthas turi unikalų gebėjimą atsekti problemą nuo jos istorinio pagrindo iki dabartinės būklės. Daugybė nuorodų į senųjų meistrų darbus (iki antikos), patalpintos šiuolaikiniame kontekste, sukuria skaitytojui ypatingą įsitraukimo į istorinę mokslo idėjų ir metodų raidą jausmą.

Atsisiųskite elektroninę knygą nemokamai patogiu formatu, žiūrėkite ir skaitykite:
Atsisiųskite knygą Programavimo menas - 1 tomas - Knut D. E. - fileskachat.com, greitai ir nemokamai atsisiųskite.

Parsisiųsti djvu
Žemiau galite įsigyti šią knygą geriausia kaina su nuolaida su pristatymu visoje Rusijoje.

Jurijus Romanovas

1938 metų sausio 10 d Gimė Milvokyje (Viskonsinas, JAV) Donaldas Erwinas Knuthas. Šiandien jam sukako 76 metai. Jo biografijoje nėra ilgo miestų ir šalių, kuriose jis gyveno ir dirbo, pavadinimų sąrašo. Matematikas pagal išsilavinimą, 1960 metais baigė Case Institute of Technology, po trejų metų tapo matematikos daktaru Kalifornijos technologijos institute, o nuo 1968 metų dėsto Stanfordo universitete, profesorius.

1990 m. jis anksti išėjo į pensiją, kad galėtų visiškai atsiduoti pagrindiniam darbui, kurį pats pasirinko – parašyti pagrindinę monografiją „Kompiuterių programavimo menas“, iš kurių septynių planuotų tomų tik trys ir pirmoji dalis. ketvirti matė šviesą.

Šiandien Donaldas Knuthas yra Stanfordo ir daugelio pasaulio universitetų, įskaitant Sankt Peterburgą, kompiuterių mokslų profesorius emeritas. Jis gavo Grace Murray Hopper apdovanojimą iš Kompiuterinių mašinų asociacijos, prestižinį Turingo apdovanojimą, JAV nacionalinį medalį už mokslinius nuopelnus, Harvey premiją, Kioto premiją, Elektros ir elektronikos inžinierių instituto prizą ir JAV matematikos asociaciją. Prizas. Knuthas paskelbė 19 monografijų ir 160 straipsnių.
Jis yra matematinių leidinių TEX ir METAFONT leidimo programų kūrėjas. Pernai jis pagal mokslinių publikacijų indeksavimo sistemą CiteSeer užėmė 37 vietą labiausiai cituojamų kompiuterių mokslo srities autorių sąraše.

Kas įdomaus tokioje oficialių atpažinimo ženklų gausybėje: matematikų bendruomenės atstovų ir programuotojų požiūris į meistrą toli gražu ne toks, kokio, atrodo, būtų galima tikėtis – entuziastingas. Žinoma, nėra jokios nepagarbos ar abejonių dėl to, kas buvo padaryta, ir dėl nuopelnų reikšmės. Tačiau yra kažkas iš studentų ar net moksleivių, kuriems... buvo per daug namų darbų, patirties. Tačiau be „savų“ IT žmonių yra patentų teisių srities specialistų ir nuolatinio patentuotos ir nemokamos programinės įrangos šalininkų „mūšio“ dalyvių, kurie turi savų priežasčių sutikti ar nesutikti su Donaldo Knutho argumentais. .. Atsižvelgdamas į visą šitą šnibždantį žodžių ir požiūrių, požiūrių ir vertinimų, apie ką kalba ir rašo mūsų dienos herojus, įvairovę, aš tikrai noriu užduoti tik vieną klausimą. Kas jūs, profesoriau Knutai?

Matematikas? Knyga „Konkreti matematika. Kompiuterių mokslo pagrindai“, kurio bendraautorius yra Donaldas Knuthas, Ronaldas Grahamas ir Orenas Patashnikas, yra pagrįstas to paties pavadinimo paskaitų kursu Stanfordo universitete. Nemaža jo dalis vienaip ar kitaip pakartoja „Programavimo meno“ pirmojo tomo skyriaus „Matematinis įvadas“ turinį. Žodžiai „konkreti matematika“ yra net ne žodžių žaismas, o sąvokomis, kurias profesorius Knuthas labai mėgsta. Tai NUOLATINĖS ir DISKRETOS matematikos derinys. Taip pat yra neįkyri žinia tikslinei auditorijai: tai knyga praktikams, sprendžiantiems konkrečias problemas. Yra kontrastas tarp taikomosios ir abstrakčios matematikos...

Tačiau svarbu tai, kad tai nėra esminis matematinis darbas, skirtas tiems, kurie nori studijuoti šį dalyką. Tai pagrindinis vadovėlis. Kelios frazės iš įvado: „Kas iš tikrųjų yra konkreti matematika? Tai prasmingas matematinių formulių veikimas, naudojant tam tikrus uždavinių sprendimo metodų rinkinius... Pirmenybė čia bus teikiama techninei reikalo pusei, o ne egzistencijos teoremoms ir kombinatoriniam samprotavimui“. Knygoje yra apie 500 savarankiško sprendimo užduočių (beje, su tvarkingu jų autorių ir šaltinių sąrašu).

Po tam tikro kiekio absoliučiai suprantamo, nepaprastai suprantamo, puikiai parašyto teksto iš knygos šios problemos suvokiamos kaip šalto vandens kubilas už apykaklės. O jei atvirai, kaip tik ši profesoriaus Knutho knygų savybė sukelia maksimalią vidinę skaitančios publikos kovą. Bet tai leidžia mums atspėti atsakymą į pirmąjį klausimą...

Programuotojas? 1960 m. ką tik nukaldintas matematikos bakalauras Donaldas Knuthas rimtai ėmėsi programavimo. Ir jokių kvailių. Sistemos programavimas – kas gali būti šauniau? Jam taip pasisekė su ALGOL kompiliatoriaus projektu, kad 1962 m. Addison-Wesley pakvietė jį parašyti knygą apie kompiliatorius. Tuo pat metu jis pradėjo aktyviai dėstyti Kalifornijos technologijos instituto docentu.

Rengiant knygą pati leidinio koncepcija iš esmės pasikeitė. Autoriaus nebedomino ypatinga kompiliatorių kūrimo problema. Padedamas leidyklos, jis pradeda rengti septynių tomų monografiją „Programavimo menas“. 1965 metais buvo išleistas pirmasis tomas... Trijų tomų Knutho knyga pasirodė kaip Addisono-Wesley bestseleris. Dviejų tūkstantųjų kiekvieno tomo tiražas buvo išpirktas per mėnesį, pradedant pirmuoju tiražu ir tęsiant dešimt metų. Knygos išverstos į 5 užsienio kalbas, įskaitant rusų. Šlovė tiesiogine prasme krito ant jauno profesoriaus. O 1979 m. jis gavo Nacionalinį mokslo medalį iš prezidento Carterio...

Būtent tada Donaldas Knuthas paėmė „laiką“ ir vėl – penkerius metus – grįžo prie programavimo. Rezultatas buvo TEX ir METAFONT, o kartu ir nauja programavimo koncepcija, pavadinta „Literate Programming“. („Kompetentas programavimas“. Dažnai galima rasti neteisingą vertimą „Literatūrinis programavimas“... O, šis profesorius yra kalambūrų ir neišverčiamų vardų mėgėjas...)

1986 m. per šventę Addison-Wesley mieste Knuthas paskelbė, kad jam prireiks dviejų dešimtmečių, kad užbaigtų likusius keturis tomus. Po trylikos metų, 1999 m., jis paskelbė, kad ketina glaudžiai dirbti su kitais dviem tomais, o siekdamas padidinti monografijos aktualumą, planuoja perrašyti visus knygose pateiktus aprašymus ir pavyzdžius asamblėjos kalba apie „moraliai pasenusias“. ” virtualus kompiuteris MIX 1009, į kalbą modernesnis RISC procesorius MMIX 2009. Šiam tikslui Donaldas Knuthas sukūrė šio virtualaus procesoriaus architektūrą, parašė simuliatorių ir surinkėją.

Kas įdomu: be išimties visi „Programavimo meno“ tomai buvo sutikti visuomenėje su didžiausia pagarba. „Whip“ buvimas kiekvieno programuotojo namų bibliotekoje buvo laikomas savaime suprantamu dalyku. Tačiau nedaugelis programinės įrangos kūrėjų iš tikrųjų gauna naudos iš šių knygų. Priežastis? Taip, tas pats: ten viskas pastatyta praktinio mokymo principu. Reikia spręsti problemas... Trumpai tariant, kai kuriais skaičiavimais, šimtui Knuto savininkų, kurie iš tikrųjų studijavo šias knygas, tenka vos keliolika... Turbūt visi prisimena, kaip juokavo (juokavo?) Billas Gatesas. apie tai.

Kartą interviu su Peteriu Seibeliu, knygos „Koduotojai darbe. Pamąstymai apie programuotojo amatą“, – prisipažino Donaldas Knuthas: „Sužinojau daug naujų dalykų... Visų pirma, kiek smegenų resursų sunaudoja programinės įrangos kūrimas. Negalėjau dėstyti visą darbo dieną ir būti programinės įrangos kūrėju. Bet galėčiau dėstyti visu etatu ir rašyti knygas visu etatu“...

Tai yra užuomina į antrąjį mūsų klausimą...

Programinės įrangos laisvės kovotojas? 1994 metais Donaldas Knuthas netikėtu kampu grįžo prie klausimo apie programavimo ir matematikos ryšį. Kartu su kitais mokslininkais jis bandė inicijuoti procesą, skirtą peržiūrėti patentų praktiką JAV programinės įrangos patentavimo srityje. Nepavyko... Nei šį kartą, nei 2009 m., kai vėl bandė daryti įtaką patentų politikai, šį kartą Europoje. Nepaisant to, profesoriaus Knutho pilietinė pozicija neabejotinai nusipelno pagarbos.

Tai labai aiškiai nurodyta jo laiške Vašingtono patentų ir prekių ženklų komisarui, kuriame iš dalies teigiama:

„Norėčiau jūsų paprašyti persvarstyti dabartinę skaičiavimo procesų patentų išdavimo politiką... Nuo 1945 iki 1980 metų buvo visuotinai priimta, kad patentų teisė programinei įrangai netaikoma. Tačiau dabar atrodo, kad kai kurie žmonės yra įgiję labai praktinės svarbos algoritmų (pvz., Ziv suspaudimo ir RSA viešojo rakto šifravimo) patentus, kurie šiuo metu teisiškai riboja kitiems programuotojams galimybę naudoti šiuos algoritmus... Bijau, kad šis pakeitimas bus žalinga visuomenei.

Man sako, kad teismai bando atskirti matematinius algoritmus nuo nematematinių. Informatikos specialistui tai neturi prasmės, nes kiekvienas algoritmas yra matematinis. Algoritmas yra abstrakti sąvoka, nesusijusi su fiziniais Visatos dėsniais.

Idėja priimti įstatymus, kai kuriuos su matematika susijusius algoritmus, o kai kuriuos ne, man primena XIX amžiaus bandymus Indianos valstijoje priimti įstatymą, kad apskritimo perimetro ir skersmens santykis buvo tikslus. 3, o ne apytiksliai 3,1416 ... Arba bažnyčios dekretas, kad Saulė sukasi aplink Žemę. Ar galite įsivaizduoti, kas atsitiktų, jei pavieniai teisininkai patentuotų savo gynybą, o Aukščiausiojo Teismo teisėjai galėtų patentuoti savo precedentus? Šiandien aš tvirtai tikiu, kad tendencija patentuoti algoritmus naudinga nedaugeliui teisininkų ir išradėjų ir daro didelę žalą didžiajai daugumai žmonių, norinčių su kompiuteriais atlikti naudingų dalykų...“



Ar jums patiko straipsnis? Pasidalinkite su draugais!