Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
29 octobre 2009 4 29 /10 /octobre /2009 15:28


Un langage de programmation est un langage informatique, permettant à un être humain d'écrire un code source qui sera analysé par une machine, généralement un ordinateur. Le code source subit ensuite une transformation ou une évaluation dans une forme exploitable par la machine, ce qui permet d'obtenir un programme. Les langages permettent souvent de faire abstraction des mécanismes bas niveaux de la machine, de sorte que le code source représentant une solution puisse être rédigé et compris par un être humain.

L'activité de rédaction du code source d'un programme est nommée programmation. Elle consiste en la mise en œuvre de techniques d'écriture et de résolution d'algorithmes informatiques, lesquelles sont fondées sur les mathématiques. À ce titre, un langage de programmation se distingue du langage mathématique par sa visée opérationnelle (une fonction et par extension, un programme, doit retourner une valeur), de sorte qu'un « langage de programmation est toujours un compromis entre la puissance d'expression et la possibilité d'exécution.[1] »

Généralités

D'un point de vue mathématique, un langage de programmation est un langage formel. Ce langage formel est construit sur un alphabet : les symboles utilisés dans le langage. Dans cet alphabet on trouve plusieurs choses :

  • des mots-clé,
  • des caractères correspondant à des opérateurs (par exemple =,<,& ...),
  • des lettres et chiffres,
  • d'autres caractères (comme les accolades, les crochets, ;_ ...).

L'assemblage de ces symboles forment des mots du langage de programmation : des programmes. Pour qu'un mot appartienne au langage, il doit vérifier certaines contraintes. Ces contraintes peuvent être exprimées grâce à la théorie des langages dans une grammaire formelle : c'est la syntaxe du langage de programmation.

En associant une sémantique à un langage de programmation, on définit le comportement de la machine qui sera associé aux différentes construction du langage.

Suivant le langage utilisé, un programme peut être directement interprété à l'aide d'un interprète, ou doit être compilé vers un autre langage qui pourra être compris par la machine. Il existe deux types de compilation : la compilation vers un langage machine (ou natif), qui sera exécuté directement par le processeur, et la compilation vers un langage intermédiaire (ou bytecode), qui sera exécuté par une machine virtuelle.

D'un point de vue pratique, un langage de programmation permet l'écriture de programmes par un être humain. Le programmeur n'a pas besoin de connaître le langage machine, dit de bas niveau, pour écrire un programme. Le langage de programmation fournit donc une abstraction de haut niveau pour communiquer avec une machine.

Il existe des milliers de langages de programmation, la plupart d'entre eux étant réservés à des domaines spécialisés. Ils font l'objet de recherches constantes dans les universités et dans l'industrie.

Historique des langages de programmation

Particularités des langages de programmation

Les langages de programmation sont tous différents. Ils présentent des particularités, qui font qu'une solution exprimée dans un certain langage peut ressembler à une solution exprimée dans un autre langage. Si c'est le cas, on dit que les langages utilisent le même paradigme ou style. Deux programmes fournissant la solution au même problème, mais écrits avec des paradigmes différents, seront fondamentalement très différents.

Ci-après sont listés certaines caractéristiques courantes parmi les langages de programmation avec des exemples de langages présentant ces caractéristiques.

Toutefois de nombreux langages appartiennent simultanément à plusieurs catégories — ils sont dits « multi-paradigmes ». Par exemple, C++ permet la programmation impérative, orientée objet et la programmation générique (à base de classes et de fonctions paramétrées nommées templates). Common Lisp est à la fois impératif, fonctionnel, orienté objet — et son caractère « programmable » (un langage de programmation programmable…) lui permet d'intégrer d'autres « paradigmes » de programmation en son sein (par exemple : la programmation logique et la programmation par contraintes).

Langages impératifs

Article détaillé : Programmation impérative.

Les langages machines sont pour la plupart des langages impératifs. C'est pourquoi les premiers langages de programmation sont également impératifs : une instruction du langage correspond à un ensemble d'instructions du langage machine. Les structures de données et opérations sont plus complexes qu'au niveau de la machine, mais le paradigme suivi est le même.

Parmi les langages impératifs figurent COBOL, Fortran, Pascal ou encore le C.

Langages à objets

Article détaillé : Programmation orientée objet.

Les langages à objets répondent au besoin de concevoir des programmes complexes. L'objet est une structure élaborée qui permet de rassembler des données et des traitements. En se basant sur une méthode de conception à objet, et un langage de modélisation objet comme UML, on peut facilement transposer la conception dans une implantation avec un langage de programmation à objets.

Parmi les langages à objets sont généralement classés le C++ (une extension du langage C, permettant d'utiliser des objets, il n'est cependant pas purement un langage orienté objet), Python (très orienté objet, ce dernier ne respecte toutefois pas tous les principes de la programmation objet, comme l'encapsulation), Ruby. Ce dernier est un langage purement objet, c'est-à-dire que tout est objet, depuis les types de base, jusqu'à l'interprète ou les blocs d'instructions.

Langages fonctionnels [modifier]

Article détaillé : Programmation fonctionnelle.

Dans ce paradigme, l'opération de base n'est pas l'affectation contrairement aux langages impératifs, mais l'évaluation de fonctions. Ce paradigme est donc, entre autres, efficace pour modéliser des problèmes qui s'expriment par des valeurs de données, comme en mathématiques, et non pas des états qui changent au cours de l'exécution.

Certains langages fonctionnels, dit « purs », interdisent totalement les effets de bord, tels que la mutation des données. Dans ce cas là une variable est liée à une valeur non modifiable. D'autres, au contraire, intègrent des traits impératifs et des variables peuvent changer de valeur au cours de l'exécution.

On compte au nombre des langages fonctionnels :

Objective Caml 
langage fonctionnel et impératif,
Haskell 
langage fonctionnel pur à évaluation paresseuse,
Python 
propose certaines fonctionnalités du style fonctionnel, comme l'utilisation de fonctions lambda ou la compréhension de listes.

Langages déclaratifs

Article détaillé : Programmation déclarative.

Un langage déclaratif ne décrit pas comment est réalisée une opération, comme dans un langage impératif ; c'est au contraire le problème lui-même qui est décrit.

Figurent parmi les langages déclaratifs Oz, Prolog (pour PROgrammation LOGique), Mercury (en), basé sur Prolog, ou encore Clips.

Langages à pile

Ces langages ne manipulent que des piles de données. Les opérations sont effectuées sur les éléments du sommet d'une ou plusieurs piles.

Les langages Forth, Factor, PostScript, Joy, Cat ou RPL (HP 48) ressortent de cette catégorie.

Réflexivité

Article détaillé : Réflexivité (informatique).

On dit d'un langage de programmation qu'il est réflexif s'il permet, au moment de l'exécution, d'analyser, de modifier ou en général d'agir sur le fonctionnement interne du programme lui-même.

Le langage Smalltalk fut un précurseur dans le domaine de la réflexivité. Il a d'ailleurs fortement influencé bon nombre de langages réflexifs, tels que Io, Python, Ruby, Java ou Objective-C.

Concurrence

Article détaillé : Programmation concurrente.

La programmation concurrente consiste à découper un programme en plusieurs fils d'exécution distincts. La concurrence permet, entre autres, de simuler l'exécution de différentes tâches de façon simultanée. Par exemple, dans le cadre d'une interface graphique, elle permet d'effectuer des tâches en arrière plan sans pour autant bloquer l'affichage.

De plus la programmation concurrente permet parfois de tirer parti de ressources distribuées (multiples processeurs, cluster de machines, etc.), ou du système d'ordonnancement de processus du système d'exploitation.

Certains langages intègrent directement la concurrence dans leurs primitives. C'est le cas entre autres des langages Erlang et Concurrent ML. Plus souvent, pour les langages classiques, la concurrence est intégrée par l'intermédiaire de bibliothèques spécifiques. Ainsi, le langage C dispose entre autres de la bibliothèque des threads POSIX. De même, Java dispose d'une classe Thread dans ses bibliothèques standards.

Typage

Article détaillé : Typage.

Le typage est le fait d'attribuer un type aux éléments du code source comme par exemple des variables ou des fonctions. Un type est une catégorie d'objet mathématique ou sémantique, par exemple l'ensemble des entiers ou le type des fonction des listes vers les entiers.

Le genre de type que l'on trouve dans un langage de programmation dépend de sa sémantique (et donc de son paradigme). Par exemple, beaucoup de langages de programmation proposent la notion de variable. Une variable associe un nom à un "objet" et cet objet en question à un type.

Le typage peut être :

Explicite ou implicite 
On parle de typage explicite quand les types apparaissent explicitement dans le code source du programme, et de typage implicite quand ceux-ci n'apparaissent pas et sont déterminés par le compilateur ou l'interprète.
Fort ou faible 
Plus un typage est fort, plus les règles du langage sont strictes et interdisent dès la phase de compilation des manipulations entre données de types différents. On trouve souvent dans les langages typés faiblement la possibilité de faire du transtypage manuel (en anglais cast), ce qui permet de combler les lacunes du système automatique de typage.
Statique ou dynamique 
On parle de typage statique quand la vérification des types se fait dès la phase de compilation, et de typage dynamique lorsque celle-ci est faite durant l'exécution.

Par exemple, le typage du langage C est explicite, relativement fort (le compilateur peut générer des avertissements de typages, le transtypage manuel est permis, mais on peut effectuer n'importe quelle opération entre n'importe quels types sans transtypage), et statique. Le langage Objective Caml possède un typage implicite, fort et statique (son typeur est le fruit de nombreux travaux de recherche scientifique[2]).

Les langages fournissent parfois des mécanismes pour convertir une valeur d'un type en une valeur dans un autre type. Par exemple on peut convertir un entier en flottant sans aucune perte, par contre l'inverse n'est pas toujours possible. Il ne faut pas confondre la conversion avec le transtypage : le mécanisme de conversion transforme effectivement la donnée, par contre le transtypage se contente de modifier le type associé. Ce mécanisme peut être explicite ou implicite.

Exceptions

Article détaillé : Système de gestion d'exceptions.

Les exceptions sont des cas limites d'exécution du programme. Si elles sont détectées et gérées, le déroulement du programme est interrompu, et l'exception est traitée. Au contraire d'une erreur qui interrompt le programme de manière inappropriée, la gestion d'une exception permet d'interrompre proprement un programme, ou de repartir en corrigeant l'erreur.

La gestion des exceptions peut être différente selon les langages.

  • Elle peut être simplement inexistante (comme en C).
  • Elle peut offrir un simple signalement de l'exception (comme en C++ ou en Java).
  • Elle peut permettre des traitements plus complexes : par exemple la modification du programme par le programme lui-même (comme en Python) pour reprendre l'exécution "normalement".

Gestion de la mémoire

Les langages de programmation offrent plus ou moins de libertés au programmeur en ce qui concerne la gestion de la mémoire.

  • Certains langages la laissent entièrement sous le contrôle du développeur. Il doit alors gérer lui-même l'espace mémoire disponible, les allocations et libérations. C'est par exemple le cas en langage C.
  • Au contraire, tout peut être contrôlé par le compilateur ou par le moteur d'exécution. C'est le cas avec le langage Java : même s'il est possible de lui donner des directives, la machine virtuelle gère elle-même la mémoire, à l'aide d'un ramasse-miettes.
  • Certains langages proposent un système intermédiaire. En Objective-C par exemple, un système de plus haut niveau qu'en C est proposé pour gérer la mémoire. Il est cependant toujours possible de tout gérer soit-même. Il est également possible d'activer explicitement la gestion automatique de la mémoire.

Syntaxe

Outre les particularités sémantiques des langages, ils utilisent également des grammaires différentes, qui proposent cependant souvent des points communs. Les particularités syntaxiques ne sont souvent que des détails, qui ne changent pas les fonctionnalités proposées par les langages de programmation. Par exemple, dans Objective-C 2, il est possible d'utiliser les accesseurs avec deux syntaxes différentes :

  • object.message
  • ou [object message]

Le résultat est pourtant le même dans les deux cas.

Commentaires

Presque tous les langages de programmation permettent d'écrire des commentaires. Ce sont des parties du programmes qui n'apparaissent pas du tout dans le code produit à la compilation, ou qui ne sont pas interprétées. Les commentaires permettent de documenter le code source.

Par exemple :

  • En Bash, Python, Ruby (entre autres) : tout ce qui suit un # sur une ligne est un commentaire.
  • En C ou PL/SQL, tout ce qui est entre /* et */ est un commentaire.
  • En BASIC et dans les fichiers de commandes de Windows, la commande REM (ou ' qui est une abréviation - et le langage BASIC utilise beaucoup d'abréviations) est utilisée.

Indentation

L'indentation est l'utilisation d'espaces ou tabulations en début de ligne. Pour nombre de langages elle n'a pas d'incidence sur le fonctionnement du programme et ne sert qu'à rendre le code lisible. Pour certains, cependant, comme Python ou Haskell, l'indentation est significative, et même obligatoire. Par exemple, pour Python, l'indentation va servir à définir les sous-instructions d'une fonction, d'une classe ou encore d'un test conditionnel (instructions if, for, while...), alors que le langage C (ou Java) nécessite des accolades ouvrantes et fermantes { }.

Séparation des instructions

Pour distinguer une instruction de la suivante, il existe principalement deux approches :

  • soit la fin d'une instruction est marquée par un terminateur (un ; en C, Java, etc.) ;
  • soit il existe un séparateur d'instructions (un ; en Pascal, une fin de ligne en bash ou Python).

La nuance est importante, car en C la dernière instruction d'un bloc doit comprendre un ; (terminateur) alors qu'en Pascal, il est inutile, voire fautif, d'en mettre un (cela consiste à ajouter une instruction vide en fin de bloc). De même, le caractère ; peut-être utilisé en C comme instruction vide, ce qui n'aurait pas de sens en Pascal.

Les langages utilisant un terminateur sont réputés engendrer moins de fautes de syntaxe que ceux utilisant un séparateur.

Stratégie d'évaluation

Une stratégie d'évaluation est un ensemble de règles qui décrivent comment évaluer une expression dans un langage de programmation. En particulier, la stratégie d'évaluation définit à quel moment les arguments des fonctions et opérateurs sont évalués ou réduits.

On distingue essentiellement deux types de stratégies :

  • l'évaluation stricte. Dans cette stratégie les arguments des fonctions sont toujours évalués avant que la fonction ne soit appliquée.
  • l'évaluation paresseuse, ou évaluation retardée. Ici les arguments ne sont évalués que lorsque leur valeur est effectivement requise. Ce type d'évaluation est généralement utilisé dans les langages fonctionnels comme Haskell.

La plupart des langages ont un système d'évaluation stricte, et utilisent une forme d'évaluation paresseuse pour les expressions booléennes (évaluation court-circuit). Cependant, même si un langage a un système d'évaluation stricte, il est possible de simuler une évaluation paresseuse, ou d'utiliser des constructions spéciales. Par exemple Scheme fournit la fonction delay, qui retarde l'évaluation d'une expression, et force qui force l'évaluation.

Utilisations des langages de programmation

Dans cette section nous verrons que l'ont peut classer les langages de programmation, non pas en fonction des caractéristiques du langage formel utilisé, mais en fonction de leur utilisation. En effet, beaucoup de langages sont utilisés presque exclusivement dans un domaine particulier.

Langages de définition de données

Un langage de définition de données ne permet pas d'effectuer de traitement. Comme son nom l'indique, un langage de ce type permet de décrire des types abstraits de données (par exemple des listes, tuples, arbres …), et des instances de ces types de données. Par exemple, XML est un langage textuel permettant la représentation de données ayant une structure arborescente.

Langages de requête

Article détaillé : Langage de requête.


Les langages de requêtes sont destinés à interroger et à manipuler les bases de données. Par exemple SQL (pour Structured Query Language) est un langage de requête utilisé par un grand nombre de systèmes de gestion de bases de données tels que Oracle ou SQL Server.

Langages pour pages Web dynamiques

Voir la catégorie : Langage pour pages Web dynamiques.

Ce type de langages est utilisé pour dynamiser l'interaction entre un client et un serveur.

Du côté du serveur Web, cela permet de produire des pages au contenu dynamique, c'est à dire généré à chaque affichage voire modifié à la volée. Ces langages sont par ailleurs souvent couplés avec un langage pour communiquer avec des bases de données.

Côté client (en général le navigateur), les différents langages sont focalisés sur l'amélioration de l'interactivité de la page pour l'utilisateur. Par exemple, du code JavaScript peut être intégré directement au sein d'une page Web pour en modifier dynamiquement le contenu du côté client.

Par ailleurs, certains langages permettent de développer à la fois les aspects client et serveur. C'est le cas d'Ocsigen et de Hop.

Langages de programmation théorique

Voir la catégorie : Langage de programmation théorique.

On désigne parfois par langages de programmation théoriques les systèmes formels utilisés pour décrire de façon théorique le fonctionnement des ordinateurs. Ils ne servent donc pas à proprement parler à développer des applications pour ordinateurs, mais plutôt à représenter des modèles, pour ensuite démontrer certaines de leurs propriétés.

Parmi les plus anciens de ces formalismes, on peut citer la machine de Turing et le λ-calcul de Church, qui datent tous les deux des années 1930, et sont donc antérieurs à l'invention de l'ordinateur. Le λ-calcul a par la suite servi de base théorique à la famille des langages de programmation fonctionnelle.

Plus récemment, dans les années 1980, Robin Milner a mis au point le π-calcul pour modéliser les systèmes concurrents.

Pour rendre la programmation plus difficile

Article détaillé : Langage de programmation exotique.

Langages spécialisés

  • ABEL, langage pour la programmation électronique des PLD
  • CDuce, langage fonctionnel d'ordre supérieur pour la manipulation de documents au format XML.
  • Forme de Backus-Naur (BNF), formalisation des langages de programmation
  • PROMELA, langage de spécification de systèmes asynchrones
  • VRML, description de scènes en trois dimensions

Langages synchrones

Langages de programmation synchrones pour les systèmes réactifs

Langages à vocation pédagogique

Langages pour l'électronique numérique

  • Verilog, autre langage de description matérielle et de simulation, plus populaire aux États-Unis
  • VHDL, langage de description matérielle, permettant de synthétiser de l'électronique numérique (descriptions de portes logiques) et d'en simuler le fonctionnement
  • SystemC, langage de description matérielle de plus haut niveau que les précédents et permettant une simulation plus rapide

Langages pour la statistique

  • R, langage pour l'outil de statistiques du même nom
  • xLispStat, langage pour l'outil de statistiques du même nom

Langages de programmation de Commande Numérique (C.N.)

Article détaillé : Programmation de commande numérique.

Une machine-outil automatisée, ou Commande Numérique (C.N.), a besoin d'un langage de programmation pour réaliser les opérations de tournage, ou de fraisage

Langages de programmation des automates programmables industriels (API)

 

 

.

Partager cet article

Repost 0
Published by CHOMOLANGMA
commenter cet article

commentaires

Le Chevalier Dauphinois 02/11/2009 18:13


J'ai retrouvé l'artcicle de l'Obien avec ses notes en bas de page : http://syntone.over-blog.org/article-france-culture-40-ans-acr-entretien-avec-frank-smith-38466700.html


Le Chevalier Dauphinois 02/11/2009 17:59


Bien le bonjour
Par cette prose un peu hors sujet, je réponds à ta demande sur l'Ancre :
1 - Lorsque tu veux aller vers un autre article du blog, tu fais un lien. Ce lien amène toujours en haut de la page de cet article.
2 - Si tu veux aller à un endroit précis d'un autre article,  il faut bien sur faire un lien mais... demander d'aller à une certaine ligne, ou une un certain mot..... Cet endroit
d'accroche se nomme une ancre.
    Il y a un nombre illimité d'ancre par article....
Je l'ai illustré dans ma liste de château. En haut, il y a les 26 lettres de
l'alphabet qui sont 26 lien allant vers des ancres. En cliquant sur l'une d'entre elle, le lien va chercher l'ancre que j'ai nommée...
* par exemple B ira dans le même article mais sur l'ancre que j'ai affecté à B
* par exemple M ira dans un autre article (le classique lien) mais vers l'ancre que j'ai nommé M (par exemple)

Certains utilisent les ancres pour aller vers les notes en bas de page, et en bas de la page, le lien renvoie vers l'ancre dans le texte... il y a donc 2 ancres dans ce cas.
---> C'est un principe classique qui a de nombreuses aides sur le web.
.
Ai je été clair ?
.
En général, n'ayant pas un blog d'aide sur Over-Blog, je ne réponds pas aux demandes d'aide sur mon blog. Je participe au forum d'aide sur OB, mais je consacre mon blog et une grande partie de mon
temps à l'une de mes passions..... ;)


☼ Zorbax ☼

  • : CHOMOLANGMA
  • CHOMOLANGMA
  • : Réflexions sur le sens de la vie. Diversités culturelles et médiatiques.
  • Contact

ON EST QUAND???

Bonjour, nous sommes le

☼ Qui Cherche Trouve ☼

♫♪♪♫♪♫♪♫♪

Poussieres De Savoir ☼

POUSSEZ PAS !!!

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcSH1bqV_MZbKff7r4KH0YXDgokYKnPMVcS17_NVF7KeFFQmHvTYYQ

 

 

Depuis le 2 octobre 2008 ma paroisse a compté de fidèles :

 


Compteur Global


 

 

 

 

 

☼ Merci à vous tous ☼

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcRspNEZw03K2txVYJaQojtGiQPv2Ef2hRp76vnThpM_Xhg74AeH

 

 

   Et aussi, bien sûr, à notre superbe équipe  !!!!!!!...

 


☼ En Alcove ☼

☼♥☼♥☼


 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcTJQdwhuv8K2KE2fv7sAcLYqokJ6fOwOos7DPEsrBY_tOyjkmt9

 

 

 

 

  http://t2.gstatic.com/images?q=tbn:ANd9GcTwbpFmC0lwUUqRVtxAgfCeDB97ON6I9jGDIVmmGwpa1bg_oeiS8w



 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcQJFhyxpCtvTfrKTTq2Dnraqndo0k6KOOvR5B49c424W-RXGsXk

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcQ4lkR76RVvxlM2Pg0xGQLGN-vJ1IC1AeiO9YFoy0C2maJDnAlsEA

 

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcS3s1MTNys4JJ2XciWuydUFkX2s3uxVNEo4XLmDXWkNuzNwaF-I

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcRpmq_X4KGoOioCJ7IGFovNaZR1dl5V9wdd73SKUZoyRXImy8hQsA

 

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcT6vugj46xpPFClJ40ZcN_g83W39aPcCsnryaBlwulPqhMuSmHABA

 

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcS0rnZSUpbcqus_ag8-saWRw8BVp-nHBjwhG0FGGsPrBMTVGsKfUA

 

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcRiQjNvzjX7IEkfQYGG-KxW9pOVJoLjsP43P-wRgoCo6bmRIFfQ

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcSTia4A3P4_qwGWtAAvhY4S2BKgtk6tR_QCD3_DTBLqQwkYTLP7

 

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcRPAWH7AgJ7gN7ej2rrAa90b9jK2nWJtRcdmCSJLXifbDqpzt-GAQ

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcSnH3SFCsuDblli6D1AJMGBIO3SduYE7QocfhaOPh2CbcgSaTJm3g

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcS_x5rZOKIoXBMbTrRfiBoXYGA8_aG1puNXFnPK-vFSJb8S0TB-

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcT5xPsHZoCoc3Y10UzSIfZBJ1VM5yTf0rOp0z02qzAq29ZylEqp

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcSJYo3dfiA7rWKtAhGDKlIvNQBBfXfxpskBzCjE2VA_WnhL03zQ

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcRrs5cw6eknmiTVBcESn97krqvfndk10XJq35s-mUIxnoXepsHU2w

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcTtPoMny2WLrgyLYUkv0xzCHZ3BSe7txlE-Xe2XSz1rA4IRBQ-8

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcTzDbIU4QatTLNRgPQwPUcMDO8BtCGQMAkP46aQAp05yXC1m0y84g

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcS_sSIdV_qG7YiVCrY6Fze69BhzpdENouF0zUUp4OV8__EbU9Ad

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcQ9uJqfoOS-LjhgtT3qLp4AH34AojcYXzS6ifUoduwpXl2xR4cu

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcSBBpAVI8uqqXKRXeWLnFO9do5ObFZm7YxgxrJ7-EbHR2oDqLo0vQ

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcRDpZXNSZZorQeUMLz3DTA9hEU2rI_bxr_LT9c4T9nvHvAWTZjCGQ

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcQJxvHFLqQeIleqlsCzYw3aqr-0Y6eKQMVnyaA5me5hdAxIljVU

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcSC9dHlJXHSlla_xZ5T9EZytHwAWT-qbU_d19dTtxAXrGNihAXKlQ

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcR9uI2iDGC9O3GMDlf8NsxtxQx-Qp8sqHmOc5rb-zkptdYl27ct

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcRbZ3vVwEjZT_vYCN_egFTIwdBz6fqNL0Pg-y_Q61vxrmzGOpx_

 

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcQJ2rE3MpU2-7BbpUlr6UqYo4BmnNs_dvTC88BMslWtXGy7xpm4

 

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcQEpgxQwBFunGDiUIemTa46VNveEHAu-uA8FY-TsPaLWXJFd2s0

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcQTdXbqeHRkSO7KlYa4OkUya7gTOtG1LddYFWDuhmMG8TTBud38

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcTNv54UJcOf0QWIB4OraEz3h5BSPwvVpIDgtJO-zq0-MNAH1T-r

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcQQ4msZqs5YGyEvDc4xIBtl0glm2rQZ7LsilbzRNUFi1QmhSgwd

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcRadP8tzRToSi6YgV25tgPSiZuZH-m01ykcCd-vsvFtJOoai2ucTw

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcQWsJatoxZ24v32bG85ut1XPEPG4Fa5l6ApTX9VfC1X3_fQlO6t

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcSATYwKzSKWCjMx6cjBGrTkiC8C_lyJBimQ86hhDpKGyeWCgRFU5Q

 

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcRkni6wj2PqLxVIQnGL2w-Hh0Qdu5Q2vEiKSUXAJ7TKh9ePWQBm

 

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcQzo44WmwLEIvLwTyzq_jnCtqqHX6X_CIYel1kbk7vcUHUp-ieN

 

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcQJijg5RyUyd3NObMK9uNkIduA32k3nPJwfiuvaWrAi2Td5vyXO

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcSLXSS07G9gseceN7SeCwGRL0C6ij_75lYGEnDN1qwb_bEl9bGs

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcSgjOBb-AqrP0ZXPZSVl55yswE6dnD4uny-n0Xh-9mAuwm1GUq3

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcSZAb3DktAXiGznQlZB9az_nvD6AoLygDkDTstPDm_WBfLnJ3ltQg

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcRXwcTaTVudGTxMwVFFrGw1Z-j9x9D9inLKamTPCwUThDbPuEYpeA

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcTU6wtRoYw9X2-MMykBLzlVjXeRgi5rqzD5ck22QxWwI8h7QeNUQA

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcRpMUOK13Ots0UnbeCQLds3ixSZxNY9gFOfm65Bvc-pf6ZKAlWbzg

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcQhH-RzSe9GF29vGoZwod2tN7O-9mFfpWJX4bLt78JtJYMqI8w1rA

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcQxu-I9t3HJlWQ3e6bM41HAOc8j3Smoe-ahJN9OTRyzd6vOUOVF

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcQYkezUKlW0ttRviIW9f6NJHBcjJ-sUE4XMIic0ka6qkCguqsqWEQ

 

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcSLwoIa5Xuj4eEFEX5vzJFqlL0GIrwjAUDCWbZgf6ni2O6MUMuwHg

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcSmu_lhCfJa5L3JKT73eNWm5-DVlMMhgQ2zjDd5kmbF9S0PDwt0

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcTl9CWad5AcZHOfC-RgTWPbODkKY_C0DW3MZXkDUucqfvfZLDvJvQ

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcSSorC-n_GApivF90u5JfsOvUI44_E6pQ_gYw3Zv_SawrJlQ7U_OA

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcSHehPIU8WfymVyIehhOVdWyZ9Iby-7WygiZdxRqYoB6-t4uxfc

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcTHknIkIppczoDGtgqaDVGpF5vzTnPgO0XzesL14bXWKIidntgi

 

 

 

http://t0.gstatic.com/images?q=tbn:ANd9GcQ2gFiEiRrnRVPCVmgC8fP4RV_b4Cyut6pHRWot2zotTH_isSgx

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcRMnyl4ZznB4yj9tFflGmUrm8zxq1VAfdzbHlagdVlYHHs5AqI2Xw

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcSABiNYE2Ig0ORn0Dp6LWBs8FU1-eDuUfhJpaBhY3dBILcGkw7Y

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcQX6x3fLQO-eGD7Sdc__AFLjGRztfSRzdOgtJe_w_XI_qKOl_cQ

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcQWAfv06yKnlGGke983sE24US_BbpZ0xgnAp3yIh3eXvCRrRfxtgg

 

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcSguscboVOMXCDflSARG5UefcNGLsGZylvXKHJGK4ldNdG1xYiR

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcTVsXwe7MG_AOX5rUiFD0hVw9aHeILEWPB_3WS5456jt040weKpxQ

 

 

 

http://t2.gstatic.com/images?q=tbn:ANd9GcS14rgGXof16mpTbvNq37y9tGIxf38V3B4j5iFLZChBi8qMo0cC

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcRk338QqS34hcxTHah2whOwSbnEtO-yxxKutL5KPMcrWPKtCTUf

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcTQg04AvSsLnhDeWWl4-qLzPD5EX7xzuOAVEiswXHB9n5gRBOxj

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcQC715gVGqLwXFM7U94WtdKlMrAiHbkqIvJl2WJ6h_JMsUMfL622g

 

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcR4ku7jfXybpiE3fm21gXSpihSd_rjwxvIac8kqkj5TkIg3rLODrg

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcThGLPUz7SfnoPUPrFttXiSBuS3NYmV99axgZzgYDofBuo_RpfcUg

 

 

 

http://t3.gstatic.com/images?q=tbn:ANd9GcSqsjlV84iSMlkqfRlTaGiWfn6_nyGg91BQcNLZbGrRnn0-j3S4

 

 

 

http://t1.gstatic.com/images?q=tbn:ANd9GcSwkrLsv_IQh2wUOQ1DkYx-HwxeUOLNEtv8yCh59CnX_HbW5H3q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

☼ Quoi & Où ☼