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. #21
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    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
    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.
    Il faudrait surtout qu'ils soient un peu mieux faits... Pascal possède aussi une instruction similaire, mais le compilateur ne te laisse pas faire n'importe quoi avec au moins.
    Quant aux déclarations implicites... Disons que si je donne le fond de ma pensée, ça va être censuré. J'ai toujours eu horreur des feignants du clavier qui, pour s'économiser quatre touches (int + l'espace) mettent des "short", "unsigned" et autres "long" dans leur code sans préciser le type. Encore pire quand il s'agit du résultat d'une fonction, bien entendu.

    Citation Envoyé par Médinoc Voir le message
    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...
    C'est l'usage en Pascal, on préfixe tous les types par "T"... Mais c'est surtout la vérification des types qui est plus stricte, on ne caste pas n'importe quoi vers n'importe quoi d'autre comme ça.
    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

  2. #22
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    J'ai toujours eu horreur des feignants du clavier qui, pour s'économiser quatre touches (int + l'espace) mettent des "short", "unsigned" et autres "long" dans leur code sans préciser le type. Encore pire quand il s'agit du résultat d'une fonction, bien entendu.
    Euh, ce n'est pas ce que moi j'appelle déclaration implicite...
    Encore que je n'aime pas "unsigned" tout court et ne l'emploie jamais. Par contre, j'utilise "short" et "long" comme s'ils étaient eux-même des types (et en C#, ils en sont, vu que la clé de sa propre non-ambiguïté est que chaque type consiste juste en un identificateur).

    C'est l'usage en Pascal, on préfixe tous les types par "T"...
    Je parlais ici d'un truc syntaxique obligatoire: Je pense que le "langage" du Pascal ne dit pas que T[A-Za-z0-9]+ désigne un type...
    Mais c'est surtout la vérification des types qui est plus stricte, on ne caste pas n'importe quoi vers n'importe quoi d'autre comme ça.
    Je sais. Je pense que les casts C devraient être interdits sur les pointeurs en C++, si ça n'avait pas l'inconvénient de réduire leur sous-ensemble commun (bien que j'aie systématiquement le réflexe d'utiliser des macros à cet effet dès qu'il me prend fantaisie de programmer en C∩C++).
    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.

  3. #23
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    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
    vu que la clé de sa propre non-ambiguïté est que chaque type consiste juste en un identificateur).
    C'est également le cas en Pascal : un type ne peut pas être composé de deux unités lexicales distinctes.

    Citation Envoyé par Médinoc Voir le message
    Je parlais ici d'un truc syntaxique obligatoire: Je pense que le "langage" du Pascal ne dit pas que T[A-Za-z0-9]+ désigne un type...
    Rien d'obligatoire, et sûrement un peu lourd à la longue je pense... Le fait d'utiliser un élément lexical unique est bien préférable, je pense, tout comme ne pas tolérer les surcharges "débiles" d'identifiants et/ou les masquages implicites.

    Citation Envoyé par Médinoc Voir le message
    Je sais. Je pense que les casts C devraient être interdits sur les pointeurs en C++, si ça n'avait pas l'inconvénient de réduire leur sous-ensemble commun
    Sur les pointeurs "normaux", ça ne m'empêche pas de dormir. Sur les classes, nettement plus.
    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

  4. #24
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Bha moi qui pensait qu'on m'avait escroqué en BTS en me faisant bouffer du Pascal pour apprendre le dev, au lieu du C comme tout le monde.
    Bha apparemment à vous lire NON en fait.

    C'est plutôt rassurant

  5. #25
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Encore qu'en BTS Informatique Industrielle, on aurait eu le temps: À 4 heures de cours et 5 heures de TP par semaine en Système, plus la même chose en Architecture (où l'on faisait de l'Assembleur)...

    Le problème, c'est que le prof ne connaissait bien le C mais pas le C++, et ses cours de C++ étaient plus un mix entre les deux langages, que j'ai du désapprendre pour apprendre sérieusement le C++.
    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.

  6. #26
    Futur Membre du Club
    Homme Profil pro
    demandeur d'emploi
    Inscrit en
    Juin 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : demandeur d'emploi
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 5
    Points : 9
    Points
    9
    Par défaut Pascal n'a rien à envier au C, bien au contraire.. CF les compilateurs pascal pour atari ST
    Bonjour

    Historiquement, le PAscal a été le premier langage procédural sorti au grand public en 1970 (l'année où je suis né), 2 ans avant le C. Il a été inceventé par un Suisse (tout comme le HTML a été inventé en Suisse au CERN).

    Pascal est doté de rigueurs de programmation qui en facilite grandement la création de logiciels puissant et peu buggué. Pascal est actuellement le langage le plus efficace en gestion de RAM.

    Pascal a été le premier langage de haut niveau à utriliser les Byte-Code (appelé P Code) en 1977 avec le PAscal UCSD (qui a été adapté sur de nombreuses plate forme)... Cocept de Byte Code utilisé par Java en 1995... Avec 18 ans de retard donc!!

    De nombreux compilateurs Pascal ont été développé sur les ordinateurs 8 bits des années 80 (Atari XL, Amstrad, Commodore 64, Thomson (avec Pascal Base malheureusement limité et Pascal UCSD) et surtout Apple sur lequel pas mal de jeux ont été développés notamment ainsi que sur Apple Lisa 16 bits), alors qu'en C, peu de compilateurs existe sur les ordi 8 bits (voire pas du tout)... A ma connaissance sur 6809 il en existe un mais a peiné à sortir...

    Le Pascal a été le lagage enseigné dans les facs de sciences et les grandes écoles de 1980 au début des années 2000 (depuis le Python puis le R ont pris la place, plus adapté à cette utilisation scientifique).

    Même si Pascal a été un peu limité au début, il a vite intégré un tas de possibilité pour les chaines de caractères, (Le type STring, puis PChar équivalent au C avec des fonction de conversion chaine C vers pacsal et vice versa notamment).

    Pascal intègre des types qui lui sont propre comme le type liste et surtout le type "ensemble" qui consiste à avoir jusqu'à 256 éléments avec présence ou pas de ces ensemble. Cette notion je ne laconnait dans aucun autre langage (en tous cas pas en C, pas en Java...

    Je suis en train d'écrire un site internet qui, pour le moment, est la traduction allemande de Pure Pascal, le meilleurs des compilateurs Pascal pour les Atari ST et compatible (dont le nouveau FireBee) voir ici http://www.langagepascal.atarist.free.fr/index.php ce Pascal est compatible avec Turbo Pascal 7 (en totalité) et Pascal Objet et s'utilise en environnement GEM qui est un peu l'équivalent de Delphi. Pure Pascal 1.1 date de 1992 et était un langage puissant. Il était capable de compiler

    Pascal (Pure Pascal et Turbo Pascal7) est doté de près de 100 fonctions et procédures dans le système qu'on n'a pas en C sans appeler de librairie.

    Pascal a un tas de lbrairie standard, notamment pour les graphiques et les modes consoles (manipulation de curseurs et caractère en mode console) qu'on ne trouve pas en C!! En fait, les Basic des ordinateurs des années 80 étaient largement inspiré du Pascal mais pas en programation procédural hélas. Jsé pas s'il existe en C une librairie telle que CRT qui permet de positionner les caractères à l'écran en position X et Y, à définir où se trouve le curseur etc.. Peur-être que ça existe mais bon c'est pas reconnu comme une utilisation courante au sein du C.

    Turbo Pascal (et Pure Pascal)l ne se limite PAS aux 16 bits seuls (les 68030 esistaient déjà dans les annés 90 ainsi que les ARM)!! Tout dépend des options de compilation (comme pour Pure PAscal, sur Atari, on peut choisir d'intégrer les coproc 68881, le 68030 etc)... J'espère qu'un jour il y aura une option de compilation spéciale pour le FireBee (Atari à base de ColdFire 5407)

    Turbo Pascal et Pure Pascal ont le type String et Pchar (équivaent des chaines avec pointeurs du C)

    Turbo Pascal 7 et Pure Pascal manipule les types enregistrement, ainsi que les types pointeurs

    Turbo Pascal 5.5 (Objet) et Pure Pascal manipule les objets.

    Il n'y a que peu de différence entre Free Pascal et Turbo Pascal 7 et objet... Il y a une compatibilité très forte entre les 2 langages, La généricité est l'élément en plus mais je pense que, tout comme il est possible de faore de la POO avec les seuls pointeurs et type enregistrement, il est possible de simuler la généricité avec Turbo Pascal (avec les pointeurs). D'ailleurs le polymorpĥisme est également possible en Pure Pascal avec les enregistrements dit "variantes" http://www.langagepascal.atarist.fre...e.php?p=page14

    Enfin comme il est dit dans certans commentaire, la compilation Pascal est très très rapide Pour Pure Pascal, il me semble avir lu quelque part que ça mettait 1 seconde pour compiler 10000 lignes de code sur Atari ST (8 MHz)

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