Concernant Fortran : il y a pas plus vieux car c'est le plus ancien langage de programmation. En fait, il a inventé le concept du langage de programmation. Avant, les programmateurs étaient de vrais hommes : ils codaient en langage machine ou en assembleur. Mais pour les scientifiques et les ingénieurs ça ne pouvait pas le faire... Donc, vers 1956, il a été créé un logiciel pour générer du langage machine à partir de formules de maths. D'où le nom FORmula TRANslator. En ces temps reculés, il y avaient deux sortes de support de code source : les cartes perforées et les rubans perforés. La société qui a sorti Fortran était IBM et son truc était les cartes perforées. Donc, jusqu'à Fortran 77, une ligne de code correspondait à une carte perforée. Ceci a obligé à faire un langage le moins verbeux possible pour économiser de la place. Et c'est pour ça que Basic est sorti (en s'inspirant aussi de l'Algol aussi, je crois) pour permettre de programmer sans avoir les dispositions d'un égyptologue. Quinze ans plus tard, ceux qui ont développé le langage C ont opté pour les bandes perforées et donc n'ont pas eu le même souci de concision du langage. La version de 1990 de Fortran a abandonné le style carte perforée et donc a permis une plus grande verbosité du code. Depuis, les joyeusetés que sont les pointeurs et la programmation orienté objet sont entrés dans la norme. Aujourd'hui l'effort se porte sur la parallélisation des tâches et le concubinage avec le langage C.
Concernant ton problème de logiciel, voilà ce que j'ai compris (mais il faudra que tu me ré-explique si j'ai compris de travers) : tu as un logiciel dont une partie est une (ou des) routine(s) Fortran que tu voudrais adresser directement en lui passant des paramètres. Si le binaire est en seul tenant, c'est-à-dire lié statiquement, je ne vois pas comment faire (sauf s'il existe sur ton disque dur une bibliothèque archive, suffixée .a). Mais s'il est lié dynamiquement et qu'il appelle des bibliothèques, il est possible que toutes les procédures codées en Fortran soient dans une bibliothèque particulière. Si tu arrives à dénicher laquelle, il y a un minuscule espoir de s'en sortir ! (cette bibliothèque est suffixée .so) Après il faut connaître les noms des procédures (sous-routines ou fonctions) et les paramètres à fournir. Une possibilité est de faire une recherche sur Internet avec le nom de la bibliothèque. En effet, il est très possible que cette bibliothèque soit employée par d'autres logiciels et qu'il existe une doc. (Mais il est possible aussi que la documentation de ton logiciel donne les API de ces procédures !) Auquel cas, il est possible d'écrire un main en langage C ou en langage Fortran qui permettra d'adresser cette bibliothèque : en compilant ce main séparément puis en liant le main avec cette bibliothèque Fortran. Donc, ce n'est pas gagné sauf si tu arrives à dénicher le nom de cette bibliothèque et son mode d'emploi !
[^] # Re: FreeBSD
Posté par Denis Bernard . En réponse au message Testeurs pour mon moteur de blog. Évalué à 2.
Concernant Fortran : il y a pas plus vieux car c'est le plus ancien langage de programmation. En fait, il a inventé le concept du langage de programmation. Avant, les programmateurs étaient de vrais hommes : ils codaient en langage machine ou en assembleur. Mais pour les scientifiques et les ingénieurs ça ne pouvait pas le faire... Donc, vers 1956, il a été créé un logiciel pour générer du langage machine à partir de formules de maths. D'où le nom FORmula TRANslator. En ces temps reculés, il y avaient deux sortes de support de code source : les cartes perforées et les rubans perforés. La société qui a sorti Fortran était IBM et son truc était les cartes perforées. Donc, jusqu'à Fortran 77, une ligne de code correspondait à une carte perforée. Ceci a obligé à faire un langage le moins verbeux possible pour économiser de la place. Et c'est pour ça que Basic est sorti (en s'inspirant aussi de l'Algol aussi, je crois) pour permettre de programmer sans avoir les dispositions d'un égyptologue. Quinze ans plus tard, ceux qui ont développé le langage C ont opté pour les bandes perforées et donc n'ont pas eu le même souci de concision du langage. La version de 1990 de Fortran a abandonné le style carte perforée et donc a permis une plus grande verbosité du code. Depuis, les joyeusetés que sont les pointeurs et la programmation orienté objet sont entrés dans la norme. Aujourd'hui l'effort se porte sur la parallélisation des tâches et le concubinage avec le langage C.
Concernant ton problème de logiciel, voilà ce que j'ai compris (mais il faudra que tu me ré-explique si j'ai compris de travers) : tu as un logiciel dont une partie est une (ou des) routine(s) Fortran que tu voudrais adresser directement en lui passant des paramètres. Si le binaire est en seul tenant, c'est-à-dire lié statiquement, je ne vois pas comment faire (sauf s'il existe sur ton disque dur une bibliothèque archive, suffixée
.a). Mais s'il est lié dynamiquement et qu'il appelle des bibliothèques, il est possible que toutes les procédures codées en Fortran soient dans une bibliothèque particulière. Si tu arrives à dénicher laquelle, il y a un minuscule espoir de s'en sortir ! (cette bibliothèque est suffixée.so) Après il faut connaître les noms des procédures (sous-routines ou fonctions) et les paramètres à fournir. Une possibilité est de faire une recherche sur Internet avec le nom de la bibliothèque. En effet, il est très possible que cette bibliothèque soit employée par d'autres logiciels et qu'il existe une doc. (Mais il est possible aussi que la documentation de ton logiciel donne les API de ces procédures !) Auquel cas, il est possible d'écrire unmainen langage C ou en langage Fortran qui permettra d'adresser cette bibliothèque : en compilant cemainséparément puis en liant lemainavec cette bibliothèque Fortran. Donc, ce n'est pas gagné sauf si tu arrives à dénicher le nom de cette bibliothèque et son mode d'emploi !