Write an interpreter for my esoteric language Jumper
Ruby, 447 bytes

p,i=$*
l=(i||'').length
r=[0]*l
l.times{|j|r[j]=i[j].ord}
i=j=0
s=p.gsub(/\(.*?\)|\s/,'')
q=s.scan(/(\?)?([#&lt;&gt;=+:-])(\d*)/)
e=-&gt;{abort"Error"}
p[/\d\s+\d/]||q*''!=s ?e[]:(r+=[0]until i+1&lt;r.length
c=q[j]
j+=1
f=c[1]
c[0]&amp;&amp;r[i]==0?next: a=c[2]==''? '&gt;&lt;+-'[f]?1:0:c[2].to_i
'=+-'[f]&amp;&amp;a&gt;255?e[]: f==?#?i=a :f==?&gt;?i+=a :f==?&lt;?i-=a :f==?=?r[i]=a :f==?+?r[i]+=a :f==?-?r[i]-=a :j=a
i&lt;0?e[]:r[i]%=256)while j&lt;q.length
puts r.first(r.index 0).map(&amp;:chr)*''


Takes both the program and the input via command line arguments.

EDIT: Fixed a few bugs, and added support for invalid syntax at the cost of 40 bytes (while adding a few other optimisations).