Mathematica's highly optimized architecture makes it easy to create programs that are both elegant and efficient. Its symbolic character lets you immediately run and test even the smallest program fragments. And it provides full-scale software engineering support, from arbitrarily detailed compilation control, to novel high-level symbolic analysis.
Monitor — dynamically monitor values during a computation
StepMonitor,
EvaluationMonitor — monitor built-in algorithms
Sow,
Reap — accumulate lists of values from within a computation
Print — print any expression or graphic
PrintTemporary — print temporary output, cleaning up at the end of a computation
Dialog — enter a subsession at any stage in a computation
— start interactive debugger
TimeConstrained — constrain CPU time for a computation
MemoryConstrained — constrain memory usage in a computation
Method — specify particular methods for algorithmic functions to use
PerformanceGoal — specify whether to optimize for quality, speed, etc.
GraphPlot — lay out a symbolic call graph