In the quest for program analysis and verification, program
termination -- determining whether a given program will always halt or
could execute forever -- has emerged as a central component. Although
proven undecidable in the general case by Alan Turing over 80 years ago,
positive results have been obtained in a variety of restricted instances.
We survey the situation with a focus on simple linear programs, i.e.,
WHILE loops in which all assignments and guards are linear, discussing
recent progress as well as ongoing and emerging challenges.