Flip Flap
Présentation
Le projet Flip Flap a pour objectif de concevoir un langage impératif en français simple et efficace. Ceci passe par la spécification précise du langage, puis par l'implémentation d'un interpréteur portable pour permettre l'exécution des programmes.
Le nom de projet Flip Flap signifie : Futile Langage Impératif Pour Français Lestes À Programmer. Il est directement issu de la mascotte éponyme des candidats français aux Olympiades Internationales d'Informatique en 2005.
Nous sommes deux étudiants sur ce projet de TIPE : Victor Poulain et moi-même. Vous pouvez consulter en ligne la fiche synoptique détaillant le déroulement de notre projet.
Ressources
- Dossier du projet en ligne.
- Code source de la dernière version en date.
Vous pouvez aussi consulter différents documents utilisés lors de la présentation du projet le 11 juin 2007 :
- Fiche synoptique décrivant le déroulement du projet.
- Transparents utilisés lors de la présentation du projet.
- Test Fibonacci itératif : comparaison avec d'autres langages sur un algorithme linéaire.
- Test Fibonacci récursif : comparaison avec d'autres langages sur un algorithme récursif à croissance exponentielle.
Notes
En attendant une véritable documentation, je note ici quelques remarques diverses :
- Les variables sont initialisées à zéro.
- Les expressions sont évaluées avant les relations, qui sont elles-mêmes évaluées avant les opérations booléennes.
- Les opérateurs classiques (somme et produit) sont associatifs à gauche.
-
L'exponentiation est prioritaire sur le moins unaire :
-4^2 = -16. -
La factorielle est prioritaire sur l'exponentiation :
3^2! = 9.
Exemples
Vous pourrez trouver des exemples de programmes Flip Flap un peu partout sur le site, car ce langage est très proche de la syntaxe de mon pseudo-code, et notamment :
- Exemples de code Flip Flap : quelques programmes classiques illustrant les capacités du langage.
- Suite de Fibonacci : l'article sur cette suite célèbre propose diverses implémentations, dont une en Flip Flap.
Changelog
Changez vos stratégies et tactiques, mais jamais vos principes. (John Kessel)
5 juin 2007
- Rédaction de la fiche synoptique.
- Mise au point des transparents pour la soutenance à venir.
29 mai 2007
- L'interpréteur n'est plus sensible à la casse.
22 mai 2007
- Nouveaux opérateurs sur les listes (tête et queue).
-
Nouvelle syntaxe de boucles :
Pour k dans liste (...). - Ajout des fonctions mathématiques standard.
- Première présentation orale du projet.
15 mai 2007
- Implémentation du type liste chaînée.
- Nouveaux opérateurs (concaténation, intersection, ...)
- Conversions de types automatiques.
- Corrections apportées au lanceur.
24 avril 2007
- Implémentation des commentaires (forme : /* ... */)
- Mise à jour de la complétion du code d'entrée.
- Améliorations des performances d'analyse.
- Restructuration des fichiers du projet.
17 avril 2007
- Nouveaux opérateurs sur les chaînes de caractère.
- Corrections de bugs au niveau de l'exécuteur.
11 avril 2007
- Remplacement de l'opérateur booléen == par le = classique, le contexte permettant de distinguer les deux.
- Redéfinition des instructions Aigle4 et µ0.
- Traduction des boucles Pour en Tant que en Flip Flap et à la volée au moment de l'exécution.