JTV brings you some extra credit problems

 

Problem for Software Engineers

Write a program that given an infix arithmetic expression, outputs a prefix version, and send it in with your response to our ad.

For example:
3 becomes 3
1 + 1 becomes (+ 1 1)
2 * 5 + 1 becomes (+ 1 (* 2 5))
2 * ( 5 + 1 ) becomes (* (+ 1 5) 2)
3 * x + ( 9 + y ) / 4 becomes (+ (* 3 x) (/ (+ 9 y) 4))

The format of the input expression is highly restricted. All values are either single alphabetic characters or positive integers. All operators, including ( and ), are always separated by at least one space from other values  or operators.

You should respect operator precedence, so 3 + 5 * 4 should always be parsed as 23, not 32.

Your program should be run from the command line as

prefixer FILE_NAME

where FILE_NAME is the name of a file containing an infix expression.

Extra Credit: Reduce all expressions as much as possible before you output them. This behavior should be triggered by a -r flag.

Problem for Flash Developers

bml is a markup language for animating balls. bml files look like:

giant_red_ball:
  color: FF0000
  radius: 100
  appear:
    time: 19
    x: 57
    y: 52
  disappear:
    time: 29
    x: 107
    y: 52
tiny_yellow_ball:
  etc. etc.

Write a swf that lets you load BML files from an arbitrary URL, and then plays them back.