Haskell LegoDSL
You can write Haskell-code and generate nxc-code for the nbc compiler. Examples are in Examples/Example.hs and Examples/ExampleCode.hs
You can test your Haskell-code using a VM. Example is in Examples/ExampleVM.hs
You can also script your NXT using a JavaScript-like language. Example is Scripting/lineFollow.js. Build and use the legoDSL executable to generate nxc-code and then the nbc compiler to transfer it to your robot.