KEMBAR78
Programming in C 2 e Second Edition Dey Download | PDF | Computer Program | Programming
100% found this document useful (1 vote)
2K views50 pages

Programming in C 2 e Second Edition Dey Download

The document is a promotional and informational text about the book 'Programming in C, Second Edition' by Pradip Dey and Manas Ghosh, published by Oxford University Press. It outlines the book's content, structure, and new features introduced in the second edition, including updates based on the C99 standard. Additionally, it provides links to download the book and other related programming resources.

Uploaded by

ojxttkmx429
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
100% found this document useful (1 vote)
2K views50 pages

Programming in C 2 e Second Edition Dey Download

The document is a promotional and informational text about the book 'Programming in C, Second Edition' by Pradip Dey and Manas Ghosh, published by Oxford University Press. It outlines the book's content, structure, and new features introduced in the second edition, including updates based on the C99 standard. Additionally, it provides links to download the book and other related programming resources.

Uploaded by

ojxttkmx429
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/ 50

Programming in C 2 e Second Edition Dey - PDF

Download (2025)

https://ebookultra.com/download/programming-in-c-2-e-second-
edition-dey/

Visit ebookultra.com today to download the complete set of


ebooks or textbooks
Here are some recommended products for you. Click the link to
download, or explore more at ebookultra.com

Object Oriented Programming in C 4th Edition E.


Balagurusamy

https://ebookultra.com/download/object-oriented-programming-in-c-4th-
edition-e-balagurusamy/

Programming in C A Primer 3rd Edition E Balagurusamy

https://ebookultra.com/download/programming-in-c-a-primer-3rd-edition-
e-balagurusamy/

C Programming for the Absolute Beginner Second Edition


Mark Lee

https://ebookultra.com/download/c-programming-for-the-absolute-
beginner-second-edition-mark-lee/

Programming Concepts in C 2nd Edition Robert Burns

https://ebookultra.com/download/programming-concepts-in-c-2nd-edition-
robert-burns/
Functional Programming in C First Edition Ivan Cukic

https://ebookultra.com/download/functional-programming-in-c-first-
edition-ivan-cukic/

Memory as a Programming Concept in C and C Frantisek


Franek

https://ebookultra.com/download/memory-as-a-programming-concept-in-c-
and-c-frantisek-franek/

The World of Northern Evergreens Second Edition E. C.


Pielou

https://ebookultra.com/download/the-world-of-northern-evergreens-
second-edition-e-c-pielou/

C network programming Vol 2 Systematic reuse with ACE and


frameworks 6. print Edition Schmidt

https://ebookultra.com/download/c-network-programming-
vol-2-systematic-reuse-with-ace-and-frameworks-6-print-edition-
schmidt/

Advancements in Applied Metaheuristic Computing 1st


Edition Nilanjan Dey

https://ebookultra.com/download/advancements-in-applied-metaheuristic-
computing-1st-edition-nilanjan-dey/
Programming in C 2 e Second Edition Dey Digital Instant
Download
Author(s): Dey, Pradip; Ghosh, Manas
ISBN(s): 9781680152852, 1680152858
Edition: Second edition
File Details: PDF, 12.54 MB
Year: 2011
Language: english
Programming in

C
Second Edition

Pradip Dey Manas Ghosh

OXFORD
UNIVERSITY PRESS
© Oxford University Press 2011

ISBN: 978-0-198065-28-9
C Preface to the
First Edition

Since the evolution of computers, a variety of program- CONTENT AND STRUCTURE


ming languages have come into existence. C stands
Chapter 1 begins by explaining the concept of program-
out among general-purpose programming languages
ming. It discusses the techniques of forming an organized
for its unrivaled mix of portability, flexibility, and ef-
approach to problem solving. It also identifies the differ-
ficiency. It is a versatile language and is commonly used
ent types of programs and the various categories of pro-
for developing application and system programs. C has
gramming languages available. The prescribed tools that
block structures, stand-alone functions, a compact set of
are used in this process are described and explained with
keywords, and very few restrictions. For all these rea-
sufficient examples and diagrams.
sons, learning and using C is a necessity for most pro-
For a beginner, Chapter 2 is undoubtedly the most im-
grammers.
portant chapter that describes the basic elements of C. This
chapter introduces the keywords, the basic data types and
ABOUT THE BOOK their modifiers, operators and their precedence, and ex-
This book is intended for an introductory course on pro- pressions and data type conversion rules. The basic struc-
gramming in C. It assumes no prior programming expe- ture of a C program along with the common commands
rience in C or any other language. Readers will find the used in MS-DOS and UNIX/Linux for compiling and running
explanations lucid and effective. Every feature of C has it has been described at length in this chapter.
been demonstrated with appropriate programs tested and Accepting data from and conveying the results to a user
run on a computer. The output obtained after executing is one of the most important actions desired from a pro-
these programs have also been included. The explana- gram. To satisfy these requirements through the console,
tions have been depicted with suitable diagrams to convey there are some commonly used input and output func-
the concepts more effectively. Readers will be proficient tions in C. These have been explained with illustrations in
at programming after solving the review questions and Chapter 3.
programming exercises given at the end of each chapter. Program flow control and looping constructs in C are ex-
Though every attempt has been made to avoid and check plained in Chapter 4. The general statement format with flow-
errors, we will be grateful to readers if they can bring charts and examples illustrate their significance in programs.
to our notice any errors that may have crept in inadver- Arrays and strings are two important data structures for
tently. handling a cluster of homogeneous data. How such clus-
vi Preface to the First Edition

ters are declared and handled is explained with ample ex- The appendices contain case studies where the problem
amples in Chapter 5. is first defined and then the algorithm is developed, based
The concept of functions, its form, and its requirement on which the C program is coded. Some sample runs ob-
in a program is discussed in Chapter 6 with well-explained tained during the execution of these programs have also
examples. Recursive functions are also described with been included. It also contains tables for ASCII codes, num-
several examples. Analysis of time and space complexity ber system conversions, escape sequences, operators, data
for an algorithm has also been presented in this chapter. types and data conversion rules, commonly used conver-
One of the most important features of C is pointers. sion characters, and format tags. Among many other useful
Starting with an introduction to pointers, Chapter 7 also topics covered in the appendices, an exhaustive listing of
elaborates on how pointers are used with arrays, strings, C library functions, with programs illustrating how these
and functions. The use of pointers is also described in functions can be put to use, have also been presented.
depth with innumerable examples.
User-defined data types such as structures and unions ACKNOWLEDGEMENTS
are described in Chapter 8. What these data types com-
prise and how these are handled and used are illustrated We thank our students Rakesh Dutta and Niloy Debnath
with examples. for verifying the programs in this book and Sonia Khed-
Creating, amending, appending, and many other opera- wal, Priyanka Nawalkar, Sayantani Saha, and Debolina
tions on files in C is a necessity for storing and retrieving Sharangi for their assistance in the preparation of the
data and programs. This has been covered in Chapter 9 model questions. We are grateful to the staff of Oxford
with sufficient examples. University Press for their continuous cooperation, interest,
Linked list, which is a popular data structure, has been and assistance extended to us during the preparation of the
covered in Chapter 10. Various types of linked lists and the book. We are also thankful to our colleague Mr Manash
different operations that can be carried out on such linked Sinharoy for helping us in preparing the manuscript in
lists have been discussed. In this chapter, readers will also time and Mr Tapas Kumar Tunga and Mr P.N. Pathak for
get to know how pointers are used in constructing this data their assistance in the preparation of the manuscript.
structure. Special thanks are due to Mr Steve Summit for his ar-
Chapter 11 highlights some of the advanced features ticles on C, which have guided us in preparing some of the
of C such as command-line arguments, bit-wise operators, topics in this book. We also wish to thank Mr Vijay Kumar
different memory models, and type qualifiers with several R Zanvar and Mr Jayasima Ananth for the article on point-
illustrations. ers and arrays as also Mr Thomas Jenkins for the article on
Frequently asked questions are always a source of recursion, both of which have served as a guide during the
learning. Some frequently asked questions have been in- development of this manuscript. We express our gratitude
cluded at end of the book, which will help readers to clear to Mr Peter Burden, Mr Mike Banahan, Mr Declan Brady,
any doubts pertaining to programming in C. and Mr Mark Doran for their articles on C.
PRADIP DEY
MANAS GHOSH
C Preface to the
Second Edition

Evolution of ideas is a never-ending process. New tech- ∑ Chapter-end case studies


nology and changing needs have a tremendous influence ∑ Points to Note, Key Terms with definitions, Frequently
on computing requirements, which in turn lead to continu- Asked Questions, and Project Questions with each
ous enhancements of the power and scope of a program- chapter
ming language. ∑ Improved explanations of algorithms and codes, and
C99 is the modern standard of the C programming lan- new in-text examples
guage. It extends the previous version (C90) with new lan-
guage and library features, and helps programmers make bet- ∑ Incremental problem running through Ch 3 to 9,
ter use of available computer hardware and compiler technol- illustrating program code building from basics
ogy. The new features include inline functions, several new ∑ New sections such as variable length arrays, searching
data types, and new header files. Hence, with the new fea- and sorting algorithms, pointer and const qualifier,
tures suggested by the C99 committee, the C programming and applications of linked lists
language has expanded its scope and range of applications. ∑ Includes a CD that contains all the example programs,
Accordingly, this edition offers several new topics, incremental problems, and case studies in a user-
features based on the recommendations proposed by C99 friendly format.
committee in relevant chapters, and many other useful fea-
tures. A special effort has been made to simplify the exist-
ing text with better treatment and explain the concepts with EXTENDED CHAPTER MATERIAL
the help of examples containing appropriate comments.
Chapter 1: Introduction to Programming:
Further, the inclusion of key terms with brief definitions,
FAQs with answers, and case studies demonstrating the
Algorithms and Flowcharts
stepwise approach of solving practical problems will aid Includes new sections on
the reader to grasp the essence of the concepts and under- ∑ Correctness and termination of algorithms
stand their practical implementation.
∑ Subroutines
∑ Strategy for designing algorithms
NEW TO THE SECOND EDITION
∑ Tracing an algorithm to depict logic
∑ C99 features highlighted wherever relevant in the text ∑ Specification for converting algorithms into
∑ New chapter on Stacks, Queues, and Trees programs
iv Preface to the Second Edition

Chapter 2: Basics of C Chapter 10: Linked Lists


Includes new sections on New discussions on the stringizing operator, token pasting
∑ Compilation model of a C program operator, and the optional third command line argument of
main() function have been included in this chapter.
∑ Philosophy of main() function
∑ The concept of Type qualifiers
Chapter 12: Stacks, Queues, and Trees
∑ How integers are stored in memory?
It is a new chapter in this edition. This chapter explains
the implementation of stacks and queues using arrays and
Chapter 4: Control Statements
linked lists as well as the applications of these two data
Contains new sections on different forms of loop and mov- structures. It also explains binary trees, their traversal,
ing out from a nested loop. types, and applications.

Chapter 6: Functions ACKNOWLEDGEMENTS


Includes new sections on We are grateful to a host of readers, who have encouraged
∑ Scope, storage class, and linkages us in improving this book by their useful suggestions from
∑ inline function time to time. There are no words to express our gratitude
∑ Different sorting and searching methods along with to Oxford University Press for their continuous support,
the analysis of time and space complexity suggestions, and assistance while preparing this edition.
Despite our best endeavour to make this edition error free,
some may have crept in inadvertently. Comments and sugges-
Chapter 7: Pointers
tions for the improvement of the book are welcome. Please
Includes new sections on send them to the publisher by logging on to their website www.
∑ Pointer and const qualifier oup.com or to the authors at pdey.mghosh@gmail.com.
∑ Constant parameter
PRADIP DEY
∑ Returning pointer from a function
MANAS GHOSH
C Brief Contents

Preface to the Second Edition .................................................................................................................... iii


Preface to the First Edition ..........................................................................................................................v
1. Introduction to Programming, Algorithms and Flowcharts ..............................................................1
2. Basics of C ......................................................................................................................................39
3. Input and Output ..............................................................................................................................94
4. Control Statements .........................................................................................................................117
5. Arrays and Strings..........................................................................................................................169
6. Functions ........................................................................................................................................214
7. Pointers in C...................................................................................................................................268
8. User-defined Data Types and Variables .........................................................................................350
9. Files in C ........................................................................................................................................388
10. Linked Lists ...................................................................................................................................423
11. Advanced C....................................................................................................................................460
12. Stacks, Queues, and Trees..............................................................................................................492
Appendices...............................................................................................................................................524
Bibliography and References ...................................................................................................................544
Index ........................................................................................................................................................545
C Contents

Preface to the Second Edition iii


Preface to the First Edition v

1 INTRODUCTION TO PROGRAMMING, Modular Programming 12


ALGORITHMS AND FLOWCHARTS 1 Structured Code 13
The Process of Programming 13
1.1 Programs and Programming 1 1.9 Algorithms 14
System Software 2 What is an Algorithm? 14
Application Software 2 Different Ways of Stating Algorithms 14
1.2 Programming Languages 2 Key Features of an Algorithm and the Step-
System Programming Languages 3 form 14
Application Programming Languages 3 What are Variables? 16
Low-level Languages 3 Subroutines 17
High-level Languages 5 Strategy for Designing Algorithms 30
1.3 Compiler, Interpreter, Loader, and Linker 6 Tracing an Algorithm to Depict Logic 31
Compiling and Executing High-level Language Specification for Converting Algorithms into
Programs 6 Programs 32
Linker 7
Loader 7
2 BASICS OF C 39
Linking Loader and Linkage Editor 8
1.4 Program Execution 8 2.1 Introduction 39
1.5 Fourth Generation Languages 9 Why Learn C? 40
1.6 Fifth Generation Languages 10 The Future of C 40
1.7 Classification of Programming 10 2.2 Standardizations of C Language 40
Procedural Languages 10 2.3 Developing Programs In C 41
2.4 A Simple C Program 45
Problem-oriented Languages 11
2.5 Parts of C Program Revisited 47
Non-procedural Languages 11
2.6 Structure of a C Program 48
1.8 Structured Programming Concept 11
2.7 Concept of a Variable 49
Top–down Analysis 12
x Contents

2.8 Data Types in C 50 4.3 Writing Test Expression 119


2.9 Program Statement 55 Understanding How True and False is Represented
2.10 Declaration 56 in C 120
2.11 How Does The Computer Store Data in 4.4 Conditional Execution and Selection 124
Memory? 57 Selection Statements 124
How Integers are Stored? 57 The Conditional Operator 131
How Floats and Doubles are Stored? 58 The Switch Statement 133
2.12 Token 60 4.5 Iteration and Repetitive Execution 137
Identifier 60 While Construct 138
Keywords 61 For Construct 143
Constant 61 do-while Construct 151
Assignment 63
4.6 Which Loop Should be Used? 153
Initialization 64
Using Sentinel Values 153
2.13 Operators and Expressions 65
Using Prime Read 154
Arithmetic Operators in C 66
Using Counter 155
Relational Operators in C 71
4.7 Goto Statement 155
Logical Operators in C 71
4.8 Special Control Statements 156
Bitwise Operators in C 72
4.9 Nested Loops 159
Conditional Operator in C 73
Comma Operator 73
Sizeof Operator 74 5 ARRAYS AND STRINGS 169
Expression Evaluation—Precedence and 5.1 Introduction 169
Associativity 74 5.2 One-Dimensional Array 170
2.14 Expressions Revisited 77 Declaration of a One-dimensional Array 171
2.15 Lvalues and Rvalues 77 Initializing Integer Arrays 173
2.16 Type Conversion in C 78 Accessing Array Elements 173
Type Conversion in Expressions 78 Other Allowed Operations 174
Conversion by Assignment 79 Internal Representation of Arrays in C 176
Casting Arithmetic Expressions 81 Variable Length Arrays and the C99 changes 177
2.17 Working with Complex Numbers 86 Working with One-dimensional Array 177
5.3 Strings: One-dimensional Character Arrays 182
3 INPUT AND OUTPUT 94 Declaration of a String 182
String Initialization 182
3.1 Introduction 94
Printing Strings 183
3.2 Basic Screen and Keyboard I/O in C 95
String Input 184
3.3 Non-Formatted Input and Output 96
Single Character Input and Output 96 Character Manipulation in the String 190
Single Character Input 96 String Manipulation 191
Single Character Output 96 5.4 Multidimensional Arrays 199
Additional Single Character Input and Output Declaration of a Two-dimensional Array 199
Functions 97 Declaration of a Three-dimensional Array 199
3.4 Formatted Input and Output Functions 100 Initialization of a Multidimensional Array 199
Output Function printf ( ) 100 Unsized Array Initializations 201
Input Function scanf ( ) 106 Accessing Multidimensional Arrays 201
Working with Two-dimensional Arrays 202
5.5 Arrays of Strings: Two-dimensional Character
4 CONTROL STATEMENTS 117
Array 206
4.1 Introduction 117 Initialization 206
4.2 Specifying Test Condition Forselection and Manipulating String Arrays 206
Iteration 119
Contents xi
6 FUNCTIONS 214 7.9 Pointers and Strings 288
7.10 Pointer Arithmetic 289
6.1 Introduction 214
Assignment 290
6.2 Concept of Function 215
Addition or Subtraction with Integers 291
Why are Functions Needed? 215
Subtraction of Pointers 298
6.3 Using Functions 216
Comparing Pointers 299
Function Prototype Declaration 216
7.11 Pointers to Pointers 300
Function Definition 217
7.12 Array of Pointers 302
Function Calling 219
7.13 Pointers To an Array 306
6.4 Call by Value Mechanism 221
7.14 Two-dimensional Arrays and Pointers 307
6.5 Working with Functions 221
Passing Two-dimensional Array to a Function 309
6.6 Passing Arrays to Functions 224
7.15 Three-dimensional Arrays 316
6.7 Scope and Extent 227
7.16 Pointers to Functions 317
Concept of Global and Local Variables 227
Declaration of a Pointer to a Function 317
Scope Rules 229
Initialization of Function Pointers 317
6.8 Storage Classes 231
Calling a Function using a Function Pointer 317
Storage Class Specifiers for Variables 231
Passing a Function to another Function 318
Storage Class Specifiers for Functions 234
How to Return a Function Pointer 319
Linkage 234
Arrays of Function Pointers 320
6.9 The Inline Function 234
7.17 Dynamic Memory Allocation 320
6.10 Recursion 235
Dynamic Allocation of Arrays 323
What is Needed for Implementing Recursion? 235
Freeing Memory 325
How is Recursion Implemented? 239
Reallocating Memory Blocks 327
Comparing Recursion and Iteration 241
Implementing Multidimensional Arraysusing
6.11 Searching and Sorting 241
Pointers 328
Searching Algorithms 241
7.18 Offsetting a Pointer 331
Sorting Algorithms 243
7.19 Memory Leak and Memory Corruption 333
6.12 Analysis of Algorithms 248
7.20 Pointer and Const Qualifier 334
Asymptotic Notation 250
Pointer to Constant 334
Efficiency of Linear Search 252
Constant Pointers 335
Binary Search Analysis 253
Constant Parameters 335
Analysis of Bubble Sort 254
Analysis of Quick Sort 255
Disadvantages of Complexity Analysis 255 8 USER-DEFINED DATA TYPES AND
VARIABLES 350
7 POINTERS IN C 268 8.1 Introduction 350
7.1 Introduction 268 8.2 Structures 351
7.2 Understanding Memory Addresses 269 Declaring Structures and Structure Variables 351
7.3 Address Operator (&) 271 Accessing the Members of a Structure 354
7.4 Pointer 272 Initialization of Structures 355
Declaring a Pointer 272 Copying and Comparing Structures 359
Initializing Pointers 274 Typedef and its Use in Structure Declarations 361
Indirection Operator and Dereferencing 276 Nesting of Structures 362
7.5 Void Pointer 278 Arrays of Structures 363
7.6 Null Pointer 278 Initializing Arrays of Structures 364
7.7 Use of Pointers 279 Arrays within the Structure 365
7.8 Arrays and Pointers 282 Structures and Pointers 365
One-dimensional Arrays and Pointers 282 Structures and Functions 367
Passing an Array to a Function 285 8.3 Union 370
Differences Between Array Name and Pointer 286 Declaring a Union and its Members 370
xii Contents

Accessing and Initializing the Members of a 10.5 Introduction to Circular Doubly Linked List 450
Union 371 10.6 Applications of Linked Lists 451
Structure Versus Union 372 Dynamic Storage Management 451
8.4 Enumeration Types 373 Garbage Collection and Compaction 452
8.5 Bitfields 374 10.7 Disadvantages of Linked Lists 454
10.8 Array Versus Linked List Revisited 454
9 FILES IN C 388
9.1 Introduction 388 11 ADVANCED C 460
9.2 Using Files in C 390 11.1 Introduction 460
Declaration of File Pointer 390 11.2 Bitwise Operator 461
Opening a File 391 Bitwise and 462
Closing and Flushing Files 392 Bitwise or 463
9.3 Working with Text Files 393 Bitwise Exclusive-OR 464
Character Input and Output 393 Bitwise Not 464
End of File (EOF) 394 Bitwise Shift Operator 465
Detecting the End of a File Using the feof() 11.3 Command-Line Arguments 467
Function 400 11.4 The C Preprocessor 470
9.4 Working with Binary Files 401 The C Preprocessor Directives 470
9.5 Direct File Input and Output 402 Predefined Identifiers 474
Sequential Versus Random File Access 403 11.5 Type Qualifier 475
9.6 Files of Records 403 Const Qualifier 476
Working with Files of Records 403 Volatile Qualifier 478
9.7 Random Access to Files of Records 410 Restrict Qualifier 479
9.8 Other File Management Functions 413 11.6 Variable Length Argument List 480
Deleting a File 413 11.7 Memory Models and Pointers 481
Renaming a File 413
9.9 Low-Level I/O 414
12 STACKS, QUEUES, AND TREES 492
12.1 Introduction 492
10 LINKED LISTS 423 12.2 Stack 493
10.1 Introduction 423 Implementation of Stack 493
10.2 Singly Linked List 425 Application of Stack 498
Insertion of a Node in a Singly Linked List 430 12.3 Queue 499
Deletion of a Node from a Singly Linked List 434 Implementation of Queue 499
Sorting a Singly Linked List 435 Other Variations of Queue 505
Destroying a Singly Linked List 436 Applications of Queue 505
More Complex Operations on Singly Linked 12.4 Tree 506
Lists 437 Some Basic Tree Terminology 507
10.3 Circular Linked Lists 440 Binary Tree 507
Appending a Node 441 Traversals of a Binary Tree 509
Displaying a Circular Linked List 442 Kinds of Binary Trees 511
Inserting a Node After a Specified Node 442 Binary Search Tree 511
Inserting a Node Before a Particular Node 443 Application of Tree 518
Deleting a Node 444
Sorting a Circular Linked List 446 Appendices 524
10.4 Doubly Linked List 446 Bibliography and References 544
Operations on Doubly Linked List 447 Index 545
Advantages/Disadvantages of DoublyLinked
Lists 450
C Introduction to
Programming, Algorithms
and Flowcharts

Chapter 1
Learning Objectives
After reading this chapter, the readers will be able to
define program and programming
identify system programs and application programs
get a basic concept of high-, middle-, and low-level languages
briefly understand compiler, interpreter, linker, and loader functions
understand algorithms and the key features of an algorithm—sequence, decision, and
repetition
learn the different ways of stating algorithms—step-form, flowchart, etc.
define variables, types of variables, and naming conventions for variables
decide a strategy for designing algorithms

1.1 PROGRAMS AND PROGRAMMING The process of writing a program is called programming.
It is a necessary and critical step in data processing.
A computer can neither think nor make a decision on An incorrect program delivers results that cannot be
its own. In fact, it is not possible for any computer to used. There are two ways by which one can acquire a
independently analyze a given data and find a solution on program—either purchase an existing program, referred
its own. It needs a program which will convey what is to to as packaged software or prepare a new program from
be done. A program is a set of logically related instructions scratch, in which case it is called customized software.
that is arranged in a sequence that directs the computer in Computer software can be broadly classified into two
solving a problem. categories: system software and application software.
2 Programming in C

A number of powerful application software packages


that do not require significant programming knowledge
Computer Software have been developed. These are easy to learn and use
compared to programming languages. Although these
packages can perform many general and special functions,
System Software Application Software there are applications where these packages are found to
be inadequate. In such cases, user application programs are
Figure 1.1 Computer software classification written to meet the exact requirements. A user application
program may be written using one of these packages or a
programming language. The most important categories of
1.1.1 System Software software packages available are
System software is a collection of programs that interfaces ∑ Database management software
with the hardware. Some common categories of system ∑ Spreadsheet software
software are described as follows. ∑ Word processing, Desktop Publishing (DTP), and
Language translator It is a system software that presentation software
transforms a computer program written by a user into a ∑ Multimedia software
form that can be understood by the machine. ∑ Data communication software
∑ Statistical and operational research software
Operating system (OS) This is the most important system
software that is required to operate a computer system.
An operating system manages the computer’s resources
effectively, takes care of scheduling multiple jobs for Application Software
execution, and manages the flow of data and instructions
between the input/output units and the main memory. An
operating system has become a part of computer software
with the advent of the third generation computers. Pre-written Software User-written Application
Packages Programs
Since then a number of operating systems have been
developed and some have undergone several revisions and Figure 1.3 Categories of application software
modifications to achieve better utilization of computer
resources. Advances in computer hardware have helped in
the development of more efficient operating systems.
Points to Note
1. A program is a sequence of logically related instructions
and the process of making it is programming.
System Software
2. A program is a software that is broadly categorized as
system software and application software.

Language Operating Special Purpose


System Utilities Program
Translator
1.2 PROGRAMMING LANGUAGES
Figure 1.2 Categories of system software To write a computer program, a standard programming
language is used. A programming language is composed
of a set of instructions in a language understandable to the
1.1.2 Application Software programmer and recognizable by a computer. Programming
Application software is written to enable the computer languages can be classified as high-level, middle-level, and
to solve a specific data processing task. There are two low-level. High-level languages such as BASIC, COBOL
categories of application software: pre-written software (Common Business Oriented Programming Language),
packages and user application programs. and FORTRAN (Formula Translation Language) are used
Introduction to Programming, Algorithms and Flowcharts 3
to write application programs. A middle-level language 1.2.2 Application Programming Languages
such as C is used for writing application and system
There are two main categories of application programs:
programs. A low-level language such as the assembly
language is mostly used to write system programs. business programs and scientific application programs.
Low-level programming languages were the first Application programs are designed for specific computer
category of programming languages to evolve. Gradually, applications, such as payroll processing and inventory
high-level and middle-level programming languages were control. To write programs for payroll processing or other
developed and put to use. such applications, the programmer does not need to control
Figure 1.4 depicts the growth in computer languages the basic circuitry of a computer. Instead, the programmer
since the 1940s. The figure is meant to give some idea needs instructions that make it easy to input data, produce
of the times that the different generations appeared, time output, perform calculations, and store and retrieve data.
scales, and relativity of computer languages to each other Programming languages suitable for such application
and the world of problem solving. programs have the appropriate instructions. Most
programming languages are designed to be good for one
category of applications but not necessarily for the other,
although there are some general-purpose languages that
Human Fourth Generation
Oriented Language support both types. Business applications are characterized
by processing of large inputs and high-volume data storage
Third Generation
Language and retrieval but call for simple calculations. Languages
Problem
definition
which are suitable for business program development
Assembly
Language must support high-volume input, output, and storage
but do not need to support complex calculations. On the
Machine
Oriented
Machine other hand, programming languages designed for writing
Code
scientific programs contain very powerful instructions for
1940 1950 1960 1970 1980 1990 calculations but have poor instructions for input, output,
Years
etc. Among the traditionally used programming languages,
Figure 1.4 Growth of computer languages COBOL is more suitable for business applications whereas
FORTRAN is more suitable for scientific applications.

1.2.1 System Programming Languages 1.2.3 Low-level Languages


System programs or softwares are designed to make the A low-level computer programming language is one that
computer easier to use. An example of system software is is closer to the native language of the computer, which is
an operating system consisting of many other programs that 1’s and 0’s.
control input/output devices, memory, processor, schedule
the execution of multiple tasks, etc. To write an operating
Machine language
system program, the programmer needs instructions to
control the computer’s circuitry as well as manage the This is a sequence of instructions written in the form of
resources of the computer. For example, instructions that binary numbers consisting of 1’s and 0’s to which the
move data from one location of storage to a register of the computer responds directly. The machine language is also
processor are required. Assembly language, which has a referred to as the machine code, although the term is used
one-to-one correspondence with machine code, was the more broadly to refer to any program text.
normal choice for writing system programs like operating A machine language instruction generally has three
systems. But, today C is widely used to develop system parts as shown in Fig. 1.5. The first part is the command or
software. operation code that conveys to the computer what function
4 Programming in C

has to be performed by the instruction. All computers have computer, the programmer may be required to learn
operation codes for functions such as adding, subtracting a new machine code and would have to write all the
and moving. The second part of the instruction either existing programs again in case the computer system
specifies that the operand contains data on which the is changed.
operation has to be performed or it specifies that the ∑ Error prone It is hard to understand and remember
operand contains a location, the contents of which have to the various combinations of 1’s and 0’s representing
be subjected to the operation. data and instructions. This makes it difficult for a
programmer to concentrate fully on the logic of the
problem, thus frequently causing errors.
n-bits ∑ Difficult to debug and modify Checking machine
p-bits q-bits r-bits
instructions to locate errors are about as tedious as
writing the instructions. Further, modifying such a
Operation Code Mode Operand program is highly problematic.
Following is an example of a machine language
Figure 1.5 General format of machine language
program for adding two numbers.
instruction

Example
Just as hardware is classified into generations based on 1. Machine Code Comments
technology, computer languages also have a generation
classification based on the level of interaction with the 0011 1100 Load A register with value 7
machine. Machine language is considered to be the first 0000 0111
generation language (1GL). 0000 0110 Load B register with 10
Advantage of machine language The CPU directly 0000 1010
understands machine instructions, and hence no translation 1000 0000 A=A+B
is required. Therefore, the computer directly starts executing
0011 1010 Store the result into the memory location
the machine language instructions, and it takes less execution whose address is 100 (decimal)
time.
0110 0110
0111 0110 Halt processing
Disadvantages of machine language
∑ Difficult to use It is difficult to understand and de-
Assembly language
velop a program using machine language. For any-
body checking such a program, it would be difficult When symbols such as letters, digits, or special characters
to forecast the output when it is executed. Neverthe- are employed for the operation, operand, and other parts
less, computer hardware recognizes only this type of of the instruction code, the representation is called an
instruction code. assembly language instruction. Such representations are
∑ Machine dependent The programmer has to re- known as mnemonic codes; they are used instead of binary
member machine characteristics while preparing a codes. A program written with mnemonic codes forms an
program. As the internal design of the computer is assembly language program. This is considered to be a
different across types, which in turn is determined by second generation language (2GL).
the actual design or construction of the ALU, CU, and Machine and assembly languages are referred to as
size of the word length of the memory unit, the ma- low-level languages since the coding for a problem is at
chine language also varies from one type of computer the individual instruction level. Each computer has its own
to another. Hence, it is important to note that after be- assembly language that is dependent upon the internal
coming proficient in the machine code of a particular architecture of the processor.
Introduction to Programming, Algorithms and Flowcharts 5
An assembler is a translator that takes input in the form in machine language. Instead of binary sequence, as in
of the assembly language program and produces machine machine language, a program in assembly language is
language code as its output. An instruction word consists written in the form of symbolic instructions. This gives
of parts shown in Fig. 1.5 where, the assembly language program improved readability.
∑ the Opcode (Operation Code) part indicates the Disadvantages of assembly language
operation to be performed by the instruction and
∑ Assembly language is specific to a particular machine
∑ the mode and operand parts convey the address of the architecture, i.e., machine dependent. Assembly
data to be found or stored. languages are designed for a specific make and model
The following is an example of an assembly language of a microprocessor. This means that assembly language
program for adding two numbers X and Y and storing the
programs written for one processor will not work on a
result in some memory location.
different processor if it is architecturally different. That
is why an assembly language program is not portable.
Example
∑ Programming is difficult and time consuming.
2. Mnemonics Comments Register/ Location
∑ The programmer should know all about the logical
LD A, 7 Load register A with 7 A 7 structure of the computer.
LD B, 10 Load register B with 10 B 10
ADD A, B A + B: Add contents of A 17 1.2.4 High-level Languages
A with contents of B and
High-level programming languages such as COBOL,
store result in register A
FORTRAN, and BASIC were mentioned earlier in the
LD (100), A Save the result in the main
chapter. Such languages have instructions that are similar
memory location 100 100 17
to human languages and have a set grammar that makes it
HALT Halt process
easy for a programmer to write programs and identify and
correct errors in them. To illustrate this point, a program
From this example program, it is clear that using written in BASIC, to obtain the sum of two numbers, is
mnemonics such as LD, ADD, and HALT, the readability shown below.
of the program has improved significantly.
An assembly language program cannot be executed by Example
a machine directly as it is not in a binary machine language 3. Stmt. No. Program stmnt Comments
form. An assembler is needed to translate an assembly 10 LET X = 7 Put 7 into X
language program into the object code, which can then be 20 LET Y = 10 Put 10 into Y
executed by the machine. The object code is the machine 30 LET SUM = X + Y Add values in X and Y and
put in SUM.
language code. This is illustrated in Fig. 1.6.
40 PRINT SUM Output the content in SUM.
50 END Stop

Assembly Object Code The time and cost of creating machine and assembly
Language Assembler in Machine
Program Language language programs were quite high. This motivated the
Source Code Object Code
development of high-level languages.

Figure 1.6 Assembler


Advantages of high-level programming languages
Readability Programs written in these languages are
Advantage of assembly language Writing a program in more readable than those written in assembly and machine
assembly language is more convenient than writing one languages.
6 Programming in C

Portability High-level programming languages can be The compiler and interpreter have different approaches
run on different machines with little or no change. It to translation. Table 1.1 lists the differences between a
is, therefore, possible to exchange software, leading to compiler and an interpreter.
creation of program libraries.
Table 1.1 Differences between a compiler and an Interpreter
Easy debugging Errors can be easily detected and removed.
Compiler Interpreter
Ease in the development of software Since the commands
Scans the entire program Translates and executes the
of these programming languages are closer to the English before translating it into program line by line.
language, software can be developed with ease. machine code.
High-level languages are also called third generation Converts the entire The interpreter executes one
languages (3GLs). program to machine code line at a time, after checking
and executes program only and correcting its syntax
Points to Note when all the syntax errors errors and then converting it to
1. There are two kinds of programming languages --- the are removed. machine code.
low-level and high level. Slow in debugging or Good for fast debugging.
2. The high level programming language is easy to read, removal of mistakes from a
portable, allows swift development of programs and is program.
easy to debug. Program execution time is Program execution time is
3. The low level programming language is not portable, less. more.
takes more time to develop programs and debugging
is difficult.
1.3.1 Compiling and Executing High-level Language
Programs
1.3 COMPILER, INTERPRETER, LOADER, AND
The compiling process consists of two steps: the analysis of
LINKER
the source program and the synthesis of the object program
For executing a program written in a high-level language, in the machine language of the specified machine.
it must be first translated into a form the machine can The analysis phase uses the precise description of
understand. This is done by a software called the compiler. the source programming language. A source language is
The compiler takes the high-level language program as described using lexical rules, syntax rules, and semantic
input and produces the machine language code as output rules.
for the machine to execute the program . This is illustrated Lexical rules specify the valid syntactic elements or
in Fig. 1.7. words of the language. Syntax rules specify the way in
which valid syntactic elements are combined to form
the statements of the language. Syntax rules are often
described using a notation known as BNF (Backus Naur
Source Object Code Form) grammar. Semantic rules assign meanings to valid
Program in Compiler in Machine
High Level Language
statements of the language.
The steps in the process of translating a source program
Figure 1.7 Compiler action in a high-level language to executable code are depicted in
Fig. 1.8.
The first block is the lexical analyzer. It takes successive
During the process of translation, the compiler reads lines of a program and breaks them into individual
the source program statement- wise and checks for syntax lexical items namely, identifier, operator delimiter, etc.
errors. In case of any error, the computer generates a and attaches a type tag to each of these. Beside this, it
printout of the same. This action is known as diagnostics. constructs a symbol table for each identifier and finds the
There is another type of software that also does internal representation of each constant. The symbol table
translation. This is called an interpreter. is used later to allocate memory to each variable.
Introduction to Programming, Algorithms and Flowcharts 7
Therefore, the execution of a program written in high-
level language involves the following steps:
Lexical Syntax Semantic
Rules Rules Rules 1. Translation of the program resulting in the object
program.
2. Linking of the translated program with other object
Source Lexical Syntactic Semantic programs needed for execution, thereby resulting in a
Program Analysis Analysis Analysis
binary program.
3. Relocation of the program to execute from the specific
Intermediate memory area allocated to it.
Symbol Other
Table Tables
Code 4. Loading of the program in the memory for the purpose
of execution.
Code
Generator
Object Code
from Other
1.3.2 Linker
Compilations
Linker and Object Code Linking resolves symbolic references between object
Loader programs. It makes object programs known to each other.
The features of a programming language influence the
Executable linking requirements of a program. In FORTRAN/COBOL,
Code all program units are translated separately. Hence, all
subprogram calls and common variable references require
Figure 1.8 The process of compilation linking. PASCAL procedures are typically nested inside
the main program. Hence, procedure references do not
require linking; they can be handled through relocation.
References to built-in functions however require linking.
The second stage of translation is called syntax analysis In C, files are translated separately. Thus, only function
or parsing. In this phase, expressions, declarations, and calls that cross file boundaries and references to global
other statements are identified by using the results of lexical data require linking. Linking makes the addresses of
analysis. Syntax analysis is done by using techniques programs known to each other so that transfer of control
based on formal grammar of the programming language. from one subprogram to another or a main program takes
In the semantic analysis phase, the syntactic units place during execution.
recognized by the syntax analyzer are processed. An
intermediate representation of the final machine language
Relocation
code is produced.
The last phase of translation is code generation, when Relocation means adjustment of all address-dependent
optimization to reduce the length of machine language locations, such as address constant, to correspond to the
program is carried out. The output of the code generator allocated space, which means simple modification of the
is a machine level language program for the specified object program so that it can be loaded at an address
computer. If a subprogram library is used or if some different from the location originally specified. Relocation
subroutines are separately translated and compiled, a final is more than simply moving a program from one area to
linking and loading step is needed to produce the complete another in the main memory. It refers to the adjustment
machine language program in an executable form. of address fields. The task of relocation is to add some
If subroutines were compiled separately, then the address constant value to each relative address in the memory
allocation of the resulting machine language instructions segment.
would not be final. When all routines are connected and
placed together in the main memory, suitable memory
1.3.3 Loader
addresses are allocated. The linker’s job is to find the
correct main memory locations of the final executable Loading means physically placing the machine instructions
program. The loader then places the executable program and data into main memory, also known as primary storage
in memory at its correct address. area.
8 Programming in C

A loader is a system program that accepts object programs operations may use system-supplied routines to do so.
and prepares them for execution and initiates the execution Input/output, in particular, is normally handled by routines
(see Fig. 1.9). The functions performed by the loader are : outside the user program. Hence, the machine language
∑ Assignment of load-time storage area to the program program produced by the translator must normally be
combined with other machine language programs residing
∑ Loading of program into assigned area
within the library to form a useful execution unit. This
∑ Relocation of program to execute properly from its process of program combination is called linking and the
load time storage area software that performs this operation is variously known
∑ Linking of programs with one another as a linking loader or a linkage editor. Linking is done
after object code generation, prior to program execution
time.
At load time, a linking loader combines whatever
Source
Program Data programs are required and loads them directly into primary
storage. A linkage editor also performs the same task,
but it creates a load image that it preserves on secondary
Binary
Translator Linker Loader Program storage for future reference. Whenever a program is to be
executed, the load image produced by the linkage editor
may be loaded immediately without the overhead of
Result
recombining program segments.
Object Binary
Module Program
Points to Note
Data Flow
Control Flow 1. A compiler converts a high-level language program
into executable machine instructions after the removal
Figure 1.9 A schematic of program execution of syntax errors.
2. An interpreter executes each high-level language pro-
gram one line at a time after removing its syntax error
Thus, a loader is a program that places a program’s and converting it into machine instructions.
instructions and data into primary storage locations. An 3. A linker makes the addresses of programs known to
absolute loader places these items into the precise locations each other so that transfer of control from one subpro-
indicated in the machine language program. A relocating gram to another or a main program takes place prop-
loader may load a program at various places in primary erly during execution.
storage depending on the availability of primary storage 4. A loader is a program that places a program’s execut-
area at the time of loading. A program may be relocated able machine instructions and data into primary stor-
age locations.
dynamically with the help of a relocating register. The
base address of the program in primary storage is placed
in the relocating register. The contents of the relocation 1.4 PROGRAM EXECUTION
register are added to each address developed by a running The primary memory of a computer, also called the
program. The user is able to execute the program as if it Random Access Memory, is divided into units known as
begins at location zero. At execution time, as the program words.
runs, all address references involve the relocation register. Depending on the computer, a word of memory may
This allows the program to reside in memory locations
be two, four, or even eight bytes in size. Each word is
other than those for which it was translated to occupy.
associated with a unique address, which is a positive
integer that helps the CPU to access the word. Addresses
1.3.4 Linking Loader and Linkage Editor increase consecutively from the top of the memory to its
User programs often contain only a small portion bottom. When a program is compiled and linked, each
of the instructions and data needed to solve a given instruction and each item of data is assigned an address. At
problem. Large subroutine libraries are provided so execution time, the CPU finds instructions and data from
that a programmer wanting to perform certain common these addresses.
Introduction to Programming, Algorithms and Flowcharts 9
The PC, or program counter, is a CPU register that to give the details of the procedure in the program, but
holds the address of the next instruction to be executed specify, instead, what is wanted. For example, assume
in a program. In the beginning, the PC holds the address that a programmer needs to display some data on the
of the zeroth instruction of the program. The CPU fetches screen, such as the address of a particular employee, say
and then executes the instruction found at this address. MANAS, from the EMP file. In a procedural language, the
The PC is meanwhile incremented to the address of the programmer would have to write a series of instructions
next instruction in the program. Having executed one using the following steps:
instruction, the CPU goes back to look up the PC where Step 1: Get a record from the EMP file.
it finds the address of the next instruction in the program. Step 2: If this is the record for MANAS, display the
This instruction may not necessarily be in the next address.
memory location. It could be at quite a different address.
Step 3: If this is not the record for MANAS, go to
For example, the last statement could have been a go to
step 1, until end-of-file.
statement, which unconditionally transfers control to a
In a non-procedural language (4GL), however, the
different point in the program; or there may have been a
programmer would write a single instruction that says:
branch to a function subprogram. The CPU fetches the
contents of the words addressed by the PC in the same Get the address of MANAS from EMP file.
amount of time, whatever their physical locations. The
Major fourth generation languages are used to get
CPU has random access capability to any and all words
information from files and databases, as in the previous
of the memory, no matter what their addresses. Program
example, and to display or print the information. These
execution proceeds in this way until the CPU has processed
fourth generation languages contain a query language,
the last instruction.
which is used to answer queries or questions with data
Points to Note from a database. The following example shows a query in
a common query language, SQL.
1. When a program is compiled and linked, each instruction
and each item of data is assigned an address. SELECT ADDRESS FROM EMP WHERE NAME =
2. During program execution, the CPU finds instructions ‘MANAS’
and data from the assigned addresses.
End user-oriented 4GLs are designed for applications
that process low data volumes. These 4GLs run on
1.5 FOURTH GENERATION LANGUAGES mainframe computers and may be employed either by
The Fourth Generation Language is a non-procedural information users or by the programmers. This type of 4GL
language that allows the user to simply specify what the may have its own internal database management software
output should be without describing how data should that in turn interacts with the organization’s DBMS
be processed to produce the result. Fourth generation package. People who are not professional programmers
programming languages are not as clearly defined as are use these products to query databases, develop their
the other earlier generation languages. Most people feel own custom-made applications, and generate their own
that a fourth generation language, commonly referred to reports with minimum amount of training. For example,
as 4GL, is a high-level language that requires significantly ORACLE offers a number of tools suitable for the end
fewer instructions to accomplish a particular task than user.
does a third generation language. Thus, a programmer Some fourth generation languages are used to produce
should be able to write a program faster in 4GL than in a complex printed reports. These languages contain certain
third generation language. types of programs called generators. With a report generator,
Most third generation languages are procedural the programmer specifies the headings, detailed data,
languages. That is, the programmer must specify the steps and totals needed in a report. Thus, the report generator
of the procedure the computer has to follow in a program. produces the required report using data from a file. Other
By contrast, most fourth generation languages are non- fourth generation languages are used to design screens
procedural languages. The programmer does not have for data input and output and for menus. These languages
Other documents randomly have
different content
Another topic endlessly debated was the railroad. It had just come
within range of practical vision. What were its possibilities? Would it
supplement or supersede canals? Enoch could not imagine that the
railroad would ever take the place of canals. Aaron thought it would.
Mitchell thought with Aaron, and Enoch for that reason was more
rigid in his opinion.
Once Aaron broke all precedent in this private chamber of commerce
by saying suddenly to Esther:
“What do you think?”
He had been observing her for some time. Through all their
interminable repetitious dinner table talk she maintained an air of
rapt attention, with her gaze on the one who was speaking, and
never uttered a word. He wondered if she were listening or merely
watching them. Both her father and Enoch were surprised that
anyone should address her with that kind of question. She was not
startled.
“I wonder which will make the world happier,” she said.
In the way she said it there was a kind of disbelieving that referred
neither to canals nor railroads but to something represented by the
discussion. The effect was strange. All three men were disturbed in
their sense of importance. They attacked her in concert, with a
condescending manner, Enoch leading. How like a woman to think
that way! What had happiness got to do with it? The question was
economic. Which would be the more efficient means of
transportation? But anyhow—this was Enoch—anyhow, was it not
obvious that whatever increased the wealth of the world increased
also the sum of human happiness?
“Is it?” said Esther.
They could get nothing more out of her. She declined to be argued
with and smiled at them from a great distance. Her smile was
impassable.
Several times after that Aaron tried to involve her in their
conversations, at dinner, or in the drawing room where she sat apart
with her needlework, but never again with any success. She would
look at him with a bothered expression, and either recognize his
effort by no other sign or slowly shake her head. This he took for
disapproval and thereafter ignored her, as the others did, except
now and then to scrutinize her in a surreptitious manner. When she
surprised him at that she returned his gaze with distant, impersonal
curiosity, until he was the first to turn away.
A change took place gradually in the partners’ relations with the
Mitchell menage. Aaron’s visits were no less recurring, but Enoch’s
became more frequent and regular. It was the only household in
New Damascus in which he felt wholly at ease with himself and
properly esteemed. He seldom went anywhere else. Very soon the
women people were saying they knew what the attraction was. A
certain expectation began to crystallize. Enoch became aware of it,
not knowing how. Mitchell cultivated it adroitly. Since his offer to
invest capital in the business of Gib and Breakspeare had been
declined the idea of marrying Esther to one of the firm took
possession of his thoughts. His preference was for Enoch because
more securely through him than through Aaron would the Mitchell
chariot be hitched to the star of iron. He talked of both of them to
Esther, with an air of being impartial, as if giving her his intimate,
unguarded impressions. As he understood women, their minds
worked on these matters in a contrary manner. To disparage Aaron
might be prejudicial to his ends. He never did that. Nevertheless,
Enoch came off by every comparison as much the superior person.
Esther listened attentively and said nothing.
“Do you ever think of getting married?” he asked her. “I sometimes
wonder.”
“No,” she said. “I never have. Why do you ask it?”
“But you may,” he said.
“Have you some one in view for me?” In her voice was a certain
elusive tone, unresolved between doubt and irony, that he knew and
hated. It made him uneasy. Sometimes it made him feel small.
“Seriously, I have,” he replied. “That is to say, I have hoped you
might become interested that way in Enoch Gib. You know what I
think of him. He will be a great man in this country if nothing
happens.”
“Does it much concern your happiness?” she asked. There was that
tone again.
“I wouldn’t put it that way,” he said. “I am thinking of your future. It
would give me a sense of great comfort.”
This was at dinner’s end one evening when they were alone. As he
talked, with his eyes down, he traced a figure on the table cloth with
a spoon, making it deeper and deeper as his unease increased. He
felt all the time that she was regarding him with a wide,
impenetrable expression.
“Oh,” she said, after an interval of silence.
He started and looked at her furtively. She was regarding him freely.
There was in her expression the trace of an ambiguous, amused
smile. He blushed and rose from the table.
Expectations increased. More marriages take place under the
tyranny of expectation than Heaven imagines. New Damascus
society became tensely expectant.
Enoch proposed, as Esther expected, with an air of bestowing
himself where he was sure to be appreciated. She took some time
about it and then accepted him.
Aaron was apparently the only person in New Damascus who had
not foreseen it. He was deeply astonished. Why? It was not an
improbable consummation. Yet it seemed to him strange and
unnatural.
He first heard of it at dinner with the Mitchells. Enoch was present.
Mitchell announced it as if Aaron were a large party of friends. He
responded as such. There was a false note in his felicitations. He
was aware of it; so was Esther. But in trying to cancel the impression
he made it worse. Enoch was protected as by wool with a sense of
proprietorship and self-satisfaction. Mitchell was insensitive.
Esther kept looking at Aaron. There was a troubled, startled
expression in her eyes. He misread it for distaste. He had long
imagined she disliked him. Several times that evening she was brief
with him, almost curt, and this had never happened before.
His visits to the Mitchell house thereafter were formal and less
frequent. Enoch’s manner of making himself paramount affected him
disagreeably. And Esther’s behaviour perplexed him. She was at one
time much more friendly than he expected and at another so
deliberately indifferent that he could only conclude that she meant to
estrange him.
Yet now a fatality began to operate. By a law of coincidence that we
do not understand, and may not exist, they began to meet outside
the household, purely, as it seemed in each case, by accident,—in
unexpected places, on the street again and again, once at night in a
crowd at an open air Punch and Judy show in which neither of them
was at all interested, once in Philadelphia where he was transacting
business and she was shopping with her maid, and once in a
memorable way on a path through the woods to Throne Rock, a
natural seat on the mountain summit from which the view of the
valley was exciting.
It was a Sunday afternoon in early May. He was going; she was
returning. They were at first surprised, then embarrassed, and
became absurdly self-conscious. She wore a wide-brim hat, pulled
down on both sides and tied under her chin. She was hot and tired;
her color was high. Her dress was torn. He noticed it.
“I was after these,” she said, catching his glance. She held out a
bunch of dogwood blossoms, with a gesture to share them. He
admired them and there was nothing else to say. So they stood, she
looking at him and holding out the dogwood flowers, he looking
fixedly at them, until her arm dropped and she turned to go on. He
let her go and went his way up the path. But he looked back. She
had stopped and was seated on a fallen tree trunk. He returned. She
did not look up.
“I’d like to give you a farewell party,” he said. “Will you come?”
“A farewell party?”
“There ought to be a better name for it,” he said. “A sour grape
party, then. I’ve always wanted to give you a dinner at the mansion.
Will you come?”
“Yes,” she said.
And again there was nothing else to say. She rose and he walked
with her toward the town.
“If Enoch won’t mind,” he said.
“Why should he mind?” she asked.
“Perhaps he won’t,” said Aaron.
This thought, as to whether Enoch should mind, had far and
separate projections in each of their minds and kept them silent until
at the natural parting of their ways she turned to face him and held
out her hand. It was a gesture of dismissal. He bowed and left her.
The dinner party took place just two weeks before her wedding day.
It was perhaps too elaborate. It contained every preparable element
of success. Aaron did his best to save it, and yet nobody enjoyed it.
Esther was visibly depressed. Enoch sulked. The guests rallied them
until it was seen to be hopeless and then let them alone. They
simply could not react with gaiety.
Aaron as host had special rights in the guest of honor and took
them. Enoch grew steadily worse. Opinion upon him was divided.
Some thought it was the natural gloom of his nature and were full of
foreboding for Esther. Others said they did believe the man was
jealous.
After a dance Esther and Aaron walked on the terrace.
“Forgive me,” she said. “I have spoiled the party.”
“No,” he said. “It’s my fault. I knew better. Yet I couldn’t resist it.
And it is in a sense a farewell party.”
“What does that mean?”
“After your wedding I may not see you again for a long time. I’m
only waiting on Enoch’s account. Then I shall be going to Europe for
a year, perhaps more.”
“On business?”
“Y-e-s,” he answered slowly.
They took several more turns without speaking.
“What are your plans?” he asked.
“None that I know of,” she said.
She had stopped. He saw that her gaze was directed at Enoch’s
ancestral iron-stone house below. The fitful glare of the blast
furnaces, lower down, lighted its sombre nakedness and gave it a
relentless, sinister aspect. The windows, which were small and
unsoftened by copings, were like cruel, ferocious eyes in a powerful,
short-haired, suspicious animal.
“Shall you live there?” he asked.
“Yes,” she said, giving him a frowning, startled look, as if he had
surprised her at a disadvantage. She added: “Enoch took me
through it yesterday. The room where he was born,—that will be
mine. The room where his father died is just as it was then. He
thinks we shouldn’t touch it.”
She shivered. He asked her if she was cold. She wasn’t, but on the
next turn past the door she turned and they went in.
Enoch’s idea of marriage was inherited. You take a wife from the
church to the ancestral abode and become jointly responsible with
God for her past, present, future and hereafter, for her body, her
mind, her way with the neighbors, for everything about her save the
separate flame of her individuality. That is vanity. The house is
yours, therefore she must accept it. It was yours before she had any
rights in it, therefore she must get used to it, as she must get used
to you. And why not? If Aaron married would he not take his wife to
the Woolwine Mansion just as it was? Well, what was Aaron’s was
like Aaron and what was Enoch’s was like Enoch, and what a woman
married was what she got.
Enoch rode home with Esther that night in her father’s carriage.
Mitchell had gone home earlier and sent the carriage back. As they
were passing the iron-stone house—fatally then—Enoch asked:
“What do you and Aaron find to talk about?”
“Nothing,” she said.
That was literally the truth. It was with extreme difficulty that they
found anything to say to each other. Never had they carried on an
intimate, self-revealing conversation. There was too much constraint
on both sides. But Enoch could hardly believe that Aaron was under
any circumstances inarticulate, like himself. Or was it that he knew
instinctively if what Esther said was true there lay in that very truth
a deep significance?
Her answer made him seethingly angry. An ungovernable feeling
rose up in him spirally. It was as an adder stinging him in the dark.
He could not seize it, for he knew not what or where it was. He
could not escape from it. The pain was horrible.
Esther knew nothing of these violent emotions. She had no more
intuition of him than he had of her. That sense by which natures
attuned exchange thoughts without words was impossible between
them. Between Esther and Aaron it already existed: it always had.
But it was unacknowledged.
Enoch passed three days without seeing Esther, hoping she might
send for him. On the fourth day he went to dinner and she treated
him as if nothing were the matter. She hardly knew there was. That
made it much worse. Then he flourished the wound by pretending
heroically to conceal it. That method will work only provided the
woman cares and loves the child in her man. Esther did not care.
She refused to discover the hurt. The man’s last recourse is to injure
the woman, to ease himself by hurting her. Enoch became
oppressive. He began to mention the things that should be rendered
unto Cæsar, categorically, gratuitously; he revealed the laws of Gib;
he appointed how the concavities of her life should correspond to
the convexities of his; he spoke of penalties, forfeits and
consequences, and of the ancient legal principle that ignorance of
the statutes is no defence provided the statutes have been duly
published. She listened with wide-open eyes. He believed he inspired
her with admiration for the stern stuff he was made of, and thus
blindly sought his fate.
So his hurt was revenged but in no wise healed.
On the eve of their wedding day, at dinner, Aaron’s name was
pronounced. The invisible circumstances were tragic. Enoch
happened at that instant to be regarding Esther with a sensation
that was new to him and very disturbing. He knew not what to do
with it. Suddenly he had been seized with a great longing for her, a
yearning of the heart toward the fact of her being that was savage,
tender and desolate. He wondered that Esther and her father both
were not aware of this singular and dramatic occurrence. It shook
him like an earth tremor. An impulse to speak, to shout, to cry out
words of fantastic meaning, to rise and touch her, became almost
uncontrollable,—almost. It occurred to him for the first time, like a
blow, that he had never discovered her nature, her true self. He had
not tried. The importance of doing so, the possibility of it, had not
been thought of. But he would. He would begin all over again to get
acquainted with her.
In that moment he loved her.
And it was then,—just then,—that he heard the sound of Aaron’s
name. He could not say which one of them uttered it. The sound
was all he knew. Instantly the hideous, stinging adder upraised from
his depths and began striking at the walls of his breast. Vividly,
stereoptically, as a series of pictures, there flashed across his mental
vision every situation in which he had seen Aaron and Esther
together.
He had been able to control the impulse of love to vent its untimely
ecstasy; his rage he could not govern.
To Esther’s and her father’s amazement he began, with no apparent
provocation whatever, to utter against Aaron defamations of an
extreme and irrevocable character. His manner contradicted the
violence of his feelings. It was self-possessed, one would almost say
restrained; that was his way under stress of emotional excitement.
At no point did he become incoherent. His words were chilled and
came to him easily. One might have thought he was thinking out
loud, very earnestly, in solitude. On his face was that singular Gib
expression, never witnessed before in the Mitchell household,—the
mouth contortion one mistook for a smile. So far as Esther and
Mitchell could see the performance was gratuitous and
premeditated. It had gone far before they realized that his state was
one of passion. But that discovery had no mitigating value. They
made no effort to stop him. He spoke of things that are supposed to
be unmentionable, and of his private intentions, and closed abruptly
with the declaration that Aaron should never be received in his
house as a guest.
“Let that be understood,” he said to Esther. Then he rose from the
table and departed.
Mitchell was stupefied. He looked slowly at Esther. Her face was a
perfect mask.
“Do you know what it means?” he asked.
“Yes,” she said.
“What? What?”
“It’s the only way Mr. Gib has of paying your daughter a
compliment,” she said.
And now Bruno Mitchell suffered another shock. For the first time in
her life Esther rose from the table and left him there.
She went to her room, sent her maid to bed, and sat for a long time
perfectly still, at the core of a maelstrom, her emotions whirling and
seething around her. They were her emotions. She recognized them
as such. Only, they were outside of her. This had always been true.
Even before she understood what it meant, her mother, a stoic,
began to say: “Don’t give way to your feelings. They will swallow
you up. Watch them. If you can see them they cannot hurt you.” So
she had watched them fearfully. To do that she had to put them
outside. She had seen them grow, change and rise until they
engulfed her, and then the only way she could save herself was to
give them that whirling motion, which caused them to incline from
her, as the waters of the whirlpool incline from the center. But it was
harder and harder to keep them whirling and she dared not stop, for
if she did they would swallow her up.
The spectacle became awesome and fascinating, as a maelstrom is,
and there were moments when the perverse impulse to stop,
surrender, cast herself headlong away, was almost irresistible. She
thought of this as equivalent to suicide. And she had for a long time
secretly supposed it would ultimately happen. Now she was terrified
and thrilled by a premonition that it was imminent. Never had the
waters been so mad, so giddy, so nearly ungovernable, so excitingly
desirable.
That is all she was thinking of,—if it may be called thinking,—as she
started up, drew on walking boots, took a shawl and descended the
stairs. In the hallway she met her father. He looked at her with
surprise.
“Are you going out?”
“For a walk,” she said.
“But Esther! ... at this hour ... alone. I—”
“Yes,” she said, waiting. “Do you forbid it?”
There was a note in her voice he had never heard before. She
wished him to say yes, he forbade it. That was why she asked the
question. And if he had said that the whirling flood would have
collapsed at once. That again was all she was thinking. It was a wild,
liberating thought. But instead he took a step toward her and
scrutinized her face.
“Esther, what has happened to you?”
“On the eve of my wedding, for the first and last time, for an hour
perhaps, I shall be Esther herself, alone,” she said.
Since the unprecedented uproar of the inclined waters had begun an
hour before she had not once thought of her wedding. The word of
it, as now it came to her lips, seemed strange and fantastic, and yet
she had made no resolve against it.
Her father stood aside and she passed out.
Half an hour later the knocker sounded and Mitchell himself went to
the door, expecting to receive Esther. There was Enoch. He asked to
see her.
“She has gone for a walk,” said Mitchell. “Won’t you come in and
wait? She can’t be long returning.”
Enoch hesitated and turned away, saying he might have the good
luck to meet her.
He had come to mend the impression he was conscious of having
left behind him. At least that was the ostensible reason. That was
what he would have said. The fact was that the adder had suddenly
slunk away, and once more came that feeling for Esther which was
so new and irrational and caused his heart to stagger back and
forth. It was stronger than before,—stronger than pride. He could
scarcely breathe for the ache of wanting to see her again that
night....
Esther turned first toward the river path, changed her direction
aimlessly, walked for some distance toward the limestone quarry,
then suddenly swung around, passed the blast furnaces, and
presently, only her feet aware of how they came there, she was high
on the mountain path to Throne Rock. She had been walking too
fast. Her breath began to fail. She sat on a log to rest. The moon
came up. The log was the same fallen tree trunk on which she sat
with her dogwood flowers the day Aaron turned round, came back,
and invited her to a farewell dinner party. She knew it all the time.
The scene restored itself, with all the feelings it had evoked, and she
did not push them back. They detached themselves from the
whirling mass and touched her. There was a moment in which she
could not remember anything that had happened since; and in that
moment, as an integral part of it, the figure of Aaron appeared,
walking toward her from above, exactly as before.
She sat so still he might almost have passed her. He did not start.
For a long time he stood looking at her. She did not move. He could
not see her face. Then without speaking he sat beside her, at a little
distance, on the log. The tree frogs informed on one another—peep-
ing—peep-ing. A dry twig falling made a crashing sound. Far away
below, at regular intervals, shrill whistle blasts denoted stages in the
ring of smelting alchemies.
Aaron spoke.
“What day is tomorrow?”
“I don’t know,” said Esther.
They were silent until the whistle blew again.
“At ten o’clock,” said Aaron.
“At ten o’clock,” said Esther.
The exchange of wordless thoughts went on and on, and Aaron was
expecting what she said.
“I do not love him.”
“He loves you,” said Aaron.
“Does that so much oblige the woman?” Esther asked.
“The woman is obliged,” he said, “she is ... unless——” He stopped.
“Aaron,” she said, “tell me this. How do friends regard each other’s
wives and sweethearts?”
“Sweethearts almost the same as wives,” he said.
“So that if one loved the sweetheart of a friend he could not tell her
that?”
“No, he could not.”
“Not even if he knew the sweetheart did not love the friend?”
“No,” said Aaron.
“Then should the woman tell?”
“Tell whom?” asked Aaron, trembling.
“The friend ... the other man,” said Esther.
Aaron slowly dropped his head between his hands. She could feel his
body shake. A roaring blackness filled her eyes. She rose and would
have gone, but he enfolded her, with arms that touched her lightly,
almost not at all at first, then tightened, tightened, tightened, until
her life was crushed to his, and all the waters fell.
He put her off at arm’s length to see her better.
“Through all consequences ... forever ... to finality,” he said.
And she was satisfied.
How long they stood so, either thus or as it was, gazing one upon
the other, with no words to say,—how long they never knew. A
sound of footsteps very near broke their ecstasy, and there stood
Enoch.
They had no sense of guilt. They were shy and startled from the
shock of coming back to earth.
Enoch stood there looking at them. Aaron moved, drawing Esther’s
form behind him.
At that Enoch turned away and laughed.
Twenty paces on his way he laughed again.
When he was out of sight he laughed.
At intervals all the way down the mountain he stopped to laugh.
The sound of his laughter reverberated, echoed, swirled, went and
returned, filled the whole valley, blasting the night. Then when he
was far off he uttered a piercing scream. It rose on the air like a
rocket, hissed, burst with a soft splash and pitched off into space,
and the world for a moment was deathly still. The tree frogs were
the first to recover and began frantically to fill up the void.
Aaron touched Esther. They descended. She inquired of him nothing;
he informed her of nothing. They did not speak again for hours.
They walked to the Woolwine mansion. He called for horses, a light
vehicle, and wraps. And all that night they drove, past the setting
moon, into the darkness, through the dawn, toward Wilkes-Barre.
Next day at noon they were married.
VII

T he partnership of Gib and Breakspeare was sundered.


Two weeks later, when Aaron returned to the little red office
building across the road from the mill, he found on his desk a paper
marked “Articles of Dissolution.” Attached was a note of two lines
from Enoch, saying: “Let any changes proposed to be made herein
appear in the form of writing, or through an attorney at law.”
They never spoke again.
The articles prepared by Enoch provided that the ore and coal lands,
which had been pooled on a royalty basis, should release from that
agreement and revert to their respective owners; that the eight blast
furnaces should be divided equally, four and four; that Gib should
buy from Breakspeare, for cash, his interest in the rolling mill,
because it could not be divided, the price to be one-half the original
cost, according to the books, and that all the money in the firm’s
treasury, less current liabilities, should be halved on the date of
signature.
Aaron read the paper once through, put it down and signed it. The
terms were unfair. Yet he had no impulse to change them. They
were unfair because nothing was made of those two intangible
assets which sometimes in business are worth more than the
physical properties—namely, spirit of organization and good will of
trade—all of which would automatically belong to the one who
bought out the other’s interest in the mill. This was so because the
mill was now the crown of the business. What the firm sold was no
longer pig iron, as at first, but wrought iron in standard bars
manufactured from the pig by remelting, kneading, hammering and
rolling it. The product of the blast furnaces, instead of going to
market, only fed the mill.
What would Aaron do?
He could not sell the product of his blast furnaces to Enoch. Business
transactions between them were unimaginable; besides, no sooner
were the articles of dissolution signed than Enoch went about
building four more blast furnaces of his own. That was to make
himself independent of Aaron’s product. Aaron, therefore, might
choose between seeking a market outside for his pig iron or building
a mill to work it. To build a mill would require, first, a large outlay of
capital, then an organization of expert workers and superintendents,
and thirdly a market for his wrought iron in competition with the
product of the established mill, now Enoch’s. For of course Enoch’s
iron would continue to be called Damascus Iron, which was its trade
name, and it was already famous in the country for its fine texture
and purity. Aaron’s might be just as good, but it would have to take
a new name and earn its own good will.
Well, but what he did was unexpected. He drew the fires from his
blast furnaces and went to Europe with Esther.
It was more than a honeymoon, or less, as you may happen to
think. In Aaron’s case romance and work were easily combined, for
as love is an adventure of the spirit, so to a man of his temperament
work is a romantic enterprise of the mind and creative in a manner
less wonderful than the mysterious life process only because we take
it for granted. What is an engine? a steamship? a blast furnace? a
tower? It is the materialization in form and function of an idea itself
imponderable. It is the psychic power of man exteriorized in
substance and there is no accounting for such phenomena save that
it happens. Who knows but the Gods are as much puzzled by that
form of glow worm full of parasites that we call a railroad train as we
are by the things of cosmic origin?
Specifically Aaron was in quest of a secret that had eluded and
baffled iron masters always. They were sure it existed. That
certainty was deducible from the data of knowledge. Many times
they had almost touched it; then it was lost again, like a coy,
tantalizing vision of loveliness, and the pursuers were discouraged.
Still, they never gave up. Whoever found it would be made
exceedingly rich and the iron industry at the same time would be
revolutionized.
It is to be explained.
Everybody probably knows that in the first place all the iron was
trapped in the blazing heart of the earth. It forms no part anywhere
of the earth’s true granite crust. But it was rebellious and indigestible
and had to be spewed up from the inflamed Plutonic belly through
the tops of volcanoes. At that time volcanoes were near or under
water generally, and when the molten iron came jetting forth in red
lava streams a spectacular melodrama was enacted. Water was its
adverse element. At the lava’s touch the oceans boiled, hissed,
upheaved and draped themselves in steam. They were not hurt
really; they were outraged.
What happened to the lava?
The water shivered it to atoms and cast it high upon the wind as
dust and ashes.
In that free and irresponsible condition iron travelled far, made his
bed in many places, took up with new and strange affinities,—the
flapper sisters Chlorine, the Sulphur Gerties, the lazy Nitrate Susans,
the harmless Silicates, a score of others known and unknown, and
most of all with a comfortable, indispensable element called Oxygen.
The extent and variety of his embracings may be imagined from the
fact that he is never found in a state of unattached purity save now
and then when he falls from the heavens as a meteorite. In these
haphazard, bigamous earthly alliances he is of no avail to man. The
problem is how to disentangle him,—how to divorce him from his
undesirable affinities and wed him durably and in a lawful manner to
those elements which supplement his power.
It becomes extremely complicated when you begin seriously to
consider it. How shall one be divorced from many miscellaneous
affinities? You have to have been regularly wedded in order to get
divorced. Well, the only way is the long, pragmatic way. You wed
him to the affinities that are to be legally got rid of and then divorce
him from them.
Now take it: The iron ore is in the ore bed, embracing those other
elements at random, particularly Oxygen. First you oxidize him by
roasting. That is, you wed him to Oxygen; you give him Oxygen until
he is sick of it. Then you melt him down with coal in a furnace to
deoxidize him—to divorce him, that is to say, from his affinity
Oxygen. It is the first fiery ordeal. But at the same time you wed him
to Carbon. Thus deoxidized and carbonized, divorced and wedded by
one stroke, he becomes pig iron.
The wedding with Carbon, however, is not permanent. It has been
contracted so to speak under duress, a miserable makeshift, because
his earthly nature is such that he must be wedded to something all
the time. Besides, there is now too much Carbon for his own good.
So you melt him again and divorce him from Carbon, by the
unexpected method of blowing Oxygen through him. At the end of
this second ordeal he is free of both Carbon and Oxygen, many
other elements have disappeared also, and you have wrought iron,
practically pure, limp and malleable.
Now suppose you want to make him hard. You want to convert him
into steel. In that case you melt him a third time and wed him
permanently to a small amount of Carbon, more or less, the amount
to be governed by the degree of hardness required. That makes
steel. But to make it has required one roasting and three meltings.
The dream of the iron masters, beginning with the 19th century, was
to make it all one continuous, fluid process, and bring the complete
result to pass at one melting. If that could be done the cost of
production would be enormously reduced.
The discovery of such a method now seemed imminent in either
England or Germany. Many experts were pressing on the door.
Suddenly it would fly open and whoever was there at the moment
would be able to seize the secret. Rumors of success had been
heard, disbelieved, denied, scoffed at and repeated. Aaron believed
them, or believed at least that if the secret had not already been
captured it was about to be. That was his quest in Europe.
After a year he returned with a steel making patent, enormous
quantities of queer looking material, a crew of expert English
erectors, and proceeded to build what the curious Damascenes
called a concern. That word was in lieu of a proper name for an
object which, without being supernatural, was unique on earth. In
shape it somewhat resembled a gigantic snail shell, in a vertical
position, open end up, thirty feet high, made of iron plates bolted
together, lined with fire clay and so mounted at its axis that it could
be tipped to spill its contents. On the same foundation was mounted
a blowing engine to force air at high pressure through perforations
in the bottom of the shell; and there was also a great ladle in chains
for hoisting molten metal to its mouth.
The work of construction was slow and tedious; it came several
times to a full stop for want of something that had not been
provided beforehand and could not be made on the spot. Nearly
another year passed.
Then one day smoke appeared at the top of one of Aaron’s four
blast furnaces and people by this sign were notified that the great
experiment was about to begin. In a general way the population
knew, from what the workers said, that the intention was to produce
steel and to produce it direct from the ore, and also that if such a
thing were possible the iron industry would undergo a basic
transformation.
All of that was exciting and very important, especially to a town like
New Damascus, whose living was in iron. Yet it was no technical
interest in a metallurgical process that moved people to gather in
large numbers to witness the experiment. What they sensed was its
human meaning. It symbolized a struggle between the former
partners. The outcome might deeply affect the economic position of
New Damascus in the course of time. Immediately it had tense
dramatic value. It would prove which was the greater man and
which was right,—Aaron who believed steel cheaply produced in
large quantities by a continuous one-melt process would supersede
iron and bring a new age to pass, or Enoch who scoffed, who was
known privately to have predicted Aaron’s ruin, and who held that to
think of getting steel direct from ore in that manner, skipping the
iron stage, was as absurd as to think of getting a grandson from a
grandfather, skipping the father. It was contrary to the way of
nature.
All the iron wisdom of the community was with Enoch. All the inert
scepticism with which people behold the trial of a new thing was on
his side. But the heart was for Aaron. Everybody liked him still, as in
the old days, and ardently wished him success. Besides, if he
brought it off, Enoch Gib would be humbled. His tyrannical ways
were increasingly complained of. New Damascus would rather be a
steel town under Aaron than an iron town under Enoch.
With the outcome in suspense, the experiment itself was worth
seeing as a spectacle. Nothing like it could have been imagined.
First, that strange, enormous tilting vessel, resembling a snail shell,
was filled with fuel and fired under blast from the blowing engine
until its clay-lined interior was white hot. Then it was tilted on its
axis, emptied and tilted back again. Next the molten iron from the
blast furnace, instead of being run off in the sand to make the sow
the pigs devour, was tapped into that great ladle in chains, hoisted
on high, and poured into the white hot gullet of the tilting vessel. At
the same time the blowing engine to force air through the
perforations in the bottom was set in fast motion with a terrible roar.
A blast of air at high pressure began now to pass upward through
the fluid metal.
A series of awesome pyrotechnics ensued.
In the belly of the tilting vessel occurred a dry, chortling sound,
followed by a dull, regular clapping, as of Plutonic amusement and
applause. From the mouth of the vessel issued millions of sparks,
particles burning brilliantly in the air. This went on for seven or eight
minutes. Suddenly the sparks went out and a dull, sluggish red
flame appeared, turning bright and yellowish, then becoming high,
brilliant and dart-like. After several minutes terrific detonations
began to take place in the vessel. With each detonation the flame
shot higher. This uproar was succeeded by a period of calm. The
yellowish, dart-like flame rising from the throat of the vessel was
replaced by a long, white flame, which stood for several seconds
proudly, then trembled, tore at the edges and abruptly collapsed.
Dense black smoke issued from the mouth of the crater and the
scene was dark. This was the moment at which the metal itself
began to burn. The workers, uttering shrill cries of anxiety,
readiness, encouragement and damnation, seized the levers
controlling the vessel and tilted it over to a spilling position. Through
the black smoke that corked its throat burst the fluid, blazing metal,
hissing like a tortured serpent, alive in every incandescent crystal,
yet doomed quickly to cool and blacken, every element touching it
being fatally adverse. Men in waiting caught it headfirst neatly into a
trundle pot and wheeled it off to be decanted into sand molds, like
pig iron molds, but smaller.
The experiment was finished. The test was yet to come. That waited
on the cooling. What was in those molds? Those squarish lumps
blackening in the sand,—what would they turn out to be? No one
knew.
Aaron waited until one was cool enough to handle. Then placing it
like a stick of kindling against the chopping block, he hit it one blow
in the middle with a sledge hammer. It broke with an ironic, ringing
sound and lay in two pieces apart. He never stooped to pick them
up. Without a word he dropped the hammer and walked away.
Esther received him on the terrace. She had been there for hours,
anxiously watching the spectacle from afar, then waiting for him to
come and tell her what the outcome was. But he did not have to tell
her. She knew by his look, by his walk, by the way he took her arm.
They sat for some time in silence.
“It beats me,” he said. “I can’t explain it. I don’t know what
happened.”
“What was it like?” she asked. “The product I mean—was it iron or
steel?”
“Pot metal,” he said contemptuously.
For a long time they stood there on the terrace looking their
thoughts into space. Hers were personal. His were not. This she
knew. There is probably no sense of loneliness so poignant as that
which a woman feels when the idol of her being disembodies his
soul and departs with it, leaving in her hands the fact of his empty
presence. Lacking in herself his power of abstraction she cannot
understand this phenomenon. But she verifies it and it fills her with
terror. The form is there at her side, even in her arms, as it was a
moment before. The man is gone. She has no idea where he is or
what he is doing.
“Aaron!”
Esther whispered his name as one who dreads to wake the sleeper
and yet cannot forbear to do so. Impulsively she buried her face
beneath his arm as if she would enter the vacant premises. He laid
his arm around her shoulder. It was an absent gesture. She had not
waked him quite.
“Aaron!” she called again. “What does it matter? Come back to me.”
At that he started slightly and began to talk in a slow, far-away
manner, very much as he had talked to Enoch that moonlight night
after the birthday party when the idea of making New Damascus an
iron town had suddenly crystallized in his mind. Esther, loving the
mere sound of his voice, did not at first get the sense of his speech.
He was saying:
“Out there in unlimited space are the unborn....”
These were the first words she understood. They thrilled her. She
was almost faint with an ecstasy that ran through her fibre up and
down. “So,” she thought, “it was that.” And she had been thinking he
was far away. Now she listened tensely. He went on:
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