Le concours de programmation ICFP 2001 est lancé!

Posté par  . Modéré par Fabien Penso.
Étiquettes :
0
26
juil.
2001
Communauté
Le concours de programmation ICFP 2001 est lancé. Vous avez jusqu'à dimanche 17h (ou vendredi 17h) pour faire un compresseur de pages de simili-html. Le programme doit marcher en un temps limité (temps horloge murale, pas CPU) et sur des entrées de taille arbitraires. 1000$US pour le premier prix.

Et vous, vous prendriez quoi comme langage ?

Aller plus loin

  • # Langage ?

    Posté par  . Évalué à -1.

    Java !

    Ben quoi, j'ai dit une connerie ?

    <-1>
    • [^] # Re: Langage ?

      Posté par  . Évalué à 0.

      en logo tant que tu y est.
      • [^] # Re: Langage ?

        Posté par  . Évalué à 0.

        non du c#
        • [^] # Re: Langage ?

          Posté par  . Évalué à 1.

          Et pourquoi pas en Smalltalk ? C'est un language très pratique pour les tâches de très haut niveau, en plus tu peux trouver les algos tout fait sur le net (du recuit simulé, du Markov et tous leurs potes).

          Le perl aussi c'est pas mal, tu peux trouver plein d'outils dans cpan.
          • [^] # Re: Langage ?

            Posté par  . Évalué à -1.

            "Et pourquoi pas en Smalltalk ? [...]"
            Il est question de temps limité :)

            -1
            • [^] # Re: Langage ?

              Posté par  . Évalué à 1.

              La réponse n'est pas si évidente, tu a au minimum 180s, mais tu as 72heures pour coder, en ST, toute l'infrastructure est déjà faite (lexer, parser, algo de reconnaissance de motifs abstraits etc ...) , d'autre part si tu maîtrise un peu, ça rame pas dans les parcours de collection (pas plus que les autre languages de haut niveau).

              Donc, le réponse est délicate, tu produit du code très rapidement et très puissant, mais il est plus lent sur les truc de bas niveau. La feinte c'est de générer du code C à partir de tes classes.
              • [^] # Re: Langage ?

                Posté par  . Évalué à 1.

                Existe t il des compilos smalltalk, qui pondent
                du C ?

                Je n'ai eu qu'un bref apercu de smalltalk, mais
                une des caractérisques majeur de ce langage c'est
                la possibilité de changer (modifier/retirer/
                ajouter) des modules logiciel dynamiquement, non ?
                En C ce n'est pas possible ?
                • [^] # Re: Langage ?

                  Posté par  . Évalué à 1.

                  Existe t il des compilos smalltalk, qui pondent du C ?


                  Un peu de vocabulaire, en ST, y'a pas de compilateur, c'est un framework complet, l'interprêteur est un module parmis tant d'autres, comme l'editeur etc ...

                  oui, la plupart des implémentatins de ST sont faites en ST, on génère un petit bout de C qui va démarrer la machine virtuelle (c'est juste un bootstrap). Le vrai problème, c'est d'avoir le module de génération de C (il est dans Squeak par défaut mais il n'est pas donné avec VisualWorks par ex)

                  L'intérêt de ST c'est qu'il permet de faire des programmes de très haut niveau d'abstraction simplement, et qu'il est multiplateforme, le chargement plus ou moins dynamique des modules n'est qu'un aspect technique.

                  En C s'est différent, le programme n'existe qu'à partir du moment où il est compilé, en ST c'est compilé au fur et à mesure (qd tu fait accept).
          • [^] # Re: Langage ?

            Posté par  . Évalué à -1.

            du recuit simulé

            Vive virtua tefal, le specialiste du recuit simulé qui ne colle pas !
            • [^] # Re: Langage ?

              Posté par  . Évalué à -1.

              Benh heuuu... justement, c'est plutôt pour coller comme technique ... ça dépend, on peut tout faire avec (même de la détection d'intrusion !)
        • [^] # Re: Langage ?

          Posté par  . Évalué à -1.

          Et bien que la "Forth" soit avec toi !

          Allez hop (-1)
  • # What a question

    Posté par  . Évalué à 0.

    ocaml, what else??
    • [^] # Re: What a question

      Posté par  . Évalué à 0.

      Vu que c'est l'INRIA qui chapotte, l'ocalm est un choix vraiment pertinant.
    • [^] # Re: What a question

      Posté par  . Évalué à 1.

      L'année dernière les deux premiers prog étaient en Caml. Il y a sans doute une raison ...
      • [^] # Re: What a question

        Posté par  . Évalué à 0.

        Bon je suis pro-OCaml, mais c'est pas parce que l'an dernier les deux premiers prix ont été attribués à des équipes qui codaient en OCaml qu'il faut déduire que c'est *necessairement* le langage qui fait le programme.
        Ce que t'as peut etre pas vu, c'est que l'an dernier, la team qui a gagné avait en son sein Jerome Vouillon... et bon.. quand tu connais le bonhomme, ca n'a rien d'etonnant.
        Ce qu'il faut aussi préciser c'est que Vouillon a codé le O de OCaml, alors c'est normal qu'il maitrise le langage.
        • [^] # Re: What a question

          Posté par  . Évalué à 0.

          Je crois que c'est Xavier Leroy (pthread sous linux) qui a fait la plus grosse partie du O dans OCaml.
          Par contre, je suis d'accord avec toi, étant aussi, proOCaml. Je pense que les gens qui faisaient parties des équipes OCaml devait avoir un niveau supérieur aux autres.
          Petite anecdote:
          L'année derniere les 2 premiers en OCaml,
          l'année d'avant premier en OCaml.. ;)
          • [^] # Re: What a question

            Posté par  . Évalué à 0.

            ... et l'annee encore d'avant, c'etait le 2eme qui etait en Caml.

            Sinon pour le O de OCaml, je croyais que c'etait Didier Remy, mais bon.
            • [^] # Re: What a question

              Posté par  . Évalué à 1.

              coupons cours a la pseudo discussion:
              c'est Jerome Vouillon, sous la direction de Remy, qui a principalement codé le O de OCaml.
              Leroy est le mainteneur, et c'est aussi celui qui, avec Pierre Weis est le principal architecte de Caml.

              voila.
    • [^] # Re: What a question

      Posté par  . Évalué à 0.

      La, je pense qu'il y a vraiment de l'ocaml dans l'air. J'ai fait mes études à la fac d'orsay, avec plein de mecs qui connaissent ocaml sur le bout des doigts, et c'est vrai que pour ce genre de choses, c'est rapide à developper et rapide en temps d'exécution. Allez, je ressors mes cours de caml et je gagne les 1000$ que je redonne à l'inria pour qu'il optimise leur caml
      • [^] # Re: What a question

        Posté par  . Évalué à 0.

        Ne t'en fait pas pour l'Inria,
        tu en payes/payeras des impôts...
    • [^] # Re: What a question

      Posté par  . Évalué à 1.

      Lambda-Prolog c'est aussi plutot adapte pour ce
      type de problemes non ? (grammaires...)

      J'ai bien envie de m'y remettre pour mes vacances
      mais il y a une version pour GNU/Linux ?
      • [^] # Re: What a question

        Posté par  . Évalué à 1.

        je ne connais pas assez lambda-prolog pour te repondre.
        bon, voila l'url qu'il te faut :
        http://www.ocaml.org/ocaml/distrib.html(...)

        il y a pas mal de ressources on-line, tu trouveras sans probleme de la doc (commence par le site www.ocaml.org) pour faire ce que tu veux.
    • [^] # Re: What a question

      Posté par  . Évalué à 0.

      hum, vu qu'on est dans un environnemmment embarqué par la suite, java me semble plus judicieux, en tous cas pour la decompression...
      • [^] # Re: What a question

        Posté par  . Évalué à 1.


        euh... pour information, le w4c n'existe pas et SML/NG est un jeu de mot avec SML/NJ (Standard ML of New Jersey, un dialect de ML), donc je doute fort que l'on retrouve le code du gagnant dans un téléphone wap d'ici longtemps :-)



        De plus le compilo ocaml peut aussi produire du bytecode, aussi portable que celui de Java, plus rapide et moins gourmand en mémoire. Qu'est-ce que ce serait cool de pouvoir programmer son téléphone portable en ocaml !

        • [^] # Re: What a question

          Posté par  . Évalué à 1.

          Java est dit portable en fonction du nombre de
          SE/machine sur lesquel ont été portés les machines
          virtuelles JAVA.

          Si il n'existe pas de machine virtuelle pour le
          byte code ocaml, ca va être dure de le lancer. A
          moins que le byte code soit du byte code JAVA ?
          • [^] # Re: What a question

            Posté par  . Évalué à 1.


            Il existe un runtime pour le bytecode ocaml pour presques tous les unix, windows, beos, macos et meme une implémentation en Java !

            • [^] # Re: What a question

              Posté par  . Évalué à -1.

              c'est pas le même bytecode que JAVA ?
              Est-ce qu'il y a moyen de faire une implémentation de SmallTalk en Ocaml qui tournera en Java sur un mainframe IBM ?

              Qqun à une idée des perf (4 bytecodes enpilés, ça doit donner !)

              -1 ça pue comme remarque !
      • [^] # Re: What a question

        Posté par  . Évalué à 0.

        Ben justement si c'est embarqué, pas du java...
  • # rafale de questions à propos des langages fonctionnels

    Posté par  . Évalué à 0.

    C'est quoi un langage fonctionnel ?
    Vous avez des exemples de langages fonctionnels ?
    C'est quoi l'avantage d'un langage fonctionnel sur un langage non fonctionnel ?
    Peut on avoir des langages fonctionnels objets et des langages fonctionnels "non objets" ?
    Un chien ?
    • [^] # Re: rafale de questions à propos des langages fonctionnels

      Posté par  . Évalué à 0.

      Vous avez des exemples de langages fonctionnels ?
      Lisp, Scheme, Haskell ... et Objective Caml bien sûr

      Peut on avoir des langages fonctionnels objets
      Objective Caml, comme son nom l'indique a des objets.

      Voilà, pour les autres questions, d'autres répondront mieux que moi je pense.
    • [^] # Re: rafale de questions à propos des langages fonctionnels

      Posté par  . Évalué à 3.

      1) Bon, comme son nom l'indique, le fonctionnel manipule des fonctions, qui peuvent etre passées en argument d'autres fonctions, ou bien en etre le resultat.

      2) Lisp, OCaml, Haskell etc.

      3) C'est pas vraiment un probleme "d'avantage" , c'est un type de programmation.
      Si tu est bourrin, fais de l'imperatif, si tu est fin , fais du fonctionnel :)
      l'exemple typique c'est ca (grossier je sais mais bon)
      imperatif : tu codes la fonction "factorielle" a l'aide d'une boucle
      fonctionnel : tu utilises la recursivité

      4) Le Haskell est fonctionnel et objet, OCaml aussi evidemment. Lisp est fontionnel sans etre objet (je parle pas de CLOS).

      5) Par contre pour le chien faut que je me renseigne, mais il me semble que oui, surtout en été.
      • [^] # Re: rafale de questions à propos des langages fonctionnels

        Posté par  . Évalué à 0.

        Merci Monsieur anonyme
      • [^] # Re: rafale de questions à propos des langages fonctionnels

        Posté par  . Évalué à -1.

        3) Toute boucle itérative peut être converti en une forme équivalente utilisant la récursivité. Inversement une expression récursive est exprimable sous une forme équivalent non-récursive.

        On ne peut opposer récursivité et boucle, ce sont des constructions équivalentes.
        • [^] # Re: rafale de questions à propos des langages fonctionnels

          Posté par  . Évalué à 1.

          Pas tout a fait.
          Disons que qu'une expression recursive peut *toujours* etre exprimée a l'aide d'une boucle, a condition que ce ne soit pas une boucle FOR.
          Dans ce cas précis (recursivité/boucle for) il y a une opposition.
          C'est d'ailleurs ce qu'Ackermann a prouvé avec sa celebre fonction.
        • [^] # Re: rafale de questions à propos des langages fonctionnels

          Posté par  . Évalué à 0.

          Oui mais dans ce cas la, tous les langages informatiques sont Turing-equivalents (je suppose que c'est de ce genre d'equivalence que tu parlais), ce qui n'empeche pas que si ce que tu veux faire est facile a ecrire et a optimiser dans un langage alors que c'est long et dur dans un autre tu pourras preferer la premiere version...
      • [^] # Re: rafale de questions à propos des langages fonctionnels

        Posté par  . Évalué à 0.


        la solution récursive pour le 3) est en fait bourrine car factorielle n'est pas récurtive terminale donc ça va vite mener à un débordement de pile : (j'ai remplaçé * par + car facterielle de 100000 ça tient pas en 31 bits)



        Objective Caml version 2.01


        # let rec f = function 0 -> 0 | n -> n + f (n - 1) ;;
        val f : int -> int = <fun>
        # f 100000 ;;
        Stack overflow during evaluation (looping recursion?).
        # let f' n = let s = ref 0 in for i = 1 to n do s := i + !s done ; !s ;;
        val f' : int -> int = <fun>
        # f' 100000 ;;
        - : int = 705082704
        • [^] # Re: rafale de questions à propos des langages fonctionnels

          Posté par  (site web personnel) . Évalué à 1.

          Bon, je réponds un peu tard et personne ne le verra, mais on peut pas laisser ça. On peut évidemment transformer la fonction pour qu'elle soit récursive terminale (avec un argument supplémentaire).

          Objective Caml version 3.02

          # let rec f acc = function 0 -> acc | n -> f (acc + n) (n - 1) ;;
          val f : int -> int -> int = <fun>
          # let f' = f 0 ;;
          val f' : int -> int = <fun>
          # f' 100000 ;;
          - : int = 705082704
    • [^] # Re: rafale de questions à propos des langages fonctionnels

      Posté par  . Évalué à 1.

      Une grosse caractéristique c'est que ton programme est l'équivalent d'une grosse expression en C, la notion d'instruction n'existe pas.
  • # fr ?

    Posté par  . Évalué à -1.

    allez! hop! encore en anglais...
    • [^] # Re: fr ?

      Posté par  . Évalué à 0.

      L'anglais est la langue de l'informatique.

      La traduction d'un document ne prend pas 30 sec mais au minimum 1h si le document est petit. Il faut donc avoir le temps, il faut aussi demander l'autorisation de l'auteur, etc...

      LinuxFR est un site gratuit, géré par des benevoles, tu n'as donc rien à reclamer.

      Si tu penses qu'il faudrait traduire les documents, propose tes services à LinuxFR.
      • [^] # Re: fr ?

        Posté par  . Évalué à -1.

        trop nul ta reponse.
        Tout le monde n'est pas communiste comme la societe linux: faudrait me payer pr traduire.

        Et s'il rale car cen US c surement car c une tanche en anglais

        enfin que je dis linuxfr je parle de toollinux
  • # python

    Posté par  (site web personnel) . Évalué à 1.

    python avec le module htmllib pourrait etre un bon choix...
  • # Ne vous fatiguez pas trop sur le choix du langage

    Posté par  . Évalué à 0.

    La gramaire est super simple ! Un parser est construit en 1/2h, dans n'importe quel langage. Il suffit de faire une descente récursive !

    Ce qui est plus important c'est d'avoir une bonne représentation intermédiaire qui permette de faire
    facilement des optimisations aisement !

    Trouver des heuristiques pour les problèmes exponentiels est également important vu la limitation en temps !
    • [^] # Re: Ne vous fatiguez pas trop sur le choix du langage

      Posté par  . Évalué à 1.

      T'as peut-être intérêt à la dérécursiviser, parcequ'avec un fichier de 5Mo, la pile elle risque de voler.
      Mais ça me paraît une solution raisonnable ... Trémeaux ? Trémeaux .... ?

      où es-tu ?

      Bisou à S. Gire de l'UBO.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.