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

Débats sur le développement - Le Best Of Discussion :

Pourquoi la programmation fonctionnelle n’est-elle pas la norme de l’industrie du code ?


Sujet :

Débats sur le développement - Le Best Of

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Neckara Voir le message
    L'implémentation semble être itérative, en simulant la récursivité via une stack (ce qui est assez commun) :
    L'implémentation de gnu oui. Celle de bsd non : https://github.com/freebsd/freebsd/b...stdlib/qsort.c

    Citation Envoyé par Neckara Voir le message
    D'ailleurs question stupide, pour un langage fonctionnel, comment les récursions sont gérées en interne ?
    Il passent comme des appels de fonctions avec tout ce que cela implique au niveau des registres CPU/la pile, ou c'est transformé dans une version itérative via une stack ?
    Il y a une pile d'appel mais en pratique la question ne se pose pas vraiment car on écrit généralement des tail recursions et le compilateur sait les optimiser sans avoir à stocker les appels récursifs.

    Citation Envoyé par Neckara Voir le message
    Ben prend n'importe quel classement des langages TIOBE, popularité, utilisation github, t'as pas beaucoup de langages fonctionnels dans le top.
    Le but de l'éducation supérieur c'est aussi de former à ce que les étudiants seront le plus probablement amené à utiliser.

    Ce n'est pas le rôle de l'éducation supérieur de prendre parti et de décider qu'il faut faire du fonctionnel parce que c'est le paradigme que j'aime.
    Déjà qu'on a pas le temps de creuser en détails tous les bon principes de développement (e.g. ssémantique d'entité/de valeur).
    En ce qui concerne l'université, son rôle n'est pas de former des experts dans quelques technos à la mode qui seront obsolètes deux ans plus tard, et les étudiants avec. Elle doit justement donner une culture plus génerale, de la réflexion et des concepts qui permettront aux étudiants de s'adapter et d'être créatif.
    Le fonctionnel est une discipline importante de l'informatique, au même titre que, par exemple, l'architecture des ordinateurs. Tout le monde ne manipule pas des registres CPU au quotidien mais c'est important de l'avoir au moins étudié.

  2. #2
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 513
    Par défaut
    Merci pour le lien. Cette implémentation est astucieuse. À chaque étape, après avoir décomposé le tableau en deux sous-tableaux, c'est le couple (pointeur de début, pointeur de fin) du sous-tableau le plus grand qui est ajouté dans la variable stack et l'algo continue sur l'autre sous-tableau. Du coup, on en déduit que le nombre d'éléments de stack ne dépassera pas le logarithme de base 2 de la taille du tableau à trier. Et comme la taille du tableau à trier ne peut pas dépasser une certaine valeur (car c'est un entier de taille fixe), on peut choisir de représenter stack sous la forme d'un tableau avec une taille fixe suffisamment grande (CHAR_BIT * sizeof(size_t) dans le code source actuel) pour qu'il n'y ait pas de risque d'overflow quand on ajoute un élément dans stack.

    Citation Envoyé par Neckara Voir le message
    D'ailleurs question stupide, pour un langage fonctionnel, comment les récursions sont gérées en interne ?
    Il passent comme des appels de fonctions avec tout ce que cela implique au niveau des registres CPU/la pile, ou c'est transformé dans une version itérative via une stack ?
    Dans le cas particulier de la récursion terminale, le compilateur peut optimiser pour remplacer la récursion par une simple boucle while, sans encombrer la mémoire d'une "stack". Dans plusieurs langages comme Scheme et Haskell, cette optimisation est obligatoire pour être conforme au langage.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2019
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2019
    Messages : 47
    Par défaut "mettent en avant le support du style fonctionnel en avant"
    "mettent en avant le support du style fonctionnel en avant" Qui publie encore sans se relire ?

Discussions similaires

  1. Pourquoi ce programme ne m'affiche pas le bonjour
    Par phenix1988 dans le forum C++
    Réponses: 6
    Dernier message: 29/01/2009, 17h15
  2. Réponses: 3
    Dernier message: 04/03/2007, 09h34
  3. Réponses: 4
    Dernier message: 19/08/2006, 22h58

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