(Here is a shorter abstract. It was one of those things you have to produce till "the day before yesterday" for some publication list:-) ===================================================================== Functions, Frames, and Interactions -- completing a $\lambda$-calculus-based purely functional language with respect to programming-in-the-large and interactions with runtime environments The key idea of this thesis is to present the extension of a purely functional language with facilities for input/output and modular programming as a language design process. We briefly develop functional languages as a means for declarative programming, then review the support for input/output and modular programming in current functional languages. Having identified some of the problems of existing designs and the available design options in these areas, we develop our own design. The starting point is a purely functional core based on the $\lambda$-calculus, which is then extended with input/output-facilities and record-like data structures. Semantic principles (such as the principles of abstraction, correspondence and data type completeness) guide the way from the basic constructs towards a simple and elegant overall language design. The design features modules as first-class data objects and input/output-facilities which are applicable to all valid language expressions. It is demonstrated to support a wide range of modular programming techniques.