IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Optimisation du récursif terminal


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Par défaut Optimisation du récursif terminal
    Bonjour,

    Il me semblait qu'on pouvait indiquer à java d'optimiser le récursif terminal, un peu comme avec gcc.

    Quelqu'un connait-il ma méthode à suivre ?

    titi
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Salut,
    Pas à ma connaissance non.
    Par contre, Scala, un langage qui tourne sur le JVM la supporte lui.

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Bonsoir,

    java supporte l'optimisation (transformation de la récursion en une boucle) des récusions terminales, mais pas au niveau du compilateur. En effet, a cause de l'héritage il est impossible de faire ça a la compilation (dans les mérhodes non privé, l'appel récursif peut passer par un enfant, le compilateur a aucune chance de déterminer ça).

    Teste ce code avec différentes jvm et tu saura quoi. D'après mes lectures, la jvm de sun n'optimise pas (StakOverflow, http://bugs.sun.com/bugdatabase/view...bug_id=4726340) alors que les jvm de ibm optimisent (pas pu tester, elles sont payantes)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class TailRecursionTest {
     
      private static int loop(int i) {
        return loop(i);
      }
     
      public static void main(String[] args) {
        loop(0);
      }
    }

Discussions similaires

  1. optimiser un parcours récursif
    Par shaiHulud dans le forum Général Python
    Réponses: 2
    Dernier message: 28/09/2012, 00h35
  2. définition algorithme récursif et problème d'optimisation
    Par logo98 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 10/06/2009, 16h07
  3. Factoriel en récursif terminal
    Par thierryler dans le forum Débuter
    Réponses: 5
    Dernier message: 15/12/2008, 12h01
  4. Pourquoi récursif terminal ?
    Par Blackpanthers78 dans le forum Caml
    Réponses: 6
    Dernier message: 02/11/2007, 13h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo