• Aide
  • Eurêkoi Eurêkoi

Livre

Fondements de la programmation : concepts et techniques

Résumé

Un ouvrage cernant, au travers d'exemples, plus de 120 programmes documentés et décortiqués, ainsi que quelques concepts essentiels de la programmation. ©Electre 2014


  • Autre(s) auteur(s)
  • Éditeur(s)
  • Date
    • DL 2014
  • Notes
    • Bibliogr. p. [249]-251. Index
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (259 p.) : ill., couv. ill. en coul.; ; 24 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-340-00014-8
  • Indice
    • 681.2 Programmation (généralités)
  • Quatrième de couverture
    • Cet ouvrage, à l'usage de tout informaticien, du programmeur à l'ingénieur, a pour but de fixer plus profondément un certain nombre de concepts de programmation. Ce livre n'est pas un manuel de programmation au sens traditionnel. On n'y trouvera pas l'habituelle litanie des arcanes syntaxiques de tel ou tel langage, d'abord parce qu'il ne se focalise pas sur un langage en particulier et ensuite parce qu'il ne se préoccupe pas de ces questions largement traitées par ailleurs. Son but est de cerner au travers d'exemples très nombreux, plus de 120 programmes documentés et décortiqués, quelques concepts essentiels de la programmation :

      • les notions de variables, pointeurs, références, tableaux et structures qui prennent des formes variées et s'utilisent différemment selon les langages
      • le concept de fonctions, appels de fonctions, transmissions de paramètres et renvois de valeurs
      • la structure de pile et ses usages
      • la récursion, ses différentes formes, ses avantages et inconvénients.

      L'approche proposée est volontairement pragmatique, presque aucun formalisme n'est utilisé. Il s'agit d'écrire des programmes dans divers langages couramment utilisés (principalement Java, C, C++ mais pas seulement) illustrant des concepts, de les traduire vers une machine virtuelle simple permettant de comprendre comment ces constructions s'incarnent en machine et donc quels sont leurs impacts sur l'exécution des programmes : performance ou fiabilité par exemple. Par conséquent, le lecteur, qu'il soit débutant ou confirmé, sera par la suite capable de faire des choix bien éclairés et de mieux conduire sa conception de programmes.

      Les codes sources des programmes peuvent être retrouvés sur Internet à partir des pages des auteurs.


  • Tables des matières
      • Fondements de la programmation

      • Concepts et techniques

      • Jean-Marie Rifflet/Jean-Baptiste Yunès

      • Ellipses

      • 1 Exécution d'un programme 11
      • 1.1 Logigrammes16
      • 1.2 Traduction d'une séquence16
      • 1.3 Traduction d'un branchement inconditionnel20
      • 1.4 Traduction d'un branchement conditionnel22
      • 1.5 Traduction d'une boucle ou itération30
      • 1.6 Exercices40
      • 2 Variables, adresses, pointeurs et références 41
      • 2.1 Variables et références en Java41
      • 2.1.1 Variables de type primitif42
      • 2.1.2 Variables et tableaux : références43
      • 2.1.3 Variables et objets : références47
      • 2.1.4 Manipulations de références49
      • 2.2 Variables, adresses et pointeurs en C52
      • 2.2.1 Variables primitives et structurées : adresses53
      • 2.2.2 Pointeurs et adresses55
      • 2.2.3 Tableaux, adresses et arithmétique des pointeurs58
      • 2.2.4 Pointeurs, tas : l'allocation dynamique62
      • 2.3 Variables, adresses, pointeurs et références en C++65
      • 2.3.1 Pointeurs, tas : l'allocation dynamique65
      • 2.3.2 Références66
      • 2.4 Exercices67
      • 3 Implantation de la mémoire 69
      • 3.1 Variables statiques et zone statique70
      • 3.1.1 Variables statiques du langage C71
      • 3.1.2 Variables statiques du langage Java76
      • 3.1.3 Variables statiques du langage C++79
      • 3.2 Pointeurs80
      • 3.2.1 Pointeurs du C, C++ ou Pascal81
      • 3.2.2 Pointeurs fous83
      • 3.3 Allocation dynamique et tas87
      • 3.4 Tableaux95
      • 3.4.1 Tableaux en C et C++96
      • 3.4.2 Tableaux en Java101
      • 3.5 Références104
      • 3.5.1 Références de C++104
      • 3.5.2 Références et objets de Java108
      • 3.6 Constantes112
      • 3.6.1 Constantes en C et C++113
      • 3.6.2 Constantes en Java117
      • 3.6.3 Exercices119
      • 4 Fonctions et modes de transmission de paramètres 121
      • 4.1 Paramètres, signature, prototype, polymorphisme121
      • 4.2 Correction d'un appel122
      • 4.2.1 Correction en C123
      • 4.2.2 Correction en Java124
      • 4.2.3 Correction en C++, surcharge128
      • 4.3 Modes de transmission des paramètres128
      • 4.3.1 Transmission de paramètres en Java130
      • Transmission d'un paramètre de type primitif130
      • Transmission d'une variable référence en Java132
      • Transmission de tableaux en Java134
      • 4.3.2 Transmission de paramètres en C135
      • Transmission d'une variable de type primitif135
      • Transmission d'une variable de type pointeur137
      • Transmission de tableaux en C139
      • 4.3.3 Transmission de paramètres en C++143
      • Appel par référence143
      • Variables constantes et références145
      • 4.3.4 Transmission de paramètres en Fortran149
      • 4.3.5 Transmission de paramètres en Pascal151
      • 4.3.6 Transmission de paramètre en Scala152
      • 4.4 Valeurs de retour et mode de transmission154
      • 4.4.1 Valeur de retour en Java155
      • 4.4.2 Valeur de retour en C++155
      • 4.5 Exercices158
      • 5 Implantation du mécanisme d'appel de fonctions 159
      • 5.1 Concept de pile160
      • 5.1.1 Implémentation d'une pile en C161
      • 5.1.2 Utilisation d'une pile en Java163
      • 5.1.3 Pile et expression arithmétique164
      • 5.2 Pile et appel de fonction165
      • 5.2.1 Bloc d'activation (stack frame)166
      • 5.2.2 Exemple d'appel simple167
      • 5.2.3 Bloc d'activation généralisé171
      • 5.2.4 Appel par valeur174
      • 5.2.5 Appel par référence178
      • 5.2.6 Unification des mémoires : la RAM181
      • 5.3 Exercices185
      • 6 Récursion 187
      • 6.1 Types récursifs188
      • 6.1.1 Liste en Java190
      • 6.1.2 Liste en C194
      • 6.2 Fonctions récursives197
      • 6.2.1 Entiers de Peano198
      • 6.2.2 Suite de Fibonacci202
      • 6.2.3 Arbre des appels205
      • 6.2.4 Fractales207
      • 6.2.5 Récursion croisée212
      • 6.3 Exercices218
      • 7 Élimination de la récursion 221
      • 7.1 Élimination de la récursion terminale222
      • 7.1.1 Récursion terminale224
      • 7.1.2 Accumulation récursive225
      • 7.1.3 Élimination de la récursion terminale227
      • 7.1.4 Un cas plus compliqué229
      • 7.2 Fonction à mémoire ou mémoïsation232
      • 7.3 Rebroussement236
      • 7.4 Exercices243
      • Programmes 245
      • Bibliographie 249
      • Index 253

  • Origine de la notice:
    • Electre
  • Disponible - 681.2 RIF

    Niveau 3 - Informatique