TAPSOFT '91 is the Fourth International Joint Conference on Theory and Practice of Software Development. It was held in Brighton, April 8-12, 1991, and was organized by the Department of Computing, Imperial College, London. The proceedings of TAPSOFT '91 are organized into three parts: - Colloquium on Trees in Algebra and Programming (CAAP); - Advances in Distributed Computing (ADC); - Colloquium on Combining Paradigms for Software Development (CCPSD). The first part (CAAP) is contained in Vol. 1, the other two parts constitute Vol. 2. CAAP '91 focuses on the following topics: - Logical, algebraic and combinatorial properties of discrete structures (strings, trees, graphs, etc.), including the theory of formal languages considered in the broad sense as that of sets of discrete structures and the theory of rewriting systems over them. - Application of discrete structures in computer science: syntax and semantics of programming languages, operational semantics, logic programming, algorithms and data structures, complexity of algorithms and implementation aspects, proof techniques for nonnumerical algorithms, formal specifications, and visualization of structured objects. The ADC talks by distinguished invited speakers survey current developments in distributed computing, including the integration of different paradigms for concurrency, algebraic, logical and operational foundations, and applications to software engineering and formal methods. The CCPSD papers address aspects of the trend in software engineering towards unification and synthesis combining theory and practice, and merging hitherto diverse approaches.