Things to do

From Tom

Jump to: navigation, search

Zone privée --- cette page est en français

  • projets dans l'air
    • changer Object visit(Object any, Introspector i) en <A> A visit(A any, Introspector i), etc.
    • refaire le PreGenerator avec un ordonnanceur à base de graphes
    • mini ML
    • documenter FreshGom
    • gom + external objects (importer une signature tom ds gom ss partage)
    • gom : utiliser la SymbolTable partout
    • alias
    • comportement des strategies sur les op variadiques (vue applatie)
    • l'exemple poly contient des junit qui ne sont pas Test* : faire en sorte de les executer lors de "ant junit"
      • Eval.t dans poly fait stack overflow: est-ce normal ?
    • Rendre possible l'intégration de tests junit dans Tom
      • Renommer les classes qui commencent pas Test pour le moment
      • Mettre la magie nécessaire dans build.xml pour:
        • jouer les tests
        • les distribuer dans un jar à part
    • Passer à junit 4 <- fait ! sauf le test Gom multithread
    • un langage fonctionnel pour les stratégies (en utilisant miniml)
    • debug des stratégies
    • gestion dans l'environnement d'une pile de stratégies (utile en particulier pour le debug)
  • TODO list pour JC
    • Tom thread safe : plusieurs instances du compilateur en parallèle : OK, mais peut/doit être amélioré en "multi-threadant" Gom en plus
    • faire des benchs sur le compilateur pour connaitre l'efficacité actuelle -> gain effectif sur une machine multi-cœurs
    • clarifier l'utilisation de noms de modules et --package dans Gom et gomantladapter
    • gestion de erreurs : permettre de lever une erreur facilement, dans n'importe quel phase du compilateur
    • améliorer le wiki, créer une zone privée -> possibilité d'utiliser une extension (patch) mais pas inclus dans Mediawiki ; ou utiliser la Whitelist, mais le recensement de toutes les pages est nécessaire, possibilité d'utiliser <namespace>:* ?
    • améliorer la documentation, le tutoriel -> des schémas (qqch de visuel) pour les dév et les utilisateurs
    • modifier tom.sh pour que TOM_HOME ne soit pas nécessaire (en fait, share/script.in -- il y a déjà un bout de code inefficace pour ça)
  • idées en standby
    • pour chaque variable x, générer une variable _x stockant la position de la variable x
      • on préfère introduire un label f(l:x) -> { ... }
    • permettre les disjonctions de chaînes (_*, ("ab"|"ac"), _*)
    • backquote avec notation crochet
      • pas une bonne idée
    • checker les single line comment dans les disjuntions
    • persistance des termes gom
  • idées de stages
    • étudier le filtrage Associatif-Commutatif et extraire un sous-ensemble intéressant pouvant se compiler en utilisant le filtrage Associatif seulement
    • algo de filtrage inspire des DB et du string-matching
    • comment prouver la complétude d'un ensemble de filtres Tom ?
    • en quoi Tom est adapté à la transformation de modèles (MDA)
    • Tom et les business rules
    • Tom et les polygraphes
    • backend Tom pour les programmes genérés par Coq
    • benchs pour la compet systèmes de réécriture
    • reconstruction de CFG à partir de bytecode ou d'assembleur
    • traducteur Caml -> Tom, backend pour coq
    • backend C# (implanter un pretraitement des jar (par exemple equals->Equals) en utilisant Tom pour transformer directement le Bytecode), Gom C#, %start C#
    • backend Python, formateur de code Python, Gom Python
    • typage des phases en utilisant les strategies (verif d'une formule phi sur un AST en general)
    • plugin Eclipse generique pour implanter des DSL
    • frontend Java
    • librairie de visualisation pour les termes Gom
    • Procédure de décision pour des politiques de sécurité décrites en XACML (règles en Tom+stratégies)
    • améliorer l'ordonnanceur pour que les tests soient fait le plus tôt possible
Personal tools
Create a book