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

Caml Discussion :

Interface OCaml C


Sujet :

Caml

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Points : 39
    Points
    39
    Par défaut Interface OCaml C
    Bonjour,

    j'aurais voulu avoir quelques éclaircissements sur la syntaxe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    value mydiv x y = if x >= 0 then x / y else (x - y + 1) / y;
    value sdn_offset = 1721119;
    Je suppose que c'est pour interfacer du C et du Caml, mais ça n'a rien a voir avec les différents code que j'ai pu trouvé sur internet.

    Est-ce que quelqu'un pourrait éclairer ma lanterne ?

    EDIT :
    Un bout de code de la liste avec la même syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    (* Space coordinates *)
    value upper_size = 1.5;
    value lower_size = -1.5;
    value left_size = -1.5;
    value right_size = 1.5;
     
    value init_gl width height = do {
     GlDraw.viewport ~x:0 ~y:0 ~w:width ~h:height;
     GlClear.color (0.0, 0.0, 0.0) ~alpha:0.0;
     GlClear.clear [`color; `depth];
     GlDraw.shade_model `smooth;
     GlMat.load_identity ();
     
     GlClear.color (0.1, 0.3, 0.1);
     GlDraw.shade_model `smooth;
    };
    EDIT 2 : il semblerait que ce soit la syntaxe corrigée : http://caml.inria.fr/pub/docs/manual...manual007.html
    Si quelqu'un peut confirmer ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Points : 1 104
    Points
    1 104
    Par défaut
    Oui, c'est la syntaxe révisée.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Points : 39
    Points
    39
    Par défaut
    OK merci.

    Une question un peu con que je me pose, quelqu'un pourrait me dire l'avantage et si ça se fait souvent d'écrire "tout" un programme que en utilisant camlp4 (ou son successeur) ?

    Et si non, quelles parties d'un programme ont un avantage à utiliser camlp4 plutôt que "juste" OCaml ?

    Et aussi, y a t-il un quelconque avantage/simplicité pour l'interfacer avec du C ?

    Merci pour vos éclaircissements !

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Points : 1 104
    Points
    1 104
    Par défaut
    Aucun, c'est une question de préférence personelle. La syntaxe révisée corrige certains des défauts de la syntaxe classique OCaml. En pratique peu de gens l'utilisent parce que cela complique la compilation (il faut inclure Camlp4 un peu partout) et ça ne s'arrange pas toujours bien avec le reste de l'écosystème (par exemple ocamldoc et camlp4 interagissent très mal), donc ça reste une minorité.

    La syntaxe révisée est moins ambiguë que la syntaxe standard, donc elle est plus adaptée si on veut utiliser une syntaxe concrète pour décrire des bouts d'AST OCaml. Elle est donc souvent utilisée dans les "quotations" Camlp4 quand on manipule du code OCaml avec camlp4. Pour les mêmes raisons que plus haut, camlp4/camlp5 sont assez impopulaires en pratique, donc ça reste un outil minoritaire.

    La sémantique est exactement la même que la syntaxe classique, donc ça ne change absolument rien pour l'interface OCaml/C.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Points : 39
    Points
    39
    Par défaut
    Merci beaucoup pour ces compléments d'informations très utiles !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Interface Ocaml/C sous windows
    Par benjamin vadon dans le forum Caml
    Réponses: 7
    Dernier message: 30/04/2008, 23h43
  2. Bigarray Interface OCaml/C
    Par linkvi dans le forum C
    Réponses: 0
    Dernier message: 29/03/2008, 17h40
  3. Tuto sur l'interface C/Ocaml ?
    Par Cooky dans le forum Caml
    Réponses: 1
    Dernier message: 16/10/2007, 17h16
  4. interface graphique en ocaml
    Par slider22 dans le forum Caml
    Réponses: 3
    Dernier message: 17/04/2007, 23h36
  5. Réponses: 8
    Dernier message: 16/04/2007, 16h10

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