Syntax checker restrictions
The syntax checker restrictions fall into one of the following
categories
1. Advanced Scheme constructs
There are a number of Scheme constructs I am prohibiting for at least
the first few assignments so that students learn to program
functionally instead of procedurally:
- iteration constructs: do, named lets, etc.
- mutators: such as set!
- eval
- begin and multiple forms in implicit begins:
right now, we do not require any side effects, so there is no reason
to have multiple forms in an (implicit) begin
Most, if not all, the restrictions in this category will be lifted
after the third or fourth assignment.
2. Security/integrity concerns
For the security and integrity of the web tester, any Scheme
constructs that fall in the following categories are prohibited:
- file I/O of any sort, except for loading provided support code
- any attempts to establish network connections
- operating system calls of any sort
- any code attempting to interfere with any component of the web tester
Any uploaded code that might be intended to maliciously or
fraudulently interfere with the web tester will be treated as a
instance of academic dishonesty and prosecuted accordingly.