Scripting language parser
I am not sure if these are bottlenecks, but they are at least performance improvements.


Replace Stack&lt;Token&gt; with Stack&lt;Value&gt; since you are only pushing/popping Value. This way there is no need to do expensive casts.
You can replace

if ( value[ i ] is Operator )
{
    Operator op = (Operator)value[ i ];


with

Operator op = value[ i ] as Operator;
if ( op != null ) // it was an Operator


to have only one typecheck (x as y) instead of two (x is y and (y) x).
You can replace 

for ( int i = 0 ; i &lt; value.Count ; ++i )


with

foreach(Token item in value)


to eliminate the index operations value[ i ].