Written in an informal yet informative style, Programming Language Fundamentals by Example uses active learning techniques, giving students a professional learning experience based on professional methods applied with professional standards. It provides an understanding of the many languages and no
Programming Language Fundamentals by Example
โ Scribed by D.E. Stevenson
- Publisher
- Auerbach Publications
- Year
- 2006
- Tongue
- English
- Leaves
- 219
- Edition
- 1
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
This is a masterpiece written by a pedagogue devoted to the subject. This book is a must-have for those who are serious about understanding computing algorithms and languages.
The author has written with a depth that requires regular reflection, as he writes in a succinct style, on topics that would possibly require (for some, especially undergraduates) reading other books to help understand parts of his explanations. He gives a nice history on the development of computer languages.
The reader must be able to put the book's project exercises into practice to benefit from what the book has to offer. It requires some programming experience, preferably in C, or better still, in Forth. It appears to have been written for a series of lectures given by the author. The Appendix shows a copy of a successful student's reflections on the course, and the student states that the course is intensive, requiring research into materials elsewhere to support his efforts. It is a book best needed by gifted post-graduates wishing to become experts in developing a compiler while creating a simple object language (called SOL in the book)
The book is best used while doing the course given by the author. However, it could still be of use to the experienced, self-taught (self-teaching) non-academic student. For the non-graduate, the book might warrant 2 stars; for the devoted, gifted, and practising student, the book could be worth at least 4 stars. I therefore give it 3 stars.
โฆ Table of Contents
0849370167......Page 1
au7016fm......Page 2
Programming Language Fundamentals by Example......Page 4
CONTENTS......Page 6
LIST OF FIGURES......Page 12
THE AUTHOR......Page 14
PREFACE......Page 15
AVAILABILITY OF COURSE MATERIALS......Page 16
Appendix A: REFLECTIONS BY ONE GOOD STUDENT......Page 0
1.1 EXPECTATIONS FOR THE STUDENT AND INSTRUCTOR......Page 17
1.2 OPENING COMMENTS......Page 18
1.3 POSSIBLE SEMESTER COURSE......Page 20
1.3.1.1 Learning Principle 1: Prior Knowledge......Page 21
1.3.1.2 Learning Principle 2: Foundational Knowledge......Page 23
1.4.1 Milestone Maps......Page 24
2.1 MEMORANDUM FROM THE PRESIDENT......Page 26
2.2.1 Cambridge Polish......Page 27
2.2.2 A Note on Notation......Page 28
2.3 SOL......Page 29
2.4.2 Variables......Page 30
2.5.1 Stack Control Operations......Page 31
2.6.2 Select-Selection......Page 32
2.7 EXPRESSIONS......Page 33
2.8 INPUT FILE STRUCTURES AND FILE SCOPE......Page 34
2.9 DERIVED TYPES......Page 35
2.10.2 Scoping within Functions and Compound Statements......Page 36
2.12 PRIMITIVE FUNCTIONS AND ARGUMENTS......Page 37
2.13.1 Reads, Writes, and File Operations......Page 38
2.14 TYPE CONVERSIONS......Page 41
PART I: MILESTONES......Page 43
3.1.1 Contract Grading......Page 44
3.2.1 Design Information......Page 45
3.4 MAKEFILE PROTOTYPE......Page 46
MILESTONE REQUIREMENTS: INTRODUCTION TO Gforth......Page 49
MILESTONE REPORT......Page 50
INTRODUCTION TO Gforth......Page 51
PROGRAMMING IN Gforth......Page 53
Assignment......Page 54
CASE 3. ROUND 2: MORE ARITHMETIC......Page 55
Defining User Words......Page 56
CASE 6. FUNCTIONS......Page 57
CASE 7. PROJECT MANAGEMENT......Page 59
OBJECTIVES......Page 60
ADDITIONAL INFORMATION......Page 61
Finite State Automata......Page 62
CASE 10. FINITE STATE MACHINE DESIGN......Page 65
CASE 11. REASONING ABOUT DESIGN......Page 66
Database Management 101......Page 67
Second-Order Analysis of Symbols......Page 69
OBJECTIVES......Page 71
Detailed Information......Page 72
Specific Grading Points......Page 73
Basic Terminology......Page 74
CASE 15. CONVERSION OF FINITE STATE AUTOMATON GRAPHS TO GRAMMARS......Page 75
Context-Free Productions......Page 76
Derivations......Page 77
Production Systems......Page 79
Parse Trees......Page 80
CASE 16. CONVERTING THE S PRODUCTION TO CODE......Page 82
CASE 18. DEVELOPING THE PARSING GRAMMAR......Page 83
ASSIGNMENT......Page 85
WHAT IS A TYPE?......Page 86
REASONING ABOUT TYPES......Page 87
DEVELOPING TYPE RULES......Page 88
TYPE CONVERSION MATRIX......Page 89
SPECIFICATION FOR THE WHOLE TYPE CHECKER......Page 90
CASE 23. SHOULD BOOLS BE ALLOWED?......Page 91
UNIFICATION AND TYPE CHECKING ALGORITHM......Page 92
CASE 25. DEVELOPING THE TYPE CHECKING ALGORITHM......Page 93
PROFESSIONAL METHODS AND VALUES......Page 94
PERFORMANCE OBJECTIVES......Page 95
STRING IMPLEMENTATION......Page 96
MILESTONE REPORT......Page 98
Professional Methods and Values......Page 99
SCOPING AND SOL......Page 100
Symbol Table Issues......Page 101
Space Management Issues......Page 102
CASE 30. STACK EFFECTS......Page 103
ASSIGNMENT......Page 104
BINDING THE FUNCTION NAME TO THE FUNCTION......Page 105
RECURSIVE AND NONRECURSIVE FUNCTIONS......Page 106
Storage Management Issues......Page 107
PROFESSIONAL METHODS AND VALUES......Page 109
FUNDAMENTAL CONCEPTS......Page 110
Array Development......Page 111
Defining Structures......Page 114
ASSIGNMENT......Page 116
Destroying Allocated Structures......Page 115
INHERITANCE......Page 117
POLYMORPHISM......Page 118
PART II: GENERAL INFORMATION......Page 120
4.1.1 Week 1......Page 121
4.2.1 The Exercise......Page 122
4.2.2 Why It Works......Page 123
5.1.1 Technical Vocabulary......Page 124
5.1.2 Deliverable......Page 125
5.2 PHILOSOPHY OF LINGUISTICS......Page 126
5.3 MEANING: LANGUAGE, MIND, AND WORLD......Page 127
5.4 WHAT IS SYNTAX?......Page 128
CASE 35. WHAT CAN WE LEARN FROM A DICTIONARY?......Page 130
CASE 36. HOW DOES WHAT WE LEARNED PLAY OUT IN PROGRAMMING LANGUAGES?......Page 132
CASE 37. ENGLISH GRAMMAR WITH PRODUCTION RULES......Page 133
CASE 38. GRAMMARS IN PROGRAMMING LANGUAGES......Page 134
5.6 SEMANTICS......Page 136
5.7.1 Survey and Question......Page 137
5.7.4 Review......Page 139
6.1 METALANGUAGE VERSUS OBJECT LANGUAGE......Page 140
CASE 39. WHAT IS THE PROPER WAY TO FORM JAVA SYMBOLS?......Page 141
6.3 STRUCTURAL INDUCTION......Page 142
6.4 INTERPRETATION SEMANTICS......Page 143
6.5 WHAT ABOUT PRAGMATICS?......Page 145
7.1 A GENERAL FRAMEWORK......Page 146
7.2 TYPES......Page 147
7.4 DEFINING A LANGUAGE......Page 148
7.4.2 Evolution......Page 149
CASE 47. DESIGNING MODULES......Page 150
8.1 INTRODUCTION TO DESIGN......Page 152
8.2.1 Linguistic Issues......Page 153
8.2.2 Schemata......Page 154
8.3 USING THESE IDEAS IN DESIGN......Page 155
8.3.1 Understanding the Semantics of Grammars......Page 156
8.3.1.2 Dealing with Nonterminals......Page 157
8.3.2 Designing a Postfix Printer Program......Page 158
8.3.3 Calculator......Page 160
8.4 DESIGN RECAP......Page 161
CASE 49. EARLY HISTORY OF PROGRAMMING LANGUAGES......Page 163
9.3 SCOPE......Page 164
9.4.1 Syntax......Page 166
9.4.2 Semantics......Page 167
9.4.4 Recursion and the Unfolding Model......Page 168
9.4.5 Arguments, Prologues, and Epilogues......Page 169
9.4.5.1 Argument Passing......Page 170
9.5 IMPLEMENTATION ISSUES......Page 171
10.1 COMPUTER MEMORY......Page 172
10.2 DETERMINING THE SIZE REQUIRED......Page 173
10.2.3 Arrays......Page 174
10.2.3.2 One-Dimensional Arrays with Nonstandard Origins......Page 176
10.3 RUNTIME STORAGE MANAGEMENT......Page 177
10.3.2 Stack Frame......Page 178
CASE 58. LISTING ACTIVATION RECORDS......Page 179
CHAPTER 11: PERSONAL SOFTWARE DESIGN PROCESS PORTFOLIO......Page 180
11.1.2 A Three-Credit Course Is Nine Hours......Page 181
11.1.4 Keeping Track of Programming Time......Page 182
11.2 DISCOVERING HOW LONG IT TAKES TO WRITE A PROGRAM......Page 183
11.2.2 Work Breakdown Structure......Page 184
11.3.1 Baseline and Schedule Variance Computations......Page 185
11.3.3 Process......Page 186
11.4 SUMMARY INFORMATION FOR PDSPP0......Page 188
11.5 REQUIREMENTS TEMPLATE (RWT)......Page 189
11.8 DEFECT LOG TEMPLATE (DLT)......Page 190
12.1 LOOKING BEHIND......Page 192
12.1.3 Arab Mathematics......Page 193
12.1.4 Hindu Number Systems and Algebra......Page 194
12.1.7 Babylonian Algebra......Page 195
12.2 THE ROLE OF THE lambda-CALCULUS......Page 196
12.2.2 Computability......Page 198
12.3 MOVING FORWARD FROM 1954......Page 199
12.4.1 Imperative Languages from 1954 to 1965......Page 200
12.4.3 SNOBOL and Pattern Matching......Page 201
12.5.2 The Advent of Logical Programming......Page 202
12.7 THE PARALLEL PROCESSING REVOLUTION......Page 203
12.7.2 Languages for Non-SISD Architectures......Page 204
12.8 CRITIQUE OF THE PRESENT......Page 206
A.2 MILESTONES II AND III......Page 207
A.2.4 Implementing the Parser......Page 208
A.3.1 Designing the Symbol Table and Type Checker......Page 209
A.3.3 Testing Concerns......Page 210
A.4.1 Implementing a Library in Gforth......Page 211
A.6 MILESTONE VI......Page 212
A.6.2 Variable Assignment......Page 213
A.7 MILESTONE VII......Page 214
A.8 REFLECTION ON THIS COURSE......Page 215
REFERENCES......Page 217
๐ SIMILAR VOLUMES
Written in an informal yet informative style, Programming Language Fundamentals by Example uses active learning techniques, giving students a professional learning experience based on professional methods applied with professional standards. It provides an understanding of the many languages and no
ๅ ๅฎน็ฎไป ยท ยท ยท ยท ยท ยท Linux Programming by Example introduces new Linux programmers to the core Linux programming interfaces in a gradual, consistent fashion, progressing intuitively from the basic to the more complex. It covers I/O, file metainformation, users and groups, processes, basic interprocess