/* Fichier: bonjour1.c
* affiche 'Bonjour le Monde!!!' à l'écran.
* auteur: John Samuel
* Ceci est un commentaire sur plusieurs lignes
*/
#include
<stdio.h> // headers
// Ceci est un commentaire
sur une ligne
int main()
{
printf("Bonjour le Monde
!!!");
return
0;
}
# Ce programme affiche le message "Bonjour le monde !!!" à l'écran
# Définition de la fonction principale
def main():
# Affichage du message
print("Bonjour le monde !!!")
# Vérification si le script est exécuté directement (et non importé comme module)
if __name__ == "__main__":
# Appel de la fonction principale
main()
Les structures de contrôle en C dirigent l'exécution du code en fonction de conditions ou de boucles.
La chaîne de compilation en C est le processus séquentiel de transformation du code source en un exécutable.
Une file est une structure de données qui gère les éléments de manière FIFO (First-In-First-Out), ce qui signifie que l'élément ajouté en premier est le premier à être retiré.
Une pile est une structure de données qui gère les éléments de manière LIFO (Last-In-First-Out), où le dernier élément ajouté est le premier à être retiré.
clangd pour les diagnostics en temps réelVous recevrez un courrier détaillé avant l'examen
| Activité | Méthode |
|---|---|
| Comprendre une notion | La reformuler avec ses propres mots et donner un exemple. |
| Explorer un programme | Prévoir son comportement, l’exécuter et expliquer les résultats. |
| Approfondir | Modifier un exemple et observer les conséquences. |
| Préparer le DS | Résoudre de nouveaux exercices et organiser les documents autorisés. |
Le cours de 2 heures est structuré avec une première partie de 55 à 60 minutes, suivie d'une pause de 5 à 10 minutes pour des questions, et conclut ensuite avec une deuxième partie de 55 à 60 minutes.
Un seul rendu final regroupant TP1 à TP5 — noté sur 20 points.
| TP | Contenu |
|---|---|
| TP1 | Bases du C : types, variables, opérateurs et structures de contrôle. |
| TP2 | Compilation, débogage et manipulation de chaînes, structures et fichiers. |
| TP3 | Construction d’un interpréteur : commandes, analyse et évaluation d’expressions simples. |
| TP4 | Expressions arithmétiques : notations infixée et postfixée, parenthèses et évaluation. |
| TP5 | Extension de l’interpréteur : variables et expressions lambda. |
Chaque TP comporte plusieurs exercices. Chaque exercice est accompagné d'une indication de niveau de difficulté :
La complexité des TP augmente progressivement après chaque séance, ce qui peut nécessiter plus de temps pour compléter tous les exercices.
Avant de soumettre votre travail pratique, veuillez vérifier que vous avez respecté la liste de contrôle suivante :
Vous pouvez consulter https://github.com/johnsamuelwrites/PLP en
ligne
ou le cloner sur votre machine à l'aide du terminal en utilisant les commandes suivantes.
$ git clone https://github.com/johnsamuelwrites/PLP
$ cd PLP
$ ls
Pour obtenir les dernières mises à jour du répertoire, vous pouvez exécuter la commande suivante:
$ git pull
Un noyau sémantique, plusieurs langues humaines. Il ne s'agit pas de traduire des mots-clés : il s'agit d'exprimer le même programme, avec la même sémantique, à travers plusieurs surfaces linguistiques.
Projet ouvert : github.com/johnsamuelwrites/multilingual
Pourquoi maintenant ? Les modèles génératifs rendent plausible l'idée que « la langue naturelle est un langage de programmation ». D'où la question centrale de ce cours : que garantit un langage qu'une consigne en langue naturelle ne garantit pas ?
# français
soit a = 10
déf double(x):
retour x * 2
afficher(double(a))
# español
sea a = 10
def doble(x):
devolver x * 2
imprimir(doble(a))
# english
let a = 10
def double(x):
return x * 2
print(double(a))
Même arbre syntaxique, même sémantique, trois surfaces. Ce que l'IA traduit facilement, c'est la surface. Ce qu'il faut savoir vérifier — types, portée, effets, terminaison — ne se traduit pas : c'est l'objet de ce cours.