Slashdot Mirror


2002 ICFP Programming Contest

Phil Bewig writes "The 2002 ICFP Programming Contest begins today. The programming task will be posted at 12:00 noon Pacific Time." Which should be... just about... now.

12 of 215 comments (clear)

  1. Re:one based array? by coyul · · Score: 4, Informative

    What kind of programming challenge uses a one-based array?

    Actually, in this case it's a great idea. The game world is bounded by walls, so you can put the walls in the 0 index (and the width+1 index) of your array and not have to explicitly test for the array bounds. Treat them like any other wall.

  2. Re:Ambiguous rules by Anonymous Coward · · Score: 1, Informative
    Re-read the beginning ... the contest is to write a player that controls a robot. Not to write a robot.

    My question is... could I train one of them carnival chickens to play and submit him?

  3. Re:C++ vs. SML for language by joto · · Score: 4, Informative
    Someone recently told me that SML would be a much better programming language

    Yes, people often do that. But what they often neglect to tell you, is that it depends upon the task at hand. Still, SML is a nice language, but I wouldn't use it for everything (neither would I use C++ for everything).

    If you like functional programming, like static checking (there are no ways around SML's typesystem, you are really, really safe), like strictness (as opposed to lazy functional languages), and like to be able to do some imperative hacking for the last bit of performance, then SML may be for you. If you are into compilers, theorem-provers, computer algebra or anything similar, then SML is definitely for you.

    For tasks that are very low-level (i.e. require lot's of bit-fidling), needs to run in small memory-space, needs access to lot's of C or C++ libraries, etc, C++ is definitely more suited.

    though it has no/little support for variables

    Yes, that's the whole point of functional programming. But SML allows you to declare ref-cells which behave just like variables in normal languages. The downside is that using them makes your code incredibly ugly (something most SML'ers think is good, because it encourages good functional programming style).

    A good implementation of SML would run with more or less the same speed as C++, and could also run the same algorithms (since it allows you to use imperative constructs), but it would be better if you used functional algorithms except when you really need to tune for the last clock-cycles. Unfortunately, the "standard" implementation, smlnj, runs more like at half speed of g++. There is another dialect of ML, called Ocaml, which has much more impressive native-code compilers. It is also somewhat more geared towards other programming-styles then the functional one (i.e it supports object-oriented programming really well).

    I just red the contest problems; It seems as though it can be easily done in C++ -- anyone have insight on this?

    Yes, to avoid being blamed for being biased towards functional programming, the ICFP doesn't usually have problems that are much better suited for functional languages. And there has certainly been contestants using C++ before. The main reason C++ may not fare too well in this contest, is probably because (1) usually the biggest C++ gurus are busy doing other things, while the biggest Ocaml, SML, Haskell, etc, gurus are competing, and (2) Functional languages are often more suitable for rapid prototyping than C++, and development speed is certainly an important ingredient in this competition. But it is definitely not impossible that either C++ or Perl comes out a winner some year.

  4. just to make sure noone is confused by the parent by Theodore+Logan · · Score: 3, Informative
    That is not a comprehensive list. It reads as follows:
    The following programming language implementations are available on the machine:

    Assemblers (gas 2.10.91, nasm 0.98.22)
    C, C++, chill, objective C (gcc 2.96)
    Common Lisp (CLISP 2.29; CMUCL 18d)
    Erlang (R8B-1)
    FORTRAN (g77 2.96)
    Haskell (GHC 5.04; Hugs98-Dec2001; HBC 0.9999.5b)
    Java (gcc 2.96; Jikes 1.15; Sun JDK 1.4.0)
    Lazy ML (lmlc 0.9999.5b)
    Mercury (0.10.1)
    Modula 3 (PM3 1.1.15)
    Objective Caml (3.04)
    Pascal (p2c 1.22)
    Perl (5.6.1)
    PostScript (ghostscript-6.52)
    Prolog (Gnu Prolog 1.2.1)
    Python (1.5.2 and 2.2)
    Ruby (1.6.7)
    SML (Moscow ML 2.00; SML/NJ 110.0.7)
    Scheme (Rice PLT 202; MIT Scheme 7.7.1, scsh 0.5.2, umb-scheme 3.2)
    Tcl (8.3.3 with tclx 8.3)
    Also note the following:
    Please Note that the absence of your favourite language (be it SNOBOL4, INTERCAL, or RedCode) does not mean that you cannot use it for this contest. The preferred form for submitting a program is as a precompiled executable, which you can produce by any means you want.

    If you can't supply a precompiled executable, and want to use a language which is not on the list above, let us know where to find an implementation of the language, preferably in the form of an RPM, and we will consider installing it.
    --

    "If you think education is expensive, try ignorance" - Derek Bok

  5. Re:Why weren't we notified in advance? by Anonymous Coward · · Score: 1, Informative
  6. There will be.... by cp4 · · Score: 5, Informative

    From the FAQ:

    Q1: Will a test server be available?
    A: Yes, stay tuned...

  7. Re:Complete Protocol? by Violet+Null · · Score: 3, Informative

    I think that the protocol needs to be updated a little. How do we know when the end of the list of robots is reached?

    It's all sent on one line, so the newline character marks the end of the list. See the examples.

  8. Re:Anyone remember the old school robot games? by Lucky+Kevin · · Score: 2, Informative

    Corewars was a great game that I used to play. It has been greatly updated now, but essentially you write a program in a simple assembler that moves around in memory and hopes to crash another program that is moving around trying to crash yours.

    --
    Kevin
    "It's not the cough that carries you off, it's the coffin they carry you off in" O. Nash
  9. Re:Solution! by mskfisher · · Score: 3, Informative

    In C and C++, the line "#include 'filename'" tells the compiler to act like the contents of 'filename' are inserted at that location.

    Since Unix treats all devices as files (keyboard, CDROM, hard drive, etc) /dev/tty refers to the keyboard (teletype). You can therefore type anything you want into the file at compile time.

    It works in Windows/DOS, too, with the filename 'con', i.e., #include "con" .

    --
    0x0D 0x0A
  10. It's RoboRally by deblau · · Score: 3, Informative

    It's RoboRally, published by WOTC. See here for an explanation of the rules, and compare to the ICFP rules here. Personally, I think RoboRally is more fun.

    --
    This post expresses my opinion, not that of my employer. And yes, IAAL.
  11. Truckin at Xerox PARC, 1983 by OldButNotWise · · Score: 2, Informative
    Check out the "Truckin" game at Xerox PARC in 1983. Teams had just one or two days to design and implement their players that were then pitted against each other as everyone gathered around and watched. It was designed to teach a language, not test programming skills. At that is succeeded -- I lost big-time, but had a ball and learned a lot.

    Sure been a lot of progress in the last 20 years...

    --
    :WQ^H^Hwq!^M^M
  12. The organisers seem to like Haskell by Curl+E · · Score: 2, Informative

    The downloadable test server appears to be written in Haskell and compiled with GHC:

    > strings Simulator | grep GHC
    ...
    The GHC User's Guide has full details.
    RTS options may also be specified using the GHCRTS environment variable.
    ...
    --
    Backups are for wimps. Real men post their data in comments and have slashdot mirror it