Précédent   Forum du club des développeurs et IT Pro > C et C++ > Outils pour C & C++
Outils pour C & C++ Forum d'entraide sur les outils de développement pour C & C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 04/02/2013, 15h54   #1
Hinault Romaric
Responsable Actualités

 
Avatar de Hinault Romaric
 
Homme Hinault Romaric
Consultant
Inscription : janvier 2007
Messages : 2 833
Détails du profil
Informations personnelles :
Nom : Homme Hinault Romaric
Localisation : Cameroun

Informations professionnelles :
Activité : Consultant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2007
Messages : 2 833
Points : 37 590
Points : 37 590
Par défaut Compiler son programme C/C++ en ligne

Compiler son programme C/C++ en ligne
l’ISO C++ publie des implémentations de Clang, Visual C++ 2012 et GCC, accessibles dans le navigateur

Vous voulez essayer C++ mais vous n’avez pas de compilateur installé sur votre poste ? Vous voulez découvrir une nouvelle fonction de la spécification C++11 ou encore vous voulez comparer les résultats de compilation entre différents compilateurs ?

Voilà quelques situations auxquelles vous pouvez être confronté et qui peuvent rapidement être résolues grâce à un compilateur dans le Cloud.

Plusieurs sociétés ont travaillé sur des implémentations des compilateurs C/C++ accessibles en ligne.

Le comité de normalisation du C++ vient de publier une liste de ces compilateurs online, qui permettent de compiler son programme C++ dans un navigateur, sans avoir besoin d’un compilateur installé sur son poste.

La liste propose les compilateurs en ligne : LiveWorkspace, qui implémente les dernières versions de Clang (3.2) et GCC (4.7.2) ; gcc.godbolt.org (Clang 3.0, GCC 4.5.3 - 4.8.0 bêta, Intel ICC 13.0.1) ou encore Rise4Fun qui implémente Microsoft Visual C++ 2012.


LiveWorkspace, par exemple, dispose également des compilateurs pour C# (Mono), Python (PyPy) ou encore Fortran (GFortran).

La liste de compilateurs en ligne de l'ISO C++


Source : ISO C++


Et vous ?

Que pensez-vous de ces compilateurs online ? Les avez-vous déjà utilisés ?
__________________
Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
Mon blog Mes articles
En posant correctement votre problème, on trouve la moitié de la solution
Hinault Romaric est déconnecté   Envoyer un message privé Réponse avec citation 91
Vieux 04/02/2013, 16h19   #2
gbdivers
Expert Confirmé Sénior

 
Homme Guillaume Belz
Biochimiste
Inscription : novembre 2008
Messages : 5 318
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Belz
Âge : 37
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Biochimiste
Secteur : Santé

Informations forums :
Inscription : novembre 2008
Messages : 5 318
Points : 19 564
Points : 19 564


Citation:
Envoyé par Hinault Romaric
Que pensez-vous de ces compilateurs online ? Les avez-vous déjà utilisé ?
Très pratique pour faire des tests rapides. Par exemple, j'utilise régulièrement ideone pour corriger un code C++ donné sur le chat ou faire un code d'exemple (on peut donner un lien vers le code et donc permettre d'exécuter l'exemple directement, de voir le résultat de la compilation ou exécution, de copier coller)

Par contre, je connaissais pas les autres, je vais tester je crois (ideone à une version de gcc un peu ancienne pour le C++11 EDIT : en fait, c'est gcc 4.7.2 maintenant, donc à jour)

(HS : par contre, l'utilisation du terme "cloud" me fait toujours un peu rire... un nouveau mot bien à la mode pour dire "en ligne")
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP.

Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU.

Je suis régulièrement sur le chat pour les questions C++/Qt.

Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5.
gbdivers est déconnecté   Envoyer un message privé Réponse avec citation 40
Vieux 04/02/2013, 17h31   #3
bonnotguillaume
Membre du Club
 
Homme Guillaume Bonnot
Ingénieur développement logiciels
Inscription : janvier 2012
Messages : 19
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Bonnot
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : janvier 2012
Messages : 19
Points : 42
Points : 42
Juste une remarque :

Tu devrais préciser de quoi tu parles, car "un compilateur dans le Cloud" ou bien des "compilateurs online, qui permettent de compiler son programme C++ dans un navigateur", c'est le jour et la nuit.
bonnotguillaume est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2013, 17h36   #4
gbdivers
Expert Confirmé Sénior

 
Homme Guillaume Belz
Biochimiste
Inscription : novembre 2008
Messages : 5 318
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Belz
Âge : 37
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Biochimiste
Secteur : Santé

Informations forums :
Inscription : novembre 2008
Messages : 5 318
Points : 19 564
Points : 19 564
Citation:
Envoyé par bonnotguillaume Voir le message
Juste une remarque :

Tu devrais préciser de quoi tu parles, car "un compilateur dans le Cloud" ou bien des "compilateurs online, qui permettent de compiler son programme C++ dans un navigateur", c'est le jour et la nuit.
Tu peux détailler ce qu'est pour toi un "compilateur dans le cloud" ?

(sinon, c'est bien "qui permettent de compiler son programme C++ dans un navigateur", perso, je sais pas trop ce que veut dire "compilateur dans le cloud")

EDIT : enfin, dit comme ça, c'est pas clair non plus. Le compilateur est bien côté serveur, pas côté client. On a un éditeur en ligne, qui permet d'écrire du code qui sera stocké côté serveur et compilé sur le serveur. Et l'on récupère la sortie de compilation et d'exécution dans le navigateur (du moins pour ideone, j'ai pas testé les autres)
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP.

Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU.

Je suis régulièrement sur le chat pour les questions C++/Qt.

Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5.
gbdivers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2013, 18h26   #5
Rachel
Expert Confirmé
 
Avatar de Rachel
 
Femme yannick inizan
Padawan
Inscription : février 2011
Messages : 444
Détails du profil
Informations personnelles :
Nom : Femme yannick inizan
Âge : 26
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Padawan
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 444
Points : 3 631
Points : 3 631
Envoyer un message via MSN à Rachel Envoyer un message via Skype™ à Rachel
bof, je vais rester avec ideone pour le c#, pour ce que j'en faisais
manque toujours la possibilité d'inclure des bibliothèques externes
__________________
(marquer un post résolu si vous êtes satisfait de la réponse )
mon dépôt (mono, monodevelop, ...) : deb(-src) http://breizhodrome.free.fr raring main
ma page github : https://github.com/inizan-yannick
Rachel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2013, 18h51   #6
Hinault Romaric
Responsable Actualités

 
Avatar de Hinault Romaric
 
Homme Hinault Romaric
Consultant
Inscription : janvier 2007
Messages : 2 833
Détails du profil
Informations personnelles :
Nom : Homme Hinault Romaric
Localisation : Cameroun

Informations professionnelles :
Activité : Consultant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2007
Messages : 2 833
Points : 37 590
Points : 37 590
Citation:
Envoyé par bonnotguillaume Voir le message
Juste une remarque :

Tu devrais préciser de quoi tu parles, car "un compilateur dans le Cloud" ou bien des "compilateurs online, qui permettent de compiler son programme C++ dans un navigateur", c'est le jour et la nuit.
Salut, ces outils sont utilisables en ligne, mais la compilation se fait coté serveur. Donc, sauf erreur de ma part, on se rapproche d'une infrastructure PaaS.
__________________
Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
Mon blog Mes articles
En posant correctement votre problème, on trouve la moitié de la solution
Hinault Romaric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2013, 19h28   #7
Gugelhupf
Membre éclairé
 
Homme
Développeur informatique
Inscription : décembre 2011
Messages : 239
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2011
Messages : 239
Points : 335
Points : 335
J'utilise aussi ideone, c'est très pratique.
Merci pour ces liens !
Gugelhupf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2013, 19h46   #8
Klaim
Expert Confirmé
 
Avatar de Klaim
 
Homme Joel Lamotte
Développeur de jeux vidéo
Inscription : août 2004
Messages : 1 555
Détails du profil
Informations personnelles :
Nom : Homme Joel Lamotte
Localisation : France

Informations professionnelles :
Activité : Développeur de jeux vidéo
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2004
Messages : 1 555
Points : 2 971
Points : 2 971
Le seul souci c'est quand tu veux tester quelque chose lie au linker, tu peux pas utiliser differents fichiers. (sauf dans compilr.com mais le nombre de build est limite pour l'utilisation gratuite).
Klaim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2013, 21h59   #9
Rachel
Expert Confirmé
 
Avatar de Rachel
 
Femme yannick inizan
Padawan
Inscription : février 2011
Messages : 444
Détails du profil
Informations personnelles :
Nom : Femme yannick inizan
Âge : 26
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Padawan
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 444
Points : 3 631
Points : 3 631
Envoyer un message via MSN à Rachel Envoyer un message via Skype™ à Rachel
Citation:
Envoyé par Klaim Voir le message
Le seul souci c'est quand tu veux tester quelque chose lie au linker, tu peux pas utiliser differents fichiers. (sauf dans compilr.com mais le nombre de build est limite pour l'utilisation gratuite).
merci pour compilr très bon ide pour c#, hormis l'auto-complétion absente
__________________
(marquer un post résolu si vous êtes satisfait de la réponse )
mon dépôt (mono, monodevelop, ...) : deb(-src) http://breizhodrome.free.fr raring main
ma page github : https://github.com/inizan-yannick
Rachel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2013, 09h58   #10
bonnotguillaume
Membre du Club
 
Homme Guillaume Bonnot
Ingénieur développement logiciels
Inscription : janvier 2012
Messages : 19
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Bonnot
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : janvier 2012
Messages : 19
Points : 42
Points : 42
Merci pour vos réponses, on parle clairement de SaaS (le software étant le compilateur).
Dans la news, j'avais cru comprendre qu'ils avaient écrit un compilateur en javascript, et je trouvait ça bizarre ^^
bonnotguillaume est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2013, 12h22   #11
cuicui78
Membre actif
 
Inscription : mars 2006
Messages : 117
Détails du profil
Informations personnelles :
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 117
Points : 168
Points : 168
Comment ils font pour éviter que des petits malins essai de planter le serveur en créant des boucles infini plus ou moins complexes ?

Ils limitent le temps d’exécution du thread ? d'autres méthodes ?
cuicui78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2013, 13h28   #12
bonnotguillaume
Membre du Club
 
Homme Guillaume Bonnot
Ingénieur développement logiciels
Inscription : janvier 2012
Messages : 19
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Bonnot
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : janvier 2012
Messages : 19
Points : 42
Points : 42
Ils ont certainement mis en place un monitoring des ressources attribués a chaque tache, chaque "personne".
Bref, au mieux, ils arrentent la tâche, au pire, ils ban ton ip. Enfin, c'est ce que je ferais
bonnotguillaume est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2013, 15h33   #13
rt15
Membre éprouvé
 
Avatar de rt15
 
Homme
Développeur informatique
Inscription : octobre 2005
Messages : 203
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2005
Messages : 203
Points : 435
Points : 435
N’empêche c'est jouer avec le feu.
Visiblement, liveworkspace par exemple, semble se baser sur les permissions Linux pour mettre des restrictions. Je connais mal Linux, mais faut vraiment qu'il soit robuste pour permettre ça !

chdir fonctionne bien, uname aussi, on peut utiliser opendir/readdir sur la racine "/"...

Exécuter du code natif sur une machine c'est quand même habituellement le premier pas vers une intrusion, et là c'est dispo par défaut.

Bien sûr c'est pas nouveau. La grille de calcul européenne fonctionnait (Et probablement encore) sur ce principe : on envoyait le source et les données, et le tout était compilé et exécuté sur machine au hasard à un paquet de kms de là.

[edit]
A la réflexion, Linux correctement configuré est supposé suffisant. En théorie.
rt15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2013, 18h43   #14
cuicui78
Membre actif
 
Inscription : mars 2006
Messages : 117
Détails du profil
Informations personnelles :
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 117
Points : 168
Points : 168
Citation:
Envoyé par bonnotguillaume Voir le message
Ils ont certainement mis en place un monitoring des ressources attribués a chaque tache, chaque "personne".
Bref, au mieux, ils arrentent la tâche, au pire, ils ban ton ip. Enfin, c'est ce que je ferais
ce qui m’intéresse c'est pas ce qu'il advient de l'utilisateur, un pirate opérera depuis tor ou les wifi des mcdo, voir les deux, et les adresse Ip et ban il en aura rien à faire.

Non ce qui m’intéresse c'est comment détecter à temps avant le plantage du serveur les processus qui n'aboutiront pas.
Car venant de leur part il auront 3 cas de figure :
1) processus long mais qui peu aboutir ( comment peuvent t'ils le savoir )
2) processus long parce que boucle infini (pas faite exprès, dans le sens erreur de programmation )
3) processus long parce que boucle infini (provoquée )

le ban c'est pour la 3, mais comment détecter ces 3 cas de figures.
oui en limitant les ressources allouée a un processus ou en limitant le temps d’exécution ça peut régler le problème mais ça va affecter la qualité du service....
cuicui78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2013, 13h59   #15
rt15
Membre éprouvé
 
Avatar de rt15
 
Homme
Développeur informatique
Inscription : octobre 2005
Messages : 203
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2005
Messages : 203
Points : 435
Points : 435
Citation:
Envoyé par cuicui78 Voir le message
Non ce qui m’intéresse c'est comment détecter à temps avant le plantage du serveur les processus qui n'aboutiront pas.
Si on prend le cas de liveworkspace qui tourne sur un linux, il faut commencer par se rappeler qu'il y a pas si longtemps, et encore aujourd'hui, il y a des gros serveurs unix utilisés par n utilisateurs en même temps. Ces n utilisateurs ont généralement accès au serveur via une console ssh ou un serveur X window.

Ils peuvent "tout" faire, notamment compiler des programmes partant en boucle infinie, écrire dans un fichier, ou faire des programmes qui lancent d'autres programmes récursivement pour lancer une quantité exponentielle de processus.

Pourtant ces serveurs tiennent tout à fait le coup. Le système d'exploitation est fait pour. Par exemple avec les droits sur les fichiers et répertoire(cf plus haut : on peut parcourir leur disque mais pas écrire dessus, on ne peut pas apparemment exécuter de commande shell...)

Pour ce qui est du nombre de processus et la consommation cpu, il y a ulimit.

Donc s'il est correctement configuré, le seule moyen de pourrir leur serveur, ce serait de passer par une faille ou une manip pour avoir une élévation de privilège. [ironie]Mais c'est bien connu il n'y a pas de failles sous Linux.[/ironie]
rt15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2013, 18h22   #16
gbdivers
Expert Confirmé Sénior

 
Homme Guillaume Belz
Biochimiste
Inscription : novembre 2008
Messages : 5 318
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Belz
Âge : 37
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Biochimiste
Secteur : Santé

Informations forums :
Inscription : novembre 2008
Messages : 5 318
Points : 19 564
Points : 19 564
J'ai tout cassé ! Ou presque Du coup, j'ai la réponse. En cas de boucle infinie, l'exécution plante et lance un SIGXCPU (ideone.com)
Citation:
Envoyé par Wikipédia
SIGXCPU
The SIGXCPU signal is sent to a process when it has used up the CPU for a duration that exceeds a certain predetermined user-settable value. [4] The arrival of a SIGXCPU signal provides the receiving process a chance to quickly save any intermediate results and to exit gracefully, before it is terminated by the operating system using the SIGKILL signal.
Voilà. Ça, c'est fait. S'il faut faire d'autres bêtises avec le code, n'hésitez pas à demander, c'est ma spécialité
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP.

Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU.

Je suis régulièrement sur le chat pour les questions C++/Qt.

Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5.
gbdivers est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h20.


 
 
 
 
Partenaires

Hébergement Web