Ответ
Compile time — это этап, когда код компилируется в байт-код или машинный код. Ошибки на этом этапе (например, синтаксические или типовые в Kotlin) обнаруживаются до запуска приложения.
Runtime — это время выполнения программы. Ошибки здесь (например, NPE или ClassCastException) возникают уже при работе приложения.
Пример:
val str: String = null // Compile error (non-null type)
val length = str.length // Runtime NPE if str is null
Compile time проверки помогают избежать многих runtime ошибок. Kotlin с его null-safety — отличный пример этого.