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
- 218
- Edition
- 1
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
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 notations used in computer science, the formal models used to design phases, and the foundations of languages including linguistics and logic. To give students a thorough, working knowledge of programming languages, this textbook uses a semester-long project in which students create a programming language. This project brings to life the concepts and theories fundamental to computer languages. The author incorporates "thinking tools" such as concept maps, matrices for analysis, and flowcharts. Designed for fourth year undergraduates and first year graduates with enough exposure to programming to absorb the technical foundations of languages, this textbook offers a unique approach to understanding how programming languages are created and function.
โฆ Table of Contents
au7016fm......Page 1
Programming Language Fundamentals by Example......Page 3
CONTENTS......Page 5
LIST OF FIGURES......Page 11
THE AUTHOR......Page 13
PREFACE......Page 14
AVAILABILITY OF COURSE MATERIALS......Page 15
Appendix A: REFLECTIONS BY ONE GOOD STUDENT......Page 0
1.1 EXPECTATIONS FOR THE STUDENT AND INSTRUCTOR......Page 16
1.2 OPENING COMMENTS......Page 17
1.3 POSSIBLE SEMESTER COURSE......Page 19
1.3.1.1 Learning Principle 1: Prior Knowledge......Page 20
1.3.1.2 Learning Principle 2: Foundational Knowledge......Page 22
1.4.1 Milestone Maps......Page 23
2.1 MEMORANDUM FROM THE PRESIDENT......Page 25
2.2.1 Cambridge Polish......Page 26
2.2.2 A Note on Notation......Page 27
2.3 SOL......Page 28
2.4.2 Variables......Page 29
2.5.1 Stack Control Operations......Page 30
2.6.2 Select-Selection......Page 31
2.7 EXPRESSIONS......Page 32
2.8 INPUT FILE STRUCTURES AND FILE SCOPE......Page 33
2.9 DERIVED TYPES......Page 34
2.10.2 Scoping within Functions and Compound Statements......Page 35
2.12 PRIMITIVE FUNCTIONS AND ARGUMENTS......Page 36
2.13.1 Reads, Writes, and File Operations......Page 37
2.14 TYPE CONVERSIONS......Page 40
PART I: MILESTONES......Page 42
3.1.1 Contract Grading......Page 43
3.2.1 Design Information......Page 44
3.4 MAKEFILE PROTOTYPE......Page 45
MILESTONE REQUIREMENTS: INTRODUCTION TO Gforth......Page 48
MILESTONE REPORT......Page 49
INTRODUCTION TO Gforth......Page 50
PROGRAMMING IN Gforth......Page 52
Assignment......Page 53
CASE 3. ROUND 2: MORE ARITHMETIC......Page 54
Defining User Words......Page 55
CASE 6. FUNCTIONS......Page 56
CASE 7. PROJECT MANAGEMENT......Page 58
OBJECTIVES......Page 59
ADDITIONAL INFORMATION......Page 60
Finite State Automata......Page 61
CASE 10. FINITE STATE MACHINE DESIGN......Page 64
CASE 11. REASONING ABOUT DESIGN......Page 65
Database Management 101......Page 66
Second-Order Analysis of Symbols......Page 68
OBJECTIVES......Page 70
Detailed Information......Page 71
Specific Grading Points......Page 72
Basic Terminology......Page 73
CASE 15. CONVERSION OF FINITE STATE AUTOMATON GRAPHS TO GRAMMARS......Page 74
Context-Free Productions......Page 75
Derivations......Page 76
Production Systems......Page 78
Parse Trees......Page 79
CASE 16. CONVERTING THE S PRODUCTION TO CODE......Page 81
CASE 18. DEVELOPING THE PARSING GRAMMAR......Page 82
ASSIGNMENT......Page 84
WHAT IS A TYPE?......Page 85
REASONING ABOUT TYPES......Page 86
DEVELOPING TYPE RULES......Page 87
TYPE CONVERSION MATRIX......Page 88
SPECIFICATION FOR THE WHOLE TYPE CHECKER......Page 89
CASE 23. SHOULD BOOLS BE ALLOWED?......Page 90
UNIFICATION AND TYPE CHECKING ALGORITHM......Page 91
CASE 25. DEVELOPING THE TYPE CHECKING ALGORITHM......Page 92
PROFESSIONAL METHODS AND VALUES......Page 93
PERFORMANCE OBJECTIVES......Page 94
STRING IMPLEMENTATION......Page 95
MILESTONE REPORT......Page 97
Professional Methods and Values......Page 98
SCOPING AND SOL......Page 99
Symbol Table Issues......Page 100
Space Management Issues......Page 101
CASE 30. STACK EFFECTS......Page 102
ASSIGNMENT......Page 103
BINDING THE FUNCTION NAME TO THE FUNCTION......Page 104
RECURSIVE AND NONRECURSIVE FUNCTIONS......Page 105
Storage Management Issues......Page 106
PROFESSIONAL METHODS AND VALUES......Page 108
FUNDAMENTAL CONCEPTS......Page 109
Array Development......Page 110
Defining Structures......Page 113
ASSIGNMENT......Page 115
Destroying Allocated Structures......Page 114
INHERITANCE......Page 116
POLYMORPHISM......Page 117
PART II: GENERAL INFORMATION......Page 119
4.1.1 Week 1......Page 120
4.2.1 The Exercise......Page 121
4.2.2 Why It Works......Page 122
5.1.1 Technical Vocabulary......Page 123
5.1.2 Deliverable......Page 124
5.2 PHILOSOPHY OF LINGUISTICS......Page 125
5.3 MEANING: LANGUAGE, MIND, AND WORLD......Page 126
5.4 WHAT IS SYNTAX?......Page 127
CASE 35. WHAT CAN WE LEARN FROM A DICTIONARY?......Page 129
CASE 36. HOW DOES WHAT WE LEARNED PLAY OUT IN PROGRAMMING LANGUAGES?......Page 131
CASE 37. ENGLISH GRAMMAR WITH PRODUCTION RULES......Page 132
CASE 38. GRAMMARS IN PROGRAMMING LANGUAGES......Page 133
5.6 SEMANTICS......Page 135
5.7.1 Survey and Question......Page 136
5.7.4 Review......Page 138
6.1 METALANGUAGE VERSUS OBJECT LANGUAGE......Page 139
CASE 39. WHAT IS THE PROPER WAY TO FORM JAVA SYMBOLS?......Page 140
6.3 STRUCTURAL INDUCTION......Page 141
6.4 INTERPRETATION SEMANTICS......Page 142
6.5 WHAT ABOUT PRAGMATICS?......Page 144
7.1 A GENERAL FRAMEWORK......Page 145
7.2 TYPES......Page 146
7.4 DEFINING A LANGUAGE......Page 147
7.4.2 Evolution......Page 148
CASE 47. DESIGNING MODULES......Page 149
8.1 INTRODUCTION TO DESIGN......Page 151
8.2.1 Linguistic Issues......Page 152
8.2.2 Schemata......Page 153
8.3 USING THESE IDEAS IN DESIGN......Page 154
8.3.1 Understanding the Semantics of Grammars......Page 155
8.3.1.2 Dealing with Nonterminals......Page 156
8.3.2 Designing a Postfix Printer Program......Page 157
8.3.3 Calculator......Page 159
8.4 DESIGN RECAP......Page 160
CASE 49. EARLY HISTORY OF PROGRAMMING LANGUAGES......Page 162
9.3 SCOPE......Page 163
9.4.1 Syntax......Page 165
9.4.2 Semantics......Page 166
9.4.4 Recursion and the Unfolding Model......Page 167
9.4.5 Arguments, Prologues, and Epilogues......Page 168
9.4.5.1 Argument Passing......Page 169
9.5 IMPLEMENTATION ISSUES......Page 170
10.1 COMPUTER MEMORY......Page 171
10.2 DETERMINING THE SIZE REQUIRED......Page 172
10.2.3 Arrays......Page 173
10.2.3.2 One-Dimensional Arrays with Nonstandard Origins......Page 175
10.3 RUNTIME STORAGE MANAGEMENT......Page 176
10.3.2 Stack Frame......Page 177
CASE 58. LISTING ACTIVATION RECORDS......Page 178
CHAPTER 11: PERSONAL SOFTWARE DESIGN PROCESS PORTFOLIO......Page 179
11.1.2 A Three-Credit Course Is Nine Hours......Page 180
11.1.4 Keeping Track of Programming Time......Page 181
11.2 DISCOVERING HOW LONG IT TAKES TO WRITE A PROGRAM......Page 182
11.2.2 Work Breakdown Structure......Page 183
11.3.1 Baseline and Schedule Variance Computations......Page 184
11.3.3 Process......Page 185
11.4 SUMMARY INFORMATION FOR PDSPP0......Page 187
11.5 REQUIREMENTS TEMPLATE (RWT)......Page 188
11.8 DEFECT LOG TEMPLATE (DLT)......Page 189
12.1 LOOKING BEHIND......Page 191
12.1.3 Arab Mathematics......Page 192
12.1.4 Hindu Number Systems and Algebra......Page 193
12.1.7 Babylonian Algebra......Page 194
12.2 THE ROLE OF THE lambda-CALCULUS......Page 195
12.2.2 Computability......Page 197
12.3 MOVING FORWARD FROM 1954......Page 198
12.4.1 Imperative Languages from 1954 to 1965......Page 199
12.4.3 SNOBOL and Pattern Matching......Page 200
12.5.2 The Advent of Logical Programming......Page 201
12.7 THE PARALLEL PROCESSING REVOLUTION......Page 202
12.7.2 Languages for Non-SISD Architectures......Page 203
12.8 CRITIQUE OF THE PRESENT......Page 205
A.2 MILESTONES II AND III......Page 206
A.2.4 Implementing the Parser......Page 207
A.3.1 Designing the Symbol Table and Type Checker......Page 208
A.3.3 Testing Concerns......Page 209
A.4.1 Implementing a Library in Gforth......Page 210
A.6 MILESTONE VI......Page 211
A.6.2 Variable Assignment......Page 212
A.7 MILESTONE VII......Page 213
A.8 REFLECTION ON THIS COURSE......Page 214
REFERENCES......Page 216
๐ SIMILAR VOLUMES
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 woul
ๅ ๅฎน็ฎไป ยท ยท ยท ยท ยท ยท 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