IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Pourquoi le C est-il plus massivement utilisé que le Pascal ? [Débat]


Sujet :

Langages de programmation

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 29
    Localisation : France

    Informations forums :
    Inscription : juillet 2009
    Messages : 192
    Points : 160
    Points
    160
    Par défaut Pourquoi le C est-il plus massivement utilisé que le Pascal ?
    Le fait de n'avoir trouvé ce sujet sur le forum m'a étonné.
    Alors voilà ma question : C vs Pascal.
    Je crois que les deux sont des langages de low level et probablement du même niveau.
    Mais en terme de puissance, comment cela se fait-il que le premier soit le plus populaire ?
    J'aimerais savoir ce qui justifie l'utilisation massive du C vontre le Pascal alors que ça devrait être de la même envergure que Java vs C# ou au moins Cpp. Aussi dois-je ajouter que je ne recherche pas une comparaison sur le plan académique.

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    août 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Âge : 30

    Informations forums :
    Inscription : août 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Ce que je sais que c est plus fort que pascal car il peut gérer des choses que pascal n'est pas capable de faire c'est pour cela les OS (Operation System) sont écrient en C

    Voila un petit article en anglais explique bien le différence entre C et Pascal
    http://en.wikipedia.org/wiki/Comparison_of_Pascal_and_C

  3. #3
    Membre chevronné
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ingénieur sécurité & risque
    Inscrit en
    juin 2007
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité & risque
    Secteur : Finance

    Informations forums :
    Inscription : juin 2007
    Messages : 1 489
    Points : 2 244
    Points
    2 244
    Par défaut
    Lol,

    Ca m'en rappelle une bonne:

    #2580 (+) 1852/2249/8 (-)
    <Wapiti>On peut faire de la programmation par objet en assembleur.
    <Jabial>Oui, et on peut faire de la programmation de bas niveau en pascal.
    <Jabial>On peut aussi percer un mur avec une mitrailleuse lourde et tuer quelqu'un avec une perceuse.
    <Jabial>Mais c'est pas vraiment pratique.
    (c) BashFr
    "Voyager, c'est découvrir que tout le monde a tort", Aldous Huxley
    "Less is more" Ludwig Mies Van Der Rohe

    Risk & Security Mgmt

  4. #4
    Membre du Club
    Étudiant
    Inscrit en
    mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2008
    Messages : 103
    Points : 59
    Points
    59
    Par défaut
    coté puissance, on ne peut pas les comparer!

    Pascal est un langage pour enseigner la programmation. Après avoir arrivé à un certain niveau, un passage vers le C est obligatoire. La plupart des autres langages( Cpp, Java, php, Csharp, ...) sont les descendants syntaxiquement du C.

    En plus, le C est encore trop utilisé au milieu professionnel.

  5. #5
    Membre confirmé Avatar de vg-matrix
    Inscrit en
    février 2007
    Messages
    1 220
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : février 2007
    Messages : 1 220
    Points : 608
    Points
    608
    Par défaut
    je suis surpris que vous n'ayez pas trouvé, et pourtant vous trouverais la reponse ici:
    http://www.developpez.net/forums/d76...-fonctionnels/
    Il est difficile de retrouver ses erreurs lorsqu'on est persuadé que son code est juste...

    Groupe des développeurs ivoiriens

  6. #6
    screetch
    Invité(e)
    Par défaut
    c'est globalement plus une question d'outils que de langage. Les deux sont quasiment identiques (un peu plus verbeux pour le pascal), le C ajoutant seulement le nombre variable d'arguments (ce qui n'est pas une feature utilisée par beaucoup de monde, sortis des printf et scanf).

    Mais le C s'étant développé plus tot et plus vite, de meilleurs outils ont été créés, permettant de mieux utiliser le C encore... les comilateurs sont devenus très pros.

    Le Pascal a lui été cantonné aux IDE assez pauvres (turbo pascal) pendant longtemps, écarté des makefile (qui permettent de s'eloigner d'un IDE pour un editeur de texte plus puissant)

    bref, ca ne vient pas du langage, mais de ce qu'il y a autour.

  7. #7
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Je pense que l'utilisation massive du langage c par rapport au pascal est plutot liée a des raison historique. Le langage c a connu ce grand succes parqu'il est lié a unix/linux de puis ces debuts, par contre le pascal a cause de sa rigure, sa syntaxe plus conviviale et le fait d'etre un langage bien complet est utilisé pour l'enseignement.

    Sinon, les gens confond souvent le pascal et le turbo pascal limite a generer du binaire 16 bits, son domaine d'utilisation assez limite, ... Avec le developpement des outils tels que freepascal et lazarus qui produisent du binaire 32 bits, un compilateur multiplateforme et un RAD, un programmeur pascal n'a vraiment rien a envie a un programmeur c/c++ ou meme java.

    Pour moi, je pense meme que le pascal est bien plus puissant que le c.
    .. En pascal, on peut faire du programme tres bas niveau : utilisation des pointeurs de fonction et des pointeurs en general, manipulation de la memoire (la pile, le tas, ...), utilisation des tableaus bas niveau comme en c, possibilite d'introduire de l'assembleur dans le code (ça va avec l'acces au registres systemes), gestion des interuptions systemes,...

    .. On peut aussi faire du programme tres haut niveau: pas a s'encombrer avec pointeurs quand on en a besion (ce qui impossible en c), faire de la programmation orientee objet avec des possibilites comparable a c++ et voir java (heritage multiple , polymorphisme, ...). Aussi en poo, on peut soit utilise les class comme en java, ou les objet qui sont un peu comme les classes en c++. On a la possibilite de surdefinir des operateur comme en c++ ou encore ada, ...

    Alors dire
    Ce que je sais que c est plus fort que pascal car il peut gérer des choses que pascal n'est pas capable de faire c'est pour cela les OS (Operation System) sont écrient en C
    ou
    coté puissance, on ne peut pas les comparer!

    Pascal est un langage pour enseigner la programmation. Après avoir arrivé à un certain niveau, un passage vers le C est obligatoire. La plupart des autres langages( Cpp, Java, php, Csharp, ...) sont les descendants syntaxiquement du C.
    me parait bien deplacer.
    J'ai eu la chance d'apprendre conjointement le pascal et le c sur trois ans et je ne vois pas du tout ce que le c peut faire et que le pascal ne peut pas.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 29
    Localisation : France

    Informations forums :
    Inscription : juillet 2009
    Messages : 192
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par darrylsite Voir le message
    Je pense que l'utilisation massive du langage c par rapport au pascal est plutot liée a des raison historique. Le langage c a connu ce grand succes parqu'il est lié a unix/linux de puis ces debuts, par contre le pascal a cause de sa rigure, sa syntaxe plus conviviale et le fait d'etre un langage bien complet est utilisé pour l'enseignement.

    Sinon, les gens confond souvent le pascal et le turbo pascal limite a generer du binaire 16 bits, son domaine d'utilisation assez limite, ... Avec le developpement des outils tels que freepascal et lazarus qui produisent du binaire 32 bits, un compilateur multiplateforme et un RAD, un programmeur pascal n'a vraiment rien a envie a un programmeur c/c++ ou meme java.

    Pour moi, je pense meme que le pascal est bien plus puissant que le c.
    .. En pascal, on peut faire du programme tres bas niveau : utilisation des pointeurs de fonction et des pointeurs en general, manipulation de la memoire (la pile, le tas, ...), utilisation des tableaus bas niveau comme en c, possibilite d'introduire de l'assembleur dans le code (ça va avec l'acces au registres systemes), gestion des interuptions systemes,...

    .. On peut aussi faire du programme tres haut niveau: pas a s'encombrer avec pointeurs quand on en a besion (ce qui impossible en c), faire de la programmation orientee objet avec des possibilites comparable a c++ et voir java (heritage multiple , polymorphisme, ...). Aussi en poo, on peut soit utilise les class comme en java, ou les objet qui sont un peu comme les classes en c++. On a la possibilite de surdefinir des operateur comme en c++ ou encore ada, ...

    Alors dire

    ou

    me parait bien deplacer.
    J'ai eu la chance d'apprendre conjointement le pascal et le c sur trois ans et je ne vois pas du tout ce que le c peut faire et que le pascal ne peut pas.
    J'en etais arrivé a la meme conclusion en lisant l'article sur wikiped.
    je trouve meme que le pascal est bien plus fort pour ce qui est d'etre complet mais aussi flexible.

  9. #9
    screetch
    Invité(e)
    Par défaut
    POO en pascal ? sans pascal objet ?

  10. #10
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Oui, la poo en pascal existe deja a l'epoque deu vieux dynausore turbo pascal 7. Bien que j'ai envie qu'il soit comme un phoenix pour qu'il renaisse de ces cendres

    Avec freepascal ou lazarus par exemple, la poo est bien presente : on peut avoir des membres privés, protegés ou public, definition des classes abstraites, ... En gros tout ce qu'il faut pour faire de la poo, et je dirais qu'on peut biensur faire de la poo pure avec pascal.

    En somme, je pense que le c ne fais pas le poids devant le pascal. Et je pense que c'est a cause de sa puissance que ça en fait un bon langage pour debuté : on commence par apprendre les bases de la programmation, puis on progresse vers la programmation systeme, ensuite on finit par faire de la poo; et tout ça avec un seul langage .

  11. #11
    screetch
    Invité(e)
    Par défaut
    houla non quand meme. J'ai developpé en Delphi pendant un long moment, sur un projet de 1 400 000 lignes de code Delphi, je peux dire que le pascal objet est au dessus du C peut etre mais appeler cela de la programmation objet (au sens C++) est un peu exagéré. Surtout, un des trucs qui chiffonnent, c'est que par exemple le destructeur n'appelle jamais automatiquement les destructeurs enfants. Tout le code doit encore etre ecrit a la main, ce qui en fait a peine un equivalent de "C with classes"

  12. #12
    Membre averti

    Profil pro
    Inscrit en
    mai 2002
    Messages
    622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2002
    Messages : 622
    Points : 385
    Points
    385
    Par défaut
    Comme l'a indiqué darrylsite, Pascal permet de faire de la programmation de bas niveau (pointeurs, possibilité d'intégrer de l'assembleur dans le code), mais on peut très bien l'utiliser comme un langage de haut niveau, sans toucher aux pointeurs.

    A cela on peut ajouter d'autres avantages du Pascal sur le C :
    • Syntaxe beaucoup plus lisible;
    • Compilation beaucoup plus rapide que pour un programme C (ou C++);
    • Processus de compilation beaucoup plus simple.
    • Une bibliothèque standard riche et cohérente.

  13. #13
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par screetch Voir le message
    houla non quand meme. J'ai developpé en Delphi pendant un long moment, sur un projet de 1 400 000 lignes de code Delphi, je peux dire que le pascal objet est au dessus du C peut etre mais appeler cela de la programmation objet (au sens C++) est un peu exagéré.
    D'un autre côté, on compare le Pascal au C, pas au C++...

    Citation Envoyé par screetch Voir le message
    Surtout, un des trucs qui chiffonnent, c'est que par exemple le destructeur n'appelle jamais automatiquement les destructeurs enfants. Tout le code doit encore etre ecrit a la main, ce qui en fait a peine un equivalent de "C with classes"
    C'est justement un truc qui m'agace parfois en C++ : obligation d'appeler le constructeur/destructeur parent directement par le nom de classe, "en dur" (pas de "Inherited"), et partager un objet peut poser souci à cause des destructeurs automatiques.
    On est alors de sortir "à la main" () des shared_ptr et autres concepts du même genre pour gérer ça correctement, là où Pascal autorise d'appeler (ou pas !) les destructeurs enfants.

    C'est surtout une question de mentalité : on peut rendre un objet "automatique" en Pascal, simplement, c'est le développeur qui doit décider si son objet est à destruction automatique ou pas. L'utilisateur, lui, n'y voit que du feu.


    Côté vitesse de compilation, par contre, là y'a pas photo : cela fait bien longtemps que je n'ai pas vu la barre de progression de Delphi lors des constructions, tandis que j'ai toujours le loisir d'admirer le fichier en cours de compilation sous Visual, et sous GCC c'est encore pire. C'est un côté extrêmement agréable lors du travail en Pascal (ou Delphi, c'est kif-kif), on ne perds pas de temps à générer l'exécutable.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  14. #14
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    27 289
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 27 289
    Points : 41 229
    Points
    41 229
    Par défaut
    Enfin, wikipédia parle quand même d'inconvénients à Pascal, notamment pour les tableaux:
    In Pascal the number of elements in each array type is determined at compile-time and cannot be changed during the execution of the program. Hence, it is not possible to define an array whose length depends in any way on program data.
    Cela veut-il dire qu'on ne peut pas faire d'allocation dynamique de taille dynamique? Je ne connais pas assez Pascal pour répondre, mais je n'y crois pas trop, car cela serait une énorme limitation...

    Pascal has neither array initialization nor a means of determining arbitrary array sizes at compile time.
    Ça, par contre, c'est concret. Ce sont les petites choses simples qui manquent le plus... Surtout quand ça s'applique aussi aux strings: On se croirait en SQL...

    In Pascal, pointers can never point to program objects such as local or global variables. This appears to make Pascal more type safe than C, but Pascal can still have invalid pointer references in several ways. For example, a pointer can be referenced when uninitialized, or it would be referenced after it is disposed, etc. Pointer arithmetic (a common source of programming errors in C, especially when combined with endianness issues and platform-independent type sizes) is not permitted in Pascal.
    Ça, ce n'est pas ce que j'appellerais "aussi puissant que le C", surtout à bas niveau...
    À haut niveau par contre, Pascal est peut-être supérieur, si l'on ignore sa gestion des chaînes.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  15. #15
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Cela veut-il dire qu'on ne peut pas faire d'allocation dynamique de taille dynamique? Je ne connais pas assez Pascal pour répondre, mais je n'y crois pas trop, car cela serait une énorme limitation...
    Non, l'allocation dynamique marche parfaitement bien, et des Pascal "évolués" offrent même l'équivalent de std::vector dans le langage.
    Cela correspond à de vieux langages Pascal, qui n'autorisaient les tableaux que de taille fixe en guise de type (pas d'équivalent du "T array[]" du C, donc). Toutefois, comme en C, il était parfaitement possible d'utiliser un tableau via un pointeur : on définissait alors un type tableau énorme (ex : "Type TByteArray = Array[0..65535] of Byte ;"), et on n'utilisait que des pointeurs sur ce type. Tu remarqueras le "65535", qui te fait sûrement deviner de quelle époque on parle... Actuellement, ce serait (2^32)-1, ou (2^64)-1 que l'on utiliserait.

    La raison de cette limitation, c'est que Pascal permet la vérification des étendues à l'exécution. Donc, dépasser la taille officielle du tableau, c'est très mal et il te le fait savoir : normalement, le buffer overrun est impossible en Pascal... On sait tous ce qu'il en est en C, par contre.
    On définissait ce genre de type afin d'outrepasser le langage et ses protections internes lors d'accès bourrins à des données plus ou moins bien connues à l'avance. En général, on se réservait un segment complet de mémoire et un éventuel overrun était alors limité à cette portion.

    A noter que c'est la même chose en Ada, et ça marche très bien.

    Citation Envoyé par Médinoc Voir le message
    Ça, par contre, c'est concret. Ce sont les petites choses simples qui manquent le plus... Surtout quand ça s'applique aussi aux strings: On se croirait en SQL...
    Effectivement, l'équivalent de "[]" du C n'existe pas en Pascal. Honnêtement, ça ne m'a jamais dérangé trop fort, on prend l'habitude de faire les choses proprement, c'est tout. Typiquement, on va définir une énumération (constantes symboliques, donc), et faire un tableau dont les indices sont cette fameuse énumération. Cela évite d'avoir à compter, ça blinde le code, et tu accèdes aux données constantes via une constante symbolique, ce qui est très bien.

    Citation Envoyé par Médinoc Voir le message
    Ça, ce n'est pas ce que j'appellerais "aussi puissant que le C", surtout à bas niveau...
    À haut niveau par contre, Pascal est peut-être supérieur, si l'on ignore sa gestion des chaînes.
    C'est surtout faux. En Pascal, on peut définir des pointeurs sur variables locales (aussi dangereux que ça l'est en C), sur variables globales, et pas mal de compilateurs supportaient carrément l'adressage absolu pour une variable (c'était le cas de Turbo Pascal, par exemple la mémoire vidéo devenait alors une simple matrice à deux dimensions de caractères).

    Côté gestion des chaînes, à part la limitation à 255 caractères des chaînes "historiques", c'est au contraire supérieur au C, et depuis longtemps : c'est plus proche de std::string (en plus pratique) que du char* C !
    Là aussi, les compilateurs récents ont levé ce genre de problèmes : les chaînes Pascal sont de taille "illimitée", et assurent automatiquement les conversions de chaînes Pascal vers "char*" et réciproquement.
    C'est même largement plus simple à utiliser qu'une std::string C++, je trouve.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  16. #16
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    27 289
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 27 289
    Points : 41 229
    Points
    41 229
    Par défaut
    Donc, ce que dit Wikipédia est obsolète, et on peut de nos jours avoir des fonctions qui prennent en paramètre un buffer (ou une chaîne) de taille déterminée à l'exécution?

    Et de quoi a l'air le prototype d'une telle fonction?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  17. #17
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Donc, ce que dit Wikipédia est obsolète, et on peut de nos jours avoir des fonctions qui prennent en paramètre un buffer (ou une chaîne) de taille déterminée à l'exécution?

    Et de quoi a l'air le prototype d'une telle fonction?
    Disons que c'est vrai sur le Pascal "historique"... Mais limiter le Pascal à cette version, c'est comme limiter le C à la syntaxe (et aux contraintes !!) du C "K&R" !!

    Or, si l'on veut comparer ce qui est comparable (ex : C90 ou C99 vs. Pascal), il faut alors faire évoluer le Pascal vers les versions modernes que sont Delphi, Lazarus et FreePascal, et non plus se cantonner à Turbo Pascal pré-5.5... Surtout que si l'on regarde les compilateurs C de l'époque, fallait pas avoir peur quand même.

    Côté syntaxe, je t'expédie directement vers le tutoriel de Hdd34, ce sera encore le plus facile. Delphi implémente le type "TDynArray" par exemple, qui fonctionne en gros comme un std::vector.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  18. #18
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    27 289
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 27 289
    Points : 41 229
    Points
    41 229
    Par défaut
    Merci bien.

    J'ignore si c'est parce que je viens du C, mais ça me désoriente un peu, tous ces "gérés par le compilateur"... D'un autre côté, il faut bien que quelque chose soit fait par le compilo lui-même, où l'on arrive à des problèmes de l'œuf et de la poule (notamment, je n'ai toujours pas compris comment marche le AttributeUsageAttribute de .Net).

    PS: GlobalAlloc()? Il a quel age, ce tuto? D'un autre côté, c'est vrai que HeapAlloc() est plus compliqué, vu qu'il faut faire un GetProcessHeap() à chaque fois qu'on l'appelle.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  19. #19
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    C'est le même "problème" en C++, en fait, quand tu commences à jouer avec les templates et la métaprogrammation, et/ou avec des concepts type RAII : c'est le compilo qui fait le "vrai" boulot. Sauf qu'en Pascal, ça commence dès le départ ou presque.
    A noter que ce genre de "limitation" du langage (déclaration préalable des variables, types de taille connue, syntaxe non-ambigüe, etc.) est aussi la raison principale des vitesses de compilation foudroyantes atteintes par les compilos Pascal... De mémoire, BP7 montait à 850.000 lignes par seconde il me semble, sur les machines de l'époque, de quoi faire baver n'importe quel dev C/C++.

    Côté allocation, on peut utiliser aussi les fonctions natives Pascal que sont GetMem/FreeMem, qui sont les exacts équivalents de malloc/free en C. Le langage dispose aussi de New/Dispose, qui seraient plus proches du new/delete C++ car introduits avec la POO.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  20. #20
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    27 289
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 27 289
    Points : 41 229
    Points
    41 229
    Par défaut
    D'un autre côté, je pense que C se porterait beaucoup mieux sans les déclarations implicites, et sa syntaxe serait parfaitement non-ambigue s'il n'y avait pas les typedefs.

    Ils auraient du faire autre chose pour les alias de types. Dans un prototype de langage à moi, je pensais préfixer tous les types d'un caractère spécial (genre '@'), ainsi la syntaxe serait non-ambigüe...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Google Wave est-il plus facile à comprendre que les Femmes ?
    Par Gordon Fowler dans le forum Actualités
    Réponses: 3
    Dernier message: 12/10/2009, 15h00
  2. pourquoi mes champs INPUT prennent plus de place que la normal ?
    Par Ekimasu dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 21/05/2007, 11h50
  3. Réponses: 8
    Dernier message: 20/07/2006, 12h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo