OVH Cloud OVH Cloud

Outil traduction template operator vers C

8 réponses
Avatar
tardyp
Bonjour,

Je cherche un outil qui me permettrai de traduire automatiquement du
C++ en C.

Je suis en effet en train d'écrire un petit set de classes C++ pour
facilité la lisibilité de programmes numériques pour DSP. Cette
bibliothèque utilise le minimum de paradygmes C++ utiles dans mon cas:
- un type de donnée encapsulée dans une classe template.
- des redéfinitions d'opérateurs à la pelle
- des spécialisations de d'opeateurs templates pour optimiser certains
cas.

l'idee de base est de remplacer les
b = add(a,mult(b, add (c,d)))
par
b = a + b * (c + d)

Le probleme est que mon compilateur DSP ne supporte que le C.

Google m'a trouvé quelques gens qui parlait du vieux compilateur de
AT&T cfront, mais ne m'a pas donné le moyen de me le procurer.

8 réponses

Avatar
Thierry Miceli

Google m'a trouvé quelques gens qui parlait du vieux compilateur de
AT&T cfront, mais ne m'a pas donné le moyen de me le procurer.

cfront date de la première version de C++ qui était bien plus succincte que

la version actuelle du langage.
Elle n'avait, entre autres, pas de notion de template, il semble donc que
ce ne soit pas l'outil que tu recherches.

Thierry Miceli
www.ideat-solutions.com

Avatar
Jean-Marc Bourguet
(Pierre TARDY) writes:

Je cherche un outil qui me permettrai de traduire
automatiquement du C++ en C.


Si l'objectif est par après de maintenir en C, je ne connais
pas de bonnes solutions. Si l'objectif est de continuer à
utiliser une chaine C++ -> C -> code machine, il y a Comeau
(http://www.comeaucomputing.com) mais je ne connais pas leur
prix pour un port "custom". J'ai souvenir aussi d'avoir vu
mention d'un back-end C pour gcc, si j'ai bonne mémoire,
c'était qqch fait par des gens de chez Sun.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Avatar
kanze
Thierry Miceli wrote:

Google m'a trouvé quelques gens qui parlait du vieux
compilateur de AT&T cfront, mais ne m'a pas donné le moyen
de me le procurer.


cfront date de la première version de C++ qui était bien plus
succincte que la version actuelle du langage.


CFront a eu en fait une assez longue vie.

Elle n'avait, entre autres, pas de notion de template, il
semble donc que ce ne soit pas l'outil que tu recherches.


J'ai appris les templates sur un compilateur basé CFront (Sun CC
3.?). Ce que CFront n'a jamais eu de AT&T, c'est les exceptions
(mais HP en avait modifié le leur pour les supporter).

Le plus grand problème avec un CFront solution, c'est que le
compilateur n'est plus disponible depuis environ dix ans. Alors,
même s'il lui suffisait...

L'alternatif aujourd'hui, c'est Comeau, qui se sert en général
d'un compilateur C comme back-end. Il faudrait leur contacter,
pour voir combien il démande pour cibler ton compilateur C. (Le
code C généré est rarement parfaitement portable.)

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
Gabriel Dos Reis
writes:

| > Elle n'avait, entre autres, pas de notion de template, il
| > semble donc que ce ne soit pas l'outil que tu recherches.
|
| J'ai appris les templates sur un compilateur basé CFront (Sun CC
| 3.?). Ce que CFront n'a jamais eu de AT&T, c'est les exceptions
| (mais HP en avait modifié le leur pour les supporter).

Les templates de CFront ont été implémentés par un utilisateur (qui a
eu les spécifications des premières conceptions). Selon les dires
mêmes de ceux qui ont directement travaillé sur CFront. En
particulier, la version contenue dans 3.0 était quasiment
inutilisable, et la version 3.0.1 a dû subir les corrections de John
Spicer (qui travaillait alors à AT&T) et était le manager de CFront.

| Le plus grand problème avec un CFront solution, c'est que le
| compilateur n'est plus disponible depuis environ dix ans. Alors,
| même s'il lui suffisait...
|
| L'alternatif aujourd'hui, c'est Comeau, qui se sert en général
| d'un compilateur C comme back-end. Il faudrait leur contacter,
| pour voir combien il démande pour cibler ton compilateur C. (Le
| code C généré est rarement parfaitement portable.)

Comeau est basé sur le front-end de EDG ; ce dernier peut être adapté
à n'importe quel back-ends (ils ont un back-end C par défaut).
Mais il est vrai qu'ils ne vendent pas directement au particulier.
Le code cu compilateur est très agréable à lire et nécessite peu de
temps pour une prise en main -- contrairement, disons, à d'autres
compilateurs populaires que je connais.

-- Gaby
Avatar
Loïc Joly

Comeau est basé sur le front-end de EDG ; ce dernier peut être adapté
à n'importe quel back-ends (ils ont un back-end C par défaut).
Mais il est vrai qu'ils ne vendent pas directement au particulier.
Le code cu compilateur est très agréable à lire et nécessite peu de
temps pour une prise en main -- contrairement, disons, à d'autres
compilateurs populaires que je connais.


Il est écrit en C ou en C++ ?

--
Loïc

Avatar
James Kanze
Gabriel Dos Reis wrote:
writes:


| > Elle n'avait, entre autres, pas de notion de template, il
| > semble donc que ce ne soit pas l'outil que tu recherches.


| J'ai appris les templates sur un compilateur basé CFront
| (Sun CC 3.?). Ce que CFront n'a jamais eu de AT&T, c'est les
| exceptions (mais HP en avait modifié le leur pour les
| supporter).


Les templates de CFront ont été implémentés par un utilisateur
(qui a eu les spécifications des premières conceptions). Selon
les dires mêmes de ceux qui ont directement travaillé sur
CFront. En particulier, la version contenue dans 3.0 était
quasiment inutilisable, et la version 3.0.1 a dû subir les
corrections de John Spicer (qui travaillait alors à AT&T) et
était le manager de CFront.


Et alors ? CFront 3.quelquechose était la base des compilateurs
Sun CC et HP à l'époque. L'alternatif, c'était g++, qui n'avait
pas de templates de tout. L'implémentation CFront marchait pour
ce qu'on voulait faire à l'époque -- en tout cas, il
représentait un progrès net par rapport à <generic.h>.
Évidemment, par rapport à ce qu'on a l'habitude aujourd'hui...

Il ne faut pas le juger à l'aune d'aujourd'hui. (Évidemment,
l'implémentation utilisée par Sun CC et HP provenait de AT&T.
Plus que ça, je n'en sais rien. Stroustrup dit que c'était de
Lippman et de McCluskey.)

| Le plus grand problème avec un CFront solution, c'est que le
| compilateur n'est plus disponible depuis environ dix ans.
| Alors, même s'il lui suffisait...


| L'alternatif aujourd'hui, c'est Comeau, qui se sert en
| général d'un compilateur C comme back-end. Il faudrait leur
| contacter, pour voir combien il démande pour cibler ton
| compilateur C. (Le code C généré est rarement parfaitement
| portable.)


Comeau est basé sur le front-end de EDG ; ce dernier peut être
adapté à n'importe quel back-ends (ils ont un back-end C par
défaut). Mais il est vrai qu'ils ne vendent pas directement au
particulier. Le code cu compilateur est très agréable à lire
et nécessite peu de temps pour une prise en main --
contrairement, disons, à d'autres compilateurs populaires que
je connais.


:-)

Si tu veux écouter un vieux pour une fois, je te dirais une
chose que j'ai aprise de l'expérience : plus tu entres dans les
détails d'un programme, plus tu te rends compte de ses
faiblesses. Alors, je ne veux pas dire que le front-end de EDG
n'est pas mieux que d'autres -- vue la qualité qu'on en ressent
en tant qu'utilisateur, je parierais que c'est le cas, même sans
avoir vu le code. Mais ne sois pas trop critique vis-à-vis des
autres non plus. Peut-être si tu ne les connaissais pas si bien,
tu te rendrais moins compte de leurs faiblesses aussi. (Mais je
dis ça en général. Je n'exclue pas non plus que la qualité de
certains compilateurs laissent à souhaiter.)

--
James Kanze mailto:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34

Avatar
Gabriel Dos Reis
Loïc Joly writes:

|
| > Comeau est basé sur le front-end de EDG ; ce dernier peut être adapté
| > à n'importe quel back-ends (ils ont un back-end C par défaut).
| > Mais il est vrai qu'ils ne vendent pas directement au particulier.
| > Le code cu compilateur est très agréable à lire et nécessite peu de
| > temps pour une prise en main -- contrairement, disons, à d'autres
| > compilateurs populaires que je connais.
|
| Il est écrit en C ou en C++ ?

Il est écrit en C -- mais se compile très bien en mode C++.

-- Gaby
Avatar
Gabriel Dos Reis
James Kanze writes:

| Il ne faut pas le juger à l'aune d'aujourd'hui.

Si tu as vu quelqu'un le faire, il te faut donner des références
explicites.

[...]

| Si tu veux écouter un vieux pour une fois,

Je n'ai rien contre écouter les vieux -- en fait, je ne fait que ça,
depuis plus de trois décennies.
Mais, les mauvais griots m'exaspèrent ; c'est autre chose.

| je te dirais une
| chose que j'ai aprise de l'expérience : plus tu entres dans les
| détails d'un programme, plus tu te rends compte de ses
| faiblesses. Alors, je ne veux pas dire que le front-end de EDG
| n'est pas mieux que d'autres -- vue la qualité qu'on en ressent
| en tant qu'utilisateur, je parierais que c'est le cas, même sans
| avoir vu le code. Mais ne sois pas trop critique vis-à-vis des
| autres non plus. Peut-être si tu ne les connaissais pas si bien,
| tu te rendrais moins compte de leurs faiblesses aussi. (Mais je
| dis ça en général. Je n'exclue pas non plus que la qualité de
| certains compilateurs laissent à souhaiter.)

Mon commmentaire sur le front-end EDG vient de mon expérience
personnelle depuis bientôt deux ans et non une rumeur de troisième
main. Je le compare à d'autres que je connais, il n'y a pas photo ; il
passe la main haute.

Et toi, ton commentaire est basé sur une expérience concrète avec le
produit en question ?

-- Gaby