Programming language fundamentals : (Record no. 95734)

000 -LEADER
fixed length control field 05201cam a22002898i 4500
005 - DATE AND TIME OF LATEST TRANSACTION
control field 20260703085532.0
008 - FIXED-LENGTH DATA ELEMENTS--GENERAL INFORMATION
fixed length control field 260703s2024 nju b 001 0 eng c
020 ## - INTERNATIONAL STANDARD BOOK NUMBER
International Standard Book Number 9781394251537
Qualifying information (hardback)
041 ## - LANGUAGE CODE
Language code of text/sound track or separate title eng
050 00 - LIBRARY OF CONGRESS CALL NUMBER
Classification number QA76.62
Item number .E79 2024
082 00 - DEWEY DECIMAL CLASSIFICATION NUMBER
Classification number 005.13
Edition number 23/eng/20260704
100 1# - MAIN ENTRY--PERSONAL NAME
Preferred name for the person Erwig, Martin,
Relator term author.
245 10 - TITLE STATEMENT
Title Programming language fundamentals :
Remainder of title a metalanguage approach in Elm /
Statement of responsibility, etc Martin Erwig.
264 #1 - PUBLICATION, DISTRIBUTION, ETC. (IMPRINT)
Place of publication, distribution, etc Hoboken, New Jersey :
Name of publisher, distributor, etc Wiley,
Date of publication, distribution, etc [2024]
264 #4 - PUBLICATION, DISTRIBUTION, ETC. (IMPRINT)
Date of publication, distribution, etc ©2024
300 ## - PHYSICAL DESCRIPTION
Extent ix, 211 pages :
Other physical details illustrations ;
Dimensions 26 cm
336 ## - CONTENT TYPE
Content type term text
Content type code txt
Source rdacontent
337 ## - MEDIA TYPE
Media type term unmediated
Media type code n
Source rdamedia
338 ## - CARRIER TYPE
Carrier type term volume
Carrier type code nc
Source rdacarrier
504 ## - BIBLIOGRAPHY, ETC. NOTE
Bibliography, etc Includes bibliographical references and index.
505 0# - CONTENTS
Formatted contents note Table of Contents<br/>Preface vii<br/><br/>About the Companion Website xi<br/><br/>1 Introduction 1<br/><br/>1.1 The Role of Programming Languages in Computer Science 2<br/><br/>1.2 Why Study Programming Language Fundamentals? 4<br/><br/>1.3 What Are the Fundamentals of Programming Languages? 5<br/><br/>1.4 How to Study the Fundamentals of Programming Languages? 8<br/><br/>1.5 About Programming Paradigms 9<br/><br/>2 Functional Programming with Elm 13<br/><br/>2.1 Getting Started 14<br/><br/>2.2 Expressions, Values, and Their Types 18<br/><br/>2.2.1 Naming Values and Expressions 19<br/><br/>2.2.2 Tracing Evaluations 20<br/><br/>2.2.3 Tuples 25<br/><br/>2.3 Functions 26<br/><br/>2.3.1 Function Application 26<br/><br/>2.3.2 Currying and Partial Function Application 27<br/><br/>2.3.3 Function Definitions 29<br/><br/>2.4 Iteration and Recursion 30<br/><br/>2.5 Lists and Pattern Matching 34<br/><br/>2.6 Data Types 40<br/><br/>2.7 Higher-Order Functions 44<br/><br/>3 Syntax 49<br/><br/>3.1 Context-Free Grammars 50<br/><br/>3.2 Parse Trees 54<br/><br/>3.3 Abstract Syntax 56<br/><br/>3.4 Abstract Syntax Idioms 62<br/><br/>3.4.1 Factoring 63<br/><br/>3.4.2 Replacing Grammar Recursion by Lists 65<br/><br/>3.4.3 Grouping Associative Operations Using Lists 68<br/><br/>3.4.4 Representing Optional Syntax Elements 70<br/><br/>4 Denotational Semantics 73<br/><br/>4.1 Defining Semantics in Three Steps 76<br/><br/>4.2 Systematic Construction of Semantic Domains 80<br/><br/>4.2.1 Error Domains 82<br/><br/>4.2.2 Product Domains 86<br/><br/>4.2.3 Union Domains 87<br/><br/>4.2.4 Domains for Modeling Stateful Computation 89<br/><br/>5 Types 97<br/><br/>5.1 Inference Rules 98<br/><br/>5.2 Type Systems 102<br/><br/>5.2.1 The Language of Types 102<br/><br/>5.2.2 Typing Rules 105<br/><br/>5.3 Type Checking 109<br/><br/>5.4 Type Safety 115<br/><br/>5.5 Static and Dynamic Typing 117<br/><br/>6 Scope 123<br/><br/>6.1 The Landscape of Programs: Blocks and Scope 124<br/><br/>6.2 The Runtime Stack 130<br/><br/>6.3 Static vs. Dynamic Scoping 134<br/><br/>7 Parameter Passing 139<br/><br/>7.1 Call-by-Value 141<br/><br/>7.2 Call-by-Reference 144<br/><br/>7.3 Call-by-Value-Result 146<br/><br/>7.4 Call-by-Name 148<br/><br/>7.5 Call-by-Need 150<br/><br/>7.6 Summary 152<br/><br/>8 Logic Programming with Prolog 153<br/><br/>8.1 Getting Started 154<br/><br/>8.2 Predicates and Goals 157<br/><br/>8.2.1 Predicates 158<br/><br/>8.2.2 Goals 159<br/><br/>8.2.3 Repeated Variables (aka Non-linear Patterns) 161<br/><br/>8.2.4 Conjunction 162<br/><br/>8.2.5 Expressing Joins 163<br/><br/>8.2.6 A Simple Operational Evaluation Model for Prolog 165<br/><br/>8.3 Rules 166<br/><br/>8.4 Recursion 171<br/><br/>8.4.1 Trees as Computation Traces 172<br/><br/>8.4.2 Left Recursion 173<br/><br/>8.5 Prolog’s Search Mechanism 174<br/><br/>8.5.1 Unification 175<br/><br/>8.5.2 Scan, Expand, and Backtrack 177<br/><br/>8.6 Structures 179<br/><br/>8.7 Lists 186<br/><br/>8.8 Numbers and Arithmetic 193<br/><br/>8.9 The Cut 195<br/><br/>8.10 Negation 196<br/><br/>Index 203
520 ## - SUMMARY, ETC.
Summary, etc PROGRAMMING LANGUAGE FUNDAMENTALS<br/>Understand the key principles of programming languages<br/><br/>Programming languages are the tools needed to let algorithms run on electronic computers. As they form the linguistic interface between humans and machines, the understanding of programming languages is essential for being able to control machine behavior. Programming Language Fundamentals offers a precise, comprehensive introduction to the principles that are the basis of most programming languages. Explaining both functional programming and logic programming, it presents a broad perspective on programming and constitutes an indispensable introduction to the foundations of programming languages.<br/><br/>Programming Language Fundamentals readers will also find:<br/><br/>Introduction to Elm as a metalanguage to encourage thinking and experimenting with programming languages in a formal way<br/>Detailed discussion of topics including abstract syntax, semantics, types, and more<br/>In-depth explanations of key concepts such as scope and parameter passing<br/>Programming Language Fundamentals is ideal for undergraduate students in computer science, as well as researchers and practitioners working with programming languages who are looking to broaden their understanding of the field.--
Assigning source Provided by publisher.
545 0# - BIOGRAPHICAL OR HISTORICAL DATA
Biographical or historical note About the Author<br/>Martin Erwig, PhD, is the Stretch Professor of Computer Science in the School of Electrical Engineering and Computer Science at Oregon State University, USA. He is the author of the award-winning book Once Upon an Algorithm: How Stories Explain Computing. He serves as an Editorial Board Member of the Journal of Computer Languages and as an Associate Editor of the Journal of Visual Language and Computing.
650 #0 - SUBJECT ADDED ENTRY--TOPICAL TERM
Topical term or geographic name as entry element Functional programming (Computer science)
650 #0 - SUBJECT ADDED ENTRY--TOPICAL TERM
Topical term or geographic name as entry element Logic programming.
942 ## - ADDED ENTRY ELEMENTS
Source of classification or shelving scheme
Item type BOOK
Holdings
Withdrawn status Lost status Source of classification or shelving scheme Damaged status Not for loan Permanent Location Current Location Shelving location Date acquired Source of acquisition Cost, normal purchase price Inventory number Full call number Barcode Date last seen Price effective from Item type
          COLLEGE LIBRARY COLLEGE LIBRARY SUBJECT REFERENCE 2026-04-14 ALBASA 9800.00 56017 005.13 Er93 2024 CITU-CL-56017 2026-06-19 2026-06-19 BOOK

Powered by Koha