Handle NA values or assume none
Pass by-reference or pass-by-value
Reuse memory for similarly shaped objects with non-overlapping life-times
Optional type specification or generic support
Type inference
Parallelism
data locality
GPU run-time
We can create different compilers for different semantics