Evidence-based programming language design (PhD thesis)