Réponses aux questions "Avez-vous retenu ?"

lundi 8 février 2016
par  Pierre Pelletier

PAGE EN COURS D’ÉLABORATION

Retour à la partie scientifique

1. Introduction et présentation du langage Gobot

  • En quoi un humain est-il différent d’un robot ?
    Premièrement, l’humain est capable de créer le programme. Même quand il a la tâche de suivre un programme, il connaît l’objectif et est capable de détecter des erreurs évidentes. Il peut donc s’adapter alors qu’une machine ne remet pas en question un programme et ne connaît pas le but recherché.
  • Dans le langage Gobot inventé pour l’activité en classe, quelles sont les instructions ?
    Les instructions sont les différentes flèches.
  • Les langages de programmation diffèrent-ils seulement par leurs compatibilités avec certains types d’ordinateurs ?
    Non, ils différent également par leurs spécialisations adaptées à certaines tâches, ou encore par leur "logique" sous-jacente, qu’on expliquera mieux dans la 5ème partie.

2. Syntaxe et sémantique

  • Quelles sont les deux différentes catégories de symboles dans le vocabulaire ?
    Certains symboles ou suites de symboles correspondent à des instructions, d’autres correspondent à des manières de combiner ces instructions ensemble (par exemple répéter une tâche)
  • Quel est le vocabulaire du langage Gobot ?
    Les symboles dans le vocabulaire sont les différentes flèches.
  • Pourquoi est-il important de comprendre la sémantique d’un langage ?
    C’est ce qui permet de comprendre quelles actions sont effectivement réalisées, et donc de déterminer l’effet d’un programme.
  • À quoi peut-on comparer la structure d’un langage de programmation ?
    On peut faire une analogie avec l’écriture de la musique : les symboles des notes étant le vocabulaire, les conventions d’écriture la syntaxe et la mélodie produite la sémantique.
  • Quelle est la différence entre un langage naturel et un de programmation ?
    Le vocabulaire d’un langage de programmation est très réduit et sa syntaxe est très rigide, exigeant une grande rigueur.

3. Compilation

  • Quel est le langage de programmation de base pour un ordinateur ?
    L’ordinateur ne comprend au départ que les programmes écrits en langage machine.
  • Quel type de langage a pu être développé grâce aux compilateurs et quel est leur intérêt ?
    Les langages de haut niveau ne peuvent exister que grâce aux compilateurs, ils permettent d’écrire plus facilement et de manière plus compréhensible des programmes.
  • Quels sont les deux acteurs permettant de passer d’un algorithme à l’exécution par la machine ?
    L’humain va, à partir de l’algorithme, écrire un programme qui est donc dans un langage de programmation tandis que les compilateurs font le passage du langage de haut niveau à l’assembleur et même au binaire.

4. Expressivité des langages de programmation

  • Est-ce que tous les langages de programmations offrent les mêmes possibilités ?
    Non, on a vu dans cette partie qu’ils peuvent avoir des expressivités différentes et ne permettent pas la réalisation de certains algorithmes. Voir l’exemple dans la 2ème question.
  • Le langage Gobot peut-il réaliser tous les algorithmes ?
    Non, effectivement il est incapable d’additionner deux piles de gobelets quelconques par exemple à moins de le complexifier.
  • Existe-t-il des langages capables d’exprimer n’importe quel algorithme ?
    Oui, c’est ce qui a été prouvé par Turing en 1936 et ces langages sont appelés en son honneur des langages Turing-complets.
  • L’expressivité d’un langage de programmation est-elle le seul facteur de choix ?
    Non, en effet même deux langages Turing-complets vont présenter des différences assez significatives selon d’autres points de vue, c’est ce qu’on va voir plus en détail dans la partie suivante.
  • Sous quelles conditions un langage de programmation est-il Turing-complet ?
    À partir du moment ou un langage est capable de réaliser les 4 opérations mathématiques élémentaires, de réaliser des tests logiques (si... alors..) et de répéter une partie de code autant de fois que voulu, on est en fait théoriquement capable d’exprimer tout algorithme dans ce langage.

5. Paradigmes de programmation

  • Est-ce qu’il existe un paradigme par langage de programmation ?
    Non, chaque paradigme va représenter une classe de langages de programmation suivant tous cette logique sous-jacente.
  • Quel paradigme permet une preuve plus simple de la correction d’un programme ?
    C’est le paradigme fonctionnel car il se rapproche assez fortement du formalisme mathématique.
  • Quel est le paradigme réalisant une lecture séquentielle, c’est-à-dire pas-à-pas, d’un programme ?
    C’est le paradigme impératif.

6. Pour finir

  • Pourquoi est-ce-que les langages de programmation sont une notion importante en informatique ?
    Les langages de programmation sont nécessaires pour pouvoir apprendre à l’ordinateur à réaliser de nouvelles tâches, ils sont donc fondamentaux.
  • Quel est l’intérêt de bien choisir le paradigme de programmation selon lequel on va coder ?
    Cela peut permettre d’écrire le code de façon beaucoup plus simple, de réduire fortement la longueur du programme ou encore de diminuer le temps d’exécution du programme par rapport à l’utilisation d’un autre paradigme
  • Pourquoi les langages de programmation sont-ils encore un sujet de recherche ?
    Il est important de développer de nouveaux langages adaptés aux nouveaux outils technologiques tels que les drones par exemple. De plus, cela peut permettre de créer des langages plus intuitifs donc plus aisés à manipuler.

Retour à la partie scientifique


Agenda

<<

2023

 

<<

Mars

 

Aujourd'hui

LuMaMeJeVeSaDi
  12345
6789101112
13141516171819
20212223242526
2728293031  
Aucun évènement à venir les 6 prochains mois

Contact

IREM de Clermont-Ferrand

Directeur :
Mickael Dos Santos
Tél. : +33 (0)4 73 40 76 95

Directeur adjoint :
Nicolas Billerey
Tél. : +33 (0)4 73 40 71 12

Secrétariat :
Françoise Toledo
Tél. : +33 (0)4 73 40 70 98

Chargée de mission :
Aurélie Roux

Webmestre :
Benoît Coly