• Aide
  • Eurêkoi Eurêkoi

Livre

Apprendre à programmer avec OCaml : algorithmes et structures de données

Résumé

Manuel d'algorithmique fondamentale destiné à l'apprentissage du langage de programmation moderne OCaml, comprenant trois parties : la programmation OCaml, la structuration des données, les techniques algorithmiques et applications. ©Electre 2014


  • Autre(s) auteur(s)
  • Éditeur(s)
  • Date
    • DL 2014
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (XII-429 p.) : ill. ; 23 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-212-13678-4
  • Indice
  • Quatrième de couverture
    • Un langage de programmation moderne

      La connaissance de l'algorithmique (dont le but est de choisir l'algorithme le plus élégant et le plus efficace en toute circonstance) est ce qui distingue en premier lieu le programmeur avancé de celui qui débute. Cet ouvrage d'algorithmique fondamentale choisit le langage de programmation moderne OCaml, pris comme modèle par Microsoft pour concevoir F#, afin d'initier le lecteur à cet outil puissant alliant expressivité, performance et sûreté. OCaml est également l'un des fers de lance de l'institut de recherche public Inria depuis une vingtaine d'années.

      Un livre incontournable pour débuter avec OCaml

      C'est pourquoi cet ouvrage propose une véritable initiation à ce langage, à la fois aux débutants en programmation et aux programmeurs plus expérimentés qui ne le connaissent pas. À travers plus de 100 petits programmes et près de 200 exercices associés, le lecteur découvrira également les concepts fondamentaux de la programmation et du langage OCaml.

      À qui s'adresse ce livre ?

      Ce livre peut également servir de manuel d'initiation à la programmation OCaml pour les élèves des classes préparatoires aux grandes écoles qui ont choisi de se spécialiser en informatique - voies MPSI, MP ou MPx -, et les étudiants en informatique à l'université. En plus des passionnés d'algorithmique, il intéressera tous les développeurs avancés souhaitant se tourner vers un langage de programmation fonctionnel, tel que Scala, F#, Scheme, Lisp, etc.


  • Tables des matières
      • Apprendre à programmer avec OCaml

      • Algorithmes et structures de données

      • Sylvain Conchon et Jean-Chistophe Filliâtre

      • Eyrolles

      • Avant-proposXI
      • Première partie
        Programmation avec OCaml1
      • Chapitre I
        Environnements de travail3
      • 1.1 Compilateur et interprète3
      • 1.2 Premier programme avec OCaml4
      • 1.3 Environnements de programmation5
      • 1.4 Installation de bibliothèques OCaml6
      • Chapitre 2
        Débuter avec OCaml en programmant7
      • 2.1 Années bissextiles7
      • 2.2 Méthode de Monte-Carlo15
      • 2.3 Dessin d'une cardioïde25
      • 2.4 Ensemble de Mandelbrot29
      • 2.5 Crible d'Ératosthène36
      • 2.6 Tracé de courbe42
      • 2.7 Copie d'un fichier53
      • 2.8 Renverser les lignes d'un texte60
      • 2.9 Conversion d'entiers en base quelconque67
      • 2.10 Un casse-briques sans briques76
      • 2.11 Tortue Logo87
      • 2.12 Jouer une partition de musique95
      • 2.13 Arbres quaternaires105
      • 2.14 Résoudre le problème des N reines110
      • 2.15 Exercices122
      • Chapitre 3
        Approfondir les concepts d'OCaml135
      • 3.1 Algorithme de typage135
      • 3.2 Modèle d'exécution139
      • 3.3 Analyser le temps d'exécution d'un programme146
      • 3.4 Exercices150
      • Deuxième partie
        Structures de données151
      • Chapitre 4
        Tableaux153
      • 4.1 Tableaux redimensionnables153
      • 4.2 Tableaux de bits159
      • 4.3 Cordes168
      • 4.4 Tableaux persistants184
      • 4.5 Exercices189
      • Chapitre 5
        Ensembles et dictionnaires195
      • 5.1 Arbres binaires de recherche196
      • 5.2 AVL203
      • 5.3 Tables de hachage214
      • 5.4 Arbres de préfixes224
      • 5.5 Arbres de Patricia233
      • 5.6 Exercices245
      • Chapitre 6
        Files251
      • 6.1 Files impératives251
      • 6.2 Files persistantes256
      • 6.3 Files de priorité impératives259
      • 6.4 Files de priorité persistantes268
      • 6.5 Exercices272
      • Chapitre 7
        Graphes277
      • 7.1 Matrice d'adjacence279
      • 7.2 Listes d'adjacence283
      • 7.3 Dictionnaire d'adjacence285
      • 7.4 Comparatif290
      • 7.5 Exercices291
      • Chapitre 8
        Classes disjointes295
      • 8.1 Principe295
      • 8.2 Réalisation297
      • 8.3 Exercices301
      • Chapitre 9
        Le zipper305
      • 9.1 Zipper pour les listes305
      • 9.2 Zipper pour les arbres309
      • 9.3 Curseurs316
      • 9.4 Exercices320
      • Troisième partie
        Techniques algorithmiques et applications323
      • Chapitre 10
        Arithmétique325
      • 10.1 Algorithme d'Euclide325
      • 10.2 Exponentiation rapide327
      • 10.3 Calcul modulo328
      • 10.4 Calcul matriciel331
      • 10.5 Exercices334
      • Chapitre 11
        Programmation dynamique et mémoïsation339
      • 11.1 Principe339
      • 11.2 Mémoïsation systématique344
      • 11.3 Différences entre mémoïsation et programmation dynamique347
      • 11.4 Hash-consing349
      • 11.5 Exercices354
      • Chapitre 12
        Algorithmes de tri357
      • 12.1 Tri par insertion358
      • 12.2 Tri rapide361
      • 12.3 Tri fusion368
      • 12.4 Tri par tas374
      • 12.5 Complexité optimale380
      • 12.6 Évaluation expérimentale381
      • 12.7 Exercices389
      • Chapitre 13
        Algorithmes sur les graphes393
      • 13.1 Parcours en largeur394
      • 13.2 Parcours en profondeur396
      • 13.3 Plus court chemin399
      • 13.4 Arbre couvrant de poids minimal408
      • 13.5 Exercices412
      • Bibliographie423
      • Index425

  • Origine de la notice:
    • FR-751131015
  • Disponible - 681.25 CON

    Niveau 3 - Informatique