Donald e Whip'i programlama sanatı. “Programlama Sanatı” - efsanevi kitap serisinin incelemesi

] Yazar: Knut Donald Ervin (Donald Ervin Knuth). Bilimsel yayın. İngilizceden R.M.'ye çeviri. Kuznets, O.A. Makhovaya, N.V. Tretyakov, Yu.V. Tyumentsev, I.A. tarafından düzenlendi. Çark. Sanatçı I.I. Kulikova.
(Moskova: Yayınevi "Mir", Yayınevi "ACT", 2003. - Seri "Yayın Teknolojileri Kütüphanesi")
Tarama, işleme, Djv formatı: ???, sağlayan: Mikhail, 2016

  • KISA İÇERİK:
    Çeviri Editörünün Önsözü (5).
    Önsöz (11).
    Kaynaklara bağlantılar (16).
    Bölüm 1. Bilgisayarla yazdırma (19).
    Bölüm 2. Matematiksel tipografi (36).
    Bölüm 3. Paragrafların düzeni (79).
    Bölüm 4. Sağdan sola ve soldan sağa okunan metinlerin birleşimi (167).
    Bölüm 5. Tarifler ve Kesirler (187).
    Bölüm 6. Çeşitli yazı tiplerinde TEX sistemi logosu (192).
    Bölüm 7. Favori sayfaların oluşturulması (194).
    Bölüm 8. Jill için yazılan makrolar (196).
    Bölüm 9. Cumartesi Sabahı Problemi (205).
    Bölüm 10. TEX: Program (207) kitabı için alıştırmalar.
    Bölüm 11. Kendi kendini belgeleyen programlar için mini işaretçiler (235).
    Bölüm 12. Sanal yazı tipleri. Gerçek ustalar için eğlence (256).
    Bölüm 13. S harfi (273).
    14. Bölüm. Hint yazısıyla ilk tanışmam (293).
    Bölüm 15. Metafont Kavramı (296).
    Bölüm 16. METRFONT'tan Dersler (321).
    Bölüm 17. AMS Euler - yeni matematiksel yazı tipi (344).
    Bölüm 18. Somut Matematik kitap seti (369).
    Bölüm 19. METAFONT'e (381) üzerinde programlama öğretme deneyiminden.
    Bölüm 20. Metafont Punk (393).
    Bölüm 21. Ayrık yarı tonlar için yazı tipleri (415).
    Bölüm 22. Nokta difüzyonunu kullanarak yarı tonları sayısallaştırma (447).
    Bölüm 23. Açıların Sayısallaştırılmasıyla İlgili Notlar (469).
    Bölüm 24. TEXDR.AFT (477).
    Bölüm 25. TEX.ONE (506).
    Bölüm 26. TEX'in incunabula'sı (539).
    Bölüm 27. TEX"a ve METAFONT"a için piktogramlar (552).
    Bölüm 28. Bilgisayarlar ve kitap yayıncılığı (559).
    Bölüm 29. TEX"a ve METRFONT"a'nın (567) yeni versiyonları.
    Bölüm 30. TEX"a ve METRFONT"a'nın geleceği (576).
    Bölüm 31. Sorular ve Cevaplar, I (578).
    Bölüm 32. Sorular ve Cevaplar, II (604).
    Bölüm 33. Sorular ve Cevaplar, III (625).
    Bölüm 34. En son TEX hataları (651).
    Konu dizini (659).

Yayıncının özeti: D. Knuth'un dünyaca ünlü TEX ve metafont sistemlerinin oluşturulması üzerine yaptığı çalışmalar sırasında yazdığı ve bu konuyla ilgili son yıllardaki makaleleri de içeren eserlerinden oluşan bir koleksiyon. Kitap üç bölüme ayrılmış 34 bölümden oluşuyor: TEX ve ilgili konular; metafont ve ilgili konular; Tarihsel bir perspektiften TEX ve metafont. Zengin açıklayıcı materyal sunulur ve program listeleri sunulur.
D. Knuth'un tüm kitaplarında olduğu gibi, çok ciddi konular basit ve ilgi çekici bir şekilde sunuluyor; bu da kitabın disiplinler arası odağı göz önüne alındığında, onu çeşitli bilim alanlarındaki uzmanlar için erişilebilir kılıyor.
Kitap, çalışmalarını bağımsız olarak yayına hazırlayan tüm uzmanlık alanlarındaki bilim adamlarının, bilgisayar bilimi ve yayıncılık sistemleri alanındaki uzmanların yanı sıra standart dışı uygulamalarla ilgilenen matematikçilerin ilgisini çekmektedir.

Donald Knuth'un bilgisayar bilimi alanında temel bir çalışma olan efsanevi monografisi “Programlama Sanatı”na kısa bir genel bakış.

Cilt 1. Temel Algoritmalar

Birinci cilt, temel programlama kavramlarını ve tekniklerini açıklayan, temel algoritmalara ve veri yapılarına giriş niteliğindedir. Verilerin bilgisayar belleğinde temsil edilmesi ve onunla etkin bir şekilde çalışılması konusu da burada tartışılmaktadır.

Kitap sembolik hesaplama, sayısal yöntemler, simülasyon yöntemleri ve çok daha fazlasına ilişkin örneklerle doludur.

Örnek programlar, varsayımsal bir "MIX bilgisayarında" çalışmak üzere tasarlanmış, "MIX assembler" adı verilen bir dille yazılmıştır. Üçüncü baskı, eski MIX'i, onu taklit edecek yazılımın mevcut olduğu MMIX ile değiştirdi.

Düşük seviyeli bir dilin kullanılması birçok okuyucunun cesaretini kırıyor, ancak yazarın kendisi de seçimini iyi bir sebeple haklı çıkarıyor. Mimariyle bağlantı kurmak, algoritmanın hız ve karmaşıklık (yani bellek kullanımı) gibi özelliklerini değerlendirmemize olanak tanır.

Cilt 2. Türetilmiş algoritmalar

İkinci kitap yarı sayısal algoritmalara giriş niteliğindedir. Aritmetik, rastgele sayılar ve bunların oluşturulması için algoritmalara ayrı bir bölüm ayrılmıştır. Yarı sayısal algoritmalar teorisinin temelleri çok sayıda örnekle desteklenerek verilmektedir.

Bu baskıda Knuth tarafından önerilen rasgele sayı üreteçlerinin yeni yorumunun yanı sıra biçimsel güç serilerini kullanan hesaplama yöntemlerinin dikkate alınması özel olarak anılmayı hak ediyor.

Cilt 3. Sıralama ve arama

Cilt 3, klasik sıralama ve arama algoritmalarına kapsamlı bir genel bakış sağlar. Bu materyal, ilk bölümde sunulan veri yapılarıyla ilgili bilgileri tamamlayarak, ilk cildin bir nevi mantıksal devamı haline geliyor.

Burada yazar iç ve dış bellekten, büyük ve küçük veritabanları oluşturmaktan ve onlarla çalışmaktan bahsediyor. Kitapta tartışılan tüm algoritmaların etkinliklerinin karşılaştırmalı bir analizi sunulmaktadır. Optimum sıralama yöntemlerine ve yeni permütasyon ve evrensel karma teorisinin tanımına özel bir bölüm ayrılmıştır.

Cilt 4. Birleşik Algoritmalar

Dördüncü cildin kendisi çok ciltli bir settir. Kombinatoryal arama zengin ve önemli bir konudur ve Knuth bir veya iki (hatta belki üç) cilde sığmayacak kadar çok yeni, ilginç ve faydalı materyal sunmaktadır. Tek başına bu kitap, bağımsız çalışma için cevapları olan yaklaşık 1.500 alıştırmanın yanı sıra başka hiçbir yayında bulamayacağınız yüzlerce yararlı gerçeği içerir.

İsim: Programlama Sanatı - Cilt 1.

Programlama Sanatı kitap serisinin ilk cildi, programlamanın temel kavram ve yöntemlerinin açıklanmasıyla başlıyor. Yazar daha sonra bilgi yapılarını, bilginin bilgisayardaki temsilini, veri öğeleri arasındaki yapısal ilişkileri ve bunlarla etkili bir şekilde çalışmanın yollarını ele almaya devam ediyor. Simülasyon yöntemleri, sembolik hesaplamalar, sayısal yöntemler ve yazılım geliştirme yöntemleri için temel uygulamalara örnekler verilmiştir. Önceki baskıyla karşılaştırıldığında onlarca basit ama aynı zamanda çok önemli algoritmalar eklendi. Modern araştırma yönlerine uygun olarak, matematiksel giriş bölümü önemli ölçüde revize edilmiştir.

Her kitabın kendi kaderi vardır. Bazıları fark edilmeden ortaya çıkıyor ve zamanın akışında fark edilmeden kayboluyor, kütüphanelerin raflarında tozla kaplanıyor. Diğerleri, yeni referans kitapları ile değiştirilinceye kadar, dar bir uzman çevresi arasında belirli bir süre talep görmektedir. Zamanın üzerinde yükselen diğerleri ise toplumun teknolojik gelişimi üzerinde güçlü bir etkiye sahiptir. İkinci kategoriye giren çok fazla kitap yok. Dünyadaki görünümleri her zaman bir tatildir. Yıllar geçiyor, teknolojiler değişiyor ama yeni nesiller sayfalarını sürekli ilgiyle yeniden okuyor. Ünlü Amerikalı bilim adamı Donald Erwin Knuth'un okuyucuya sunduğu çok ciltli çalışması "Programlama Sanatı" tam da bu tür kitaplara aittir.
D. E. Knuth'un Programlama Sanatının başarısı nedir:
Öncelikle bu kitap bilgisayar algoritmalarının tasarımı ve analizi üzerine mükemmel bir ders kitabıdır. Bölümleri programlama teknolojileri, algoritma teorisi ve ayrık matematik üzerine birçok üniversite dersine dahil edilebilir. Kitap aynı zamanda programlamanın temellerine aşina olan lise öğrencileri tarafından da okunabilir. Yazar, kayıt algoritmaları için ana dil olarak varsayımsal MIX evrensel bilgisayarın makine komut dilini seçti. Bu, bilgisayarların özelliklerini dikkate alarak en uygun programları oluşturmanıza olanak tanır. MIX programlarını gerçek bilgisayarlara aktarmak veya üst düzey dillerde yeniden yazmak özellikle zor değil. Bir programın mantığı neredeyse her zaman basit blok şemalar kullanılarak açıklanır.
İkinci olarak, kitapta yer alan özenle seçilmiş materyal, programlama pratiğinde şu veya bu şekilde en sık bulunan ana temel algoritma sınıflarını içerir.
Üçüncüsü, D. E. Knuth'un kitabının başarısında önemli bir faktör sunumun ansiklopedik doğasıdır. Profesör Knuth, bir sorunun tarihsel geçmişinden mevcut durumuna kadar izini sürme konusunda eşsiz bir yeteneğe sahiptir. Modern bir bağlamda yer alan eski ustaların (antik çağlara kadar) eserlerine yapılan çok sayıda atıf, okuyucuda bilimsel fikir ve yöntemlerin tarihsel gelişimine özel bir katılım duygusu yaratır.

E-kitabı uygun bir formatta ücretsiz indirin, izleyin ve okuyun:
Programlama Sanatı - Cilt 1 - Knut D. E. - fileskachat.com kitabını indirin, hızlı ve ücretsiz indirin.

Djvu'yu indirin
Aşağıda bu kitabı Rusya genelinde teslimatla indirimli olarak en iyi fiyata satın alabilirsiniz.

Yuri Romanov

10 Ocak 1938 Milwaukee'de (Wisconsin, ABD) doğdu Donald Erwin Knuth. Bugün 76 yaşına girdi. Biyografisi yaşadığı ve çalıştığı şehirlerin ve ülkelerin isimlerinden oluşan uzun bir liste içermiyor. Matematik eğitimi almış, 1960 yılında Case Teknoloji Enstitüsü'nden mezun olmuş, üç yıl sonra Kaliforniya Teknoloji Enstitüsü'nde matematik doktoru olmuş ve 1968'den beri Stanford Üniversitesi'nde profesör olarak ders vermektedir.

1990 yılında, kendisini tamamen kendisi için seçtiği ana çalışmaya adamak için erken emekli oldu; planlanan yedi ciltten yalnızca üçü ve ilk bölümü olan "Bilgisayar Programlama Sanatı" temel monografisini yazdı. dördüncüsü ışığı gördü.

Bugün Donald Knuth, Stanford'da ve St. Petersburg da dahil olmak üzere dünyanın çeşitli yerlerindeki birçok üniversitede bilgisayar bilimleri alanında fahri profesördür. Bilgisayar Makineleri Derneği'nden Grace Murray Hopper Ödülü'nü, prestijli Turing Ödülü'nü, ABD Ulusal Bilimsel Liyakat Madalyası'nı, Harvey Ödülü'nü, Kyoto Ödülü'nü, Elektrik ve Elektronik Mühendisleri Enstitüsü Ödülü'nü ve ABD Matematik Derneği'ni aldı. Ödül. Knuth 19 monografi ve 160 makale yayınladı.
TEX ve METAFONT matematiksel yayınlarının yayınlanmasına yönelik programların yaratıcısıdır. Geçtiğimiz yıl, bilimsel yayınlar için CiteSeer indeksleme sistemine göre bilgisayar bilimleri alanında en çok alıntı yapılan yazarlar listesinde 37. sırada yer aldı.

Bu kadar çok sayıda resmi tanınma belirtisinde ilginç olan şey: Matematik camiasının temsilcileri ve programcıların ustaya karşı tutumu beklenenden çok uzak - coşkulu. Yapılanların değeri ve yapılanların önemi konusunda elbette hiçbir saygısızlık ve şüphe yoktur. Ama çok fazla ödev verilen öğrencilerin ve hatta okul çocuklarının deneyimlerinde bazı şeyler var. Ancak "kendi" BT çalışanlarımızın yanı sıra, patent hakları alanında uzmanlar ve özel mülk ve özgür yazılım destekçilerinin kalıcı "savaşına" katılanlar da var; bunlar, Donald Knuth'un argümanlarına katılmak veya katılmamak için kendi nedenleri var. .. Tüm bu kaynayan kelime ve görüş çeşitliliğinin, günün kahramanımızın konuştuğu ve yazdığına dair bakış açıları ve değerlendirmelerin arka planına karşı, gerçekten tek bir soru sormak istiyorum. Kimsin sen Profesör Knut?

Matematikçi?“Beton Matematik” kitabı. Donald Knuth, Ronald Graham ve Oren Patashnik'in ortak yazarı olduğu Bilgisayar Biliminin Temelleri"nin Stanford Üniversitesi için aynı adı taşıyan bir derse dayandığı biliniyor. Önemli bir kısmı, “Programlama Sanatı” nın ilk cildinin “Matematiksel Giriş” bölümünün içeriğini bir dereceye kadar tekrarlıyor. "Somut matematik" kelimeleri bir kelime oyunu bile değil, Profesör Knuth'un çok sevdiği kavramlar üzerine bir oyun. Bu SÜREKLİ ve AYRIK matematiğin bir birleşimidir. Ayrıca hedef kitleye göze çarpmayan bir mesaj da var: Bu, belirli sorunları çözen uygulayıcılara yönelik bir kitaptır. Uygulamalı ve soyut matematik arasında bir karşıtlık var...

Ancak önemli olan bu çalışmanın, konuyu incelemek isteyenlere yönelik temel bir matematik çalışması olmamasıdır. Bu temel bir ders kitabıdır. Giriş'ten birkaç cümle: “Somut matematik tam olarak nedir? Bu, problemleri çözmek için belirli yöntemler kullanan matematiksel formüllerin anlamlı bir işlemidir... Burada varlık teoremleri ve kombinatoryal akıl yürütme yerine konunun teknik yönü tercih edilecektir.” Kitap, bağımsız bir çözüm için yaklaşık 500 görev içeriyor (bu arada, yazarlarının ve kaynaklarının düzgün bir listesiyle).

Kitaptan belli bir miktar kesinlikle anlaşılır, son derece anlaşılır, zekice yazılmış metinlerden sonra, bu sorunlar yaka tarafından soğuk su dolu bir küvet gibi algılanıyor. Ve dürüst olmak gerekirse, okuyan halkın maksimum iç mücadelesine neden olan da Profesör Knuth'un kitaplarının bu özelliğidir. Ama ilk sorumuzun cevabını tahmin etmemizi sağlıyor...

Programcı? 1960 yılında, matematik alanında yeni mezun olan Donald Knuth, programlamaya ciddi bir şekilde başladı. Ve aptal yok. Sistem programlama - daha havalı ne olabilir? ALGOL derleyici projesinde o kadar başarılı oldu ki, 1962'de Addison-Wesley onu derleyiciler hakkında bir kitap yazmaya davet etti. Aynı zamanda Kaliforniya Teknoloji Enstitüsü'nde yardımcı doçent olarak aktif öğretmenliğe başladı.

Kitap üzerinde çalışma sürecinde yayın kavramının kendisi de temel değişikliklere uğradı. Yazar artık derleyici oluşturmanın özel sorunuyla ilgilenmiyordu. Yayınevinin desteğiyle yedi ciltlik “Programlama Sanatı” adlı monografiyi hazırlamaya başlar. 1965'te ilk cildi yayınlandı... Knuth'un üç ciltlik kitabı Addison-Wesley'in en çok satan kitabı oldu. Her cildin iki bininci tirajı, ilk baskıdan başlayarak on yıl boyunca bir ayda tükendi. Kitaplar Rusça dahil 5 yabancı dile çevrildi. Şöhret tam anlamıyla genç profesörün üzerine düştü. Ve 1979'da Başkan Carter'dan Ulusal Bilim Madalyasını aldı...

İşte o zaman Donald Knuth bir "mola" aldı ve beş yıl boyunca tekrar programlamaya geri döndü. Sonuç olarak TEX ve METAFONT ortaya çıktı ve aynı zamanda "Okur-yazar Programlama" adı verilen yeni bir programlama konsepti ortaya çıktı. (“Yetkili programlama.” Çoğu zaman yanlış bir çeviri olan “Edebiyat programlaması” bulabilirsiniz... Ah, bu profesör kelime oyunlarına ve tercüme edilemeyen isimlere bayılıyor...)

1986'da Addison-Wesley'deki bir galada Knuth, kalan dört cildi tamamlamanın yirmi yıl süreceğini duyurdu. On üç yıl sonra, 1999'da, sonraki iki cilt üzerinde yakın çalışmayı planladığını ve monografinin ilgisini artırmak için kitaplarda verilen tüm açıklamaları ve örnekleri "ahlaki açıdan köhnemiş"in montaj diliyle yeniden yazmayı planladığını duyurdu. ” sanal bilgisayar MIX 1009'u, daha modern bir dil olan RISC işlemcisi MMIX 2009'a dönüştürdü. Bu amaçla Donald Knuth, bu sanal işlemcinin mimarisini geliştirdi, bir simülatör ve birleştirici yazdı.

İlginç olan: “Programlama Sanatı”nın istisnasız tüm ciltleri halk tarafından büyük bir saygıyla karşılandı. Her programcının ev kütüphanesinde “Kırbaç”ın varlığı hafife alınmaya başlandı. Ancak çok az yazılım geliştiricisi bu kitaplardan gerçekten yararlanıyor. Neden? Evet, aynı şey: Oradaki her şey pratik eğitim ilkesi üzerine inşa edilmiştir. Sorunları çözmemiz gerekiyor... Kısacası, bazı tahminlere göre, bu kitapları gerçekten okuyan her yüz Knut sahibine karşılık, neredeyse bir düzine yok... Muhtemelen herkes Bill Gates'in nasıl şaka yaptığını hatırlıyor (şaka mı yapıyordu?) bu konuda.

Bir keresinde “Coders at Work” kitabının yazarı Peter Seibel ile röportajda. Bir programcının zanaatı üzerine düşünceler," diye itiraf etti Donald Knuth: "Pek çok yeni şey öğrendim... Özellikle de yazılım geliştirmenin ne kadar beyin kaynağı tükettiği. Aynı anda hem tam zamanlı öğretmenlik hem de tam zamanlı yazılım geliştiricisi olamadım. Ama tam zamanlı ders verebilirim ve tam zamanlı kitap yazabilirim”...

Bu ikinci sorumuza bir ipucu...

Yazılım özgürlüğü savaşçısı mı? 1994 yılında Donald Knuth programlama ve matematik arasındaki ilişki sorusuna beklenmedik bir açıdan geri döndü. Diğer bilim adamlarıyla birlikte Amerika Birleşik Devletleri'ndeki yazılım patentlemeyle ilgili patent uygulamalarını gözden geçirmek için bir süreç başlatmaya çalıştı. İşe yaramadı... Ne bu sefer, ne de 2009'da, bu kez Avrupa'da patent politikasını yeniden etkilemeye çalıştığında. Yine de Profesör Knuth'un yurttaşlık duruşu şüphesiz saygıyı hak ediyor.

Bu, Washington D.C. Patent ve Ticari Markalar Komiseri'ne yazdığı mektupta oldukça açık bir şekilde ifade edilmiştir; bu mektupta kısmen şunlar ifade edilmektedir:

“Bilgisayar süreçlerine patent verilmesine ilişkin mevcut politikayı yeniden düşünmenizi rica ediyorum... 1945'ten 1980'e kadar, patent yasasının yazılıma uygulanmadığı genel olarak kabul ediliyordu. Ancak, bazı kişilerin, şu anda diğer programcıların bu algoritmaları kullanmasını yasal olarak kısıtlayan, büyük pratik öneme sahip algoritmalar (Ziv sıkıştırması ve RSA genel anahtar şifrelemesi gibi) üzerinde patentler aldıkları görülüyor... Korkarım bu değişiklik olacak toplum için zararlıdır.

Bana mahkemelerin matematiksel algoritmalar ile matematiksel olmayanlar arasında ayrım yapmaya çalıştığı söylendi. Bu bir bilgisayar bilimci için hiçbir anlam ifade etmez çünkü her algoritma matematikseldir. Algoritma, Evrenin fiziksel yasalarıyla ilgili olmayan soyut bir kavramdır.

Bazı algoritmaların matematikle ilgili olduğu, bazılarının ise ilgisiz olduğu yasaları geçirme fikri bana 19. yüzyılda Indiana eyaletinde bir dairenin çevresinin çapına oranının tam olarak eşit olduğunu söyleyen bir yasa çıkarma girişimlerini hatırlatıyor. 3 ve yaklaşık 3.1416 değil ... Veya Güneş'in Dünya'nın etrafında döndüğüne dair kilise kararı. Avukatlar bireysel olarak savunmalarının patentini alsaydı ve Yüksek Mahkeme yargıçları da içtihatlarının patentini alabilseydi ne olacağını hayal edebiliyor musunuz? Bugün, algoritmaların patentlenmesine yönelik eğilimin az sayıda avukat ve mucit için fayda sağladığına ve bilgisayarlarla faydalı şeyler yapmak isteyen insanların büyük çoğunluğuna ciddi şekilde zarar verdiğine kesinlikle inanıyorum..."



Makaleyi beğendin mi? Arkadaşlarınızla paylaşın!