Pour mon enseignement, j’utilise d’autres langages que le C, en particulier Human Resource Machine (HRM) qui est un jeu basé sur un tout petit langage de programmation, proche des langages d’assemblage.
J’utilise aussi The Tiny Computer (TTC) qui est un simulateur d’ordinateur minimaliste, développé maison.
J’ai voulu voir comment notre vampire s’en sort sur ces langages peu ou pas documentés.
Alors allons-y.
Entretiens réalisés le 09/04/2025 pour HRM et le 10/04 pour TTC.
(Notons que j’en fais une retranscription partielle parce que j’ai fait l’erreur de corriger des prompts, ce qui a relancé des réponses et créé de la confusion dans le rendu final.
Mais la teneur en est préservée.)
On commence par TTC.
Le langage est très peu documenté publiquement, je le présente en cours.
Comme informations accessibles, il n’y a que l’éditeur/simulateur qui embarque la doc minimale, et le dépôt git qui n’en dit pas tellement plus.
Autant dire que le corpus disponible pour entraîner le vampire est réduit au strict minimum et probablement insuffisant pour un LLM.
Écrivez un programme pour TTC qui affiche “Hello world!” à l’écran.
Voici un programme simple en TTC (Tiny Turbo C) qui affiche “Hello world!” à l’écran :
#include <stdio.h>
int main() {
printf("Hello world!\n");
return 0;
}
Pour compiler et exécuter ce programme, vous pouvez utiliser un compilateur C standard comme gcc
. Voici les étapes à suivre :
- Sauvegardez le code dans un fichier nommé
hello.c
.
- Ouvrez un terminal et naviguez jusqu’au répertoire où se trouve le fichier
hello.c
.
- Compilez le programme avec la commande suivante :
gcc -o hello hello.c
- Exécutez le programme compilé avec la commande suivante :
./hello
Vous devriez voir le message “Hello world!” s’afficher à l’écran.
Évidemment il a utilisé une autre définition de TTC, j’aurais dû m’y attendre.
Cependant, je n’ai trouvé aucune référence à Tiny Turbo C sur le Web.
Probablement une “hallucination”, ou une confusion avec Tiny C Compiler (TCC) que je trouve en recherchant Tiny Turbo C.
Notons aussi les explications sur la compilation qui n’ont pas grand chose à voir avec la question mais on a l’habitude que le vampire fasse du remplissage.
Je parle de The Tiny Computer, pas de Tiny Turbo C.
Je n’ai pas trouvé d’informations spécifiques sur un programme “Hello World!” pour The Tiny Computer. Cependant, je peux vous fournir un exemple générique de programme “Hello World!” en assembleur pour un environnement x86-64 Linux, qui pourrait être adapté pour The Tiny Computer si les instructions et la structure sont compatibles.
Voici un exemple de programme “Hello World!” en assembleur pour x86-64 Linux :
section .data
hello db 'Hello, World!', 0xA ; Message à afficher suivi d'un retour à la ligne
section .text
global _start
_start:
; Écrire le message sur la sortie standard (fd = 1)
mov rax, 1 ; syscall: sys_write
mov rdi, 1 ; file descriptor: stdout
mov rsi, hello ; pointeur vers le message
mov rdx, 13 ; longueur du message
syscall ; appel système
; Terminer le programme
mov rax, 60 ; syscall: sys_exit
xor rdi, rdi ; code de retour: 0
syscall ; appel système
Pour assembler et exécuter ce programme, vous pouvez utiliser les outils suivants :
- Sauvegardez le code dans un fichier nommé
hello.asm
.
- Assemblez le fichier avec
nasm
:
nasm -f elf64 hello.asm
- Liez le fichier objet avec
ld
:
ld -o hello hello.o
- Exécutez le programme :
./hello
Ce programme devrait afficher “Hello, World!” à l’écran. Si vous avez des contraintes spécifiques ou des instructions particulières pour The Tiny Computer, vous devrez peut-être adapter ce code en conséquence.
Je ne suis pas capable de vérifier ce code, mais il semble correct.
(C’est amusant, je me trouve dans la situation de mes étudiant⋅es qui reçoivent une réponse sans pouvoir véritablement l’évaluer.)
En revanche bien sûr, il ne répond absolument pas à la question.
Cependant, on note que The Tiny Computer est associé à de la programmation en langage d’assemblage, ce qui est correct, mais on ne saura pas pourquoi.
Inutile d’insister pour avoir du code, mais on peut demander au vampire d’expliciter le lien qu’il fait entre TTC et assembleur.
En quoi du code pour x86 est-il intéressant pour TTC ?
Le code x86 est pertinent pour The Tiny Computer (TTC) car TTC utilise des processeurs x86. Les processeurs x86 sont une architecture de jeu d’instructions utilisée dans de nombreux ordinateurs personnels et serveurs. Ils sont connus pour leur compatibilité avec une large gamme de systèmes d’exploitation, y compris Windows et diverses distributions Linux.
Voici quelques points clés sur l’importance du code x86 pour TTC :
-
Compatibilité Logicielle : Les processeurs x86 permettent à TTC d’exécuter une vaste gamme de logiciels conçus pour les architectures x86, y compris des applications Windows et Linux. Cela rend TTC polyvalent et capable de prendre en charge diverses applications, des jeux rétro DOS aux applications modernes.
-
Performance : Les processeurs x86 offrent généralement de meilleures performances de traitement par rapport aux processeurs ARM, ce qui est crucial pour les applications nécessitant des calculs intensifs ou des graphismes avancés.
-
Support Matériel : TTC peut tirer parti des pilotes et du support matériel disponibles pour les systèmes x86, ce qui facilite l’intégration de périphériques et d’accessoires.
-
Communauté et Ressources : Il existe une grande communauté de développeurs et une abondance de ressources pour les systèmes basés sur x86, ce qui peut être bénéfique pour le développement et le dépannage.
En résumé, l’utilisation de processeurs x86 dans TTC permet une compatibilité logicielle étendue, de meilleures performances et un support matériel robuste, rendant TTC adapté à une variété d’applications et d’utilisations.
Sources :
Et là il raconte n’importe quoi : TTC n’utilise pas du tout x86, c’est une machine imaginée pour l’enseignement, c’est programmé en Python et exécuté sur le Web.
À aucun moment on ne s’appuie sur l’architecture x86, de la conception à l’exécution.
(Sauf si on exécute sur un PC, mais ça n’a aucun rapport.)
Probablement que le vampire est encore sur son interprétation précédente de TTC, ou du TCC, ou de va savoir quoi.
En revanche, le vampire s’appuie sur ce lien imaginaire pour mecspliquer des trucs sur les processeurs Intel.
Il va même me citer trois sources qui n’ont aucun intérêt puisque toute la réponse est à côté de la plaque.
Ces trois sources ne viennent d’ailleurs absolument pas à l’appui de la réponse, mais elles pourraient être des résultats sur une recherche web du genre tiny computer x86, qui est l’association que le vampire fait avec TTC.
Cela révèle bien le mode de fonctionnement du vampire, générer du texte qui semble correct, avec des mots qui s’assemblent bien, mais en totale déconnexion avec le fond.
N’insistons pas, il n’y a rien de plus à trouver ici.
On constate juste que le vampire, comme à son habitude, donne toujours une réponse : il est fait pour ça ne l’oublions pas, c’est un outil qui génère du texte qui constitue une réponse statistiquement probable à une demande.
Donc il va toujours répondre, sauf si ses concepteurs ont inclus des mécanismes spécifiques pour qu’il décline, comme si on lui demande comment construire une bombe artisanale ou ce genre de choses.
On passe à HRM.
Le jeu est assez connu et existe de longue date, on trouve les solutions sur le Web, il y a des gens qui développent des interpréteurs, des outils, etc.
C’est beaucoup plus documenté que TTC, sans comparaison, mais ça reste une niche comparé au langage C qu’on utilise d’habitude dans nos entretiens, et qui est l’un des plus utilisés et documentés au monde.
Je pose une question très simple, ce programme ressemble au niveau 8 du jeu, qu’on atteint très rapidement, en plus simple.
Écrivez un programme pour Human Resource Machine qui lit chaque boite sur l’entrée et envoie son double sur la sortie.
Pour écrire un programme pour Human Resource Machine qui lit chaque boîte sur l’entrée et envoie son double sur la sortie, vous pouvez suivre les étapes suivantes. Voici un exemple de programme qui réalise cette tâche :
- Initialisation : Placez-vous sur la première boîte de l’entrée.
- Boucle de lecture : Lisez la boîte, doublez sa valeur, et envoyez le résultat sur la sortie.
- Condition de fin : Si la boîte lue est vide (0), terminez le programme.
Voici le programme détaillé :
-- Initialisation
INBOX -> a
-- Boucle de lecture et traitement
[a]
a -> OUTBOX
a -> b
b + a -> b
b -> OUTBOX
INBOX -> a
Explication du programme :
-
Initialisation :
-
INBOX -> a
: Lire la première boîte de l’entrée et la stocker dans la variable a
.
-
Boucle de lecture et traitement :
[a]
: Tant que a
n’est pas vide (0), exécuter les instructions suivantes.
a -> OUTBOX
: Envoyer la valeur de a
sur la sortie.
a -> b
: Copier la valeur de a
dans b
.
b + a -> b
: Ajouter a
à b
pour obtenir le double de a
.
b -> OUTBOX
: Envoyer le double de a
sur la sortie.
INBOX -> a
: Lire la boîte suivante de l’entrée et la stocker dans a
.
Ce programme continuera à lire les boîtes de l’entrée et à envoyer leur double sur la sortie jusqu’à ce qu’il rencontre une boîte vide (0).
La réponse est complètement fantaisiste, à plein de niveau.
Prenons dans l’ordre.
“3. Condition de fin” ceci n’est absolument pas demandé, les boites ne sont pas vides, elles contiennent des entiers qu’on manipule, on peut donc doubler 0 comme n’importe quelle autre valeur, et ce n’est pas une condition d’arrêt.
La syntaxe est complètement fausse.
On retrouve INBOX
et OUTBOX
qui sont des instructions du langage, mais qui s’utilisent seules, on retrouve aussi les commentaires -- ...
, et c’est tout.
Sinon, le langage n’a pas de variables, la flèche ->
n’existe pas, l’addition +
non plus, et [a]
non plus.
C’est du charabia qui ne ressemble même pas de loin à un programme HRM.
En revanche, la structure du programme suit une logique acceptable, sauf cette condition de sortie qui n’est pas dans l’énoncé.
Ce code n’est pas du Human Resource Machine.
Je m’excuse pour l’erreur. Voici un programme correct pour Human Resource Machine qui lit chaque boîte sur l’entrée et envoie son double sur la sortie.
Programme Human Resource Machine
- Initialisation : Placez-vous sur la première boîte de l’entrée.
- Boucle de lecture : Lisez la boîte, doublez sa valeur, et envoyez le résultat sur la sortie.
- Condition de fin : Si la boîte lue est vide (0), terminez le programme.
Voici le programme détaillé :
-- Initialisation
INBOX -> a
-- Boucle de lecture et traitement
[a]
a -> b
b + a -> b
b -> OUTBOX
INBOX -> a
Explication du programme :
-
Initialisation :
-
INBOX -> a
: Lire la première boîte de l’entrée et la stocker dans la variable a
.
-
Boucle de lecture et traitement :
[a]
: Tant que a
n’est pas vide (0), exécuter les instructions suivantes.
a -> b
: Copier la valeur de a
dans b
.
b + a -> b
: Ajouter a
à b
pour obtenir le double de a
.
b -> OUTBOX
: Envoyer le double de a
sur la sortie.
INBOX -> a
: Lire la boîte suivante de l’entrée et la stocker dans a
.
Ce programme continuera à lire les boîtes de l’entrée et à envoyer leur double sur la sortie jusqu’à ce qu’il rencontre une boîte vide (0).
Mais !
Le vampire reconnaît que la réponse précédente est fausse et… la redonne, presque à l’identique.
On voit bien que c’est une machine qui n’a aucune notion de cohérence logique ou de vérité.
La syntaxe n’est pas correcte.
Je m’excuse pour les erreurs précédentes. Voici un programme correct pour Human Resource Machine qui lit chaque boîte sur l’entrée et envoie son double sur la sortie, en utilisant la syntaxe appropriée pour Human Resource Machine.
Programme Human Resource Machine
- Initialisation : Placez-vous sur la première boîte de l’entrée.
- Boucle de lecture : Lisez la boîte, doublez sa valeur, et envoyez le résultat sur la sortie.
- Condition de fin : Si la boîte lue est vide (0), terminez le programme.
Voici le programme détaillé :
-- Initialisation
INBOX
COPYFROM [INBOX]
COPYTO [0]
-- Boucle de lecture et traitement
LABEL LOOP
COPYFROM [0]
JUMPZ END
COPYTO [1]
ADD [1]
COPYTO [OUTBOX]
COPYFROM [INBOX]
COPYTO [0]
JUMP LOOP
-- Fin du programme
LABEL END
Explication du programme :
-
Initialisation :
INBOX
: Sélectionnez la boîte d’entrée.
COPYFROM [INBOX]
: Copiez la valeur de la boîte d’entrée.
COPYTO [0]
: Stockez cette valeur dans la case mémoire 0
.
-
Boucle de lecture et traitement :
LABEL LOOP
: Définissez une étiquette pour la boucle.
COPYFROM [0]
: Copiez la valeur de la case mémoire 0
.
JUMPZ END
: Si la valeur est zéro, sautez à l’étiquette END
pour terminer le programme.
COPYTO [1]
: Stockez la valeur dans la case mémoire 1
.
ADD [1]
: Doublez la valeur en l’ajoutant à elle-même.
COPYTO [OUTBOX]
: Envoyez le double de la valeur sur la sortie.
COPYFROM [INBOX]
: Lisez la boîte suivante de l’entrée.
COPYTO [0]
: Stockez cette nouvelle valeur dans la case mémoire 0
.
JUMP LOOP
: Revenez au début de la boucle.
-
Fin du programme :
LABEL END
: Définissez une étiquette pour la fin du programme.
Ce programme continuera à lire les boîtes de l’entrée et à envoyer leur double sur la sortie jusqu’à ce qu’il rencontre une boîte vide (0).
La syntaxe est toujours fantaisiste, mais un peu moins.
[INBOX]
n’existe pas, LABEL LOOP
devrait être LOOP:
, tous les [0]
devraient être 0
(ce qui est piègeux parce que le premier existe en HRM mais veut dire autre chose), le programme est inutilement compliqué, et il y a toujours cette fichue condition d’arrêt non demandée.
[INBOX]
n’existe pas.
Je m’excuse pour les erreurs précédentes. Voici un programme correct pour Human Resource Machine qui lit chaque boîte sur l’entrée et envoie son double sur la sortie, en utilisant la syntaxe appropriée pour Human Resource Machine.
Programme Human Resource Machine
- Initialisation : Placez-vous sur la première boîte de l’entrée.
- Boucle de lecture : Lisez la boîte, doublez sa valeur, et envoyez le résultat sur la sortie.
- Condition de fin : Si la boîte lue est vide (0), terminez le programme.
Voici le programme détaillé :
-- Initialisation
INBOX -> a
-- Boucle de lecture et traitement
LOOP:
JUMP ZERO END
COPY a -> b
ADD a -> b
b -> OUTBOX
INBOX -> a
JUMP LOOP
-- Fin du programme
END:
Explication du programme :
- Initialisation :
-
INBOX -> a
: Lire la première boîte de l’entrée et la stocker dans la variable a
.
-
Boucle de lecture et traitement :
LOOP:
: Définissez une étiquette pour la boucle.
JUMP ZERO END
: Si a
est zéro, sautez à l’étiquette END
pour terminer le programme.
COPY a -> b
: Copiez la valeur de a
dans b
.
ADD a -> b
: Doublez la valeur en ajoutant a
à b
.
b -> OUTBOX
: Envoyez le double de la valeur sur la sortie.
INBOX -> a
: Lire la boîte suivante de l’entrée et la stocker dans a
.
JUMP LOOP
: Revenez au début de la boucle.
-
Fin du programme :
END:
: Définissez une étiquette pour la fin du programme.
Ce programme continuera à lire les boîtes de l’entrée et à envoyer leur double sur la sortie jusqu’à ce qu’il rencontre une boîte vide (0).
Et revoilà les ->
et les variables…
Je craque.

Mais tu écris n’importe quoi en fait.
Je suis désolé pour les erreurs précédentes. Voici un programme correct pour Human Resource Machine qui lit chaque boîte sur l’entrée et envoie son double sur la sortie, en utilisant la syntaxe appropriée pour Human Resource Machine.
Programme Human Resource Machine
- Initialisation : Placez-vous sur la première boîte de l’entrée.
- Boucle de lecture : Lisez la boîte, doublez sa valeur, et envoyez le résultat sur la sortie.
- Condition de fin : Si la boîte lue est vide (0), terminez le programme.
Voici le programme détaillé :
-- Initialisation
INBOX
COPYTO 0
-- Boucle de lecture et traitement
LABEL LOOP
COPYFROM 0
JUMPZ END
COPYTO 1
ADD 1
COPYTO OUTBOX
INBOX
COPYTO 0
JUMP LOOP
-- Fin du programme
LABEL END
Explication du programme :
-
Initialisation :
INBOX
: Sélectionnez la boîte d’entrée.
COPYTO 0
: Copiez la valeur de la boîte d’entrée dans la case mémoire 0
.
-
Boucle de lecture et traitement :
LABEL LOOP
: Définissez une étiquette pour la boucle.
COPYFROM 0
: Copiez la valeur de la case mémoire 0
.
JUMPZ END
: Si la valeur est zéro, sautez à l’étiquette END
pour terminer le programme.
COPYTO 1
: Stockez la valeur dans la case mémoire 1
.
ADD 1
: Doublez la valeur en l’ajoutant à elle-même.
COPYTO OUTBOX
: Envoyez le double de la valeur sur la sortie.
INBOX
: Lisez la boîte suivante de l’entrée.
COPYTO 0
: Stockez cette nouvelle valeur dans la case mémoire 0
.
JUMP LOOP
: Revenez au début de la boucle.
-
Fin du programme :
LABEL END
: Définissez une étiquette pour la fin du programme.
Ce programme continuera à lire les boîtes de l’entrée et à envoyer leur double sur la sortie jusqu’à ce qu’il rencontre une boîte vide (0).
Je ne ferai pas l’erreur de croire que le vampire a fait un effort parce que je me suis fâché.
Il essaiera des trucs au hasard jusqu’à ce que ça me plaise ou que je déclare forfait.
Peut-être, au mieux, que ma réponse l’a poussé à chercher une solution assez différente des précédentes.
En tout cas ce programme ressemble beaucoup plus à du HRM, et il est plus proche de la solution.
Ce programme est faux, la commande LABEL
n’existe pas.
Je m’excuse pour les erreurs précédentes. Voici un programme correct pour Human Resource Machine qui lit chaque boîte sur l’entrée et envoie son double sur la sortie, en utilisant la syntaxe appropriée pour Human Resource Machine.
Programme Human Resource Machine
- Initialisation : Placez-vous sur la première boîte de l’entrée.
- Boucle de lecture : Lisez la boîte, doublez sa valeur, et envoyez le résultat sur la sortie.
- Condition de fin : Si la boîte lue est vide (0), terminez le programme.
Voici le programme détaillé :
-- Initialisation
INBOX
COPYTO 0
-- Boucle de lecture et traitement
LOOP:
COPYFROM 0
JUMPZ END
COPYTO 1
ADD 1
COPYTO OUTBOX
INBOX
COPYTO 0
JUMP LOOP
-- Fin du programme
END:
Explication du programme :
-
Initialisation :
INBOX
: Sélectionnez la boîte d’entrée.
COPYTO 0
: Copiez la valeur de la boîte d’entrée dans la case mémoire 0
.
-
Boucle de lecture et traitement :
LOOP:
: Définissez une étiquette pour la boucle.
COPYFROM 0
: Copiez la valeur de la case mémoire 0
.
JUMPZ END
: Si la valeur est zéro, sautez à l’étiquette END
pour terminer le programme.
COPYTO 1
: Stockez la valeur dans la case mémoire 1
.
ADD 1
: Doublez la valeur en l’ajoutant à elle-même.
COPYTO OUTBOX
: Envoyez le double de la valeur sur la sortie.
INBOX
: Lisez la boîte suivante de l’entrée.
COPYTO 0
: Stockez cette nouvelle valeur dans la case mémoire 0
.
JUMP LOOP
: Revenez au début de la boucle.
-
Fin du programme :
END:
: Définissez une étiquette pour la fin du programme.
Ce programme continuera à lire les boîtes de l’entrée et à envoyer leur double sur la sortie jusqu’à ce qu’il rencontre une boîte vide (0).
On s’approche d’une solution.
Déjà, le programme est presque correct syntaxiquement.
Mais aussi, il fait beaucoup trop de travail, en particulier il y a une phase d’initialisation inutile, et toujours la condition de terminaison qui n’est pas demandée et complique le programme pour rien.
Sans compter la lourdeur de la réalisation.
J’essaye de le guider, et le vampire affiche Worked for 7s. Searched “Human Resource Machine double input” on the web. Opened results.
Donc il est allé se documenter en direct pour améliorer sa réponse.
Je ne sais pas ce qui se cache derrière ce mécanisme mais probablement qu’il intègre le résultat de sa recherche sur le web comme un prompt.
COPYTO OUTBOX
n’existe pas
Je m’excuse pour les erreurs précédentes. Voici un programme correct pour Human Resource Machine qui lit chaque boîte sur l’entrée et envoie son double sur la sortie, en utilisant la syntaxe appropriée pour Human Resource Machine.
Programme Human Resource Machine
-- Initialisation
a:
INBOX
COPYTO 0
JUMPZ c
-- Boucle de lecture et traitement
b:
COPYFROM 0
ADD 0
OUTBOX
INBOX
COPYTO 0
JUMPZ c
JUMP b
-- Fin du programme
c:
Explication du programme :
-
Initialisation :
a:
: Définissez une étiquette pour le début du programme.
INBOX
: Lisez la première boîte de l’entrée.
COPYTO 0
: Copiez la valeur de la boîte d’entrée dans la case mémoire 0
.
JUMPZ c
: Si la valeur est zéro, sautez à l’étiquette c
pour terminer le programme.
-
Boucle de lecture et traitement :
b:
: Définissez une étiquette pour la boucle.
COPYFROM 0
: Copiez la valeur de la case mémoire 0
.
ADD 0
: Doublez la valeur en l’ajoutant à elle-même.
OUTBOX
: Envoyez le double de la valeur sur la sortie.
INBOX
: Lisez la boîte suivante de l’entrée.
COPYTO 0
: Stockez cette nouvelle valeur dans la case mémoire 0
.
JUMPZ c
: Si la valeur est zéro, sautez à l’étiquette c
pour terminer le programme.
JUMP b
: Revenez au début de la boucle.
-
Fin du programme :
c:
: Définissez une étiquette pour la fin du programme.
Ce programme continuera à lire les boîtes de l’entrée et à envoyer leur double sur la sortie jusqu’à ce qu’il rencontre une boîte vide (0).
On est presque rendus à une solution correcte.
Je le pousse dans la bonne direction.
Ce programme est beaucoup plus compliqué que nécessaire.
De plus, il s’arrête sur un zéro ce qui n’est pas demandé.
Je m’excuse pour les erreurs précédentes. Voici un programme simplifié pour Human Resource Machine qui lit chaque boîte sur l’entrée et envoie son double sur la sortie, sans s’arrêter sur un zéro.
Programme Human Resource Machine
-- Initialisation
a:
INBOX
COPYTO 0
ADD 0
OUTBOX
JUMP a
Explication du programme :
-
Initialisation :
a:
: Définissez une étiquette pour le début du programme.
INBOX
: Lisez la première boîte de l’entrée.
COPYTO 0
: Copiez la valeur de la boîte d’entrée dans la case mémoire 0
.
ADD 0
: Doublez la valeur en l’ajoutant à elle-même.
OUTBOX
: Envoyez le double de la valeur sur la sortie.
JUMP a
: Revenez au début de la boucle pour traiter la prochaine boîte.
Ce programme continuera à lire les boîtes de l’entrée et à envoyer leur double sur la sortie indéfiniment.
Et voilà, c’est ça que j’attendais dès le début.
Donc qu’est-ce qu’on a là : une machine coûteuse qui dit n’importe quoi mais qu’on peut guider pas à pas vers la production d’un programme trivial à condition de savoir à l’avance ce qu’on attend.
Des étudiant⋅es essayant d’apprendre avec l’aide de cet engin seraient bien mal aidé⋅es.
Celleux qui voudraient juste une solution et minimiser leur travail seraient bien mal avisé⋅es de s’en remettre à ça.
Je trouve ces deux conversations très intéressantes car le manque de matériel pour l’apprentissage du vampire permet de révéler ses défauts de façon plus évidente :
- ses réponses sont aléatoires et guidées par la plus forte probabilité qu’elles correspondent au corpus d’apprentissage
- aucune précaution n’est prise pour avertir sur la faible qualité des réponses, il peut dire tout et son contraire avec le même aplomb tranquille
- il ne sait pas répondre qu’il ne sait pas, pire il dira je n’ai pas d’info mais voici quand même une réponse, c’est une forme de précaution mais réellement minimale, et la réponse, aussi fantaisiste soit-elle, sera donnée avec une certitude rassurante quoi qu’il arrive
- si on sait ce qu’on veut, il peut le faire, ce qui est inutile parce que ça nous demande plus de travail
- si on ne sait pas ce qu’on veut, on n’a plus qu’à s’en remettre à ce qu’il affirme sans possibilité de vérifier avec son aide
Les performances de vampires peuvent être impressionnantes si on leur demande des choses classiques, très documentées et donc largement disponibles.
On voit ici qu’un simple pas de côté leur fait perdre tout intérêt.