Skip to topic | Skip to bottom
Home
Minfo03
Minfo03.PagePersoPierreChatelr1.32 - 30 Jul 2004 - 01:43 - PierreChateltopic end

Start of topic | Skip to actions

Suivi de PierreChatel

SpecialK-tr.gif

Du 7 au 10 mai

Compte rendu de la réunion du 7 mai 2004

Julien Charles et Pierre Chatel

Le but de cette réunion étant de clarifier la partie grammaire et de commencer la conception de la traduction vers scheme de la structure intermédiaire.

  • Rassemblement obligatoire des clauses definissants la même fonction
  • Ajout des appels et des definitions de variables au niveau 0
  • Comportement "à la scheme" des utilisations et définitions de variables.
Si on permettait le non rassemblement des clauses définissant une même fonction on aurait des définitions de variables globales entre 2 clauses d'une même fonction. Cela forcerait à classer les clauses d'une même fonction d'un côté et enlèverait une certaine expressivité au langage (au niveau de la définition de variable entre deux fonctions différentes), cette expressivité étant présente dans DrScheme.
  • Implémentation des tableaux: utilisation de vectors scheme. On doit pouvoir tapper en SpécialK:
    T[1]=case d'un tableau à une dimension
    T[1,2] ou T[1][2]=case d'un tableau à 2 dimensions
    T[1,2,...] ou T[1][2]...=case d'un tableau à n dimensions
    T[1<->2] ou T[1]<->T[2]: swap de deux cases d'un tableau à une dimension
    T[1,2<->3,4] ou T[1][2]<-> T[3][4]: swap de deux cases d'un tableau à 2 dimensions

-- PierreChatel - 07 May 2004

Travail Personnel: début de la traduction

Je commence la programmation du "traducteur" (dans le cadre d'une compilation d'un langage de haut niveau vers un autre langage de haut niveau, on parle de traduction) de la structure intermédiaire vers Scheme. Mise en place d'un système de demultiplexage du code: les constructions seronts traduites dans des fonctions/macros dédiés.

Ajouts à effectuer sur la structure intermédiaire:
  • Il faut pouvoir distinguer les differentes constructions (clauses, définitions, appels, opérations arithmétiques,...) sans avoir recours à de lourd parcours de liste
  • On va utiliser des "Magic Numbers" pour identifier les differentes structures.

Comportement lors du traitement du code SpécialK:
  • On ne doit pas séparer les déclarations de fonctions des appels dans la structure intermédiaire
  • Il faut garder la sémantique déclarative de Scheme
  • Il faut donc obliger le regroupement des clauses d'une fonction (l'ordre lui n'a pas d'importance)

Défrichage de la documentation sur l'intégration à l'interface
  • Aprés plusieurs recherche sur la future intégration de SpécialK dans l'interface graphique de DrScheme, deux possibilitées s'offrent à nous: l'utilisation des modules ou d'un mécanisme d'heritage d'interfaces (qui définissent les traitants pour les evenements utilisateurs). Le tableau suivant regroupe les liens que les autres binômes devrons utiliser lors de l'intégration.
  • MAJ du 19 mai: Julien commence à intégrer le langage en se basant sur le travail effectué par les développeurs du module Algol60 pendant que je termine la Sémantique du langage (voir plus bas)
Documentation pour l'intégration à DrScheme
Implementing DrScheme Tools http://download.plt-scheme.org/doc/tools/tools-Z-H-2.html#node_chap_2
Modules http://download.plt-scheme.org/doc/mzscheme/mzscheme-Z-H-5.html#node_chap_5
Libraries http://download.plt-scheme.org/doc/mzscheme/mzscheme-Z-H-16.html#node_chap_16

-- PierreChatel - 08 May 2004

Compte rendu de la réunion du 10 mai 2004

Julien Charles et Pierre Chatel

Etude de l'integration d'un mécanisme de surcharge et de redefinition de fonctions dans SpecialK:

  • L'utilisateur devra pouvoir surcharger les fonctions.
  • Il devra aussi pouvoir redefinir une fonction au cours de la session de travail (dans le code de la zone de définition ou au top-level)
  • Chainage hierarchique des définitions: au moment de l'appel on regarde si le nombre d'arguments est identique à la définition de plus haut niveau, si oui on match, sinon on essaye une autre version de la fonction avec le bon nombre d'arguments (trouvée dans le chainage).
  • Voir la page de Julien pour de plus amples renseignements sur le sujet: PagePersoJulienCharles

-- PierreChatel - 10 May 2004

Du 11 au 20 mai

Réunion du 12 mai avec Jean Paul Roy.

Différents sujets on été abordés tels l'avancemment de la grammaire et de la structure intermédiaire, les modalités de la traduction en scheme et l'"unification" par le biais de match ( http://sol.cs.wcu.edu/~bhauman/scheme/pattern.php ).

Travail Personnel: la sémantique du langage.

Suites aux remarques qui ont été formulées par le comité de TER lors de la présoutenance nous avons décidé de fournir la sémantique dénotationnelle du langage SpécialK. "Stay tuned for updates!"

  • semantique.ps (16/05/04): une pré-version de la sémantique denotationnelle dans laquelle il me manque encore beaucoup de choses.
  • semantique-190504.ps (19/05/04) : Dans cette nouvelle version j'introduit le concept de redéfinition et de surcharge de fonctions par le biais d'une gestion plus fine des environnements. L'ecriture de la sémantique pendant le développement du langage permet de mettre à jours certaines incohérences et de les corriger.
  • 20/05/04: Je commence à intégrer certains des concepts de la sémantique dénotationnelle de Scheme (R5RS) dans celle de SpécialK tout en essayant d'éviter la multiplication des environnements.
-- PierreChatel - 20 May 2004

Du 21 au 24 mai

Travail Personnel: capture et reprise de continuation lors du pattern matching.

Le but du jeux etant de ne pas executer le code (partie-droite) associé à une clause immediatemment. Mais plutot de stocker dans une liste l'ensemble des continuations possibles qui "match" pour un ensemble d'argument donné. Cela permet de verifier qu'il n'y a pas plusieurs clauses qui match -> erreur de programmation.

  • continuations-4.scm: version qui devrait marcher (MAJ du 24/05/04: le code à été integré dans le traducteur SpécialK)
-- PierreChatel - 21 May 2004

Travail Personnel: optimisation des gardes dans le code produit.

Il faut éviter que du code présent à plusieurs endroits dans les gardes d'un ensemble de clauses identiques (sur les arguments) soit répété dans le code produit. Pour ce faire on va rechercher les similaritées et construire un ensemble de variables qui factorise le code tout en le modifiant.

  • factorize-guards.scm: aprés plusieurs essais infructueux de simplification du code de factorisation j'opte pour un algorithme bourrin. Le probleme soulevé par cette algorithme est de toute facon NP. Esperons que la compilation ne sera pas trop ralentie.
  • factorize-guards-2.scm: une version qui marche. (MAJ du 27/05/04: le code à été intégré dans la distribution)

-- PierreChatel - 24 May 2004

Du 25 au 31 mai

Travail Personnel: écriture d'outils de visualisation des données

Visualisation des tableaux (une et deux dimensions)
  • display-vector.scm: (version du 27/05/04) on prend un tableau en entrée et on affiche ses cases. Des couleurs sont attribués aux éléments identiques afin d'améliorer la visualisation des données. Il reste un bug à corriger sur le calcul de la taille des éléments. Une évolution future serait l'affichage direct dans le top-level. Julien devrais pouvoir se servir des couleurs pour implémenter un jeux de la vie.
  • Le 29 mai 2004:Je cherche la meilleure méthode pour permettre le "live update" de l'affichage -> animations
  • display-vector-with-gen.scm: une version avec générateur + live update mais avec du flickering.
  • display-vector-noflicker.scm: (version du 30/05/04) il n'y a plus de flickering (double-buffering), on peut maintenant faire varier différents paramètre de la visualisation pendant le travail (les couleurs et les associations par exemple). La dimension des cases est fixée une fois pour toute au moment de l'instantiation du visualisateur, cela devrait permettre de faire des animations -> si la taille des données change on n'agrandit pas les cases. Par contre on peut ajouter ou effacer des cases.
  • display-vector-final.scm: (version du 31/05/04) version finale avec correction d'un bug sur les couleurs

Visualisation des arbres
  • Le 31 mai 2004: Je commence le travail sur la visualisation des arbres, il faut que je mette en place le même mécanisme de colorisation que dans celui des vecteurs (les éléments identiques sont positionnés dans des cases de même couleur). Le système d' "instanciation" utilisé precedemment sera lui aussi retenu (live-updates).
  • display-tree.scm: premiere version qui ne gère pas encore les couleurs
  • display-tree-final.scm: couleurs + options (courbure, espacement, ...) + comportement identique aux vecteurs

Mise en place de la phase de tests du langage

J'ai envoyé un mail aux MI2 et j'ai cherché des volontaires en tutorat de Scheme pour "beta-tester" le langage. Il y a actuellement 8 réponses, ce qui est déja pas mal ! Sylvain à mis en place un système de bug-tracking qui devrait permettre de les suivre plus facilement ainsi que faciliter la vie des testeurs.

-- PierreChatel - 30 May 2004

Du 1 Juin au 9 Juin

Travail Personnel: retour sur la sémantique du langage.

  • Le 4 Juin 2004: Il faut que je finisse la sémantique, de nombreux passages délicats à écrire. Je vais essayer d'effectuer des paralleles avec la sémantique du R5RS.
  • Le 8 Juin 2004: Version presque finale de la sémantique de SpécialK (merci à Julien pour sa collaboration dans la dernière ligne droite smile ): semantique-080604.sxw

Mise en page et modification du rapport final:

  • Le 8 Juin 2004: rapport.sxw, dans cette version ajout des titres et des sections, ajout de la table de planification de cyril, et diverses modifications cosmétiques. La sémantique dénotationnelle sera mise en Annexe par la suite.
  • Le 9 Juin 2004: rapport-090604.sxw: on s'approche de la version finale (ajout des parties de Cyril et Julien + la mienne ainsi que la sémantique)
  • Le 10 Juin 2004: La version finale du rapport au format pdf et openoffice.

to top

I Attachment sort Action Size Date Who Comment
translator.scm manage 2.1 K 08 May 2004 - 13:24 PierreChatel le module de compilation
spekno-tr.gif manage 10.4 K 16 May 2004 - 18:07 PierreChatel  
spekno-tr-small.gif manage 5.4 K 16 May 2004 - 18:20 PierreChatel  
semantique.ps manage 135.7 K 16 May 2004 - 20:11 PierreChatel  
semantique-190504.ps manage 363.7 K 19 May 2004 - 21:02 PierreChatel  
continuations.scm manage 1.0 K 21 May 2004 - 15:06 PierreChatel  
continuations-2.scm manage 1.9 K 21 May 2004 - 15:35 PierreChatel  
continuations-3.scm manage 2.3 K 21 May 2004 - 15:45 PierreChatel  
continuations-4.scm manage 2.0 K 21 May 2004 - 17:31 PierreChatel  
factorize-guards.scm manage 3.6 K 24 May 2004 - 10:19 PierreChatel  
factorize-guards-2.scm manage 4.0 K 24 May 2004 - 11:44 PierreChatel  
display-vector.scm manage 3.5 K 27 May 2004 - 19:29 PierreChatel  
display-vector-with-gen.scm manage 5.6 K 29 May 2004 - 21:57 PierreChatel  
display-vector-noflicker.scm manage 5.9 K 30 May 2004 - 09:38 PierreChatel  
display-tree.scm manage 7.4 K 31 May 2004 - 14:21 PierreChatel  
display-tree-final.scm manage 8.9 K 31 May 2004 - 16:33 PierreChatel  
display-vector-final.scm manage 6.0 K 31 May 2004 - 16:24 PierreChatel  
semantique-080604.sxw manage 13.1 K 09 Jun 2004 - 08:36 PierreChatel  
rapport.sxw manage 103.5 K 09 Jun 2004 - 18:29 PierreChatel  
rapport-090604.sxw manage 113.6 K 09 Jun 2004 - 21:25 PierreChatel  
rapport.pdf manage 6292.7 K 11 Jun 2004 - 09:56 PierreChatel  
rapport-last.sxw manage 210.6 K 11 Jun 2004 - 09:59 PierreChatel  

You are here: Minfo03 > TerRo1 > PagePersoPierreChatel

to top

Copyright © 1999-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo? Send feedback