100% found this document useful (1 vote)
13 views

Concepts and Semantics of Programming Languages 1: A Semantical Approach with OCaml and Python Therese Hardin - Read the ebook online or download it to own the full content

The document promotes the book 'Concepts and Semantics of Programming Languages 1: A Semantical Approach with OCaml and Python' by Therese Hardin and provides a link to download it. It also lists several other recommended programming-related ebooks available for download at ebookmass.com. The document includes information about the authors, publication details, and a brief overview of the book's content.

Uploaded by

bienvaagota
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
13 views

Concepts and Semantics of Programming Languages 1: A Semantical Approach with OCaml and Python Therese Hardin - Read the ebook online or download it to own the full content

The document promotes the book 'Concepts and Semantics of Programming Languages 1: A Semantical Approach with OCaml and Python' by Therese Hardin and provides a link to download it. It also lists several other recommended programming-related ebooks available for download at ebookmass.com. The document includes information about the authors, publication details, and a brief overview of the book's content.

Uploaded by

bienvaagota
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 51

Visit ebookmass.

com to download the full version and


explore more ebook or textbook

Concepts and Semantics of Programming Languages 1:


A Semantical Approach with OCaml and Python
Therese Hardin

_____ Click the link below to download _____


https://ebookmass.com/product/concepts-and-semantics-of-
programming-languages-1-a-semantical-approach-with-ocaml-
and-python-therese-hardin/

Explore and download more ebook or textbook at ebookmass.com


Here are some recommended products that we believe you will be
interested in. You can click the link to download.

Concepts of Programming Languages (10th Edition) Sebesta

https://ebookmass.com/product/concepts-of-programming-languages-10th-
edition-sebesta/

Python Programming and SQL: 10 Books in 1 - Supercharge


Your Career with Python Programming and SQL Andrew Reed

https://ebookmass.com/product/python-programming-and-sql-10-books-
in-1-supercharge-your-career-with-python-programming-and-sql-andrew-
reed/

Python & JavaScript Mastery: 2 Books In 1- Learn And


Master Two Powerful Programming Languages Alex Iversion

https://ebookmass.com/product/python-javascript-mastery-2-books-
in-1-learn-and-master-two-powerful-programming-languages-alex-
iversion/

Programming and Problem Solving with Python Ashok Namdev


Kamthane

https://ebookmass.com/product/programming-and-problem-solving-with-
python-ashok-namdev-kamthane/
Learning Scientific Programming with Python Hill

https://ebookmass.com/product/learning-scientific-programming-with-
python-hill/

Python Mini Reference 2022: A Quick Guide to the Modern


Python Programming Language for Busy Coders (A
Hitchhiker's Guide to the Modern Programming Languages
Book 3) Harry Yoon
https://ebookmass.com/product/python-mini-reference-2022-a-quick-
guide-to-the-modern-python-programming-language-for-busy-coders-a-
hitchhikers-guide-to-the-modern-programming-languages-book-3-harry-
yoon/

Mastering Functional Programming with Python Brett


Neutreon

https://ebookmass.com/product/mastering-functional-programming-with-
python-brett-neutreon/

Python Programming for Beginners: 2 Books in 1 - the


Ultimate Step-By-Step Guide to Learn Python Programming
Quickly With Practical Exercises Mark Reed
https://ebookmass.com/product/python-programming-for-
beginners-2-books-in-1-the-ultimate-step-by-step-guide-to-learn-
python-programming-quickly-with-practical-exercises-mark-reed/

Python Programming: Using Problem Solving Approach 1st


Edition Reema Thareja

https://ebookmass.com/product/python-programming-using-problem-
solving-approach-1st-edition-reema-thareja/
Concepts and Semantics of Programming Languages 1
Series Editor
Jean-Charles Pomerol

Concepts and Semantics of


Programming Languages 1

A Semantical Approach with


OCaml and Python

Thérèse Hardin
Mathieu Jaume
François Pessaux
Véronique Viguié Donzeau-Gouge
First published 2021 in Great Britain and the United States by ISTE Ltd and John Wiley & Sons, Inc.

Apart from any fair dealing for the purposes of research or private study, or criticism or review, as
permitted under the Copyright, Designs and Patents Act 1988, this publication may only be reproduced,
stored or transmitted, in any form or by any means, with the prior permission in writing of the publishers,
or in the case of reprographic reproduction in accordance with the terms and licenses issued by the
CLA. Enquiries concerning reproduction outside these terms should be sent to the publishers at the
undermentioned address:

ISTE Ltd John Wiley & Sons, Inc.


27-37 St George’s Road 111 River Street
London SW19 4EU Hoboken, NJ 07030
UK USA

www.iste.co.uk www.wiley.com

© ISTE Ltd 2021


The rights of Thérèse Hardin, Mathieu Jaume, François Pessaux and Véronique Viguié Donzeau-Gouge
to be identified as the authors of this work have been asserted by them in accordance with the Copyright,
Designs and Patents Act 1988.

Library of Congress Control Number: 2021930488

British Library Cataloguing-in-Publication Data


A CIP record for this book is available from the British Library
ISBN 978-1-78630-530-5
Contents

Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii

Chapter 1. From Hardware to Software . . . . . . . . . . . . . . . . . . . 1


1.1. Computers: a low-level view . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1. Information processing . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2. Memories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3. CPUs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.4. Peripheral devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2. Computers: a high-level view . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1. Modeling computations . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.2. High-level languages . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.3. From source code to executable programs . . . . . . . . . . . . . . 10

Chapter 2. Introduction to Semantics of Programming Languages 15


2.1. Environment, memory and state . . . . . . . . . . . . . . . . . . . . . . 16
2.1.1. Evaluation environment . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.2. Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.3. State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2. Evaluation of expressions . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.1. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.2. Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.3. Evaluation semantics . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3. Definition and assignment . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.1. Defining an identifier . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.2. Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
vi Concepts and Semantics of Programming Languages 1

Chapter 3. Semantics of Functional Features . . . . . . . . . . . . . . . 35


3.1. Syntactic aspects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.1. Syntax of a functional kernel . . . . . . . . . . . . . . . . . . . . . . 35
3.1.2. Abstract syntax tree . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.1.3. Reasoning by induction over expressions . . . . . . . . . . . . . . . 39
3.1.4. Declaration of variables, bound and free variables . . . . . . . . . . 39
3.2. Execution semantics: evaluation functions . . . . . . . . . . . . . . . . 42
3.2.1. Evaluation errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.2.2. Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2.3. Interpretation of operators . . . . . . . . . . . . . . . . . . . . . . . 45
3.2.4. Closures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.5. Evaluation of expressions . . . . . . . . . . . . . . . . . . . . . . . . 47
3.3. Execution semantics: operational semantics . . . . . . . . . . . . . . . 54
3.3.1. Simple expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.3.2. Call-by-value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.3.3. Recursive and mutually recursive functions . . . . . . . . . . . . . . 60
3.3.4. Call-by-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.3.5. Call-by-value versus call-by-name . . . . . . . . . . . . . . . . . . . 62
3.4. Evaluation functions versus evaluation relations . . . . . . . . . . . . . 64
3.4.1. Status of the evaluation function . . . . . . . . . . . . . . . . . . . . 64
3.4.2. Induction over evaluation trees . . . . . . . . . . . . . . . . . . . . . 65
3.5. Semantic properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.5.1. Equivalent expressions . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.5.2. Equivalent environments . . . . . . . . . . . . . . . . . . . . . . . . 71
3.6. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Chapter 4. Semantics of Imperative Features . . . . . . . . . . . . . . . 77


4.1. Syntax of a kernel of an imperative language . . . . . . . . . . . . . . . 77
4.2. Evaluation of expressions . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.3. Evaluation of definitions . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.4. Operational semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.4.1. Big-step semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.4.2. Small-step semantics . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.4.3. Expressiveness of operational semantics . . . . . . . . . . . . . . . 95
4.5. Semantic properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.5.1. Equivalent programs . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.5.2. Program termination . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.5.3. Determinism of program execution . . . . . . . . . . . . . . . . . . 100
4.5.4. Big steps versus small steps . . . . . . . . . . . . . . . . . . . . . . 103
4.6. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.6.1. Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.6.2. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.7. Other approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Contents vii

4.7.1. Denotational semantics . . . . . . . . . . . . . . . . . . . . . . . . . 118


4.7.2. Axiomatic semantics, Hoare logic . . . . . . . . . . . . . . . . . . . 129
4.8. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

Chapter 5. Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137


5.1. Type checking: when and how? . . . . . . . . . . . . . . . . . . . . . . 139
5.1.1. When to verify types? . . . . . . . . . . . . . . . . . . . . . . . . . . 139
5.1.2. How to verify types? . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.2. Informal typing of a program Exp2 . . . . . . . . . . . . . . . . . . . . 141
5.2.1. A first example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.2.2. Typing a conditional expression . . . . . . . . . . . . . . . . . . . . 142
5.2.3. Typing without type constraints . . . . . . . . . . . . . . . . . . . . 142
5.2.4. Polymorphism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
5.3. Typing rules in Exp2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
5.3.1. Types, type schemes and typing environments . . . . . . . . . . . . 143
5.3.2. Generalization, substitution and instantiation . . . . . . . . . . . . . 146
5.3.3. Typing rules and typing trees . . . . . . . . . . . . . . . . . . . . . . 151
5.4. Type inference algorithm in Exp2 . . . . . . . . . . . . . . . . . . . . . 154
5.4.1. Principal type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
5.4.2. Sets of constraints and unification . . . . . . . . . . . . . . . . . . . 155
5.4.3. Type inference algorithm . . . . . . . . . . . . . . . . . . . . . . . . 159
5.5. Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
5.5.1. Properties of typechecking . . . . . . . . . . . . . . . . . . . . . . . 167
5.5.2. Properties of the inference algorithm . . . . . . . . . . . . . . . . . 167
5.6. Typechecking of imperative constructs . . . . . . . . . . . . . . . . . . 168
5.6.1. Type algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
5.6.2. Typing rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5.6.3. Typing polymorphic definitions . . . . . . . . . . . . . . . . . . . . 171
5.7. Subtyping and overloading . . . . . . . . . . . . . . . . . . . . . . . . . 172
5.7.1. Subtyping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
5.7.2. Overloading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

Chapter 6. Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179


6.1. Basic types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
6.1.1. Booleans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
6.1.2. Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
6.1.3. Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
6.1.4. Floating point numbers . . . . . . . . . . . . . . . . . . . . . . . . . 187
6.2. Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
6.3. Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
6.4. Type definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
6.4.1. Type abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
6.4.2. Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
viii Concepts and Semantics of Programming Languages 1

6.4.3. Enumerated types . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200


6.4.4. Sum types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.5. Generalized conditional . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
6.5.1. C style switch/case . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
6.5.2. Pattern matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
6.6. Equality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
6.6.1. Physical equality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
6.6.2. Structural equality . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
6.6.3. Equality between functions . . . . . . . . . . . . . . . . . . . . . . . 220

Chapter 7. Pointers and Memory Management . . . . . . . . . . . . . . 223


7.1. Addresses and pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
7.2. Endianness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
7.3. Pointers and arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
7.4. Passing parameters by address . . . . . . . . . . . . . . . . . . . . . . . 226
7.5. References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
7.5.1. References in C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
7.5.2. References in Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
7.6. Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
7.6.1. Memory allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
7.6.2. Freeing memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
7.6.3. Automatic memory management . . . . . . . . . . . . . . . . . . . 239

Chapter 8. Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243


8.1. Errors: notification and propagation . . . . . . . . . . . . . . . . . . . . 243
8.1.1. Global variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
8.1.2. Record definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
8.1.3. Passing by address . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
8.1.4. Introducing exceptions . . . . . . . . . . . . . . . . . . . . . . . . . 246
8.2. A simple formalization: ML-style exceptions . . . . . . . . . . . . . . 247
8.2.1. Abstract syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
8.2.2. Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
8.2.3. Type algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
8.2.4. Operational semantics . . . . . . . . . . . . . . . . . . . . . . . . . . 248
8.2.5. Typing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
8.3. Exceptions in other languages . . . . . . . . . . . . . . . . . . . . . . . 250
8.3.1. Exceptions in OCaml . . . . . . . . . . . . . . . . . . . . . . . . . . 251
8.3.2. Exceptions in Python . . . . . . . . . . . . . . . . . . . . . . . . . . 251
8.3.3. Exceptions in Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
8.3.4. Exceptions in C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Visit https://ebookmass.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
Contents ix

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

Appendix: Solutions to the Exercises . . . . . . . . . . . . . . . . . . . . 259

List of Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

Index of Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Foreword

Computer programs have played an increasingly central role in our lives since the
1940s, and the quality of these programs has thus become a crucial question. Writing
a high-quality program – a program that performs the required task and is efficient,
robust, easy to modify, easy to extend, etc. – is an intellectually challenging task,
requiring the use of rigorous development methods. First and foremost, however, the
creation of such a program is dependent on an in-depth knowledge of the
programming language used, its syntax and, crucially, its semantics, i.e. what
happens when a program is executed.

The description of this semantics puts the most fundamental concepts into light,
including those of value, reference, exception or object. These concepts are the
foundations of programming language theory. Mastering these concepts is what sets
experienced programmers apart from beginners. Certain concepts – like that of value
– are common to all programming languages; others – such as the notion of functions
– operate differently in different languages; finally, other concepts – such as that of
objects – only exist in certain languages. Computer scientists often refer to
“programming paradigms” to consider sets of concepts shared by a family of
languages, which imply a certain programming style: imperative, functional,
object-oriented, logical, concurrent, etc. Nevertheless, an understanding of the
concepts themselves is essential, as several paradigms may be interwoven within the
same language.

Introductory texts on programming in any given language are not difficult to find,
and a number of published books address the fundamental concepts of language
semantics. Much rarer are those, like the present volume, which establish and
examine the links between concepts and their implementation in languages used by
programmers on a daily basis, such as C, C++, Ada, Java, OCaml and Python. The
authors provide a wealth of examples in these languages, illustrating and giving life
to the notions that they present. They propose general models, such as the kit
xii Concepts and Semantics of Programming Languages 1

presented in Volume 2, permitting a unified view of different notions; this makes it


easier for readers to understand the constructs used in popular programming
languages and facilitates comparison. This thorough and detailed work provides
readers with an understanding of these notions and, above all, an understanding of
the ways of using the latter to create high-quality programs, building a safer and
more reliable future in computing.

Gilles D OWEK
Research Director, Inria
Professor at the École normale supérieure, Paris-Saclay

Catherine D UBOIS
Professor at the École nationale supérieure
d’informatique pour l’industrie et l’entreprise
January 2021
Preface

This two-volume work relates to the field of programming. First and foremost, it
is intended to give readers a solid grounding in the bases of functional or imperative
programming, along with a thorough knowledge of the module and class mechanisms
involved. In our view, the semantics approach is most appropriate when studying
programming, as the impact of interlanguage syntax differences is limited. Practical
considerations, determined by the material characteristics of computers and/or
“smart” devices, will also be addressed. The same approach will be taken in both
volumes, using both mathematical formulas and memory state diagrams. With this
book, we hope to help readers understand the meaning of the constructs described in
the reference manuals of programming languages and to establish solid foundations
for reasoning and assessing the correctness of their own programs through critical
review. In short, our aim is to facilitate the development of safe and reliable
programs.

Volume 1 begins with a presentation of the computer, in Chapter 1, first at the


material level – as an assemblage of components – then as a tool for executing
programs. Chapter 2 is an intuitive, step-by-step introduction to language semantics,
intended to familiarize readers with this approach to programming. In Chapter 3, we
provide a detailed discussion on the subject, with a formal presentation of the
execution semantics of functional features. Chapter 4 continues with the same topic,
looking at the execution semantics of imperative features. In these two chapters, a
clear mathematical framework is used to support our presentation. Also, all of the
notions which we introduce in these chapters are implemented in both Python and
OCaml to assist readers learning about the semantic concepts in question for the first
time. Multiple exercises, with detailed solutions, are provided in both cases. Chapter
5, on the subject of typing, begins by addressing typing rules, which are used to
check programs; we then present the algorithm used to infer polymorphic types,
along with the associated mathematical notions, all implemented in both languages.
Finally, the extension of typing to imperative features is addressed. In Chapter 6, we
xiv Concepts and Semantics of Programming Languages 1

present the main data types and methods of pattern matching, using a range of
examples expressed in different programming languages. Chapter 7 focuses on
low-level programming features: endianness, pointers and memory management;
these notions are mostly presented using C and C++. Volume 1 ends with a
discussion of error processing using exceptions, their semantics is presented in
OCaml, and the exception management mechanisms used in Python, Java and C++
are also described (see Chapter 8).

Thus, Volume 1 is intended to give a broad overview of the functional and


imperative features of programming, from notions that can be modeled
mathematically to notions that are linked to the hardware configuration of computers
themselves. Volume 2 focuses on modular and object programming, building on the
foundations laid down in Volume 1 since modules, classes and objects are, in
essence, the means of organizing functional or imperative constructs. Volume 2 first
analyzes the needs of developers in terms of tools for software architecture. Based on
this study, an original semantic model, called a kit, is drawn up, jointly presenting all
the features of the modules and objects that can meet these needs. The semantics of
these kits are defined in a rather informal way, as research in this field has not yet led
to a mathematical model of this set of features, while remaining relatively simple.
From this model, we consider a set of emerging questions, the objective of which is
to guide the acquisition of a language. This approach is then exemplified by the study
of the module systems of Ada, OCaml and C. Finally, the same approach will be used
to deduce a semantic model of class and object features, which will serve to present
classes in Java, C++, OCaml and Python from a unified perspective.

This work is aimed at a relatively wide audience, from experienced developers –


who will find valuable additional information on language semantics – to beginners
who have only written short programs. For beginners, we recommend working on the
semantic concepts described in Volume 1 using the implementations in OCaml or
Python to ease assimilation. All readers may benefit from studying the reference
manual of a programming language, while comparing the presentations of constructs
given in the manual with those given here, guided by the questions mentioned in
Volume 2.

Note that we do not discuss the algorithmic aspect of data processing here.
However, choosing the algorithm and the data representation that fit the requirements
of the specification is an essential step in program development. Many excellent
works have been published on this subject, and we encourage readers to explore the
subject further. We also recommend using the standard libraries provided by the
chosen programming language. These libraries include tried and tested
implementations for many different algorithms, which may generally be assumed to
be correct.
1

From Hardware to Software

This first chapter provides a brief overview of the components found in all
computers, from mainframes to the processing chips in tablets, smartphones and
smart objects via desktop or laptop computers. Building on this hardware-centric
presentation, we shall then give a more abstract description of the actions carried out
by computers, leading to a uniform definition of the terms “program” and
“execution”, above and beyond the various characteristics of so-called electronic
devices.

1.1. Computers: a low-level view

Computer science is the science of rational processing of information by


computers. Computers have the capacity to carry out a variety of processes,
depending on the instructions given to them. Each item of information is an element
of knowledge that may be transmitted using a signal and encoded using a sequence of
symbols in conjunction with a set of rules used to decode them, i.e. to reconstruct the
signal from the sequence of symbols. Computers use binary encoding, involving two
symbols; these may be referred to as “true”/“false”, “0”/“1” or “high”/“low”; these
terms are interchangeable, and all represent the two stable states of the electrical
potential of digital electronic circuits.

1.1.1. Information processing

Schematically, a computer is made up of three families of components as follows:


– memories: store data (information) and executable code (the so-called von
Neumann architecture);
– one or more microprocessors, known as CPUs (central processing units), which
process information by applying elementary operations;

Concepts and Semantics of Programming Languages 1:


A Semantical Approach with OCaml and Python, First Edition. Thérèse Hardin,
Mathieu Jaume, François Pessaux and Véronique Viguié Donzeau-Gouge.
© ISTE Ltd 2021. Published by ISTE Ltd and John Wiley & Sons, Inc.
2 Concepts and Semantics of Programming Languages 1

– peripherals: these enable information to be exchanged between the


CPU/memory couple and the outside.

Information processing by a computer – in other terms, the execution of a


program – can be summarized as a sequence of three steps: fetching data, computing
the results and returning them. Each elementary processing operation corresponds to
a configuration of the logical circuits of the CPU, known as a logic function. If the
result of this function is solely dependent on input, and if no notion of “time” is
involved in the computations, then the function is said to be combinatorial;
otherwise, it is said to be sequential.

For example, a binary half-adder, as shown in Figure 1.1, is a circuit that


computes the sum of two binary digits (input), along with the possible carry value. It
thus implements a combinatorial logic function.

Bit 0 Sum
or
Bit 1

and Carry

Figure 1.1. Binary half-adder

The essential character of a combinatorial function is that, for the same input, the
function always produces the same output, no matter what the circumstances. This is
not true of sequential logic functions.

For example, a logic function that counts the number of times its input changes
relies on a notion of “time” (changes take place in time), and a persistent state between
two inputs is required in order to record the previous value of the counter. This state is
saved in a memory. For sequential functions, a same input value can result in different
output values, as every output depends not only on the input, but also on the state of
the memory at the moment of reading the new input.

1.1.2. Memories

Computers use memory to save programs and data. There are several different
technologies used in memory components, and a simplified presentation is as follows:
– RAM (Random Access Memory): RAM memory is both readable and writeable.
RAM components are generally fast, but also volatile: if electric power falls down,
their content is lost;
From Hardware to Software 3

– ROM (Read Only Memory): information stored in a ROM is written at the time
of manufacturing, and it is read-only. ROM is slower than RAM, but is non-volatile,
like, for example, a burned DVD;
– EPROM (Erasable Programmable Read Only Memory): this memory is
non-volatile, but can be written using a specific device, through exposure to ultra-
violet light, or by modifying the power voltage, etc. It is slower than RAM, for both
reading and writing. EPROM may be considered equivalent to a rewritable DVD.

Computers use the memory components of several technologies. Storage size


diminishes as access speed increases, as fast-access memory is more costly. A
distinction is generally made between four different types of memory:
– mass storage is measured in terabytes and is made either of mechanical disks
(with an access time of ∼ 10 ms) or – increasingly – of solid-state drive (SSD) blocks.
These blocks use an EEPROM variant (electrically erasable) with an access time of
∼ 0.1−0.3 ms, known as flash memory. Mass storage is non-volatile and is principally
used for the file system;
– RAM, which is external to the microprocessor. Recent home computers and
smartphones generally possess large RAM capacities (measured in gigabytes).
Embedded systems or consumer development electronic boards may have a much
lower RAM capacity. The access time is around 40–50 ηs;
– the cache is generally included in the CPU of modern machines. This is a small
RAM memory of a few kilobytes (or megabytes), with an access time of around
5−10 ηs. There are often multiple levels of cache, and access time decreases with size.
The cache is used to save frequently used and/or consecutive data and/or instructions,
reducing the need to access slower RAM by retaining information locally. Cache
management is complex: it is important to ensure consistency between the data in
the main memory and the cache, between different CPUs or different cores (full,
independent processing units within the same CPU) and to decide which data to
discard to free up space, etc.;
– registers are the fastest memory units and are located in the center of the
microprocessor itself. The microprocessor contains a limited number (a few dozen)
of these storage zones, used directly by CPU instructions. Access time is around one
processor cycle, i.e. around 1 ns.

1.1.3. CPUs

The CPU, as its name suggests, is the unit responsible for processing information,
via the execution of elementary instructions, which can be roughly grouped into five
categories:
– data transfer instructions (copy between registers or between memory and
registers);
4 Concepts and Semantics of Programming Languages 1

– arithmetic instructions (addition of two integer values contained in two registers,


multiplication by a constant, etc.);
– logical instructions (bit-wise and/or/not, shift, rotate, etc.);
– branching operations (conditional, non-conditional, to subroutines, etc.);
– other instructions (halt the processor, reset, interrupt requests, test-and-set,
compare-and-swap, etc.).

Instructions are coded by binary words in a format specific to each microprocessor.


A program of a few lines in a high-level programming language is translated into tens
or even hundreds of elementary instructions, which would be difficult, error prone
and time consuming to write out manually. This is illustrated in Figure 1.2, where a
“Hello World!” program written in C is shown alongside its counterpart in x86-64
instructions, generated by the gcc compiler.
. s e c t i o n __TEXT
. g l o b l _main
. a l i g n 4 , 0 x90
_main :
. cfi_startproc
## BB# 0 :
pushq %r b p
Ltmp0 :
. c f i _ d e f _ c f a _ o f f s e t 16
Ltmp1 :
. c f i _ o f f s e t %rbp , −16
movq %r s p , %r b p
# include < s t d i o . h> Ltmp2 :
i n t main () { . c f i _ d e f _ c f a _ r e g i s t e r %r b p
printf ( " Hello world ! \ n " ) ; subq $16 , %r s p
return (0) ; leaq L_ . s t r (% r i p ) , %r d i
} movl $0 , −4(%r b p )
movb $0 , %a l
callq _printf
xorl %ecx , %e c x
movl %eax , −8(%r b p )
movl %ecx , %e a x
addq $16 , %r s p
popq %r b p
retq
. cfi_endproc
. s e c t i o n __TEXT
L_ . s t r :
. a s c i z " Hello world ! \ n "

Figure 1.2. “Hello world!” in C and in x86-64 instructions

Put simply, a microprocessor is split into two parts: a control unit, which decodes
and sequences the instructions to execute, and one or more arithmetic and logic units
(ALUs) , which carry out the operations stipulated by the instructions. The CPU runs
permanently through a three-stage cycle:
Visit https://ebookmass.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
Other documents randomly have
different content
to their expulsion by Cromwell.” Those who may agree with us in the
opinion which we have expressed as to the original demands of the
Parliament will scarcely concur in this strong censure. The
propositions which the Houses made at Oxford, at Uxbridge, and at
Newcastle, were in strict accordance with these demands. In the
darkest period of the war, they showed no disposition to concede
any vital principle. In the fulness of their success, they showed no
disposition to encroach beyond these limits. In this respect we
cannot but think that they showed justice and generosity, as well as
political wisdom and courage.
The Parliament was certainly far from faultless. We fully agree
with Mr. Hallam in reprobating their treatment of Laud. For the
individual, indeed, we entertain a more unmitigated contempt than
for any other character in our history. The fondness with which a
portion of the church regards his memory, can be compared only to
that perversity of affection which sometimes leads a mother to select
the monster or the idiot of the family as the object of her especial
favour. Mr. Hallam has incidentally observed, that, in the
correspondence of Laud with Strafford, there are no indications of a
sense of duty towards God or man. The admirers of the Archbishop
have, in consequence, inflicted upon the public a crowd of extracts
designed to prove the contrary. Now, in all those passages, we see
nothing which a prelate as wicked as Pope Alexander or Cardinal
Dubois might not have written. Those passages indicate no sense of
duty to God or man, but simply a strong interest in the prosperity
and dignity of the order to which the writer belonged; an interest
which, when kept within certain limits, does not deserve censure,
but which can never be considered as a virtue. Laud is anxious to
accommodate satisfactorily the disputes in the University of Dublin.
He regrets to hear that a church is used as a stable, and that the
benefices of Ireland are very poor. He is desirous that, however
small a congregation may be, service should be regularly performed.
He expresses a wish that the judges of the court before which
questions of tithe are generally brought should be selected with a
view to the interest of the clergy. All this may be very proper; and it
may be very proper that an alderman should stand up for the tolls of
his borough; and an East India director for the charter of his
Company. But it is ridiculous to say that these things indicate piety
and benevolence. No primate, though he were the most abandoned
of mankind, could wish to see the body, with the influence of which
his own influence was identical, degraded in the public estimation by
internal dissensions, by the ruinous state of its edifices, and by the
slovenly performance of its rites. We willingly acknowledge that the
particular letters in question have very little harm in them; a
compliment which cannot often be paid either to the writings or to
the actions of Laud.
Bad as the Archbishop was, however, he was not a traitor within
the statute. Nor was he by any means so formidable as to be a
proper subject for a retrospective ordinance of the legislature. His
mind had not expansion enough to comprehend a great scheme,
good or bad. His oppressive acts were not, like those of the Earl of
Strafford, parts of an extensive system. They were the luxuries in
which a mean and irritable disposition indulges itself from day to
day, the excesses natural to a little mind in a great place. The
severest punishment which the two Houses could have inflicted on
him would have been to set him at liberty and send him to Oxford.
There he might have staid, tortured by his own diabolical temper,
hungering for Puritans to pillory and mangle, plaguing the Cavaliers,
for want of somebody else to plague, with his peevishness and
absurdity, performing grimaces and antics in the cathedral,
continuing that incomparable diary, which we never sec without
forgetting the vices of his heart in the imbecility of his intellect,
minuting down his dreams, counting the drops of blood which fell
from his nose, watching the direction of the salt, and listening for
the note of the screech-owls. Contemptuous mercy was the only
vengeance which it became the Parliament to take on such a
ridiculous old bigot.
The Houses, it must be acknowledged, committed great errors In
the conduct of the war, or rather one great error, which brought their
affairs into a condition requiring the most perilous expedients. The
parliamentary leaders of what may be called the first generation,
Essex, Manchester, Northumberland, Hollis, even Pym, all the most
eminent men, in short, Hampden excepted, were inclined to half
measures. They dreaded a decisive victory almost as much as a
decisive overthrow. They wished to bring the King into a situation
which might render it necessary for him to grant their just and wise
demands, but not to subvert the constitution or to change the
dynasty. They were afraid of serving the purposes of those fierce
and determined enemies of monarchy, who now began to show
themselves in the lower ranks of the party. The war was, therefore,
conducted in a languid and inefficient manner. A resolute leader
might have brought it to a close in a month. At the end of three
campaigns, however, the event was still dubious; and that it had not
been decidedly unfavourable to the cause of liberty was principally
Owing to the skill and energy which the more violent Roundheads
had displayed in subordinate situations. The conduct of Fairfax and
Cromwell at Mars-ton had exhibited a remarkable contrast to that of
Essex at Edgehill, and to that of Waller at Lansdowne.
If there be any truth established by the universal experience of
nations, it is this, that to carry the spirit of peace into war is a weak
and cruel policy. The time of negotiation is the time for deliberation
and delay. But when an extreme case calls for that remedy which is
in its own nature most violent, and which, in such cases, is a remedy
only because it is violent, it is idle to think of mitigating and diluting.
Languid war can do nothing which negotiation or submission will not
do better: and to act on any other principle is, not to save blood and
money, but to squander them.
This the parliamentary leaders found. The third year of hostilities
was drawing to a close; and they had not conquered the King. They
had not obtained even those advantages which they had expected
from a policy obviously erroneous in a military point of view. They
had wished to husband their resources. They now found that in
enterprises like theirs, parsimony is the worst profusion. They had
hoped to effect a reconciliation. The event taught them that the best
way to conciliate is to bring the work of destruction to a speedy
termination. By their moderation many lives and much property had
been wasted. The angry passions which, if the contest had been
short, would have died away almost as soon as they appeared, had
fixed themselves in the form of deep and lasting hatred. A military
caste had grown up. Those who had been induced to take up arms
by the patriotic feelings of citizens had begun to entertain the
professional feelings of soldiers. Above all, the leaders of the party
had forfeited its confidence. If they had, by their valour and abilities,
gained a complete victory, their influence might have been sufficient
to prevent their associates from abusing it. It was now necessary to
choose more resolute and uncompromising commanders. Unhappily
the illustrious man who alone united in himself all the talents and
virtues which the crisis required, who alone could have saved his
country from the present dangers without plunging her into others,
who alone could have united all the friends of liberty in obedience to
his commanding genius and his venerable name, was no more.
Something might still be done. The Houses might still avert that
worst of all evils, the triumphant return of an imperious and
unprincipled master. They might still preserve London from all the
horrors of rapine, massacre, and lust. But their hopes of a victory as
spotless as their cause, of a reconciliation which might knit together
the hearts of all honest Englishmen for the defence of the public
good, of durable tranquillity, of temperate freedom, were buried in
the grave of Hampden.
The self-denying ordinance was passed, and the army was
remodelled. These measures were undoubtedly full of danger. But all
that was left to the Parliament was to take the less of two dangers.
And we think that, even if they could have accurately foreseen all
that followed, their decision ought to have been the same. Under
any circumstances, we should have preferred Cromwell to Charles.
But there could be no comparison between Cromwell and Charles
victorious, Charles restored, Charles enabled to feed fat all the
hungry grudges of his smiling rancour and his cringing pride. The
next visit of his Majesty to his faithful Commons would have been
more serious than that with which he last honoured them; more
serious than that which their own General paid them some years
after. The King would scarce have been content with praying that the
Lord would deliver him from Vane, or with pulling Marten by the
cloak. If, by fatal mismanagement, nothing was left to England but a
choice of tyrants, the last tyrant whom she should have chosen was
Charles.
From the apprehension of this worst evil the Houses were soon
delivered by their new leaders. The armies of Charles were every
where routed, his fastnesses stormed, his party humbled and
subjugated. The King himself fell into the hands of the Parliament;
and both the King and the Parliament soon fell into the hands of the
army. The fate of both the captives was the same. Both were treated
alternately with respect and with insult. At length the natural life of
one, and the political life of the other, were terminated by violence;
and the power for which both had struggled was united in a single
hand. Men naturally sympathize with the calamities of individuals;
but they are inclined to look on a fallen party with contempt rather
than with pity. Thus misfortune turned the greatest of Parliaments
into the despised Rump, and the worst of Kings into the Blessed
Martyr.
Mr. Hallam decidedly condemns the execution of Charles; and in
all that he says on that subject we heartily agree. We fully concur
with him in thinking that a great social schism, such as the civil war,
is not to be confounded with an ordinary treason, and that the
vanquished ought to be treated according to the rules, not of
municipal, but of international law. In this case the distinction is of
the less importance, because both international and municipal law
were in favour of Charles. He was a prisoner of war by the former, a
King by the latter. By neither was he a traitor. If he had been
successful, and had put his leading opponents to death, he would
have deserved severe censure; and this without reference to the
justice or injustice of his cause. Yet the opponents of Charles, it
must be admitted, were technically guilty of treason. He might have
sent them to the scaffold without violating any established principle
of jurisprudence. He would not have been compelled to overturn the
whole constitution in order to reach them. Here his own case
differed widely from theirs. Not only was his condemnation in itself a
measure which only the strongest necessity could vindicate; but it
could not be procured without taking several previous steps, every
one of which would have required the strongest necessity to
vindicate it. It could not be procured without dissolving the
government by military force, without establishing precedents of the
most dangerous description, without creating difficulties which the
next ten years were spent in removing, without pulling down
institutions which it soon became necessary to reconstruct, and
setting up others which almost every man was soon impatient to
destroy. It was necessary to strike the House of Lords out of the
constitution, to exclude members of the House of Commons by
force, to make a new crime, a new tribunal, a new mode of
procedure: The whole legislative and judicial systems were trampled
down for the purpose of taking a single head. Not only those parts
of the constitution which the republicans were desirous to destroy,
but those which they wished to retain and exalt, were deeply injured
by these transactions. High Courts of Justice began to usurp the
functions of juries. The remaining delegates of the people were soon
driven from their seats by the same military violence which had
enabled them to exclude their colleagues.
If Charles had been the last of his line, there would have been an
intelligible reason for putting him to death. But the blow which
terminated his life at once transferred the allegiance of every
Royalist to an heir, and an heir who was at liberty. To kill the
individual was, under such circumstances, not to destroy, but to
release the King.
We detest the character of Charles; but a man ought not to be
removed by a law ex post facto, even constitutionally procured,
merely because he is detestable. He must also be very dangerous.
We can scarcely conceive that any danger which a state can
apprehend from any individual could justify the violent measures
which were necessary to procure a sentence against Charles. But in
fact the danger amounted to nothing. There was indeed danger from
the attachment of a large party to his office. But this danger his
execution only increased. His personal influence was little indeed. He
had lost the confidence of every party. Churchmen, Catholics,
Presbyterians, Independents, his enemies, his friends, his tools,
English, Scotch, Irish, all divisions and subdivisions of his people had
been deceived by him. His most attached councillors turned away
with shame and anguish from his false and hollow policy, plot
intertwined with plot, mine sprung beneath mine, agents disowned,
promises evaded, one pledge given in private, another in public.
“Oh, Mr. Secretary,” says Clarendon, in a letter to Nicholas, “those
stratagems have given me more sad hours than all the misfortunes
in war which have befallen the King, and look like the effects of
God’s anger towards us.”
The abilities of Charles were not formidable. His taste in the fine
arts was indeed exquisite; and few modern sovereigns have written
or spoken better. But he was not fit for active life. In negotiation he
was always trying to dupe others, and duping only himself. As a
soldier, he was feeble, dilatory, and miserably wanting, not in
personal courage, but in the presence of mind which his station
required. His delay at Gloucester saved the parliamentary party from
destruction. At Naseby, in the very crisis of his fortune, his want of
self-possession spread a fatal panic through his army. The story
which Clarendon tells of that affair reminds us of the excuses by
which Bessus and Bobadil explain their cudgellings. A Scotch
nobleman, it seems, begged the King not to run upon his death,
took hold of his bridle, and turned his horse round. No man who had
much value for his life would have tried to perform the same friendly
office on that day for Oliver Cromwell.
One thing, and one alone, could make Charles dangerous, a
violent death. His tyranny could not break the high spirit of the
English people. His arms could not conquer, his arts could not
deceive them; but his humiliation and his execution melted them
into a generous compassion. Men who die on a scaffold for political
offences almost always die well. The eyes of thousands are fixed
upon them. Enemies and admirers are watching their demeanour.
Every tone of voice, every change of colour, is to go down to
posterity. Escape is impossible. Supplication is vain. In such a
situation, pride and despair have often been known to nerve the
weakest minds with fortitude adequate to the occasion. Charles died
patiently and bravely; not more patiently or bravely, indeed, than
many other victims of political rage; not more patiently or bravely
than his own Judges, who were not only killed, but tortured; or than
Vane, who had always been considered as a timid man. However,
the King’s conduct during his trial and at his execution made a
prodigious impression. His subjects began to love his memory as
heartily as they had hated his person; and posterity has estimated
his character from his death rather than from his life.
To represent Charles as a martyr in the cause of Episcopacy is
absurd. Those who put him to death cared as little for the Assembly
of Divines as for the Convocation, and would, in all probability, only
have hated him the more if he had agreed to set up the Presbyterian
discipline. Indeed, in spite of the opinion of Mr. Hallam, we are
inclined to think that the attachment of Charles to the Church of
England was altogether political. Human nature is, we admit, so
capricious that there may be a single sensitive point in a conscience
which every where else is callous. A man without truth or humanity
may have some strange scruples about a trifle. There was one
devout warrior in the royal camp whose piety bore a great
resemblance to that which is ascribed to the King. We mean Colonel
Turner. That gallant Cavalier was hanged, after the Restoration, for a
flagitious burglary. At the gallows he told the crowd that his mind
received great consolation from one reflection: he had always taken
off his hat when he went into a church. The character of Charles
would scarcely rise in our estimation, if we believed that he was
pricked in conscience after the manner of this worthy loyalist, and
that while violating all the first rules of Christian morality, he was
sincerely scrupulous about church-government. But we acquit him of
such weakness. In 1641, he deliberately confirmed the Scotch
Declaration which stated that the government of the church by
archbishops and bishops was contrary to the word of God. In 1645,
he appears to have offered to set up Popery in Ireland. That a King
who had established the Presbyterian religion in one kingdom, and
who was willing to establish the Catholic religion in another, should
have insurmountable scruples about the ecclesiastical constitution of
the third, is altogether incredible. He himself says in his letters that
he looks on Episcopacy as a stronger support of monarchical power
than even the army. From causes which we have already considered,
the Established Church had been, since the Reformation, the great
bulwark of the prerogative. Charles wished, therefore, to preserve it.
He thought himself necessary both to the Parliament and to the
army. He did not foresee, till too late, that, by paltering with the
Presbyterians, he should put both them and himself into the power
of a fiercer and more daring party. If he had foreseen it, we suspect
that the royal blood which still cries to Heaven, every thirtieth of
January, for judgments only to be averted by salt-fish and egg-
sauce, would never have been shed. One who had swallowed the
Scotch Declaration would scarcely strain at the Covenant.
The death of Charles and the strong measures which led to it
raised Cromwell to a height of power fatal to the infant
Commonwealth. No men occupy so splendid a place in history as
those who have founded monarchies on the ruins of republican
institutions. Their glory, if not of the purest, is assuredly of the most
seductive and dazzling kind. In nations broken to the curb, in nations
long accustomed to be transferred from one tyrant to another, a man
without eminent qualities may easily gain supreme power. The
defection of a troop of guards, a conspiracy of eunuchs, a popular
tumult, might place an indolent senator or a brutal soldier on the
throne of the Roman world. Similar revolutions have often occurred
in the despotic states of Asia. But a community which has heard the
voice of truth and experienced the pleasures of liberty, in which the
merits of statesmen and of systems are freely canvassed, in which
obedience is paid, not to persons but to laws, in which magistrates
are regarded, not as the lords, but as the servants of the public, in
which the excitement of party is a necessary of life, in which political
warfare is reduced to a system of tactics; such a community is not
easily reduced to servitude. Beasts of burden may easily be
managed by a new master. But will the wild ass submit to the
bonds? Will the unicorn serve and abide by the crib? Will leviathan
hold out his nostrils to the hook? The mythological conqueror of the
East, whose enchantments reduced wild beasts to the tameness of
domestic cattle, and who harnessed lions and tigers to his chariot, is
but an imperfect type of those extraordinary minds which have
thrown a spell on the fierce spirits of nations unaccustomed to
control, and have compelled raging factions to obey their reins and
swell their triumph. The enterprise, be it good or bad, is one which
requires a truly great man. It demands courage, activity, energy,
wisdom, firmness, conspicuous virtues, or vices so splendid and
alluring as to resemble virtues.
Those who have succeeded in this arduous undertaking form a
very small and a very remarkable class. Parents of tyranny, heirs of
freedom, kings among citizens, citizens among kings, they unite in
themselves the characteristics of the system which springs from
them, and those of the system from which they have sprung. Their
reigns shine with a double light, the last and dearest rays of
departing freedom mingled with the first and brightest glories of
empire in its dawn. The high qualities of such a prince lend to
despotism itself a charm drawn from the liberty under which they
were formed, and which they have destroyed. He resembles an
European who settles within the Tropics, and carries thither the
strength and the energetic habits acquired in regions more
propitious to the constitution. He differs as widely from princes
nursed in the purple of imperial cradles, as the companions of Gama
from their dwarfish and imbecile progeny which, born in a climate
unfavourable to its growth and beauty, degenerates more and more,
at every descent, from the qualities of the original conquerors.
In this class three men stand preeminent, Cæsar, Cromwell, and
Bonaparte. The highest place in this remarkable triumvirate belongs
undoubtedly to Cæsar. He united the talents of Bonaparte to those
of Cromwell; and he possessed also, what neither Cromwell nor
Bonaparte possessed, learning, taste, wit, eloquence, the sentiments
and the manners of an accomplished gentleman.
Between Cromwell and Napoleon Mr. Hallam has instituted a
parallel, scarcely less ingenious than that which Burke has drawn
between Richard Cour de Lion and Charles the Twelfth of Sweden. In
this parallel, however, and indeed throughout his work, we think that
he hardly gives Cromwell fair measure.
“Cromwell,” says he, “far unlike his antitype, never showed any
signs of a legislative mind, or any desire to place his renown on that
noblest basis, the amelioration of social institutions.” The difference
in this respect, we conceive, was not in the character of the men,
but in the characters of the revolutions by means of which they rose
to power. The civil war in England had been undertaken to defend
and restore; the republicans of France set themselves to destroy. In
England, the principles of the common law had never been
disturbed, and most even of its forms had been held sacred. In
France, the law and its ministers had been swept away together. In
France, therefore, legislation necessarily became the first business of
the first settled government which rose on the ruins of the old
system. The admirers of Inigo Jones have always maintained that his
works are inferior to those of Sir Christopher Wren, only because the
great fire of London gave Wren such a field for the display of his
powers as no architect in the history of the world ever possessed.
Similar allowance must be made for Cromwell. If he erected little
that was new, it was because there had been no general devastation
to clear a space for him. As it was, he reformed the representative
system in a most judicious manner. He rendered the administration
of justice uniform throughout the island. We will quote a passage
from his speech to the Parliament in September, 1656, which
contains, we think, simple and rude as the diction is, stronger
indications of a legislative mind, than are to be found in the whole
range of orations delivered on such occasions before or since.
“There is one general grievance in the nation. It is the law. I think,
I may say it, I have as eminent judges in this land as have been
had, or that the nation has had for these many years. Truly, I could
be particular as to the executive part, to the administration; but that
would trouble you. But the truth of it is, there are wicked and
abominable laws that will be in your power to alter. To hang a man
for sixpence, threepence, I know not what,—to hang for a trifle, and
pardon murder, is in the ministration of the law through the ill
framing of it. I have known in my experience abominable murders
quitted; and to see men lose their lives for petty matters! This is a
thing that God will reckon for; and I wish it may not lie upon this
nation a day longer than you have an opportunity to give a remedy;
and I hope I shall cheerfully join with you in it.”
Mr. Hallam truly says that, though it is impossible to rank Cromwell
with Napoleon as a general, yet “his exploits were as much above
the level of his contemporaries, and more the effects of an original
uneducated capacity.” Bonaparte was trained in the best military
schools; the army which he led to Italy was one of the finest that
ever existed. Cromwell passed his youth and the prime of his
manhood in a civil situation. He never looked on war till he was
more than forty years old. He had first to form himself, and then to
form his troops. Out of raw levies he created an army, the bravest
and the best disciplined, the most orderly in peace, and the most
terrible in war, that Europe had seen. He called this body into
existence. He led it to conquest. He never fought a battle without
gaining it. He never gained a battle without annihilating the force
opposed to him. Yet his victories were not the highest glory of his
military system. The respect which his troops paid to property, their
attachment to the laws and religion of their country, their submission
to the civil power, their temperance, their intelligence, their industry,
are without parallel. It was after the Restoration that the spirit which
their great leader had infused into them was most signally displayed.
At the command of the established government, an established
government which had no means of enforcing obedience, fifty
thousand soldiers, whose backs no enemy had ever seen, either in
domestic or in continental war, laid down their arms, and retired into
the mass of the people, thenceforward to be distinguished only by
superior diligence, sobriety, and regularity in the pursuits of peace,
from the other members of the community which they had saved.
In the general spirit and character of his administration, we think
Cromwell far superior to Napoleon. “In civil government,” says Mr.
Hallam, “there can be no adequate parallel between one who had
sucked only the dregs of a besotted fanaticism, and one to whom
the stores of reason and philosophy were open.” These expressions,
it seems to us, convey the highest eulogium on our great
countryman. Reason and philosophy did not teach the conqueror of
Europe to command his passions, or to pursue, as a first object, the
happiness of his people. They did not prevent him from risking his
fame and his power in a frantic contest against the principles of
human nature and the laws of the physical world, against the rage of
the winter and the liberty of the sea. They did not exempt him from
the influence of that most pernicious of superstitions, a
presumptuous fatalism. They did not preserve him from the
inebriation of prosperity, or restrain him from indecent
querulousness in adversity. On the other hand, the fanaticism of
Cromwell never urged him on impracticable undertakings, or
confused his perception of the public good. Our countryman, inferior
to Bonaparte in invention, was far superior to him in wisdom. The
French Emperor is among conquerors what Voltaire is among
writers, a miraculous child. His splendid genius was frequently
clouded by fits of humour as absurdly perverse as those of the pet
of the nursery, who quarrels with his food, and dashes his playthings
to pieces. Cromwell was emphatically a man. He possessed, in an
eminent degree, that masculine and full-grown robustness of mind,
that equally diffused intellectual health, which, if our national
partiality does not mislead us, has peculiarly characterised the great
men of England. Never was any ruler so conspicuously born for
sovereignty. The cup which has intoxicated almost all others sobered
him. His spirit, restless from its own buoyancy in a lower sphere,
reposed in majestic placidity as soon as it had reached the level
congenial to it. He had nothing in common with that large class of
men who distinguish themselves in subordinate posts, and whose
incapacity becomes obvious as soon as the public voice summons
them to take the lead. Rapidly as his fortunes grew, his mind
expanded more rapidly still. Insignificant as a private citizen, he was
a great general; he was a still greater prince. Napoleon had a
theatrical manner, in which the coarseness of a revolutionary guard-
room was blended with the ceremony of the old Court of Versailles.
Cromwell, by the confession even of his enemies, exhibited in his
demeanour the simple and natural nobleness of a man neither
ashamed of his origin nor vain of his elevation, of a man who had
found his proper place in society, and who felt secure that he was
competent to fill it. Easy, even to familiarity, where his own dignity
was concerned, he was punctilious only for his country. His own
character he left to take care of itself; he left it to be defended by
his victories in war, and his reforms in peace. But he was a jealous
and implacable guardian of the public honour. He suffered a crazy
Quaker to insult him in the gallery of Whitehall, and revenged
himself only by liberating him and giving him a dinner. But he was
prepared to risk the chancel of war to avenge the blood of a private
Englishman.
No sovereign ever carried to the throne so large a portion of the
best qualities of the middling orders, so strong a sympathy with the
feelings and interests of his people. He was sometimes driven to
arbitrary measures; but he had a high, stout, honest, English heart.
Hence it was that he loved to surround his throne with such men as
Hale and Blake. Hence it was that he allowed so large a share of
political liberty to his subjects, and that, even when an opposition
dangerous to his power and to his person almost compelled him to
govern by the sword, he was still anxious to leave a germ from
which, at a more favourable season, free institutions might spring.
We firmly believe that, if his first Parliament had not commenced its
debates by disputing his title, his government would have been as
mild at home as it was energetic and able abroad. He was a soldier;
he had risen by war. Had his ambition been of an impure or selfish
kind, it would have been easy for him to plunge his country into
continental hostilities on a large scale, and to dazzle the restless
factions which he ruled, by the splendour of his victories. Some of
his enemies have sneeringly remarked, that in the successes
obtained under his administration he had no personal share; as if a
man who had raised himself from obscurity to empire solely by his
military talents could have any unworthy reason for shrinking from
military enterprise. This reproach is his highest glory. In the success
of the English navy he could have no selfish interest. Its triumphs
added nothing to his fame; its increase added nothing to his means
of overawing his enemies; its great leader was not his friend. Yet he
took a peculiar pleasure in encouraging that noble service which, of
all the instruments employed by an English government, is the most
impotent for mischief, and the most powerful for good. His
administration was glorious, but with no vulgar glory. It was not one
of those periods of overstrained and convulsive exertion which
necessarily produce debility and langour. Its energy was natural,
healthful, temperate. He placed England at the head of the
Protestant interest, and in the first rank of Christian powers. He
taught every nation to value her friendship and to dread her enmity.
But he did not squander her resources in a vain attempt to invest
her with that supremacy which no power, in the modern system of
Europe, can safely affect, or can long retain.
This noble and sober wisdom had its reward. If he did not carry
the banners of the Commonwealth in triumph to distant capitals, if
he did not adorn Whitehall with the spoils of the Stadthouse and the
Louvre, if he did not portion out Flanders and Germany into
principalities for his kinsmen and his generals, he did not, on the
other hand, see his country overrun by the armies of nations which
his ambition had provoked. He did not drag out the last years of his
life an exile and a prisoner, in an unhealthy climate and under an
ungenerous gaoler, raging with the impotent desire of vengeance,
and brooding over visions of departed glory. He went down to his
grave in the fulness of power and fame; and he left to his son an
authority which any man of ordinary firmness and prudence would
have retained.
But for the weakness of that foolish Ishbosheth, the opinions
which we have been expressing would, we believe, now have formed
the orthodox creed of good Englishmen. We might now be writing
under the government of his Highness Oliver the Fifth or Richard the
Fourth, Protector, by the grace of God, of the Commonwealth of
England, Scotland, and Ireland, and the dominions thereto
belonging. The form of the great founder of the dynasty, on
horseback, as when he led the charge at Naseby, or on foot, as
when he took the mace from the table of the Commons, would
adorn our squares and overlook our public offices from Charing-
Cross; and sermons in his praise would be duly preached on his
lucky day, the third of September, by court-chaplains, guiltless of the
abomination of the surplice.
But, though his memory has not been taken under the patronage
of any party, though every device has been used to blacken it,
though to praise him would long have been a punishable crime,
truth and merit at last prevail. Cowards who had trembled at the
very sound of his name, tools of office who, like Downing, had been
proud of the honour of lacqueying his coach, might insult him in
loyal speeches and addresses. Venal poets might transfer to the King
the same eulogies, little the worse for wear, which they had
bestowed on the Protector. A fickle multitude might crowd to shout
and scoff round the gibbeted remains of the greatest Prince and
Soldier of the age. But when the Dutch cannon startled an
effeminate tyrant in his own palace, when the conquests which had
been won by the armies of Cromwell were sold to pamper the
harlots of Charles, when Englishmen were sent to fight under foreign
banners, against the independence of Europe and the Protestant
religion, many honest hearts swelled in secret at the thought of one
who had never suffered his country to be ill used by any but himself.
It must indeed have been difficult for any Englishman to see the
salaried Viceroy of France, at the most important crisis of his fate,
sauntering through his harem, yawning and talking nonsense over a
dispatch, or beslobbering his brother and his courtiers in a fit of
maudlin affection, without a respectful and tender remembrance of
him before whose genius the young-pride of Lewis and the veteran
craft of Mazarin had stood rebuked, who had humbled Spain on the
land and Holland on the sea, and whose imperial voice had arrested
the sails of the Lybian pirates and the persecuting fires of Rome.
Even to the present day his character, though constantly attacked,
and scarcely ever defended, is popular with the great body of our
countrymen.
The most blameable act of his life was the execution of Charles.
We have already strongly condemned that proceeding; but we by no
means consider it as one which attaches any peculiar stigma of
infamy to the names of those who participated in it. It was an unjust
and injudicious display of violent party spirit; but it was not a cruel
or perfidious measure. It had all those features which distinguish the
errors of magnanimous and intrepid spirits from base and malignant
crimes.
From the moment that Cromwell is dead and buried, we go on in
almost perfect harmony with Mr. Hallam to the end of his book. The
times which followed the Restoration peculiarly require that
unsparing impartiality which is his most distinguishing virtue. No part
of our history, during the last three centuries, presents a spectacle of
such general dreariness. The whole breed of our statesmen seems
to have degenerated; and their moral and intellectual littleness
strikes us with the more disgust, because we sec it placed in
immediate contrast with the high and majestic qualities of the race
which they succeeded. In the great civil war, even the bad cause had
been rendered respectable and amiable by the purity and elevation
of mind which many of its friends displayed. Under Charles the
Second, the best and noblest of ends was disgraced by means the
most cruel and sordid. The rage of faction succeeded to the love of
liberty. Loyalty died away into servility. We look in vain among the
leading politicians of either side for steadiness of principle, or even
for that vulgar fidelity to party which, in our time, it is esteemed
infamous to violate. The inconsistency, perfidy, and baseness, which
the leaders constantly practised, which their followers defended, and
which the great body of the people regarded, as it seems, with little
disapprobation, appear in the present age almost incredible. In the
age of Charles the First, they would, we believe, have excited as
much astonishment.
Man, however, is always the same. And when so marked a
difference appears between two generations, it is certain that the
solution may be found in their respective circumstances. The
principal statesmen of the reign of Charles the Second were trained
during the civil war and the revolutions which followed it. Such a
period is eminently favourable to the growth of quick and active
talents. It forms a class of men, shrewd, vigilant, inventive; of men
whose dexterity triumphs over the most perplexing combinations of
circumstances, whose presaging instinct no sign of the times can
elude. But it is an unpropitious season for the firm and masculine
virtues. The statesman who enters on his career at such a time, can
form no permanent connections, can make no accurate observations
on the higher parts of political science. Before he can attach himself
to a party, it is scattered. Before he can study the nature of a
government, it is overturned. The oath of abjuration comes close on
the oath of allegiance. The association which was subscribed
yesterday is burned by the hangman to-day. In the midst of the
constant eddy and change, self-preservation becomes the first object
of the adventurer. It is a task too hard for the strongest head to
keep itself from becoming giddy in the eternal whirl. Public spirit is
out of the question. A laxity of principle, without which no public
man can be eminent or even safe, becomes too common to be
scandalous; and the whole nation looks coolly on Instances of
apostacy which would startle the foulest turncoat of more settled
times.
The history of France since the Revolution affords some striking
illustrations of these remarks. The same man was a servant of the
Republic, of Bonaparte, of Lewis the Eighteenth, of Bonaparte again
after his return from Elba, of Lewis again after his return from
Ghent. Yet all these manifold treasons by no means seemed to
destroy his influence, or even to fix any peculiar stain of infamy on
his character. We, to be sure, did not know what to make of him; but
his countrymen did not seem to be shocked; and in truth they had
little right to be shocked: for there was scarcely one Frenchman
distinguished in the state or in the army, who had not, according to
the best of his talents and opportunities, emulated the example. It
was natural, too, that this should be the case. The rapidity and
violence with which change followed change in the affairs of France
towards the close of the last century had taken away the reproach of
inconsistency, unfixed the principles of public men, and produced in
many minds a general scepticism and indifference about principles of
government.
No Englishman who has studied attentively the reign of Charles
the Second will think himself entitled to indulge in any feelings of
national superiority over the Dictionnaire des Girouettes. Shaftesbury
was surely a far less respectable man than Talleyrand; and it would
be injustice even to Fouché to compare him with Lauderdale.
Nothing, indeed, can more clearly show how low the standard of
political morality had fallen in this country than the fortunes of the
two British statesmen whom we have named. The government
wanted a ruffian to carry on the most atrocious system of mis-
government with which any nation was ever cursed, to extirpate
Presbyterianism by fire and sword, by the drowning of women, by
the frightful torture of the boot. And they found him among the
chiefs of the rebellion and the subscribers of the Covenant. The
opposition looked for a chief to head them in the most desperate
attacks ever made, under the forms of the Constitution, on any
English administration: and they selected the minister who had the
deepest share in the worst acts of the Court, the soul of the Cabal,
the counsellor who had shut up the Exchequer and urged on the
Dutch war. The whole political drama was of the same cast. No unity
of plan, no decent propriety of character and costume, could be
found in that wild and monstrous harlequinade. The whole was
made up of extravagant transformations and burlesque contrasts;
Atheists turned Puritans; Puritans turned Atheists; republicans
defending the divine right of Kings; prostitute courtiers clamouring
for the liberties of the people; judges inflaming the rage of mobs;
patriots pocketing bribes from foreign powers; a Popish prince
torturing Presbyterians into Episcopacy in one part of the island;
Presbyterians cutting off the heads of Popish noblemen and
gentlemen in the other. Public opinion has its natural flux and reflux.
After a violent burst, there is commonly a reaction. But vicissitudes
so extraordinary as those which marked the reign of Charles the
Second can only be explained by supposing an utter want of
principle in the political world. On neither side was there fidelity
enough to face a reverse. Those honourable retreats from power
which, in later days, parties have often made, with loss, but still in
good order, in firm union, with unbroken spirit and formidable means
of annoyance, were utterly unknown. As soon as a check took place
a total rout followed: arms and colours were thrown away. The
vanquished troops, like the Italian mercenaries of the fourteenth and
fifteenth centuries, enlisted on the very field of battle, in the service
of the conquerors. In a nation proud of its sturdy justice and plain
good sense, no party could be found to take a firm middle stand
between the worst of oppositions and the worst of courts. When, on
charges as wild as Mother Goose’s tales, on the testimony of
wretches who proclaimed themselves to be spies and traitors, and
whom everybody now believes to have been also liars and
murderers, the offal of gaols and brothels, the leavings of the
hangman’s whip and shears, Catholics guilty of nothing but their
religion were led like sheep to the Protestant shambles, where were
the loyal Tory gentry and the passively obedient clergy? And where,
when the time of retribution came, when laws were strained and
juries packed to destroy the leaders of the Whigs, when charters
were invaded, when Jefferies and Kirke were making Somersetshire
what Lauderdale and Graham had made Scotland, where were the
ten thousand brisk boys of Shaftesbury, the members of ignoramus
juries, the wearers of the Polish medal? All-powerful to destroy
others, unable to save themselves, the members of the two parties
oppressed and were oppressed, murdered and were murdered, in
their turn. No lucid interval occurred between the frantic paroxysms
of two contradictory illusions.
To the frequent changes of the government during the twenty
years which had preceded the Restoration, this unsteadiness is in a
great measure to be attributed. Other causes had also been at work.
Even if the country had been governed by the house of Cromwell or
by the remains of the Long Parliament, the extreme austerity of the
Puritans would necessarily have produced a revulsion. Towards the
close of the Protectorate many signs indicated that a time of license
was at hand. But the restoration of Charles the Second rendered the
change wonderfully rapid and violent. Profligacy became a test of
orthodoxy and loyalty, a qualification for rank and office. A deep and
general taint infected the morals of the most influential classes, and
spread itself through every province of letters. Poetry inflamed the
passions; philosophy undermined the principles; divinity itself,
inculcating an abject reverence for the Court, gave additional effect
to the licentious example of the Court. We look in vain for those
qualities which lend a charm to the errors of high and ardent
natures, for the generosity, the tenderness, the chivalrous delicacy,
which ennoble appetites into passions, and impart to vice itself a
portion of the majesty of virtue. The excesses of that age remind us
of the humours of a gang of footpads, revelling with their favourite
beauties at a flash-house. In the fashionable libertinism there is a
hard, cold ferocity, an impudence, a lowness, a dirtiness, which can
be paralleled only among the heroes and heroines of that filthy and
heartless literature which encouraged it. One nobleman of great
abilities wanders about as a Merry-Andrew. Another harangues the
mob stark naked from a window. A third lays an ambush to cudgel a
man who has offended him. A knot of gentlemen of high rank and
influence combine to push their fortunes at court by circulating
stories intended to ruin an innocent girl, stories which had no
foundation, and which, if they had been true, would never have
passed the lips of a man of honour. A dead child is found in the
palace, the offspring of some maid of honour by some courtier, or
perhaps by Charles himself. The whole flight of pandars and
buffoons pounce upon it, and carry it in triumph to the royal
laboratory, where his Majesty, after a brutal jest, dissects it for the
amusement of the assembly, and probably of its father among the
rest. The favourite Duchess stamps about Whitehall, cursing and
swearing. The ministers employ their time at the council-board in
making mouths at each other and taking off each other’s gestures
for the amusement of the King. The Peers at a conference begin to
pommel each other and to tear collars and periwigs. A speaker in the
House of Commons gives offence to the Court. He is waylaid by a
gang of bullies, and his nose is cut to the bone. This ignominous
dissoluteness, or rather, if we may venture to designate it by the
only proper word, blackguardism of feeling and manners, could not
but spread from private to public life. The cynical sneers, the
epicurean sophistry, which had driven honour and virtue from one
part of the character, extended their influence over every other. The
second generation of the statesmen of this reign were worthy pupils
of the schools in which they had been trained, of the gaming-table
of Grammont, and the tiring-room of Nell. In no other age could
such a trifler as Buckingham have exercised any political influence.
In no other age could the path to power and glory have been thrown
open to the manifold infamies of Churchill.
The history of Churchill shows, more clearly per haps than that of
any other individual, the malignity and extent of the corruption
which had eaten into the heart of the public morality. An English
gentleman of good family attaches himself to a Prince who has
seduced his sister, and accepts rank and wealth as the price of her
shame and his own. He then repays by ingratitude the benefits
which he has purchased by ignominy, betrays his patron in a manner
which the best cause cannot excuse, and commits an act, not only
of private treachery, but of distinct military desertion. To his conduct
at the crisis of the fate of James, no service in modern times has, as
far as we remember, furnished any parallel. The conduct of Ney,
scandalous enough no doubt, is the very fastidiousness of honour in
comparison of it. The perfidy of Arnold approaches it most nearly. In
our age and country no talents, no services, no party attachments,
could bear any man up under such mountains of infamy. Yet, even
before Churchill had performed those great actions which in some
degree redeem his character with posterity, the load lay very lightly
on him. He had others in abundance to keep him in countenance.
Godolphin, Orford, Dauby, the trimmer Halifax, the renegade
Sunderland, were all men of the same class.
Where such was the political morality of the noble and the
wealthy, it may easily be conceived that those professions which,
even in the best times, are peculiarly liable to corruption, were in a
frightful state. Such a bench and such a bar England has never seen.
Jones, Scroggs, Jefferies, North, Wright, Sawyer, Williams, are to this
day the spots and blemishes of our legal chronicles. Differing in
constitution and in situation, whether blustering or cringing, whether
persecuting Protestants or Catholics, they were equally unprincipled
and inhuman. The part which the Church played was not equally
atrocious; but it must have been exquisitely diverting to a scoffer.
Never were principles so loudly professed, and so shamelessly
abandoned. The Royal prerogative had been magnified to the skies
in theological works. The doctrine of passive obedience had been
preached from innumerable pulpits. The University of Oxford had
sentenced the works of the most moderate constitutionalists to the
flames. The accession of a Catholic King, the frightful cruelties
committed in the west of England, never shook the steady loyalty of
the clergy. But did they serve the Kino; for nought? He laid his hand
on them, and they cursed him to his face. He touched the revenue
of a college and the liberty of some prelates; and the whole
profession set up a yell worthy of Hugh Peters himself. Oxford sent
her plate to an invader with more alacrity than she had shown when
Charles the First requested it. Nothing was said about the
wickedness of resistance till resistance had done its work, till the
anointed vicegerent of Heaven had been driven away, and till it had
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!

ebookmass.com

You might also like