Bonjour à tous,
je désire depuis un programme Java appeler une fonction en Ada95, quelqu'un peut-il me donner un exemple ou un tutorial ?
Merci d'avance!
[ Modéré par Bulbo ]
Ajout d'un tag dans le titre
:arrow: Les Règles du Forum
Version imprimable
Bonjour à tous,
je désire depuis un programme Java appeler une fonction en Ada95, quelqu'un peut-il me donner un exemple ou un tutorial ?
Merci d'avance!
[ Modéré par Bulbo ]
Ajout d'un tag dans le titre
:arrow: Les Règles du Forum
:salut:
euh... 8O je ne suis même pas sûr que le truc que tu demandes éxiste.
déjà c'est quoi l'intéret.
en C c'est justifié par souci de performance par contre Ada je ne vois pas lintéret vraiment...
Je ne connais pas Ada. Mais si Ada à la possibilité d'offrir ces fonctions via une interface C, tu pourrais utiliser le JNI. JNI (Java Natif Interface) permet depuis Java d'appeler des fonctions d'une librairie.
Si si, ADA95, ça existe :DCitation:
Envoyé par soulhouf
L'intérêt est probablement de réutiliser quelque chose qui existe et qu'on ne veut pas ré-écrire.Citation:
déjà c'est quoi l'intéret.
en C c'est justifié par souci de performance par contre Ada je ne vois pas lintéret vraiment...
Des fois, on ne choisi pas, on doit faire avec "l'existant" ([digression perso]terme qui revient tellement souvent dans certaine boîtes ![/digression perso]) ...
merci, je voulais en fait éviter de passer par la JNI puis par C pour enfin toucher le programme ADA95.. bon si c'est le seul moyen.., quelqu'un a-t-il un exemple ou un tutorial pour interfacer C et ada? merci d'av'
parce que tout ce que j'ai trouvé sur le net c'est des fragments de code et le passage d'un programme ada à une dll je ne l'ai pas encore fait.. car je crois que je devrais passer par là...
Alors maintenant l'utilité.. vu que quelqu'un posait la question:
pour des raisons de performances bien sûr, mais, me direz-vous, pourquoi ne pas s'arrêter à C et vouloir utiliser ADA.. la raison est simple: je désire faire de l'optimisation et ce genre de programme sont vite comliqué à déboger, donc si j'ai un compilateur strict, je ne risque pas de perdre du temps avec des erreurs stupides (vous savez celles auxquelles on ne pense qu'après avoir vérifié tout le reste), de plus en compilant notre programme ADA avec l'option o4, ce dernier est très optimisé et deviens plus rapide que du C (je pense surtout au pointeur: du moment qu'il y a des pointeurs C ne touche plus rien, en ADA ça doit être des références).. bon j'imagine que ça peut être un grand débat, par contre le fait d'avoir un compilateur strict il n'y a pas de débat à avoir ;)
merci d'avance encore de vos réponses et de votre aisde précieuse!
En Ada, il existe des directives destinées au compilateur (appelées "pragma") permettant entre autres choses d'interfacer du code Ada avec du code écrit dans un autre langage (généralement du C), et ce dans les deux sens. Pour importer dans le code Ada des fonctions écrites en C, il existe le pragma INTERFACE (qui de mémoire est normalisé), pour exporter des fonctions Ada et les rendre accessibles depuis du code C, il existait le pragma EXPORT avec les compilateurs Alsys et Verdix, mais je ne suis pas sûr que ce dernier soit normalisé. Regarde dans la doc de ton compilateur Ada, précisément dans l'Appendice F qui décrit les aspects non portables de l'implémentation.
oui de ce côté là je suis d'accord avec toi c'est vrai que le compilateur Ada il n'y a pas plus rigoureux (la preuve ils l'emploient à la NASA dans les programmes spatiaux)Citation:
Envoyé par mmathieu
par contre la performance je suis pas si sûr car si tu utilises les options de compilation C avec gcc qui permettent de fournir un code super optimisé tu obtiens le code le plus performant possible.
sinon moi personnelement je préfere Ada vu le confort qu'il offre (d'ailleur j'ai même écrit un compilateur avec).
bon courage :wink: