Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1866 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Quel est le langage le plus fortement type???

n°306696
HelloWorld
Salut tout le monde!
Posté le 11-02-2003 à 19:12:24  profilanswer
 

Reprise du message précédent :
"Pour les pros" :) :)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
mood
Publicité
Posté le 11-02-2003 à 19:12:24  profilanswer
 

n°306715
MagicBuzz
Posté le 11-02-2003 à 19:59:28  profilanswer
 

HelloWorld a écrit :

en ADA, il suffit de nommer la boucle a quitter et de la quitter :

Code :
  1. TantQue :
  2. loop
  3.     for i in 0..n loop
  4.         if (...) exit TantQue;
  5.     end loop;
  6. end loop TantQue;




En VB, on peut en effet faire quasi pareil :
 

Code :
  1. do while true
  2.    for i = 1 to n
  3.       if ... then exit while
  4.    next i
  5. loop


 
Y'a une syntaxe qui permet d'empiler les statements, mais je me souvient plus... Un truc genre "exit while 2" ou un truc comme ça pour indiquer qu'on veut quitter le while de second niveau


Message édité par MagicBuzz le 11-02-2003 à 20:02:00
n°306716
MagicBuzz
Posté le 11-02-2003 à 20:00:47  profilanswer
 

benou a écrit :

en ADA, si ca compile, ca marche !
 
c'est pas totu à fait vrai mais c'est pas loin ! ;)


Par contre, le but du jeu, c'est de faire compiler :D

n°306719
drasche
Posté le 11-02-2003 à 20:10:32  profilanswer
 

MagicBuzz a écrit :


Y'a une syntaxe qui permet d'empiler les statements, mais je me souvient plus... Un truc genre "exit while 2" ou un truc comme ça pour indiquer qu'on veut quitter le while de second niveau


je viens de regarder l'aide pour vérifier mais le statement Exit ne prend pas de paramètre hormis le type de structure (For, Do, Loop)
 
Par contre le Next peut être empilé pour fermer plusieurs boucles d'un seul coup


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°306722
MagicBuzz
Posté le 11-02-2003 à 20:19:48  profilanswer
 

ha, ok. je croyais pourtant avoir vu ça un coup.
désolé.
 
enfin, de toute façon, il suffit de tester la condition de sortie dans l'endroit où on tombe après le premier exit, pis on peut en faire un second ;)

n°307416
nicolbolas
Optiquement votre.
Posté le 12-02-2003 à 13:26:10  profilanswer
 

drasche a écrit :

:ouch: j'avais même pas vu que c'était un topic déterré [:ddr555]
 
NicolBolas > ça t'arrive de regarder la date du dernier post avant de poster? :sarcastic:


vu le nombre de posts qu'il y a eu, g ptet bienfait de le deterrer... En fait je me suis planté à cette question je crois... J'ai eu "que" 22 au questionnaire...

n°307553
BifaceMcLe​OD
The HighGlandeur
Posté le 12-02-2003 à 15:17:32  profilanswer
 

HelloWorld a écrit :

ben si ca t'en averti, c'est tant mieux.
Mais, dans la pratique, il me semble que ca ne verifie les acces qu'en debug et pas en release (arf sinon c'est trop lent).


On surestime beaucoup trop souvent le coût de ce genre de vérifications. Néanmoins, le compilateur dispose d'options permettant de déconnecter les vérifications de bornes.
 

Citation :


Aujourd'hui encore, le compilo a merdé : tableau de 1..10, acces à 0, le programme se bloque ...
Il me semble qu'un autre compilo sous Windows refusait de compiler un tableau commencant à 0. Mais bon ici sous Linux c'est bon.
Donc, faut se mefier quand meme ...


Tu parles de compilateur Ada, là ?  :??: Ca m'étonnerait que ce soit le cas, ou alors c'est un compilateur pas standard. De toute façon, les compilateurs Ada subissent des validations extrêmement poussées pour pouvoir s'appeler "Ada", et un compilateur qui se planterait là serait immédiatement rejeté.
 

Citation :


Y'a un article qui a ete ecrit pour expliquer pourquoi l'ADA n'a pas tres bien marche. L'une des grandes idees est que "le monde n'etait pas pret pour un nouveau gros langage".


C'est faux, le boom de Java le prouve. Or rien n'interdit d'utiliser Ada comme on utilise Java aujourd'hui (d'ailleurs certains le font, en faisant générer du bytecode Java plutôt que du code natif à leur compilateur Ada)
 

Citation :


Y'a aussi les raisons economiques.
Quand une boite developpe depuis 10 ans en C, qu'elle a des millions de lignes qui fonctionnent.
Si elle souhaite enrichir ses sources, le choix entre :
"en ADA, faut tout recoder et apprendre un nouveau langage"
"en C++, ca recompile avec tres peu d'effort, votre connaissance du C n'est pas perdue"
ben c'est vite tranché ... et ca se comprend.


Là encore, c'est basé sur un raisonnement complètement faux.
1. Java en est le contre-exemple parfait : des tas de boites, pour les projets nouevaux, choisissent Java au lieu de garder C ou C++. Pourquoi ils ne l'ont pas fait avec Ada il y a 5, 10, 15 ans ? Et pourquoi ne le font-ils pas plus aujourd'hui ?
1. En Ada, tu peux réutiliser toutes les librairies C ou C++ sans problème (un peu comme avec JNI en Java).
2. Un jeune qui sort de l'école ne peut pas prétendre connaître C++ sur le bout des doigts. Il faut des années de pratique quotidienne pour maîtriser tous les aspects de ce langage. Langage qui requiert en plus la maîtrise d'outils extérieurs (genre make ou shell). Bref, maîtriser C++, c'est compliqué et c'est long.
Est-ce qu'apprendre Ada est plus compliqué ? L'expérience prouve que non. Mieux : l'expérience prouve que maîtriser Ada, malgré ses aspects les plus complexes (qui ne sont pas utiles pour la plupart des programmes, au demeurant), cela demande beaucoup moins de temps que pour maîtriser C++.
3. Qu'est-ce qui coûte le plus cher en logiciel ? Coder, ou maintenir le code ? Je ne comprends toujours pas que la plupart des gestionnaires n'aient toujours pas réalisé que c'était la 2ème réponse qui était la bonne, et de très loin : les temps de debug et les coûts de maintenance évolutive n'ont absolument rien à voir entre la plupart des programmes C et leurs équivalents Ada (et ce n'est clairement pas en faveur de C...). Pourquoi, on continue à dépenser sans compter en gardant C ou C++ (au passage, je signale que la plupart des programmeurs qui disent programmer en C++ programment en fait en C et compilent avec un compilateur C++).
 
Et puis entre nous, pour apprendre la syntaxe d'Ada en programmation classique (pas de multi-tâche ou de temps-réel, juste les types, les classes, les exceptions, les packages et au pire la généricité), ça ne va pas prendre des années ; en 2 semaines, pour quelqu'un qui sait déjà programmer, c'est bouclé...
 

Citation :


Du coup, bcp de boites ne sont pas 100% ADA, mais jonglent entre ADA et C++.


Oui, mais entre adopter Ada sur le long terme tout en gardant son existant C++, et rejeter Ada parce qu'on a un existant C++, il y a une différence. Pourtant la plupart des boites choisissent la 2ème option. Pire : ils ont choisi la 2è option peu après qu'Ada soit sorti, et ils continuent à la choisir, année après année.
 

Citation :

Là je suis assez sceptique. J'ai toujours entendu dire que les meilleurs compilos etaient ceux du C. Les compilos ADA doivent en effet etre performants, mais je suis pas sur que ce soit pour cela qu'on choisit l'ADA.
Il me semble que son succes dans le domaine du temps réel et surtout lié aux facilités de programmation multitache / synchronisation qu'il propose (task, rendez vous, ...)


Il y a des librairies C ou C++ qui offrent des services temps-réel. Mais dans ces domaines-là, les gens sont beaucoup sensibles à la notion de sécurité de programmation que dans les autres domaines où l'informatique est cruciale. Ce n'est donc pas l'efficacité qui est a priori le critère numéro un de sélection du langage de programmation.
Néanmoins, l'expérience a montré que les temps d'exécution des programmes Ada étaient comparables à celui des programmes C++ équivalents. Autrement, ce n'est pas parce le compilateur fait beaucoup plus de vérifications à la compilation (et qu'il génère un peu de code de vérification à l'exécution), que le programme est plus lent.
 
En fait, les compilateurs C sont le plus souvent les plus rapides parce que C est un assembleur de haut niveau. La traduction C -> assembleur est assez simple. Mais c'est comme dire qu'il vaut mieux programmer en asembleur plutôt qu'en C prace que le programme est plus rapide. La question est : qu'est-ce qui coûte le moins cher. Tant qu'on se focalisera sur l'efficacité supposée du programme et qu'on acceptera que les clients utilisent des programmes buggés, alors on continuera à utiliser C. Le jour où on voudra écrire un programme avec le coût global le plus faible (en comptant les coûts de maintenance), et avec la garantie de ne pas faire déraper  le budget ou les délais, alors on jettera C et C++.
Mais vu comment la plupart des gestionnaires estiment le coût du logiciel, ce n'est pas demain la veille...


Message édité par BifaceMcLeOD le 12-02-2003 à 15:30:15
n°307569
nraynaud
lol
Posté le 12-02-2003 à 15:26:22  profilanswer
 


 
Y'aurait quelques années, j'aurais mis un [+]
 
A l'heure actuelle, face aux nouveaux langages, Ada comence à viellir. La voie qui se dégage le plus est le déclaratif.
 
'Toute façon, les kaïds de l'industrie ont toujours pas compris les aspects un peu haut niveau du C++ (qui est largement au raz des paquerettes) alors un langage où le degré d'abstraction s'élève vraiment ... D'ici 50 ans, pas avant.

n°307584
BifaceMcLe​OD
The HighGlandeur
Posté le 12-02-2003 à 15:31:46  profilanswer
 

On n'en est pas encore au déclaratif, loin s'en faut : regarde quel a été le dernier langage en vogue : Java. Désolé, mais l'industrie restera encore longtemps à utiliser des langages impératifs et typés (enfin, plus ou moins typés...).

n°307600
dsls
Posté le 12-02-2003 à 15:40:21  profilanswer
 

Enfin bon ... de là à voir débarquer Java dans le domaine du temps-réel, je demande à voir :D

mood
Publicité
Posté le 12-02-2003 à 15:40:21  profilanswer
 

n°307608
nraynaud
lol
Posté le 12-02-2003 à 15:52:17  profilanswer
 

BifaceMcLeOD a écrit :

On n'en est pas encore au déclaratif, loin s'en faut : regarde quel a été le dernier langage en vogue : Java. Désolé, mais l'industrie restera encore longtemps à utiliser des langages impératifs et typés (enfin, plus ou moins typés...).


 
Tous les langages récents sont déclaratifs : hakell, curry, mercury par ex. et tous trois utilisent le système hindley-milner, la réécriture de graphe.
 
La dernière innovation en impératif est les contrats de Meyer (absorbés de plus en plus par des systèmes de types plus intelligents) et peut-être 2-3 "innovations" de C# (genre les attributs en écriture, généralisation de l'accès uniforme de Meyer).
 
Maintenant, que l'industrie continue à vendre de la merde, tant que les clients en achèterons, y'a pas de raison que ça s'arrête, faut pas oublier que si l'informatique évolue aussi lentement (à beaucoup de niveux), c'est pas que de la faute des vendeurs. C'est l'intégralité des acteurs qui majoritairement ne savent pas ce qui existe sur le marché et confinent les chercheurs à "des travaux théorique aux intérêts éloignés de l'industrie" (c'est sûr que le travail sur la qualité du code, la preuve, l'accélération des cycles de développement, ça les intéresse pas !).
 
D'autre part, le travail sur les langages est bridé par un goulet d'étranglement : les processeurs Intel, générer du code efficace sur une merde pareille (essentiellement le jeu d'instruction en fait) nécessite des années et du personnel, seuls les compilos C peuvent se le permettre. Donc pas de code efficace => pas d'application jacky (skins, customisaons diverses et inutiles) => pas dans l'industrie.
 
C'est pour ça que Self a été développé sur sparc, que les travaux sur C-- démarrent sur HP (je crois) etc. Le seul warrior qui a réussi à développer un compilo pour Intel est Xavier Leroy pour O'caml résultat, son langage est sorti de l'ombre.

n°307610
MagicBuzz
Posté le 12-02-2003 à 15:54:44  profilanswer
 

Je dis peut-être une connerie, mais on m'a dit à un moment qu'ADA s'est assez peu développé surtout parcequ'il est très pauvre en librairies graphiques, et que c'est une chose qu'il gère extrêment mal.
 
Du coup, on ne peux pas l'utiliser pour des programmes avec interface utilisateur (ou presque) ce qui l'a rendu moins attrayant que le C, qui lui, est très riche dans ce domaine.
 
Sinon, les programmes ADA faisant du clacul utilisent généralement des librairies écrites en Fortran, et c'est ça qui le rendent extrêment compétitif par rapport au C.
 
En effet, les librairies de calcul Fortran sont extrêment poussée, et notamment font un nombre impressionnant d'optimisation en réécrivant les différentes expression mathématiques d'une façon plus rapide pour le PC, ce que ne fais pas le C.
 
Mais bon, je tiens tout ça d'un bon gros baratineur, je sais pas si tout est bon ou si tout est à jeter.

n°308249
BifaceMcLe​OD
The HighGlandeur
Posté le 13-02-2003 à 12:10:06  profilanswer
 

Malheureusement, j'ai déjà entendu cette légende à plusieurs reprises.
Pourtant, il est assez facile de comprendre que ce qu'Ada est capable de faire avec Fortran, il est capable de le faire avec C. Donc toutes les librairies graphiques disponibles pour les programmes C sont utilisables en Ada.
 
Et dans la pratique, de très nombreuses librairies standard, graphiques ou non graphiques, sont disponibles pour Ada, depuis très longtemps. Je citerai par exemple GtkAda, l'interface Ada pour Gnome, X11Ada, AdaCurses, Florist (interface POSIX pour Ada), une interface Win32 pour Ada, une interface Tcl/Tk pour Ada, etc.
Et la plupart de ces librairies, comme le compilateur, sont gratuits...

n°308291
souk
Tourist
Posté le 13-02-2003 à 12:33:40  profilanswer
 

si je puis me permettre un ajout, ADA est tres fortement type, mais je pense que oCaml l'est tout autant.

n°308293
BifaceMcLe​OD
The HighGlandeur
Posté le 13-02-2003 à 12:37:19  profilanswer
 

Oui, mais Caml n'est pas classé parmi les langages impératifs.

n°308310
nraynaud
lol
Posté le 13-02-2003 à 13:06:14  profilanswer
 

BifaceMcLeOD a écrit :

Malheureusement, j'ai déjà entendu cette légende à plusieurs reprises.
Pourtant, il est assez facile de comprendre que ce qu'Ada est capable de faire avec Fortran, il est capable de le faire avec C. Donc toutes les librairies graphiques disponibles pour les programmes C sont utilisables en Ada.
 
Et dans la pratique, de très nombreuses librairies standard, graphiques ou non graphiques, sont disponibles pour Ada, depuis très longtemps. Je citerai par exemple GtkAda, l'interface Ada pour Gnome, X11Ada, AdaCurses, Florist (interface POSIX pour Ada), une interface Win32 pour Ada, une interface Tcl/Tk pour Ada, etc.
Et la plupart de ces librairies, comme le compilateur, sont gratuits...


 
Le problème c'est qu'il faut wrapper, ça peut être long et surtout, on manque de compilos, y'a que gnat quasiment, il repose sur une vielle version de gcc.
 
L'autre jour, j'ai cherché, le portage palmos n'existe pas. Je pense qu'il y a vraiment un manque.

n°308353
BifaceMcLe​OD
The HighGlandeur
Posté le 13-02-2003 à 13:35:36  profilanswer
 

Oui, il faut wrapper, mais si tu tapes dans les librairies usuelles (celles auxquelles pensait Buzz), le wrapping existe déjà, et tu n'as rien d'autre à faire que d'utiliser.
 
Sinnon, quel est le problème de version avec GCC ?  :??: Les dernières versions offrent vraiment beaucoup plus de services côté back-end ?
 
Sinon, c'est normal qu'il n'y ait plus beaucoup de compilos. Les éditeurs ne vont pas dépenser des millions d'euros pour le développement d'un compilateur Ada s'il y en a un qui existe déjà, qui est gratuit et qui fonctionne bien...
Maintenant, qu'il manque des portages sur certaines plate-formes, je reconnais, mais ça doit être dans les choses faisables, non ? Et puis, je me répète, mais ce n'est pas cela qui a empêché (et qui continue à empêcher) Java d'être un succès...


Message édité par BifaceMcLeOD le 13-02-2003 à 13:36:19
n°308425
HelloWorld
Salut tout le monde!
Posté le 13-02-2003 à 14:51:19  profilanswer
 

Citation :

Tu parles de compilateur Ada, là ?  :??: Ca m'étonnerait que ce soit le cas, ou alors c'est un compilateur pas standard.


Il s'agit de gnat. Par defaut il ne doit pas verifier les acces, mais ca doit etre dispo.
 

Citation :

Je dis peut-être une connerie, mais on m'a dit à un moment qu'ADA s'est assez peu développé surtout parcequ'il est très pauvre en librairies graphiques, et que c'est une chose qu'il gère extrêment mal.


hum ... je vois pas en quoi il gererait mal.
Sous WIndows, il existe le GUI Builder d'Aonix (Object ADA).
Ca fonctionne a la Visual Basic.
J'ai failli faire uns tage dans une boite qui developpait principalement en ADA, mais qui justement utilisait VC++ pour l'interface, car "les composants sont plus riches".
 

Citation :

1. Java en est le contre-exemple parfait : des tas de boites, pour les projets nouevaux, choisissent Java au lieu de garder C ou C++. Pourquoi ils ne l'ont pas fait avec Ada il y a 5, 10, 15 ans ? Et pourquoi ne le font-ils pas plus aujourd'hui ?

 
AMHA, il y a aussi la syntaxe qui joue pas mal. Avec sa syntaxe, ADA se situe dans le lignée de PASCAL. PASCAL n'a pas trop la cote dans le monde du travail.
Un programmeur C qui passe à JAVA a le sentiment d'etre en terrain connu.Et JAVA c'est un peu different, vu qu'il est multi-plateforme, que sans rien changer on fait fonctionner son prog a peu pres partout, ca c'est un argument de poids.
Et maitriser ADA en 2 semaines, c'est un peu exagéré.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°308440
dsls
Posté le 13-02-2003 à 14:59:37  profilanswer
 

HelloWorld a écrit :

Et JAVA c'est un peu different, vu qu'il est multi-plateforme, que sans rien changer on fait fonctionner son prog a peu pres partout, ca c'est un argument de poids.
Et maitriser ADA en 2 semaines, c'est un peu exagéré.


 
:heink: Euh ... Java est mono-plateforme. La preuve, c'est qu'on est obligé d'émuler cette plate-forme pour qu'un programme Java tourne (remarquez, c'est de moins en moins vrai avec gcj, mais bon, j'arrête, ca va virer au Troll  :whistle: )
 
Moment "je chipotte" : on ecrit Ada, pas "ADA". Ce n'est pas un acronyme, c'est un prénom (et pareil pour "JAVA" ) :sarcastic:

n°308442
HelloWorld
Salut tout le monde!
Posté le 13-02-2003 à 15:00:40  profilanswer
 

Mouai ...
Je veux dire qu'il tourne a peu pres partout.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°308597
BifaceMcLe​OD
The HighGlandeur
Posté le 13-02-2003 à 17:51:08  profilanswer
 

HelloWorld a écrit :

[quote]AMHA, il y a aussi la syntaxe qui joue pas mal. Avec sa syntaxe, ADA se situe dans le lignée de PASCAL. PASCAL n'a pas trop la cote dans le monde du travail.
Un programmeur C qui passe à JAVA a le sentiment d'etre en terrain connu.Et JAVA c'est un peu different, vu qu'il est multi-plateforme, que sans rien changer on fait fonctionner son prog a peu pres partout, ca c'est un argument de poids.
Et maitriser ADA en 2 semaines, c'est un peu exagéré.


Bref, tu es en train de dire que ce ne sont pas les qualités intrinsèques du langage qui sont prises en compte, mais l'impression que sa syntaxe en donne. Alors que Java est bien plus près d'Ada que de C++ du point de vue de la philosophie du langage.
 
Sinon, pour la maîtrise de la syntaxe d'Ada pour les concepts de base, si tu sais déjà programmer, je persiste sur les 2 semaines. Mais bien sûr, tu vas ensuite passer plusieurs mois à te battre régulièrement avec le compilateur parce que tu écris pas ton code avec assez de rigueur.

n°308607
dsls
Posté le 13-02-2003 à 18:02:53  profilanswer
 

BifaceMcLeOD a écrit :


Sinon, pour la maîtrise de la syntaxe d'Ada pour les concepts de base, si tu sais déjà programmer, je persiste sur les 2 semaines. Mais bien sûr, tu vas ensuite passer plusieurs mois à te battre régulièrement avec le compilateur parce que tu écris pas ton code avec assez de rigueur.


 
Entièrement d'accord. Il faut juste compter un petit peu plus longtemps si tu veux en plus profiter de certaines fonctionnalités du langage qui font la force de Ada : tasking, types protégés, généricité, types contrôlés, Storage pools, ... j'en passe et des meilleurs  :D

n°309061
nraynaud
lol
Posté le 14-02-2003 à 02:08:43  profilanswer
 

BifaceMcLeOD a écrit :


Sinnon, quel est le problème de version avec GCC ?  :??: Les dernières versions offrent vraiment beaucoup plus de services côté back-end ?
 
Maintenant, qu'il manque des portages sur certaines plate-formes, je reconnais, mais ça doit être dans les choses faisables, non ? Et puis, je me répète, mais ce n'est pas cela qui a empêché (et qui continue à empêcher) Java d'être un succès...


 
Oui, Ada ne bénéficie pas par exemple de la forme SSA (single static assignment) telle que définie dans les gcc modernes (je ne sais pas s'ils ont fait un truc à leur sauce).
 
Pareil sur les amélirations des allocateurs de registres etc.
 
Quand au portage sur certaines plateformes (en fait c'est la palm qui m'intéresse, car le C m'insuporte) je suis incapable de le faire, il n'existe pas de threads sur palm, donc rien au niveau de la synchro etc. des modes "dégradés" du langage sont-ils prévus dans la norme ?

n°309646
BifaceMcLe​OD
The HighGlandeur
Posté le 14-02-2003 à 16:10:04  profilanswer
 

Ah, à mon avis, là on atteint la racine du problème : je ne crois pas que le type tâche soit optionnel en Ada. Normalement, tout ce qui est optionnel se trouve dans une des annexes de la norme, or les tâches n'y sont pas...
 
edit> Mais à vérifier.


Message édité par BifaceMcLeOD le 14-02-2003 à 16:10:18
n°309709
skylight
Made in France.
Posté le 14-02-2003 à 16:48:55  profilanswer
 

Avec l'ADA, il faut faire gaffe a bien initialiser toutes les variables qu'on utilise, sinon il va afficher le contenu de la mémoire, et donc un peu n'importe quoi ;)
 
Ca m'est arrivé pas mal de fois en TP, surtout avec les tableaux et les chaines de caracteres ;)

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Quel langage pour implémenter... XML ou...Quelle langage?
[HTML] Input type = "image"info type proc ???????????
Simple avis public... quel langage de prog parmis ceux ci ?Text Clognotant En Langage C SOUS BORLAND!!
Langage C!! sous borland!!!! fenêtre dos!!!![VISUAL C++ - MFC] Comment connaître le type d'un serveur FTP
COLOR en langage Clangage C
Plus de sujets relatifs à : Quel est le langage le plus fortement type???


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)