Abstract. The implementation of high-performance robot controllers for complex control tasks such as playing autonomous robot soccer is tedious, errorprone, and a never ending programming task. In this paper we propose programmers to write autonomous controllers that optimize and automatically adapt themselves to changing circumstances of task execution using explicit perception, dynamics and action models. To this end we develop ROLL (Robot Learning Language), a control language allowing for model-based robot programming. ROLL provides language constructs for specifying executable code pieces of how to learn and update these models. We are currently using ROLL’s mechanisms for implementing a rational reconstruction of our soccer robot controllers.