0% found this document useful (0 votes)
7 views42 pages

Concepts in Programming Languages 1st Edition John C. Mitchell Download

The document provides information about the book 'Concepts in Programming Languages' by John C. Mitchell, which explores key concepts in programming languages such as functions, types, and memory management. It is designed for undergraduate and beginning graduate students, offering insights into programming language design and its implications for software development. The book also includes comparisons of major object-oriented languages and discusses advanced topics like concurrency and logic programming.

Uploaded by

satodadfghtj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views42 pages

Concepts in Programming Languages 1st Edition John C. Mitchell Download

The document provides information about the book 'Concepts in Programming Languages' by John C. Mitchell, which explores key concepts in programming languages such as functions, types, and memory management. It is designed for undergraduate and beginning graduate students, offering insights into programming language design and its implications for software development. The book also includes comparisons of major object-oriented languages and discusses advanced topics like concurrency and logic programming.

Uploaded by

satodadfghtj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 42

Concepts in programming languages 1st Edition

John C. Mitchell download

https://ebookultra.com/download/concepts-in-programming-
languages-1st-edition-john-c-mitchell/

Explore and download more ebooks or textbooks


at ebookultra.com
We believe these products will be a great fit for you. Click
the link to download now, or visit ebookultra.com
to discover even more!

Theories of Programming Languages 1st Edition John C.


Reynolds

https://ebookultra.com/download/theories-of-programming-languages-1st-
edition-john-c-reynolds/

Programming Concepts in C 2nd Edition Robert Burns

https://ebookultra.com/download/programming-concepts-in-c-2nd-edition-
robert-burns/

Programming with Visual C Concepts and Projects 1st


Edition James Allert

https://ebookultra.com/download/programming-with-visual-c-concepts-
and-projects-1st-edition-james-allert/

Beginning C Game Programming 2nd ed. Edition John Horton

https://ebookultra.com/download/beginning-c-game-programming-2nd-ed-
edition-john-horton/
Masterminds of Programming Conversations with the Creators
of Major Programming Languages 1st Edition Federico
Biancuzzi
https://ebookultra.com/download/masterminds-of-programming-
conversations-with-the-creators-of-major-programming-languages-1st-
edition-federico-biancuzzi/

Essentials of Programming Languages Third Edition Daniel


P. Friedman

https://ebookultra.com/download/essentials-of-programming-languages-
third-edition-daniel-p-friedman/

Concepts in Toxicology 1st Edition John H. Duffus

https://ebookultra.com/download/concepts-in-toxicology-1st-edition-
john-h-duffus/

Programming Languages Principles and Paradigms 2nd Edition


Allen B. Tucker

https://ebookultra.com/download/programming-languages-principles-and-
paradigms-2nd-edition-allen-b-tucker/

C Programming in Linux 1st edition Edition Haskins D.

https://ebookultra.com/download/c-programming-in-linux-1st-edition-
edition-haskins-d/
Concepts in programming languages 1st Edition John C.
Mitchell Digital Instant Download
Author(s): John C. Mitchell, Krzysztof Apt
ISBN(s): 9780521780988, 0521780985
Edition: 1st
File Details: PDF, 7.59 MB
Year: 2001
Language: english
Team-Fly

. .Concepts in Programming Languages


by John C. Mitchell ISBN:0521780985

Cambridge University Press © 2003 (529 pages)

This book provides a better understanding of the issues and trade-offs that arise in
programming language design and a better appreciation of the advantages and pitfalls of the
programming languages used.

Table of Contents

Concepts in Programming Languages


Preface
Part 1 - Function and Foundations

Chapter 1 - Introduction
Chapter 2 - Computability
Chapter 3 - Lisp—Functions, Recursion, and Lists
Chapter 4 - Fundamentals
Part 2 - Procedures, Types, Memory Mangement, and Control

Chapter 5 - The Algol Family and ML


Chapter 6 - Type Systems and Type Inference
Chapter 7 - Scope, Functions, and Storage Management
Chapter 8 - Control in Sequential Languages
Part 3 - Modularity, Abstraction, and Object-Oriented Programming

Chapter 9 - Data Abstraction and Modularity


Chapter 10 - Concepts in Object-Oriented Languages
Chapter 11 - History of Objects—Simula and Smalltalk
Chapter 12 - Objects and Run-Time Efficiency— C++
Chapter 13 - Portability and Safety—Java
Part 4 - Concurrency and Logic Programming

Chapter 14 - Concurrent and Distributed Programming


Chapter 15 - The Logic Programming Paradigm and Prolog
Appendix A - Additional Program Examples
Glossary
Index
List of Figures
List of Tables

Team-Fly
Team-Fly

Back Cover
This textbook for undergraduate and beginning graduate students explains and examines the central concepts used in
modern programming languages, such as functions, types, memory management, and control. This book is unique in its
comprehensive presentation and comparison of major object-oriented programming languages. Separate chapters examine
the history of objects, Simula and Smalltalk, and the prominent languages C++ and Java.

The author presents foundational topics, such as lambda calculus and denotational semantics, in an easy-to-read, informal
style, focusing on the main insights provided by these theories. Advanced topics include concurrency and concurrent
object-oriented programming. A chapter on logic programming illustrates the importance of specialized programming
methods for certain kinds of problems.

This book will give the reader a better understanding of the issues and trade-offs that arise in programming language design
and a better appreciation of the advantages and pitfalls of the programming languages they use.

About the Author

John C. Mitchell is Professor of Computer Science at Stanford University, where he has been a popular teacher for more
than a decade. Many of his former students are successful in research and private industry. He received his Ph.D. from MIT
in 1984 and was a Member of Technical Staff at AT&T Bell Laboratories before joining the faculty at Stanford. Over the past
twenty years, Mitchell has been a featured speaker at international conferences, has led research projects on a variety of
topics, including programming language design and analysis, computer security, and applications of mathematical logic to
computer science, and has written more than 100 research articles. His graduate textbook, Foundation for Programming
Languages covers lambda calculus, type systems, logic for program verification, and mathematical semantics of
programming languages. Professor Mitchell was a member of the standardization effort and the 2002 Program Chair of the
ACM Principles of Programming Languages conference.

Team-Fly
Team-Fly

Concepts in Programming Languages


John C. Mitchell

Stanford University

CAMBRIDGE UNIVERSITY PRESS

Published by the Press Syndicate of the University of Cambridge


The Pitt Building, Trumpington Street, Cambridge, United Kingdom

Cambridge University Press


The Edinburgh Building, Cambridge CB2 2RU, UK
40 West 20th Street, New York, NY 10011-4211, USA
477 Williamstown Road, Port Melbourne, VIC 3207, Australia
Ruiz de Alarcón 13, 28014 Madrid, Spain
Dock House, The Waterfront, Cape Town 8001, South Africa

http://www.cambridge.org

Copyright © 2002 Cambridge University Press

This book is in copyright. Subject to statutory exception and to the provisions of relevant collective licensing
agreements, no reproduction of any part may take place without the written permission of Cambridge University Press.

First published 2002

A
Typefaces Times Ten 10/12.5 pt., ITC Franklin Gothic, and Officina Serif System L TEX2ε [TB]

A catalog record for this book is available from the British Library.

Library of Congress Cataloging in Publication data available.


0-521-78098-5

Concepts in Programming Languages

This textbook for undergraduate and beginning graduate students explains and examines the central concepts used in
modern programming languages, such as functions, types, memory management, and control. The book is unique in
its comprehensive presentation and comparison of major object-oriented programming languages. Separate chapters
examine the history of objects, Simula and Smalltalk, and the prominent languages C++ and Java.

The author presents foundational topics, such as lambda calculus and denotational semantics, in an easy-to-read,
informal style, focusing on the main insights provided by these theories. Advanced topics include concurrency and
concurrent object-oriented programming. A chapter on logic programming illustrates the importance of specialized
programming methods for certain kinds of problems.

This book will give the reader a better understanding of the issues and trade-offs that arise in programming language
design and a better appreciation of the advantages and pitfalls of the programming languages they use.

John C. Mitchell is Professor of Computer Science at Stanford University, where he has been a popular teacher for
more than a decade. Many of his former students are successful in research and private industry. He received his
Ph.D. from MIT in 1984 and was a Member of Technical Staff at AT&T Bell Laboratories before joining the faculty at
Stanford. Over the past twenty years, Mitchell has been a featured speaker at international conferences; has led
research projects on a variety of topics, including programming language design and analysis, computer security, and
applications of mathematical logic to computer science; and has written more than 100 research articles. His previous
textbook, Foundations for Programming Languages (MIT Press, 1996), covers lambda calculus, type systems, logic for
program verification, and mathematical semantics of programming languages. Professor Mitchell was a member of the
programming language subcommittee of the ACM/IEEE Curriculum 2001 standardization effort and the 2002 Program
Chair of the ACM Principles of Programming Languages conference.

Team-Fly
Team-Fly

Preface
A good programming language is a conceptual universe for thinking about programming.

Alan Perlis, NATO Conference on Software Engineering Techniques, Rome, 1969

Programming languages provide the abstractions, organizing principles, and control structures that programmers use
to write good programs. This book is about the concepts that appear in programming languages, issues that arise in
their implementation, and the way that language design affects program development. The text is divided into four
parts:

Part 1: Functions and Foundations

Part 2: Procedures, Types, Memory Management, and Control

Part 3: Modularity, Abstraction, and Object-Oriented Programming

Part 4: Concurrency and Logic Programming

Part 1 contains a short study of Lisp as a worked example of programming language analysis and covers compiler
structure, parsing, lambda calculus, and denotational semantics. A short Computability chapter provides information
about the limits of compile-time program analysis and optimization.

Part 2 uses procedural Algol family languages and ML to study types, memory management, and control structures.

In Part 3 we look at program organization using abstract data types, modules, and objects. Because object-oriented
programming is the most prominent paradigm in current practice, several different object-oriented languages are
compared. Separate chapters explore and compare Simula, Smalltalk, C++, and Java.

Part 4 contains chapters on language mechanisms for concurrency and on logic programming.

The book is intended for upper-level undergraduate students and beginning graduate students with some knowledge
of basic programming. Students are expected to have some knowledge of C or some other procedural language and
some acquaintance with C++ or some form of object-oriented language. Some experience with Lisp, Scheme, or ML
is helpful in Parts 1 and 2, although many students have successfully completed the course based on this book without
this background. It is also helpful if students have some experience with simple analysis of algorithms and data
structures. For example, in comparing implementations of certain constructs, it will be useful to distinguish between
algorithms of constant-, polynomial-, and exponential-time complexity.

After reading this book, students will have a better understanding of the range of programming languages that have
been used over the past 40 years, a better understanding of the issues and trade-offs that arise in programming
language design, and a better appreciation of the advantages and pitfalls of the programming languages they use.
Because different languages present different programming concepts, students will be able to improve their
programming by importing ideas from other languages into the programs they write.

Acknowledgments

This book developed as a set of notes for Stanford CS 242, a course in programming languages that I have taught
since 1993. Each year, energetic teaching assistants have helped debug example programs for lectures, formulate
homework problems, and prepare model solutions. The organization and content of the course have been improved
greatly by their suggestions. Special thanks go to Kathleen Fisher, who was a teaching assistant in 1993 and 1994
and taught the course in my absence in 1995. Kathleen helped me organize the material in the early years and, in
1995, transcribed my handwritten notes into online form. Thanks to Amit Patel for his initiative in organizing homework
assignments and solutions and to Vitaly Shmatikov for persevering with the glossary of programming language terms.
Anne Bracy, Dan Bentley, and Stephen Freund thoughtfully proofread many chapters.
Lauren Cowles, Alan Harvey, and David Tranah of Cambridge University Press were encouraging and helpful. I
particularly appreciate Lauren's careful reading and detailed comments of twelve full chapters in draft form. Thanks
also are due to the reviewers they enlisted, who made a number of helpful suggestions on early versions of the book.
Zena Ariola taught from book drafts at the University of Oregon several years in a row and sent many helpful
suggestions; other test instructors also provided helpful feedback.

Finally, special thanks to Krzystof Apt for contributing a chapter on logic programming.

John Mitchell

Team-Fly
Team-Fly

Part 1: Function and Foundations


Chapter 1: Introduction

Chapter 2: Computability

Chapter 3: Lisp- Functions, Recursion, and Lists

Chapter 4: Fundamentals

Team-Fly
Team-Fly

Chapter 1: Introduction
"The Medium Is the Message"
--Marshall McLuhan

1.1 PROGRAMMING LANGUAGES


Programming languages are the medium of expression in the art of computer programming. An ideal programming
language will make it easy for programmers to write programs succinctly and clearly. Because programs are meant to
be understood, modified, and maintained over their lifetime, a good programming language will help others read
programs and understand how they work. Software design and construction are complex tasks. Many software
systems consist of interacting parts. These parts, or software components, may interact in complicated ways. To
manage complexity, the interfaces and communication between components must be designed carefully. A good
language for large-scale programming will help programmers manage the interaction among software components
effectively. In evaluating programming languages, we must consider the tasks of designing, implementing, testing, and
maintaining software, asking how well each language supports each part of the software life cycle.

There are many difficult trade-offs in programming language design. Some language features make it easy for us to
write programs quickly, but may make it harder for us to design testing tools or methods. Some language constructs
make it easier for a compiler to optimize programs, but may make programming cumbersome. Because different
computing environments and applications require different program characteristics, different programming language
designers have chosen different trade-offs. In fact, virtually all successful programming languages were originally
designed for one specific use. This is not to say that each language is good for only one purpose. However, focusing
on a single application helps language designers make consistent, purposeful decisions. A single application also
helps with one of the most difficult parts of language design: leaving good ideas out.
I hope you enjoy using this book. At the beginning of each chapter, I have included pictures of people involved
in the development or analysis of programming languages. Some of these people are famous, with major
awards and published biographies. Others are less widely recognized. When possible, I have tried to include
some personal information based on my encounters with these people. This is to emphasize that programming
languages are developed by real human beings. Like most human artifacts, a programming language inevitably
reflects some of the personality of its designers.

As a disclaimer, let me point out that I have not made an attempt to be comprehensive in my brief biographical
comments. I have tried to liven up the text with a bit of humor when possible, leaving serious biography to more
serious biographers. There simply is not space to mention all of the people who have played important roles in
the history of programming languages.

Historical and biographical texts on computer science and computer scientists have become increasingly
available in recent years. If you like reading about computer pioneers, you might enjoy paging through Out of
Their Minds: The Lives and Discoveries of 15 Great Computer Scientists by Dennis Shasha and Cathy Lazere
or other books on the history of computer science.

John Mitchell

Even if you do not use many of the programming languages in this book, you may still be able to put the conceptual
framework presented in these languages to good use. When I was a student in the mid-1970s, all "serious"
programmers (at my university, anyway) used Fortran. Fortran did not allow recursion, and recursion was generally
regarded as too inefficient to be practical for "real programming." However, the instructor of one course I took argued
that recursion was still an important idea and explained how recursive techniques could be used in Fortran by
managing data in an array. I am glad I took that course and not one that dismissed recursion as an impractical idea. In
the 1980s, many people considered object-oriented programming too inefficient and clumsy for real programming.
However, students who learned about object-oriented programming in the 1980s were certainly happy to know about
these "futuristic" languages in the 1990s, as object-oriented programming became more widely accepted and used.

Although this is not a book about the history of programming languages, there is some attention to history throughout
the book. One reason for discussing historical languages is that this gives us a realistic way to understand
programming language trade-offs. For example, programs were different when machines were slow and memory was
scarce. The concerns of programming language designers were therefore different in the 1960s from the current
concerns. By imaging the state of the art in some bygone era, we can give more serious thought to why language
designers made certain decisions. This way of thinking about languages and computing may help us in the future,
when computing conditions may change to resemble some past situation. For example, the recent rise in popularity of
handheld computing devices and embedded processors has led to renewed interest in programming for devices with
limited memory and limited computing power.

When we discuss specific languages in this book, we generally refer to the original or historically important form of a
language. For example, "Fortran" means the Fortran of the 1960s and early 1970s. These early languages were called
Fortran I, Fortran II, Fortran III, and so on. In recent years, Fortran has evolved to include more modern features, and
the distinction between Fortran and other languages has blurred to some extent. Similarly, Lisp generally refers to the
Lisps of the 1960s, Smalltalk to the language of the late 1970s and 1980s, and so on.

Team-Fly
Team-Fly

1.2 GOALS
In this book we are concerned with the basic concepts that appear in modern programming languages, their
interaction, and the relationship between programming languages and methods for program development. A recurring
theme is the trade-off between language expressiveness and simplicity of implementation. For each programming
language feature we consider, we examine the ways that it can be used in programming and the kinds of
implementation techniques that may be used to compile and execute it efficiently.

1.2.1 General Goals

In this book we have the following general goals:

To understand the design space of programming languages. This includes concepts and constructs
from past programming languages as well as those that may be used more widely in the future. We
also try to understand some of the major conflicts and trade-offs between language features, including
implementation costs.

To develop a better understanding of the languages we currently use by comparing them with other
languages.

To understand the programming techniques associated with various language features. The study of
programming languages is, in part, the study of conceptual frameworks for problem solving, software
construction, and development.

Many of the ideas in this book are common knowledge among professional programmers. The material and ways of
thinking presented in this book should be useful to you in future programming and in talking to experienced
programmers if you work for a software company or have an interview for a job. By the end of the course, you will be
able to evaluate language features, their costs, and how they fit together.

1.2.2 Specific Themes

Here are some specific themes that are addressed repeatedly in the text:

Computability: Some problems cannot be solved by computer. The undecidability of the halting
problem implies that programming language compilers and interpreters cannot do everything that we
might wish they could do.

Static analysis: There is a difference between compile time and run time. At compile time, the
program is known but the input is not. At run time, the program and the input are both available to the
run-time system. Although a program designer or implementer would like to find errors at compile
time, many will not surface until run time. Methods that detect program errors at compile time are
usually conservative, which means that when they say a program does not have a certain kind of
error this statement is correct. However, compile-time error-detection methods will usually say that
some programs contain errors even if errors may not actually occur when the program is run.

Expressiveness versus efficiency: There are many situations in which it would be convenient to have
a programming language implementation do something automatically. An example discussed in
Chapter 3 is memory management: The Lisp run-time system uses garbage collection to detect
memory locations no longer needed by the program. When something is done automatically, there is
a cost. Although an automatic method may save the programmer from thinking about something, the
implementation of the language may run more slowly. In some cases, the automatic method may
make it easier to write programs and make programming less prone to error. In other cases, the
resulting slowdown in program execution may make the automatic method infeasible.

Team-Fly
Team-Fly

1.3 PROGRAMMING LANGUAGE HISTORY


Hundreds of programming languages have been designed and implemented over the last 50 years. As many as 50 of
these programming languages contained new concepts, useful refinements, or innovations worthy of mention.
Because there are far too many programming languages to survey, however, we concentrate on six programming
languages: Lisp, ML, C, C++, Smalltalk, and Java. Together, these languages contain most of the important language
features that have been invented since higher-level programming languages emerged from the primordial swamp of
assembly language programming around 1960.

The history of modern programming languages begins around 1958-1960 with the development of Algol, Cobol,
Fortran, and Lisp. The main body of this book covers Lisp, with a shorter discussion of Algol and subsequent related
languages. A brief account of some earlier languages is given here for those who may be curious about programming
language prehistory.

In the 1950s, a number of languages were developed to simplify the process of writing sequences of computer
instructions. In this decade, computers were very primitive by modern standards. Most programming was done with
the native machine language of the underlying hardware. This was acceptable because programs were small and
efficiency was extremely important. The two most important programming language developments of the 1950s were
Fortan and Cobol.

Fortran was developed at IBM around 1954-1956 by a team led by John Backus. The main innovation of Fortran (a
contraction of formula translator) was that it became possible to use ordinary mathematical notation in expressions.
For example, the Fortran expression for adding the value of i to twice the value of j is i + 2*j. Before the development
of Fortran, it might have been necessary to place i in a register, place j in a register, multiply j times 2 and then add the
result to i. Fortran allowed programmers to think more naturally about numerical calculation by using symbolic names
for variables and leaving some details of evaluation order to the compiler. Fortran also had subroutines (a form of
procedure or function), arrays, formatted input and output, and declarations that gave programmers explicit control
over the placement of variables and arrays in memory. However, that was about it. To give you some idea of the
limitations of Fortran, many early Fortran compilers stored numbers 1, 2, 3 … in memory locations, and programmers
could change the values of numbers if they were not careful! In addition, it was not possible for a Fortran subroutine to
call itself, as this required memory management techniques that had not been invented yet (see Chapter 7).

Cobol is a programming language designed for business applications. Like Fortran programs, many Cobol programs
are still in use today, although current versions of Fortran and Cobol differ substantially from forms of these languages
of the 1950s. The primary designer of Cobol was Grace Murray Hopper, an important computer pioneer. The syntax of
Cobol was intended to resemble that of common English. It has been suggested in jest that if object-oriented Cobol
were a standard today, we would use "add 1 to Cobol giving Cobol" instead of "C++".

The earliest languages covered in any detail in this book are Lisp and Algol, which both came out around 1960. These
languages have stack memory management and recursive functions or procedures. Lisp provides higher-order
functions (still not available in many current languages) and garbage collection, whereas the Algol family of languages
provides better type systems and data structuring. The main innovations of the 1970s were methods for organizing
data, such as records (or structs), abstract data types, and early forms of objects. Objects became mainstream in the
1980s, and the 1990s brought increasing interest in network-centric computing, interoperability, and security and
st
correctness issues associated with active content on the Internet. The 21 century promises greater diversity of
computing devices, cheaper and more powerful hardware, and increasing interest in correctness, security, and
interoperability.

Team-Fly
Team-Fly

1.4 ORGANIZATION: CONCEPTS AND LANGUAGES


There are many important language concepts and many programming languages. The most natural way to
summarize the field is to use a two-dimensional matrix, with languages along one axis and concepts along the other.
Here is a partial sketch of such a matrix:

Language Expressions Functions Heap Exceptions Modules Objects Threads


storage

Lisp x x x

C x x x

Algol 60 x x

Algol 68 x x x x

Pascal x x x

Modula-2 x x x x

Modula-3 x x x x x x

ML x x x x x

Simula x x x x x

Smalltalk x x x x x x

C++ x x x x x x

Objective C x x x x

Java x x x x x x x

Although this matrix lists only a fraction of the languages and concepts that might be covered in a basic text or course
on the programming languages, one general characteristic should be clear. There are some basic language concepts,
such as expressions, functions, local variables, and stack storage allocation that are present in many languages. For
these concepts, it makes more sense to discuss the concept in general than to go through a long list of similar
languages. On the other hand, for concepts such as objects and threads, there are relatively few languages that
exhibit these concepts in interesting ways. Therefore, we can study most of the interesting aspects of objects by
comparing a few languages. Another factor that is not clear from the matrix is that, for some concepts, there is
considerable variation from language to language. For example, it is more interesting to compare the way objects have
been integrated into languages than it is to compare integer expressions. This is another reason why competing
object-oriented languages are compared, but basic concepts related to expressions, statements, functions, and so on,
are covered only once, in a concept-oriented way.

Most courses and texts on programming languages use some combination of language-based and concept-based
presentation. In this book a concept-oriented organization is followed for most concepts, with a language-based
organization used to compare object-oriented features.

The text is divided into four parts:

Part 1: Functions and Foundations (Chapters 1-4)

Part 2: Procedures, Types, Memory Management, and Control (5-8)


Part 3: Modularity, Abstraction and Object-Oriented Programming (9-13)

Part 4: Concurrency and Logic Programming (14 and 15)

In Part 1 a short study of Lisp is presented, followed by a discussion of compiler structure, parsing, lambda calculus,
and denotational semantics. A short chapter provides a brief discussion of computability and the limits of compile-time
program analysis and optimization. For C programmers, the discussion of Lisp should provide a good chance to think
differently about programming and programming languages.

In Part 2, we progress through the main concepts associated with the conventional languages that are descended in
some way from the Algol family. These concepts include type systems and type checking, functions and stack storage
allocation, and control mechanisms such as exceptions and continuations. After some of the history of the Algol family
of languages is summarized, the ML programming language is used as the main example, with some discussion and
comparisons using C syntax.

Part 3 is an investigation of program-structuring mechanisms. The important language advances of the 1970s were
abstract data types and program modules. In the late 1980s, object-oriented concepts attained widespread
acceptance. Because object-oriented programming is currently the most prominent programming paradigm, in most of
Part 3 we focus on object-oriented concepts and languages, comparing Smalltalk, C++, and Java.

Part 4 contains chapters on language mechanisms for concurrent and distributed programs and on logic programming.

Because of space limitations, a number of interesting topics are not covered. Although scripting languages and other
"special-purpose" languages are not covered explicitly in detail, an attempt has been made to integrate some relevant
language concepts into the exercises.

Team-Fly
Team-Fly

Chapter 2: Computability
Some mathematical functions are computable and some are not. In all general-purpose programming languages, it is
possible to write a program for each function that is computable in principle. However, the limits of computability also
limit the kinds of things that programming language implementations can do. This chapter contains a brief overview of
computability so that we can discuss limitations that involve computability in other chapters of the book.

2.1 PARTIAL FUNCTIONS AND COMPUTABILITY


From a mathematical point of view, a program defines a function. The output of a program is computed as a function
of the program inputs and the state of the machine before the program starts. In practice, there is a lot more to a
program than the function it computes. However, as a starting point in the study of programming languages, it is useful
to understand some basic facts about computable functions.

The fact that not all functions are computable has important ramifications for programming language tools and
implementations. Some kinds of programming constructs, however useful they might be, cannot be added to real
programming languages because they cannot be implemented on real computers.

2.1.1 Expressions, Errors, and Nontermination

In mathematics, an expression may have a defined value or it may not. For example, the expression 3 + 2 has a
defined value, but the expression 3/0 does not. The reason that 3/0 does not have a value is that division by zero is
not defined: division is defined to be the inverse of multiplication, but multiplication by zero cannot be inverted. There is
nothing to try to do when we see the expression 3/0; a mathematician would just say that this operation is undefined,
and that would be the end of the discussion.

In computation, there are two different reasons why an expression might not have a value:
Random documents with unrelated
content Scribd suggests to you:
one by one, were eagerly seized on by the public, who felt that this
new talent was revealing deep-welling springs of individuality in the
Russian nature, hitherto unrecorded.
[12] “The teaching of philosophy was proscribed in all the
schools, and in all the universities of the Empire; admission to
which had now been reduced in numbers. The classics were
similarly ostracised. Historical publications were put under a
censor’s control, which was tantamount to a prohibition. No
history of modern times, i.e. of the seventeenth or eighteenth
centuries, was allowed to be taught in any form whatsoever.”—E.
M. de Vogüé.
Though Russian society was profoundly moved by Turgenev’s picture
of serfdom, it was in truth the triumph of the pure artist, of the
writer who saw man’s fugitive life in relation to the vast, universal
drama of nature, that made A Sportsman’s Sketches acceptable to
all. One may compare the book’s atmosphere to some woodland’s
tender morning air quivering with light, which transmits the ringing
voices of men in all their meaning inflections. The voices rise, in joy
or strife or passion, then die away in silence, and we hear the gentle
stir and murmur of the leaves as the wind passes, while afar swells
the roar of the deep forest. Turgenev’s spiritual vision resembles this
silvery light and air which register equally the most exquisite
vibration of human aspiration and the dissonance of men’s folly and
misery. The sweet and tender depths of the author’s spirit served, so
to say, as a sensitive mirror which reflected impassively the struggle
between the forces of worldly craft and the appeal of all humble,
neglected and suffering creatures. “The Tryst” is an example of the
artist’s exquisite responsiveness both to the fleeting moods of nature
and the conflicts of human feeling. Thus the sufferings of the young
peasant girl, poor Akoulina, at the hands of her conceited lover, the
pampered valet, Viktor, are so blended with the woodland scene and
our last view of “the empty cart rattling over the bare hillside, the
low sinking sun in the pale clear sky, the gusty wind scudding over
the stubble fields, the bright but chill smile of fading nature,” that
one can scarcely dissociate the girl’s distress from the landscape. An
illusion! but one that great literature—for example, the Odyssey—
fosters. When we look over the face of a wide-stretching landscape
each tiny hamlet and its dwellers appear to the eye as a little point
of human activity, and each environment, again, as the outcome of
an endless chain of forces, seen and unseen in nature. Man, earth
and heaven—it is the trinity always suggested in the work of the
great poets.
But the vast background of nature need not be always before the
eyes of an audience. In “The Hamlet of the Shtchigri District,” for
instance, where—through the railings of an embittered man against
the petty boredom of provincial life, together with a characteristically
Russian confession of his own sloth and mediocrity—we breathe the
heated air of a big landowner’s house, the window on nature is, so
to say, shut down. So in “Lebedyan” the bustle and humours of a
horse-fair in the streets of a small country town, and in “The Country
House” the sordid manoeuvres of the stewards and clerks of the lazy
landed proprietor, Madame Losnyakov, against their victims, the
peasants on the estate, exclude the fresh atmosphere of forest and
steppe. But even so we are conscious that the sky and earth
encompass these people’s meetings in market-place and inns, in
posting-stations, peasants’ huts and landowners’ domains, and
always a faint undertone murmurs to us that each generation is like
a wave passing in the immensity of sea. Sometimes, as in “The
District Doctor,” a tragedy within four walls is shut in by a feeling of
sudden night and the isolation of the wintry fields. Sometimes, as in
“Biryuk,” the outbreak of a despairing peasant is reflected in the
fleeting storm-clouds and lashing rain of a storm in the forest. But
the people’s figures are always seen in just relation to their
surroundings, to their fellows and to nature.
By the relations of a man with his neighbours and their ideas, a
man’s character is focussed for us and his place in his environment
determined. Thus in “Raspberry Spring” the old steward Tuman’s
complacent panegyrics on the lavish ways of his former master, a
grand seigneur of Catherine’s time, are a meaning accompaniment
to the misery of Vlass the harassed serf. Vlass has just returned from
his sad errand to Moscow (his son has died there penniless), where
he has had his master’s door shut in his face, and he has been
ordered to return and pay the bailiff his arrears of rent. Whether
under the ancient régime of Catherine, or of Nicholas I., Vlass is the
“poor man” of Scripture whose face is ground by the rich. All the
irony of poor Vlass’s existence steals upon us while we hear the old
steward’s voice descanting on the dead count’s sumptuous
banquets, on his cooks and fiddlers and the low-born mistresses who
brought him to ruin; while the humble peasant sits still and hears,
too, of the “embroidered coats, wigs, canes, perfumes, eau de
cologne, snuff-boxes, of the huge pictures ordered from Paris!” It is
the cruelty, passive or active, innate in the web of human existence
that murmurs here in the bass.
The parts in just relation to the whole scheme of existence, that is
the secret of Turgenev’s supremacy, and what a piercing instinct for
the relative values of men’s motives and actions is revealed by his
calm, clear scrutiny! Observe in “The Agent” how the old serf Antip’s
weeping protest against his family’s ruin at the hands of the
tyrannous agent Sofron is made in the model village Shiplova, with
its tidy farm-buildings and new windmill and threshing-floors, its rich
stacks and hemp-fields “all in excellent order.” It is Sofron, the man
of “first rate administrative power,” so honey-tongued before the
gentry, who farms four hundred acres of his own, and trades in
horses and stock and corn and hemp, it is this petty despot in his
prosperity who “is harrying the peasants out of their lives.” “He is
sharp, awfully sharp, and rich, too, the beast!” says the Ryabovo
peasant. Behind the tyrannous bailiff Sofron is the owner of
Shiplova, the polished Mr. Pyenotchkin, a retired officer of the
Guards, who has mixed in the highest society. Mr. Pyenotchkin is a
man comme il faut, but when he finds that his luckless footman has
forgotten to warm the wine, he simply raises his eyebrows and
orders his major-domo to “make the necessary arrangements”—to
have Fyodor flogged! Here is progress on Western lines comfortably
cheek by jowl with serfdom! Of course the sting, here, for the
Russian conscience lay precisely in this juxtaposition of old and new,
and in the knowledge that the most progressive landowner could
exercise his legal right to sell his peasants, send a man away as a
conscript, and separate him from his family. But it is well to note that
only three or four of the Sportsman’s Sketches expose typical cases
of a landlord’s tyranny and the anachronism of this mediaeval
survival—serfdom.
One of these cases is “Yermolai and the Miller’s Wife,” a sketch
which for the calm breadth of vision in its exposure of serfdom is
flawless. In “Yermolai” note how Turgenev by a series of discreet
intermittent touches brings his people on the scene, and how the
tranquil description of the winding river, the Ista, with its stony
banks and cold clear streams and rugged precipitous banks,
prepares us for the story of poor Arina’s sorrows and of the self-
complacent master’s tyranny. Because Madame Zvyerkoff makes it a
rule never to keep married lady’s maids, poor Arina is disgraced, her
lover sent away as a soldier, and she herself is married to the miller,
who has offered a price for her. This distressing episode, though the
central theme, is introduced subtly by a side wind after we have
accompanied the narrator and the tall gaunt huntsman, Yermolai, to
the Ista’s banks, where the two sportsmen are benighted and seek
sleep in the outhouse of a mill. The bull-necked, fat-bellied miller
sends out his wife with a message to them, and this woman with her
refined, mournful eyes is none other than the unfortunate Arina,
with whom Yermolai is on old, familiar terms. The sportsman-
narrator, who has been dozing in the hay, wakes and soon gathers
from the snatches of talk between the pair the details of Arina’s
listless melancholy days after her child’s death. Her bitter situation is
flashed upon us in Yermolai’s suggestion that she shall pay a visit to
him in his hut when his own wife is away from home! She changes
the subject and soon walks away, and Yermolai’s peasant callousness
is indicated in his yawning answer to his master’s questions. Then
this story of a woman’s sorrow is brought to a close by one of those
exquisite nature touches which brings us back again to the infinite
life of the encompassing earth and sky:

“‘And do you know her lover, Petrushka?’


“‘Piotr Vassilyevitch? Of course I know him.’
“‘Where is he now?’
“‘He was sent for a soldier.’
“We were silent for a while.
“‘She doesn’t seem very well?’ I asked Yermolai at last.
“‘I should think not! To-morrow, I say, we shall have good sport.
A little sleep now would do us no harm.’
“A flock of wild ducks swept whizzing over our heads, and we
heard them drop down into the river not far from us. It was
quite dark, and it began to be cold; in the thicket sounded the
melodious notes of a nightingale. We buried ourselves in the
hay and fell asleep!”

By the descriptions of the landscape in “Yermolai and the Miller’s


Wife” Turgenev subtly introduces the sense into our minds of
nature’s vastness, of her infinity, of which the spectacle of man’s
social injustice and distress becomes indissolubly part. Here there is
nothing of the reformer’s parti-pris in the picture. Turgenev’s fluid,
sympathetic perceptions blend into a flow of creative mood, in which
the relations of men to their surroundings, and the significance of
their actions, their feelings, their fate are seen as parts of the
universal, dominating scheme of things. And this flow of mood in
Turgenev is his creative secret: as when music flows from a distance
to the listener over the darkening fields immediately the rough
coarse earth, with all its grinding, petty monotony melts into
harmony, and life is seen in its mysterious immensity, not merely in
its puzzling discrepancy of gaps, and contradictions and confusions.
Turgenev’s work, at its best, gives us the sense of looking beyond
the heads of the moving human figures, out to the infinite horizon.
Although in Turgenev’s pellucid art each touch seems simple, the
whole effect is highly complex, depending upon an infinite variety of
shades of tone. Let us finish by examining his complex method in
“The Singers.” In the first twenty lines the author etches the
cheerless aspect of “the unlucky hamlet of Kolotovka, which lies on
the slope of a barren hill ... yet all the surrounding inhabitants know
the road to Kolotovka well; they go there often and are always glad
to go.” It is not merely the tavern “The Welcome Resort,” but the
tavern-keeper Nikolai Ivanitch that attracts them, for his shrewd
alertness and geniality are an influence far and wide in the
neighbourhood. Turgenev now introduces his main theme by a
variation in tempo. He describes how the narrator on a blazing hot
July day is slowly dragging his feet up the Kolotovka ravine towards
the Inn, when he overhears one man calling to another to come and
hear a singing competition between Yashka the Turk and the booth-
keeper from Zhizdry. The narrator’s curiosity is stirred, and he
follows the villagers into the bar-room, where he finds the
assembled company, who are urging the two singers to begin. The
men toss and the lot falls on the booth-keeper. Having riveted our
attention, Turgenev now increases his hold on us by sketching the
life and character of three village characters, “the Gabbler,” “the
Blinkard” and “the Wild Master.” We examine the village audience till
the booth-keeper at last steps forward and sings. For a time the
booth-keeper does not evoke the enthusiasm of the critical villagers,
but at last they are conquered by his bold flourishes and daring trills,
and they shout their applause. The booth-keeper’s song is the
triumph of technique and of training, and he carries away his
hearers, while “the Gabbler” bawls: “You’ve won, brother, you’ve
won!” But “the Wild Master” silences “the Gabbler” with an oath and
calls on Yashka to begin. And now follows an entrancing description
of the power of genius to sway the heart:

“‘Come, that’s enough; don’t be timid. For shame! ... why go


back?... Sing the best you can, by God’s gift.’
“And the Wild Master looked down expectant. Yakov was silent
for a minute; he glanced round, and covered his face with his
hand. All had their eyes simply fastened upon him, especially
the booth-keeper, on whose face a faint, involuntary uneasiness
could be seen through his habitual expression of self-confidence
and the triumph of his success. He leant back against the wall,
and again put both hands under him, but did not swing his legs
as before. When at last Yakov uncovered his face it was pale as
a dead man’s; his eyes gleamed faintly under their drooping
lashes. He gave a deep sigh, and began to sing.... The first
sound of his voice was faint and unequal, and seemed not to
come from his chest, but to be wafted from somewhere afar off,
as though it had floated by chance into the room. A strange
effect was produced on all of us by this trembling, resonant
note; we glanced at one another, and Nikolai Ivanitch’s wife
seemed to draw herself up. This first note was followed by
another, bolder and prolonged, but still obviously quivering, like
a harp-string when suddenly struck by a stray finger it throbs in
a last, swiftly-dying tremble; the second was followed by a third,
and, gradually gaining fire and breadth, the strains swelled into
a pathetic melody. ‘Not one little path ran into the field,’ he
sang, and sweet and mournful it was in our ears. I have seldom,
I must confess, heard a voice like it; it was slightly hoarse, and
not perfectly true; there was even something morbid about it at
first; but it had genuine depth of passion, and youth and
sweetness, and a sort of fascinating careless, pathetic
melancholy. A spirit of truth and fire, a Russian spirit, was
sounding and breathing in that voice, and it seemed to go
straight to your heart, to go straight to all that was Russian in it.
The song swelled and flowed. Yakov was clearly carried away by
enthusiasm; he was not timid now; he surrendered himself
wholly to the rapture of his art; his voice no longer trembled; it
quivered; but with a scarce perceptible inward quiver of
passion, which pierces like an arrow to the very soul of the
listeners, and he steadily gained strength and firmness and
breadth. I remember I once saw at sunset on a flat sandy
shore, when the tide was low and the sea’s roar came weighty
and menacing from the distance, a great white sea-gull; it sat
motionless, its silky bosom facing the crimson glow of the
setting sun, and only now and then opening wide its great
wings to greet the well-known sea, to greet the sinking lurid
sun: I recalled it, as I heard Yakov. He sang, utterly forgetful of
his rival and all of us; he seemed supported, as a bold swimmer
by the waves, by our silent, passionate sympathy. He sang, and
in every sound of his voice one seemed to feel something dear
and akin to us, something of breadth and space, as though the
familiar steppes were unfolding before our eyes and stretching
away into endless distance. I felt the tears gathering in my
bosom and rising to my eyes; suddenly I was struck by dull,
smothered sobs.... I looked round—the innkeeper’s wife was
weeping, her bosom pressed close to the window. Yakov threw
a quick glance at her, and he sang more sweetly, more
melodiously than ever; Nikolai Ivanitch looked down; the
Blinkard turned away; the Gabbler, quite touched, stood, his
gaping mouth stupidly open; the humble peasant was sobbing
softly in the corner and shaking his head with a plaintive
murmur; and on the iron visage of the Wild Master, from under
his overhanging brows there slowly rolled a heavy tear; the
booth-keeper raised his clenched fists to his brow, and did not
stir.... I don’t know how the general emotion would have ended
if Yakov had not suddenly come to a full stop on a high,
exceptionally shrill note, as though his voice had broken. No one
called out or even stirred; every one seemed to be waiting to
see whether he was not going to sing more; but he opened his
eyes as though wondering at our silence, looked round at all of
us with a face of enquiry, and saw that the victory was his....
“‘Yasha,’ said the Wild Master, laying his hand on his shoulder,
and he could say no more.
“We stood, as it were, petrified. The booth-keeper softly rose
and went up to Yakov.
“‘You ... yours ... you’ve won,’ he articulated at last with an
effort, and rushed out of the room.”

An artist less consummate than Turgenev would have ended here.


But the sequel immeasurably heightens the whole effect by plunging
us into the mournful, ever-running springs of human tragedy—the
eclipse of man’s spiritual instincts by the emergence of his
underlying animalism. Observe there is not a trace of ethical feeling
in the mournful close. It is simply the way of life:

“... When I waked up, everything was in darkness; the hay


scattered around smelt strong, and was slightly damp; through
the slender rafters of the half-open roof pale stars were faintly
twinkling. I went out. The glow of sunset had long died away,
and its last trace showed in a faint light on the horizon; but
above the freshness of the night there was still a feeling of heat
in the atmosphere, lately baked through by the sun, and the
breast still craved for a draught of cool air. There was no wind
nor were there any clouds; the sky all round was clear and
transparently dark, softly glimmering with innumerable, but
scarcely visible stars. There were lights twinkling about the
village; from the flaring tavern close by rose a confused,
discordant din, amid which I fancied I recognized the voice of
Yakov. Violent laughter came from there in an outburst at times.
I went up to the little window and pressed my face against the
pane. I saw a cheerless, though varied and animated scene; all
were drunk—all from Yakov upwards. With breast bared, he sat
on a bench, and singing in a thick voice a street song to a dance
tune, he lazily fingered and strummed on the strings of a guitar.
His moist hair hung in tufts over his fearfully pale face. In the
middle of the room, the Gabbler, completely ‘screwed,’ and
without his coat, was hopping about in a dance before the
peasant in the grey smock; the peasant, on his side, was with
difficulty stamping and scraping with his feet, and grinning
meaninglessly over his dishevelled beard; he waved one hand
from time to time, as much as to say, ‘Here goes!’ Nothing could
be more ludicrous than his face; however much he twitched up
his eyebrows, his heavy lids would hardly rise, but seemed lying
upon his scarcely-visible, dim, and mawkish eyes. He was in that
amiable frame of mind of a perfectly intoxicated man, when
every passer-by, directly he looks him in the face, is sure to say,
‘Bless you, brother, bless you!’ The Blinkard, as red as a lobster,
and his nostrils dilated wide, was laughing malignantly in a
corner; only Nikolai Ivanitch, as befits a good tavern-keeper,
preserved his composure unchanged. The room was thronged
with many new faces, but the Wild Master I did not see in it.
“I turned away with rapid steps and began descending the hill
on which Kolotovka lies. At the foot of this hill stretches a wide
plain; plunged in the misty waves of the evening haze, it
seemed more immense, and was, as it were, merged in the
darkening sky. I marched with long strides along the road by
the ravine, when all at once, from somewhere far away in the
plain, came a boy’s clear voice: ‘Antropka! Antropka-a-a...!’ He
shouted in obstinate and tearful desperation, with long, long
drawing out of the last syllable.
“He was silent for a few instants, and started shouting again.
His voice rang out clear in the still, lightly slumbering air. Thirty
times at least he had called the name, Antropka. When
suddenly, from the farthest end of the plain, as though from
another world, there floated a scarcely audible reply:
“‘Wha-a-t?’
“The boy’s voice shouted back at once with gleeful
exasperation:
“‘Come here, devil! woo-od imp!’
“‘What fo-or?’ replied the other, after a long interval.
“‘Because dad wants to thrash you!’ the first voice shouted back
hurriedly.
“The second voice did not call back again, and the boy fell to
shouting ‘Antropka’ once more. His cries, fainter and less and
less frequent, still floated up to my ears, when it had grown
completely dark, and I had turned the corner of the wood that
skirts my village and lies over three miles from Kolotovka ...
‘Antropka-a-a!’ was still audible in the air, filled with the shadows
of the night.”

In the above passage the feeling of the shadowy earth, the mist, the
great plain and the floating cries rarefies the village atmosphere of
human commonness. By such a representation of the people’s
figures, seen in just relation to their surroundings, to their fellows,
and to nature, Turgenev’s art secures for his picture poetic harmony,
and renders these finer cadences in the turmoil of life which ears
less sensitive than his fail to hear! The parts in just relation to the
whole scheme of human existence. Man, earth and heaven—it is the
secret of the perfection of the great poets.
IV
“RUDIN”
CHAPTER IV
“RUDIN”

The biographers tell us that Turgenev left Russia again in 1847, for
the sake of being near Pauline Garcia, the famous singer (afterwards
Madame Viardot), whom he adored all his life; that he left her in
Berlin, visited Salzbrunn with the critic Byelinsky, who was dying of
consumption, and then proceeded to Paris, Brussels, Lyons and
Courtavenel. In Paris he works incessantly, producing plays and
short stories and most of the series of A Sportsman’s Sketches;
makes friends with Hertzen and George Sand; studies the French
classics and avows his democratic sympathies, without any illusions
as to the good-for-nothingness of “the Reds.” In the autumn of 1858
he returns to Russia, recalled by news of the grave illness of his
mother, who, however, refused to be reconciled with her two sons,
whom she tried to disinherit on her deathbed. Turgenev was
henceforward a rich man. In 1852 A Sportsman’s Sketches appeared
in book form, and in April of the same year, for writing a sympathetic
article on Gogol’s death, Turgenev was ordered a month’s detention
in a police-station and then confined to his estate at Spasskoe.[13]
[13] “I am confined in a police-station by the Emperor’s orders for
having printed a short article on Gogol in a Moscow journal. This
was only a pretext, the article itself being perfectly insignificant.
They have looked at me askance for a long time, and they have
laid hold of this pretext at the first opportunity. I do not complain
of the Emperor; the matter has been so deceitfully represented to
him that he couldn’t have acted otherwise. They have wished to
put a stop on all that is being said on Gogol’s death, and they
have not been sorry, at the same time, to place an embargo on
my literary activity.”—Letter to M. and Mme. Viardot, May 13,
1852.
Turgenev notes that his imperious desire to escape to Europe
indicated “Possibly something lacking in my character or force of
will.” But he declares, “I should never have written A Sportsman’s
Sketches had I remained in Russia.... It was impossible for me to
remain and breathe the same air that gave life to everything I
abhorred.” The persecution of his literary forerunners and
contemporaries by the Autocracy was continuous. Pushkin’s
humiliation and subjection to official authority; Lermontov’s exile to
the Caucasus; Tchaadaev declared insane by bureaucratic order and
confined to a mad-house; Gogol’s recantation of Dead Souls and
relapse into feeble mysticism; Hertzen’s expatriation; Dostoevsky’s
and Petrashevsky’s exile to the mines of Siberia; Saltykov’s
banishment, etc., the list of the intellectual and creative minds
gagged or stifled under Nicholas I. is endless. And Turgenev’s mild
and generous spirit was designed neither for political partisanship
nor for active revolt. He has indeed been accused of timidity,[14] and
cowardice by uncompromising Radicals and Revolutionaries. But his
life-work is the answer to these ill-considered allegations. Spiritual
enfranchisement was impossible in “the swamp of Petersburg with
its Winter Palace, eight Ministries, three Polices, the most Holy
Synod, and all the exalted family with their German relatives,” as
Hertzen wittily put it later; and by faring abroad and by inhaling
deep draughts of free European air Turgenev was enabled, in his
own phrase, “to strike the enemy from a distance.”
[14] In an access of self-reproach he once declared to a friend
that his character was comprised in one word—“poltroon.”

His exile for a year and a half to his own estate was, however, by no
means a bad thing for his own self-development. Years afterwards
he wrote: “All was for the best.... My being under arrest and in the
country proved to my undeniable advantage; it brought me close to
those sides of Russian life which, in the ordinary course of things,
would probably have escaped my observation.” He consoled himself
with shooting, with music, with reading, with literary composition,
and it is to this enforced detention in Russia that, no doubt, we owe
the masterpiece Rudin (1855), which he rewrote many times,
declaring to Aksakov that none of his other stories had ever given
him so much trouble. In fact this novel, in grace, ease and strength,
has the quality of finished statuary.

Though sixty years have passed since the appearance of Rudin, no


dust has gathered on the novel, so original is the leading figure. The
portrait of the hero who typifies the failure of the Russian
intelligentsia of the ‘’forties’ to do more than talk, is as arresting as
the day on which it was painted. In him Turgenev creates a fresh
variety of idealist, the orator sapped by the love of his own words.
Rudin is Russian in the combination of his soft, wavering will, his
lofty enthusiasm for ideas, and his rather naïve sincerity: in other
respects, he might be a western European. Behind him we feel
generations of easygoing manorial gentlefolk regarding in surprise
this curious descendant, whose clever brain is aglow with a passion
for “eternal truth” and for the “general principles” of German
philosophy. One is haunted by a sense of Rudin’s cousinship to other
famous idealists in life and literature; he shows affinities both to a
contemporary, Coleridge, and to a famous successor, Ibsen’s Brand.
English idealism in general is both a covering for mundane interests,
and a spiritual compromise with those same interests. An English
Rudin would have gone into the Church, and as a Canon or Bishop
would have attained celebrity by his gift of lofty and magnetic
eloquence. But a Russian Rudin does not succeed in buttering his
bread; it is both his unworldliness and lack of will that bring his
powers to nought. Rudin can and does indeed, deceive himself; but
the strands of hypocrisy in his nature are too fragmentary to bring
him worldly success.
Of Turgenev’s six novels, Rudin is the most perfect in form, by the
harmony of its parts and absolute grace of modelling.[15]
Everywhere the master’s chisel has fined away his material to attain
the most delicately firm contours. The grouping of the character is a
lesson in harmonious arrangement. Note by what simple, natural
steps one passes from the outer circle of the neighbours of the
wealthy patroness of art and letters, Darya Mihailovna, to the inner
circle of her household. The cold, suave egoism of the lady of the
manor is admirably set off by the sketches of her dependents, the
simple young tutor, Bassistoff, her young Jewish protégé
Pandalevsky, and the cynic Pigasov. The household is expecting the
arrival of a guest, a Baron Muffel, but in his place arrives his
acquaintance, Dmitri Rudin, slightly shabby, but of pre-possessing
address.
[15] For a discussion of Turgenev’s debt to George Sand’s novel,
Horace, see M. Halperine-Kaminsky’s Tourguéneff and his French
Circle, p. 301.
A master of eloquent language, Rudin conquers his hearers by his
fine bearing and brilliant talk. But notice that the effect he
instantaneously produces holds in germ all the after development of
the story. Volintsev fears in him a rival for Natalya’s love;
Pandalevsky is on his guard against the clever stranger who may
dispossess him in the favour of the mistress of the house; Natalya
falls in love with the newcomer who has fired her girlish imagination;
while her mother, Darya Mihailovna, is planning to keep Rudin, this
coming lion, in her house to adorn her salon. The structure of the
story, beautifully planned, is a lesson in the directness and ease of
artistic development. Everything flows, simply and inevitably, from
the actions of the group of characters, quickened and watchful after
Rudin’s arrival.
As an example of Turgenev’s skill in drawing a man with a dozen
touches, and of exposing the mainspring of his nature by a few of
his words and actions, consider the Jewish-looking youth,
Pandalevsky; with the slight, exact strokes of his chisel Turgenev
here graves a perfect intaglio. Pandalevsky, in the opening pages,
meeting the charming Alexandra Pavlovna on her walk, offers her his
arm, unasked. “She took it.” After some flowery remarks,
Pandalevsky, presuming further, says, “Allow me to offer you this
lovely wild flower.” Alexandra Pavlovna did not refuse it, but “after a
few steps, let it drop on the path.” The sensitive woman is repelled
by the young Jew’s familiarity and his thickness of skin, and indeed
Pandalevsky has scarcely turned his back on her, when he transfers
his interest to a peasant girl working in the field, and so coarse is his
talk that she stops her ears and mutters, “Go away, sir; upon my
word!”
Again, note how the characters all reveal themselves by their
unconscious behaviour. On the night of Rudin’s unexpected arrival,
while Bassistoff sits up, pouring out his soul in an eloquent letter to
a friend, and Natalya cannot sleep for thinking of Rudin’s glowing
eloquence, “Pandalevsky went to bed, and as he took off his daintily
embroidered braces, he said aloud, ‘A very smart fellow,’ and
suddenly, looking harshly at his page, ordered him out of the room.”
By this little revelation of his mean spirit the young Jew prepares us
for his furtive suspicion of Rudin, and for his playing the spy
subsequently. By a word, a gesture, a look, psychologically exact,
Turgenev secures thus in a sentence effects which it takes his rivals
a paragraph or a page to make clear to us. Thus his scenes always
appeal by their aesthetic ease and grace.
Remark again how swift, precise and final is Turgenev’s exploration
of Rudin’s character. Tired of wandering, Rudin, as Darya
Mihailovna’s guest, is glad to have found a congenial circle, perhaps
indeed a home, but while every one seems to listen eagerly to him,
and he lays down the law to the household, a cold undercurrent of
criticism is already felt threatening his position. One of the
neighbours, Lezhnyov, had been at college with Rudin in youth, and
from his talk about their past relations one learns why Rudin, despite
his genius, has not succeeded in life. He is a theorist and he has
never really understood human nature. So much so is this indeed
that Rudin does not realize in time that Natalya, this girl “of an
ardent, true and passionate nature,” has fallen in love with him, and
exalts him as her spiritual teacher. And when Rudin’s eyes are
opened this fatal flaw in his character is seen. He lives only for his
ideas and for his audience; his great, his sole power lies in the magic
of his stimulating, flowing oratory. He is a master of words, but he
cannot act. Lezhnyov is right in declaring that Rudin in his relations
with others, even in his love affairs, “only needs a fresh opportunity
of speechifying and giving vent to his fine talk, and that’s what he
can’t live without.” Rudin, carried away by the discovery of Natalya’s
love, pretends and simulates love for her, but his “passion” is shown
to be hollow when the young girl comes to warn him that
Pandalevsky, spying on them, has betrayed their secret meetings to
her mother, who is angry and jealous that Rudin should be paying
court to her daughter. Rudin is in consternation at the news. He has
been so intent on his eloquent feelings that he has not faced the
practical difficulties. And he has made no plans to face the future.
But let us quote the scene:

“‘And what advice can I give you, Natalya Alexyevna?’


“‘What advice? You are a man; I am used to trusting to you. I
shall trust you to the end. Tell me, what are your plans?’
“‘My plans.... Your mother will certainly turn me out of the
house.’
“‘Perhaps.... She told me yesterday that I must break off all
acquaintance with you.... But you do not answer my question?’
“‘What question?’
“‘What do you think we must do now?’
“‘What we must do?’ replied Rudin; ‘of course submit.’
“‘Submit,’ repeated Natalya slowly, and her lips turned white.
“‘Submit to destiny,’ continued Rudin. ‘What is to be done?... I
know very well how bitter it is, how painful, how unendurable.
But consider yourself, Natalya Alexyevna; I am poor. It is true I
could work; but even if I were a rich man, could you bear a
violent separation from your family, your mother’s anger?... No,
Natalya Alexyevna; it is useless even to think of it. It is clear it
was not fated for us to live together, and the happiness of which
I dreamed is not for me!’
“All at once Natalya hid her face in her hands and began to
weep. Rudin went up to her.
“‘Natalya Alexyevna! Dear Natalya!’ he said with warmth, ‘do not
cry, for God’s sake do not torture me, be comforted.’
“Natalya raised her head.
“‘You tell me to be comforted!’ she began, and her eyes blazed
through her tears; ‘I am not weeping for what you suppose—I
am not sad for that; I am sad because I have been deceived in
you.... What! I come to you for counsel, and at such a moment!
—and your first word is submit! submit! So this is how you
translate your talk of independence, of sacrifice which....’
“Her voice broke down.
“‘But, Natalya Alexyevna,’ began Rudin in confusion, ‘remember
—I do not disown my words—only——’
“‘You asked me,’ she continued with new force, ‘what I
answered my mother, when she declared she would sooner
agree to my death than my marriage to you; I answered that I
would sooner die than marry any other man.... And you say,
“Submit!” It must be that she is right; you must, through having
nothing to do, through being bored, have been playing with me.’
“‘I swear to you, Natalya Alexyevna—I assure you,’ maintained
Rudin.
“But she did not listen to him.”

Natalya’s passionate answer: “I told my mother that I would die


sooner than marry any other man.... And you say ‘submit’!” passes
through Rudin’s self-esteem like a knife. He protests vainly again and
again his love. But he has exposed his ambiguous emptiness too
fully. And now he must leave Darya Mihailovna’s household,
discredited in his own, in Natalya’s and in everybody’s eyes.
Remark in the passage quoted above how the conflicting currents of
the girl’s passionate warmth and the man’s ambiguous reasoning—
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookultra.com

You might also like