L'art de programmer Donald E Whip. "L'art de la programmation" - une critique de la légendaire série de livres

] Auteur : Knut Donald Ervin (Donald Ervin Knuth). Publication scientifique. Traduction de l’anglais par R.M. Kuznets, O.A. Makhovaïa, N.V. Tretiakov, Yu.V. Tyumentsev, édité par I.A. Volant. Artiste I.I. Koulikova.
(Moscou : Maison d'édition « Mir », Maison d'édition « ACT », 2003. - Série « Bibliothèque des technologies d'édition »)
Scan, traitement, format Djv : ???, fourni par : Mikhail, 2016

  • BREF CONTENU :
    Préface de l'éditeur de traduction (5).
    Préface (11).
    Liens vers les sources (16).
    Chapitre 1. Impression informatique (19).
    Chapitre 2. Typographie mathématique (36).
    Chapitre 3. Disposition des paragraphes (79).
    Chapitre 4. Combinaison de textes lus de droite à gauche et de gauche à droite (167).
    Chapitre 5. Recettes et fractions (187).
    Chapitre 6. Logo du système TEX dans différentes polices (192).
    Chapitre 7. Génération de pages favorites (194).
    Chapitre 8. Macros écrites pour Jill (196).
    Chapitre 9. Problème du samedi matin (205).
    Chapitre 10. Exercices pour le livre TEX : Le programme (207).
    Chapitre 11. Mini-pointeurs pour les programmes auto-documentés (235).
    Chapitre 12. Polices virtuelles. Divertissement pour les vrais maîtres (256).
    Chapitre 13. Lettre S (273).
    Chapitre 14. Ma première connaissance de l'écriture indienne (293).
    Chapitre 15. Le concept Metafont (296).
    Chapitre 16. Leçons de METRFONT (321).
    Chapitre 17. AMS Euler - nouvelle police mathématique (344).
    Chapitre 18. Ensemble de livres de mathématiques concrètes (369).
    Chapitre 19. De l'expérience de l'enseignement de la programmation sur METAFONT"e (381).
    Chapitre 20. Metafont Punk (393).
    Chapitre 21. Polices pour demi-teintes discrètes (415).
    Chapitre 22. Numérisation des demi-teintes par diffusion ponctuelle (447).
    Chapitre 23. Notes sur la numérisation des angles (469).
    Chapitre 24. TEXDR.AFT (477).
    Chapitre 25. TEX.ONE (506).
    Chapitre 26. Les incunables de TEX (539).
    Chapitre 27. Pictogrammes pour TEX"a et METAFONT"a (552).
    Chapitre 28. Ordinateurs et édition de livres (559).
    Chapitre 29. Nouvelles versions de TEX"a et METRFONT"a (567).
    Chapitre 30. L'avenir de TEX"a et METRFONT"a (576).
    Chapitre 31. Questions et réponses, I (578).
    Chapitre 32. Questions et réponses, II (604).
    Chapitre 33. Questions et réponses, III (625).
    Chapitre 34. Dernières erreurs TEX (651).
    Index des sujets (659).

Résumé de l'éditeur : Une collection d'œuvres de D. Knuth, écrites lors de ses travaux sur la création des systèmes TEX et métafontes de renommée mondiale, qui comprend également des articles de ces dernières années sur ce sujet. Le livre se compose de 34 chapitres, divisés en trois parties : TEX et sujets connexes ; métafonte et problèmes associés ; TEX et métafonte dans une perspective historique. Un riche matériel illustratif est présenté et des listes de programmes sont fournies.
Comme dans tous les livres de D. Knuth, des questions très sérieuses sont présentées de manière simple et engageante, ce qui, compte tenu de l'orientation interdisciplinaire du livre, le rend accessible aux spécialistes de divers domaines scientifiques.
Le livre intéresse les scientifiques de toutes spécialités qui préparent indépendamment leurs travaux pour publication, les spécialistes dans le domaine de l'informatique et des systèmes de publication, ainsi que les mathématiciens intéressés par les applications non standard.

Un bref aperçu de la monographie légendaire de Donald Knuth « The Art of Programming » - un ouvrage fondamental dans le domaine de l'informatique.

Volume 1. Algorithmes de base

Le premier volume est une introduction aux algorithmes de base et aux structures de données, décrivant les concepts et techniques de programmation de base. Le sujet de la représentation des données dans la mémoire de l'ordinateur et de leur utilisation efficace est également abordé ici.

Le livre regorge d'exemples de calcul symbolique, de méthodes numériques, de méthodes de simulation et bien plus encore.

Les exemples de programmes sont écrits dans ce qu'on appelle « l'assembleur MIX », un langage conçu pour fonctionner sur un hypothétique « ordinateur MIX ». La troisième édition a remplacé l'ancien MIX par MMIX, pour lequel un logiciel existe pour l'émuler.

L'utilisation d'un langage de bas niveau décourage de nombreux lecteurs, mais l'auteur lui-même justifie son choix avec raison. La liaison à l'architecture nous permet de juger des caractéristiques de l'algorithme telles que la vitesse et la complexité (c'est-à-dire l'utilisation de la mémoire).

Volume 2. Algorithmes dérivés

Le deuxième livre est une introduction aux algorithmes semi-numériques. Une section distincte est consacrée à l'arithmétique, aux nombres aléatoires et aux algorithmes pour leur génération. Les bases de la théorie des algorithmes semi-numériques sont données, appuyées par de nombreux exemples.

La nouvelle interprétation des générateurs de nombres aléatoires proposée par Knuth dans cette édition, ainsi que la considération des méthodes de calcul utilisant les séries formelles de puissances, méritent une mention particulière.

Volume 3. Tri et recherche

Le volume 3 fournit un aperçu complet des algorithmes classiques de tri et de recherche. Ce matériel complète les informations sur les structures de données présentées dans la première partie, devenant une sorte de suite logique du premier volume.

Ici, l'auteur parle de mémoire interne et externe, de la création de grandes et petites bases de données et de leur utilisation. Pour tous les algorithmes abordés dans le livre, une analyse comparative de leur efficacité est fournie. Une section spéciale est consacrée aux méthodes de tri optimales et à une description de la nouvelle théorie de la permutation et du hachage universel.

Volume 4. Algorithmes combinés

Le quatrième volume est lui-même un ensemble multi-volumes. La recherche combinatoire est un sujet riche et important, et Knuth fournit trop de matériel nouveau, intéressant et utile pour tenir dans un ou deux (ou peut-être même trois) volumes. Ce livre comprend à lui seul environ 1 500 exercices avec réponses pour un travail indépendant, ainsi que des centaines de faits utiles que vous ne trouverez dans aucune autre publication.

Nom: Les arts de la programmation - Volume 1.

Le premier volume de la série de livres The Art of Programming commence par une description des concepts et méthodes de base de la programmation. L'auteur examine ensuite les structures de l'information, la représentation de l'information dans un ordinateur, les relations structurelles entre les éléments de données et les moyens de les utiliser efficacement. Des exemples d'applications élémentaires sont donnés pour les méthodes de simulation, les calculs symboliques, les méthodes numériques et les méthodes de développement de logiciels. Par rapport à l’édition précédente, des dizaines d’algorithmes simples mais en même temps très importants ont été ajoutés. Conformément aux orientations modernes de la recherche, la section d'introduction mathématique a été considérablement révisée.

Chaque livre a son propre destin. Certains passent inaperçus et disparaissent tout aussi imperceptiblement au fil du temps, se recouvrant de poussière sur les étagères des bibliothèques. D'autres sont recherchés pendant un certain temps parmi un cercle restreint de spécialistes, jusqu'à ce qu'ils soient remplacés par de nouveaux ouvrages de référence. D’autres encore, s’élevant au-delà du temps, exercent une puissante influence sur le développement technologique de la société. Il n’y a pas beaucoup de livres qui entrent dans cette dernière catégorie. Leur apparition dans le monde est toujours un jour férié. Les années passent, les technologies changent, mais les nouvelles générations relisent leurs pages avec un intérêt constant. L'ouvrage en plusieurs volumes proposé au lecteur par le célèbre scientifique américain Donald Erwin Knuth, « The Art of Programming », appartient précisément à ces livres.
Quel est le succès de l’Art of Programming de D. E. Knuth :
Premièrement, ce livre est un excellent manuel sur la conception et l’analyse d’algorithmes informatiques. Ses sections peuvent être incluses dans de nombreux cours universitaires sur les technologies de programmation, la théorie des algorithmes et les mathématiques discrètes. Le livre peut également être lu par des lycéens familiarisés avec les bases de la programmation. L'auteur a choisi le langage de commande machine de l'hypothétique ordinateur universel MIX comme langage principal pour l'enregistrement des algorithmes. Cela vous permet de créer des programmes optimaux en tenant compte des caractéristiques des ordinateurs. Transférer des programmes MIX sur de vrais ordinateurs ou les réécrire dans des langages de haut niveau n'est pas particulièrement difficile. La logique d’un programme est presque toujours expliquée à l’aide de simples schémas fonctionnels.
Deuxièmement, le matériel soigneusement sélectionné inclus dans le livre comprend les principales classes fondamentales d'algorithmes, qui, sous une forme ou une autre, se retrouvent le plus souvent dans la pratique de la programmation.
Troisièmement, un facteur important dans le succès du livre de D. E. Knuth est la nature encyclopédique de la présentation. Le professeur Knuth possède une capacité unique à retracer un problème depuis son contexte historique jusqu’à son état actuel. De nombreuses références aux œuvres de maîtres anciens (jusqu'à l'Antiquité), placées dans un contexte moderne, créent chez le lecteur un sentiment particulier d'implication dans le développement historique des idées et des méthodes scientifiques.

Téléchargez gratuitement le livre électronique dans un format pratique, regardez et lisez :
Téléchargez le livre The Art of Programming - Volume 1 - Knut D. E. - fileskachat.com, téléchargement rapide et gratuit.

Télécharger Djvu
Ci-dessous, vous pouvez acheter ce livre au meilleur prix avec une réduction avec livraison dans toute la Russie.

Youri Romanov

10 janvier 1938 Né à Milwaukee (Wisconsin, États-Unis) Donald Erwin Knuth. Aujourd'hui, il a eu 76 ans. Sa biographie ne contient pas une longue liste de noms de villes et de pays où il a vécu et travaillé. Mathématicien de formation, il est diplômé du Case Institute of Technology en 1960, trois ans plus tard, il devient docteur en mathématiques au California Institute of Technology et, depuis 1968, il enseigne à l'Université de Stanford, professeur.

En 1990, il prend une retraite anticipée pour se consacrer entièrement à l'œuvre principale qu'il s'est choisie : écrire la monographie fondamentale « L'art de la programmation informatique », sur les sept volumes prévus, dont seulement trois et la première partie du le quatrième a vu la lumière.

Aujourd'hui, Donald Knuth est professeur émérite d'informatique à Stanford et dans plusieurs universités du monde entier, dont Saint-Pétersbourg. Il a reçu le prix Grace Murray Hopper de l'Association for Computing Machinery, le prestigieux prix Turing, la médaille nationale américaine du mérite scientifique, le prix Harvey, le prix Kyoto, le prix de l'Institute of Electrical and Electronics Engineers et l'US Mathematical Association. Prix. Knuth a publié 19 monographies et 160 articles.
Il est le créateur de programmes de publication de publications mathématiques TEX et METAFONT. L'année dernière, il a été classé 37e sur la liste des auteurs les plus cités dans le domaine de l'informatique selon le système d'indexation des publications scientifiques CiteSeer.

Ce qui est intéressant avec une telle abondance de signes officiels de reconnaissance : l'attitude envers le maître de la part des représentants de la communauté mathématique et des programmeurs est loin de ce qu'on pourrait attendre - enthousiaste. Bien entendu, il n’y a aucune irrévérence ni aucun doute quant à la valeur de ce qui a été fait et à l’importance de ses mérites. Mais il y a quelque chose du vécu d'étudiants ou même d'écoliers à qui on donne trop de devoirs. Mais à côté de « nos » informaticiens, il y a des spécialistes dans le domaine des droits de brevet et des participants à la « bataille » permanente des partisans du logiciel propriétaire et du logiciel libre, qui ont leurs propres raisons d'être d'accord ou en désaccord avec les arguments de Donald Knuth. .. Dans le contexte de toute cette diversité bouillonnante de mots et de points de vue, de points de vue et d'évaluations sur ce dont parle et écrit notre héros du jour, je veux vraiment poser une seule question. Qui êtes-vous, Professeur Knut ?

Mathématicien? Le livre « Mathématiques concrètes. Foundations of Computer Science », co-écrit par Donald Knuth, Ronald Graham et Oren Patashnik, est connu pour être basé sur un cours du même nom pour l'Université de Stanford. Une partie importante de celui-ci, à un degré ou à un autre, reprend le contenu du chapitre « Introduction mathématique » du premier volume de « L'Art de la programmation ». Les mots « mathématiques concrètes » ne sont même pas un jeu de mots, mais plutôt un jeu de concepts que le professeur Knuth affectionne beaucoup. Il s'agit d'une combinaison de mathématiques CONTINUES et DISCRÈTES. Il y a également un message discret destiné au public cible : il s'agit d'un livre destiné aux praticiens résolvant des problèmes spécifiques. Il y a un contraste entre les mathématiques appliquées et abstraites...

Mais ce qui est important, c’est qu’il ne s’agit pas d’un ouvrage mathématique fondamental destiné à ceux qui souhaitent étudier le sujet. Il s'agit d'un manuel fondamental. Quelques phrases de l’introduction : « Qu’est-ce que les mathématiques concrètes exactement ? Il s'agit d'une opération significative de formules mathématiques utilisant certains ensembles de méthodes pour résoudre des problèmes... La préférence sera ici donnée à l'aspect technique de la question, plutôt qu'aux théorèmes d'existence et au raisonnement combinatoire. Le livre contient environ 500 tâches pour une solution indépendante (d'ailleurs, avec une liste soignée de leurs auteurs et sources).

Après une certaine quantité de textes du livre absolument compréhensibles, extrêmement intelligibles et brillamment écrits, ces problèmes sont perçus comme une baignoire d'eau froide par le col. Et pour être honnête, c’est précisément cette caractéristique des livres du professeur Knuth qui provoque la plus grande lutte interne du public lecteur. Mais cela nous permet de deviner la réponse à notre première question...

Programmeur? En 1960, Donald Knuth, fraîchement diplômé en mathématiques, se lance sérieusement dans la programmation. Et pas d'imbéciles. Programmation système - quoi de plus cool ? Il connut un tel succès avec le projet de compilateur ALGOL qu'en 1962, Addison-Wesley l'invita à écrire un livre sur les compilateurs. Parallèlement, il commence à enseigner activement en tant que professeur adjoint au California Institute of Technology.

Au cours du travail sur le livre, le concept même de la publication a subi des changements fondamentaux. L'auteur ne s'intéressait plus au problème particulier de la création de compilateurs. Avec le soutien de la maison d’édition, il commence à préparer une monographie en sept volumes, « The Art of Programming ». En 1965, le premier volume fut publié... Le livre en trois volumes de Knuth s'est avéré être un best-seller d'Addison-Wesley. Le deux millième tirage de chaque volume s'est vendu en un mois, en commençant par la première édition et en continuant pendant dix ans. Les livres ont été traduits en 5 langues étrangères, dont le russe. La renommée est littéralement tombée sur le jeune professeur. Et en 1979, il a reçu la Médaille nationale de la science des mains du président Carter...

C'est alors que Donald Knuth a pris une « pause » et est revenu à nouveau - pendant cinq ans - à la programmation. Le résultat fut TEX et METAFONT, et aussi - en cours de route - un nouveau concept de programmation appelé "Literate Programming". (« Programmation compétente. » On trouve souvent une traduction incorrecte « Programmation littéraire »... Oh, ce professeur est un amateur de jeux de mots et de noms intraduisibles...)

En 1986, lors d'un gala à Addison-Wesley, Knuth annonça qu'il lui faudrait deux décennies pour terminer les quatre volumes restants. Treize ans plus tard, en 1999, il annonçait son intention de travailler en étroite collaboration sur les deux volumes suivants, et pour accroître la pertinence de la monographie, il envisageait de réécrire toutes les descriptions et exemples donnés dans les livres en langage assembleur du « moralement obsolète ». " L'ordinateur virtuel MIX 1009, dans un langage plus moderne du processeur RISC MMIX 2009. À cet effet, Donald Knuth a développé l'architecture de ce processeur virtuel, a écrit un simulateur et un assembleur.

Ce qui est intéressant : sans exception, tous les volumes de « The Art of Programming » ont été accueillis par le public avec le plus grand respect. La présence de Knut dans la bibliothèque personnelle de chaque programmeur a commencé à être considérée comme allant de soi. Mais peu de développeurs de logiciels bénéficient réellement de ces livres. Cause? Oui, c'est la même chose : tout y est construit sur le principe de la formation pratique. Nous devons résoudre les problèmes... Bref, selon certaines estimations, pour cent propriétaires de Knut qui ont effectivement étudié ces livres, il y en a à peine une douzaine... Tout le monde se souvient probablement de la façon dont Bill Gates plaisantait (est-ce qu'il plaisantait ?) à propos de ça.

Une fois dans une interview avec Peter Seibel, auteur du livre « Coders at Work. Réflexions sur le métier de programmeur », a admis Donald Knuth : « J'ai appris beaucoup de nouvelles choses... En particulier, combien de ressources cérébrales le développement de logiciels consomme. Je ne pouvais pas enseigner à plein temps et être développeur de logiciels à plein temps en même temps. Mais je pourrais enseigner à plein temps et écrire des livres à plein temps »...

Ceci est un indice pour notre deuxième question...

Combattant de la liberté logicielle ? En 1994, Donald Knuth revenait sur la question des relations entre programmation et mathématiques sous un angle inattendu. Avec d'autres scientifiques, il a tenté de lancer un processus visant à revoir la pratique des brevets aux États-Unis en matière de brevetage de logiciels. Cela n’a pas fonctionné… Ni cette fois-ci, ni en 2009, lorsqu’il a de nouveau tenté d’influencer la politique des brevets, cette fois en Europe. Néanmoins, la position civique du professeur Knuth mérite sans aucun doute le respect.

Cela ressort très clairement de sa lettre adressée au commissaire aux brevets et aux marques de Washington, D.C., qui déclare notamment :

« Je voudrais vous demander de reconsidérer la politique actuelle d'octroi de brevets sur les processus informatiques... De 1945 à 1980, il était généralement admis que le droit des brevets ne s'appliquait pas aux logiciels. Cependant, il apparaît maintenant que certaines personnes ont obtenu des brevets sur des algorithmes d'une grande importance pratique (comme la compression Ziv et le cryptage à clé publique RSA), ce qui restreint actuellement légalement l'utilisation de ces algorithmes par d'autres programmeurs... J'ai peur que ce changement soit néfaste pour la société.

On me dit que les tribunaux tentent de faire la différence entre les algorithmes mathématiques et les algorithmes non mathématiques. Cela n’a aucun sens pour un informaticien car tout algorithme est mathématique. Un algorithme est un concept abstrait sans rapport avec les lois physiques de l'Univers.

L'idée d'adopter des lois, certains algorithmes liés aux mathématiques, et d'autres non, me rappelle les tentatives au 19ème siècle dans l'État de l'Indiana d'adopter une loi selon laquelle le rapport entre la circonférence d'un cercle et son diamètre était exactement 3, et non approximativement 3.1416... Ou le décret de l'Église selon lequel le Soleil tourne autour de la Terre. Pouvez-vous imaginer ce qui se passerait si les avocats individuels brevetaient leurs défenses et si les juges de la Cour suprême pouvaient breveter leurs précédents ? Aujourd'hui, je crois fermement que la tendance à breveter les algorithmes profite à un petit nombre d'avocats et d'inventeurs et nuit gravement à la grande majorité des gens qui veulent faire des choses utiles avec les ordinateurs..."



Avez-vous aimé l'article? Partage avec tes amis!