Advancing the State of Auto-tuning with Programming Languages