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

Langages de programmation Discussion :

Comparaison langages C et Fortran


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Par défaut Comparaison langages C et Fortran
    Bonjour à tous les forumeurs!


    Alors voila je vous explique le truc, dans le cadre de mes études je dois présenter et comparer les langages c et fortran77 pour les points suivants :

    - présentation générale d'un fichier source
    - variables : choix des noms,types et déclarations
    - déclarations et gestion des tableaux
    - structure de contrôle : boucles, tests, boucles conditionnelles, sauts.
    - ecriture de fonction et sous-programme

    Pour chaque cas il faut précisez la synthaxe en donnant un exemple et citer les avantages/inconvénients des langages.


    Bon, le problème c'est que je suis pas vraiment callé en informatique, j'ai quand même commencé à chercher et j'ai trouvé quelques trucs intéressants sur le net. Seulement, j'aurais aimé avoir l'avis de personnes beaucoup plus calé afin de connaitre, ne serait-ce que les grosse différences entre ces deux langages. Ou alors si vous pouvez m'aiguiller sur des livres qui abordent ce sujet... Enfin bref, tout aide sera la bienvenue.

    Merci d'avance!

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    C'est un vaste sujet. Si on te pose de telles questions, c'est que tu es cense avoir des connaissances (au moins rudimentaires) des deux langages. On peut t'aider ici, mais il faudrait que tu donnes ce que tu as deja ecrit en reponse aux questions posees.

  3. #3
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    il faut deja savoir les points de comparaison dont on parle :
    - la syntaxe ?
    - la taille de la mémoire alloué ?
    - la rapidité ?
    - la taille de l'exécutable ?
    - la "lisibilité" ?
    etc...

  4. #4
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Salut,

    Pour te faire une idée rapide de ces deux langages, voici quelques resources que tu peux trouver sur developpez:

    Un cours de Fortan:
    http://www.developpez.biz/download/fortran.pdf

    Un cours de C:
    ftp://ftp2.developpez.be/developps/c/PolyC.pdf

    et la FAQ consacrée au langage C:
    http://c.developpez.com/faq/c/

    Tu y trouveras peut-être des éléments utiles.

    Bonne chance et meilleures salutations

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Par défaut
    Merci pour vos réponse.

    En fait oui, j'ai déja quelques notions, surtout en langage c. En fortran on a eu un cours d'initiation d'une dizaine d'heure, ce qui est assez léger. En fait je crois pas qu'on nous demande des choses trop complexe.
    Donc au niveau des comparaison, pour chaque point que j'ai énumérer précedemment, il faut comparer les synthaxes, puis dire quel langage est plus performant que l'autre, à tous niveaux. En même temps le rapport doit faire 4-5 pages, donc je pense pas qu'il faille pousser trop loin non plus...
    Sinon d'après ce que j'ai compris, le c est une évolution du fortran, donc je vois pas en quoi le fortran serait plus performant que le c (enfin si on est logique).

    Merci pour tes liens mujigka, je pense qu'avec ca je pourrais me débrouiller.

  6. #6
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par jeremie_21
    Donc au niveau des comparaison, pour chaque point que j'ai énumérer précedemment, il faut comparer les synthaxes, puis dire quel langage est plus performant que l'autre, à tous niveaux.
    La notion de performance au niveau de la syntaxe, c'est assez etrange. On peut dire qu'un syntaxe est plus lisible qu'une autre. Mais bon, apprendre la syntaxe, ca fait partie de l'apprentissage d'un langage, de toute facon...

    Sinon d'après ce que j'ai compris, le c est une évolution du fortran, donc je vois pas en quoi le fortran serait plus performant que le c (enfin si on est logique).
    Le C n'est pas vraiment une evolution du Fortran. Le Fortran est un des (sinon le) premier langages de haut niveau (par opposition a l'assembleur). Le C, venant peut apres, a ainsi repris certaines des "decouvertes" faites par les createurs du Fortran. Mais c'est tout ce qui les lie.
    Ensuite, dire que le Fortran est plus/moins performant que le C, ca risque de froler le troll... Le Fortran est plus adapte a la niche qu'il occupe (calcul scientifique) car il "cache" beaucoup de details (les pointeurs, notamment [meme s'ils ont fait leur apparition en Fortran 90]). Le Fortran dispose d'un operateur d'exponentiation, ce qui est interessant en calculs mathematiques. La disposition de nombreuses bibliotheques, anciennes et eprouvees, donne aussi un avantage au Fortran.
    Bref, comparer un langage oriente calcul scientifique et un langage generaliste comme le C est un peu vain... Mais si c'est un exercice, alors...

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par défaut
    Citation Envoyé par jeremie_21
    Bonjour à tous les forumeurs!


    Alors voila je vous explique le truc, dans le cadre de mes études je dois présenter et comparer les langages c et fortran77 pour les points suivants :

    - présentation générale d'un fichier source
    le fortran ne dispose pas .h donc pas de déclaraions de subroutine, moi je trouve ça moins lisible mais bon...
    - variables : choix des noms,types et déclarations
    le fortran ne fait pas la difference entre lettre majuscule et minuscule, là encore je trouve que c'est moins lisible pour les noms de variable. La déclaration des variables se fait au début du programme, j'ai gardé cette habitude en c pour éviter de déclarer n'importe quoi n'importe où dans une fonction, mais le fait d'y etre obligé je trouve ça nul... il me semble qu'on ne peut pas mettre de chiffre dans les noms de variable genre integer i1,i2
    - déclarations et gestion des tableaux
    le fortran77 ne dispose de l'allocation dynamique, un drame selon moi, sinon le fortran commence les tableaux à 1 contrairement au c... question d'habitude
    - structure de contrôle : boucles, tests, boucles conditionnelles, sauts.
    à part la syntaxe à la do/enddo c'est pareil
    - ecriture de fonction et sous-programme
    c'est horrible, en fortran tu déclare la fonction avec des variable qui n'ont pas de type, c'est à l'intérieue de la subroutine qu'il faut dire quelle sont les types des variables passées en parametre, un scandale... surtout que ça se fait au meme niveau que la déclaration d'autre variables locales
    voici ce que je peux dire en quelques lignes

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Par défaut
    Merci!

  9. #9
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par reptils
    le fortran ne dispose pas .h donc pas de déclaraions de subroutine, moi je trouve ça moins lisible mais bon...
    C'est vrai que l'absence de prototype en Fortran pose probleme pour la verification des arguments passes a une fonction/subroutine. Le fait que l'acces a un element de tableau et l'appel d'une fonction utilisent la meme syntaxe n'arrange pas les choses... Ceci dit, la plus grosse difference entre le Fortran 77 et le C, du point de vue du code source, est le "fix format" du Fortran 77 (colonnes 1 a 4 pour le label, colonne 5 pour la continuation de ligne, colonne 6 a 72 pour le code, un C en colonne 1 pour les lignes de commentaire) herite des antiques "punch cards".

    le fortran ne fait pas la difference entre lettre majuscule et minuscule, là encore je trouve que c'est moins lisible pour les noms de variable. La déclaration des variables se fait au début du programme
    Etre case insensitive, il y a du pour et du contre, ca depend du point de vue. Note qu'a l'origine, le Fortran 77 exigeait les majuscules, et pas plus de 6 caracteres pour le nom d'un objet (variable, routine, ...). Quant a la declaration des variables en debut de programme, c'est aussi le cas en C90 (qui ajoute toutefois la notion de bloc).

    il me semble qu'on ne peut pas mettre de chiffre dans les noms de variable genre integer i1,i2
    Non. Mais un nom de variable ne doit pas commencer par un chiffre (comme en C).

    le fortran77 ne dispose de l'allocation dynamique
    C'est exact. Cela a ete ajoute comme extension par la suite, puis formalise en Fortran 90.

    en fortran tu déclare la fonction avec des variable qui n'ont pas de type, c'est à l'intérieue de la subroutine qu'il faut dire quelle sont les types des variables passées en parametre
    C'etait aussi le cas en C K&R. C'est de la pure syntaxe, et ne change rien. Le seule probleme etant l'absence de prototypage (apparu en Fortran 90 avec la notion d'interfaces).

    En resume, le Fortran 77 original etait assez intransigeant : c'est un langage assez statique (pour des raisons historiques ou techniques), qui a tendance a "proteger la machine", ce qui est plutot une bonne chose lorsque la cible visee n'est pas les informaticiens de metier. Le C est beaucoup plus libre et permissif, ce qui le rend plus difficile d'acces et plus "dangeureux" pour les debutants. ("C is a sharp tool", comme dit l'autre!). Le Fortran a bien evolue depuis ces origines, et je trouverais plus "juste" de comparer Fortran 90 et C90...

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Par défaut
    j utilisais beaucoup le fortran il y a une dizaine d années. pour faire simple le fortran est le langage ideal pour les calculs scientifiques. par exemple l analyse numerique ( resolution d equa diff par des methodes comme runge kutta, differences finies...). dans mon souvenir il permet les calculs sur les matrices ce que ne permet pas le c. par contre il ne gere(ait) pas les pointeurs. je crois aussi que les fonctions ( ou sous programmes en fortran ) permettaient de renvoyer plusieurs valeurs.
    pour ceux qui n ont pas besoin d alloc dynamiques, de pointeurs... le fortran est beaucoup plus simple à utiliser. c etait le langage roi pour les ingenieurs en R&D qui avaent besoin de faire tourner des boucles de milliers de calculs ( iteratifs, recursifs ...). j ai fait mon stage ingenieur INSA mecanique à l aerospatiale en 1990 et il portait sur l amelioration d un code de calcul de simultation d attenuation d acoustique de l AERO en fortran.
    voila ce que j en sais j espere que ca t apporte des elements.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par défaut
    En effet pour ce qui est du calcul numerique le fortran a encore un peu de temps de survie.... mais de plus en plus de numeritien codent en c maintenant. Fortran profite du fait que c'est un vieux langage, et donc qu'il y a eu un travail enorme pour creer des librairies pour le calcul scientifique (blas, lapack, slatec, amos....)

Discussions similaires

  1. Probleme violation accés : Langage mixe VBA - Fortran
    Par VanTwist dans le forum Fortran
    Réponses: 2
    Dernier message: 22/01/2015, 14h59
  2. [langage] Comparaison de chaîne
    Par Fastshadow dans le forum Langage
    Réponses: 7
    Dernier message: 05/09/2004, 18h58
  3. [langage] Comparaison de tableaux
    Par WetzlarMan dans le forum Langage
    Réponses: 2
    Dernier message: 22/04/2004, 14h08
  4. Réponses: 6
    Dernier message: 21/01/2004, 13h25
  5. [langage] Comparaison de fichiers
    Par Jibees dans le forum Langage
    Réponses: 3
    Dernier message: 23/04/2003, 16h27

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