• [^] # Re: Surprenant que le Fortran ne soit pas mentionné

    Posté par . En réponse à la dépêche Version 1.0 de Julia. Évalué à 4.

    Effectivement, votre exemple est parlant et j'ai surement été un peu vite. J'ai appris le C dans le Kernighan & Ritchie et il me semble qu'ils disent bien que c'est quasiment la même chose. Il n'empêche, le bound checking reste un problème.

    J'ai vu le lien que vous avez donné, qui consiste à faire un hack du C pour faire ce que fait le Fortran. Je vais regarder plus en détail.

    La différence entre le Fortran et le C est que justement, le Fortran ne permet pas d'écrire quelque chose comme ptr = 1589. Le Fortran possède des pointers (rarement utiles en Fortran), des smarts pointers et des arrays. Cependant, l'arithmétique des pointeurs est interdite, ce qui permet de sécuriser grandement les codes. C'est une des raisons pour laquelle je ne suis pas fan de C/C++ pour le calcul scientifique.
    De plus, pour la parallelisation, les compilateurs C/C++ sont souvent très gênés par l'aliasing de pointeurs, problème qui n'existe pas en Fortran. Je sais bien que le C99 a ajouté le keyword "restrict", mais il n'existe pas en C++ et il semble très mal implémenté dans les compilateurs C (voir http://people.freebsd.org/~lstewart/articles/cpumemory.pdf page 50, en bas à droite).