Site Compiler Requirements
Teams may elect to program in C, C++, Java, or Pascal. You must provide
compilers for these languages.
General Requirements
- You may not have more than one compiler per language. For
example, you cannot provide both Visual C++ and gcc. Sometimes code
that works fine with one compiler will not work with a different
compiler, and we can't risk that happening during the contest. (It
actually has happened in the past, hence the rule.) Since most
modern C++ compilers also compile C, in practice most sites will have
three compilers: a Pascal compiler, a C/C++ compiler, and a Java
compiler.
- If a compiler has an IDE, it must also have a command-line
equivalent. Contestants will prefer to use the IDE, but the judging
utilities require a command-line compiler. Most modern IDEs also
provide a command-line equivalent. It is your responsibility to
ensure that the default settings for both the IDE and command-line
compiler match! If they use different settings for optimization,
debugging, memory model, etc., it may happen that a program will work
correctly for the contestant when using the IDE but fail when the
judges test it. This too has happened in a previous contest.
- You may not provide teams with a CD-ROM or other removable
media that contains the compiler to be used during the contest. (Of
course you may distribute whatever you want after the contest.)
Some books and promotional materials contain CDs with a working
compiler, and in the past at least one site asked to use such a CD
during the contest. The idea was to give each team a CD that they
would then use during the contest, rather than installing a compiler
on each machine. The problem is that all CDs (and Zip disks, etc)
look alike, so it is very difficult to ensure that teams don't have a
CD that they're not supposed to.
- You are not required to provide a symbolic debugger for each
language. Virtually all IDEs provide one, but many command-line-only
compilers do not.
- You must provide compilers for all supported languages unless you
have written confirmation from all team sponsors attending your site
that a particular language will not be used.
Language-Specific Requirements
- C
- The compiler must conform to the ANSI C specification. All modern
compilers do.
- C++
- The compiler must support the Standard Template Library as defined
in Stroustrup's The C++ Programming Language 3/e. There are at
least three different implementations of the STL in use by the major
C++ compilers, each with its own idiosyncracies, so expecting 100%
conformance is unrealistic at present. As a practical matter it is
sufficient for the implementation to support the modern iostream
library, strings, and the basic containers (including vector,
list, stack, queue, deque, priority_queue, set, and map).
- Java
- The minimum requirement is compatibility with Sun's Java 2 SDK 1.2 or
higher. Note that Microsoft's Visual J++ 6.0 is not acceptable,
since it is based on SDK 1.1.
- Pascal
- Select either Turbo Pascal 5.5 or Turbo Pascal 7.0 for MS-DOS.
Free Compilers
You will probably just use the compilers that you normally provide
for your students. If they are not acceptable, or if you want to
consider other alternatives, here are a few free compilers.
- Borland
C++ 5.5
- A very good C/C++ compiler. No debugger. For Win 9x/NT/2000.
- djgpp
- A version of GNU gcc (a C/C++ compiler) that runs under plain old
DOS (and some versions of Windows). Make sure you get the latest release.
- JBuilder 7.0
Personal
- A nice Java IDE that uses SDK 1.3 or SDK 1.4.
For Windows, Linux, and Solaris.
- MinGW (Minimalist GNU for Windows)
- A native Win9x/ME/NT/2000 version of gcc and friends.
Get version 2.95.3 or higher.
- Sun's Java 2 SDK 1.4.1
- The latest version of Sun's Java Development Kit, for Windows/Linux/Sparc
- Turbo
Pascal 5.5
- A bit long in the tooth, but supports all the important features
of Turbo Pascal 7.0. For DOS.
Last modified Mon Sep 30 21:27:56 2002