| Site Software Requirements
| Last modified Thu Aug 28 09:27
2003
|
Operating Systems
You must use a modern 32 or 64-bit operating system such as Windows
NT/2000/XP, Mac OS X, or any recent flavor of Linux, BSD, or
commercial Unix. The important features of these operating systems
are (1) support for writing programs using a flat 32-bit memory model,
and (2) preemptive multitasking, which means that if a program crashes
it shouldn't take the whole OS with it, requiring a reboot. Windows
95 or lower, any flavor of DOS, and Mac OS 9 or lower are not
acceptable. Windows 98/98SE/ME are marginally acceptable, but because
they use 16-bit legacy code internally their use may be deprecated in
the future.
Programming Languages
Teams may elect to program in C, C++, Java, or Pascal. You must provide
compilers for these languages.
General Requirements
- All compilers must support a flat 32-bit memory model. This
prohibits ancient compilers such as Turbo Pascal and Turbo C++, which
only support a segmented 16-bit memory model with a limit of 64K per
object and 640K total memory.
- 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 C/C++ compiler, a Java compiler, and a Pascal
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, 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.
Language-Specific Requirements
- C
-
The compiler must support the Standard C (1989) specification, as
documented in Harbison & Steele's C: A Reference Manual
(5/e). All modern compilers do. Support for the newer 1999
specification is not currently required.
- C++
-
The compiler must support the Standard Template Library as defined in
Stroustrup's The C++ Programming Language 3/e. In particular,
it must support the modern iostream library, strings, container
classes, algorithms, and function objects.
- Java
-
The minimum requirement is compatibility with Sun's Java 2 SDK 1.2 or
higher. No Microsoft Java or J++ compiler is acceptable.
- Pascal
-
Any 32-bit compiler is acceptable. Compatibility with Borland Pascal
7.0 and/or Delphi is highly desirable. You do not have to provide a
Pascal compiler if you have confirmation from all team coaches
attending your site that none of their teams will be using Pascal.
Free Compilers and IDEs
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 and IDEs.
-
Borland C++ 5.5
-
A very good Windows C/C++ compiler. Turbo Debugger is also available.
-
Borland Kylix 3 Open Edition
-
Supports C++ and Delphi for Linux.
-
Eclipse
-
"An open extensible IDE for anything and nothing in particular." For
Windows and Linux.
-
Free Pascal
-
Compatible with Borland Pascal 7.0 and parts of Delphi.
For Windows, Linux, and *BSD.
-
JBuilder 9.0 Personal
-
A nice Java IDE for Windows, Linux, and Solaris.
-
MinGW (Minimalist GNU for Windows)
-
A native Windows version of gcc and friends.
Get a recent version that provides gcc 3.2 or higher.
-
NetBeans
-
A very good Java IDE, for Windows and Linux. Can be a memory hog.
-
Open Watcom
-
An open-source version of Watcom's C/C++ compilers, for Windows.
-
Sun's Java 2 SDK 1.4.2
-
The latest version of Sun's Java Development Kit, for Windows, Linux,
and Solaris.
-
Virtual Pascal
-
Compatible with Borland Pascal 7.0 and Delphi. For Windows.