separation compiler and runtime