Catholic University of Zimbabwe Library
Online Public Access Catalogue
(OPAC)

Programming Languages Application and Interpretation Shriram Krishnamurthi

By: Krishnamurthi, Shriram [author]Contributor(s): Open Textbook Library [distributor]Material type: TextTextSeries: Open textbook libraryDistributor: Open Textbook Library Publisher: Brown University Description: 1 online resourceISBN: 0073523399Subject(s): Computer Science -- TextbooksLOC classification: QA76Online resources: Access online version
Contents:
1 Introduction -- 2 Everything (We Will Say) About Parsing -- 3 A First Look at Interpretation -- 4 A First Taste of Desugaring -- 5 Adding Functions to the Language -- 6 From Substitution to Environments -- 7 Functions Anywhere -- 8 Mutation Structures and Variables -- 9 Recursion and Cycles: Procedures and Data -- 10 Objects -- 11 Memory Management -- 12 Representation Decisions -- 13 Desugaring as a Language Feature -- 14 Control Operations -- 15 Checking Program Invariants Statically: Types -- 16 Checking Program Invariants Dynamically: Contracts -- 17 Alternate Application Semantics
Subject: Unlike some other textbooks, this one does not follow a top-down narrative. Rather it has the flow of a conversation, with backtracking. We will often build up programs incrementally, just as a pair of programmers would. We will include mistakes, not because I don't know the answer, but because this is the best way for you to learn. Including mistakes makes it impossible for you to read passively: you must instead engage with the material, because you can never be sure of the veracity of what you're reading. At the end, you'll always get to the right answer. However, this non-linear path is more frustrating in the short term (you will often be tempted to say, "Just tell me the answer, already!"), and it makes the book a poor reference guide (you can't open up to a random page and be sure what it says is correct). However, that feeling of frustration is the sensation of learning. I don't know of a way around it. At various points you will encounter this: ExerciseThis is an exercise. Do try it. This is a traditional textbook exercise. It's something you need to do on your own. If you're using this book as part of a course, this may very well have been assigned as homework. In contrast, you will also find exercise-like questions that look like this: Do Now!There's an activity here! Do you see it? When you get to one of these, stop. Read, think, and formulate an answer before you proceed. You must do this because this is actually an exercise, but the answer is already in the book-most often in the text immediately following (i.e., in the part you're reading right now)-or is something you can determine for yourself by running a program. If you just read on, you'll see the answer without having thought about it (or not see it at all, if the instructions are to run a program), so you will get to neither (a) test your knowledge, nor (b) improve your intuitions. In other words, these are additional, explicit attempts to encourage active learning. Ultimately, however, I can only encourage it; it's up to you to practice it. The main programming language used in this book is Racket. Like with all operating systems, however, Racket actually supports a host of programming languages, so you must tell Racket which language you're programming in. This textbook has been used in classes at: Brown University, Cal Poly, Columbus State University, Northeastern University, NYU, Reed College, UC-San Diego, UC-Santa Cruz, University of Rhode Island, University of Utah, Westmont College, Williams College, Worcester Polytechnic Institute.
Tags from this library: No tags from this library for this title.
Star ratings
    Average rating: 0.0 (0 votes)
Holdings
Item type Current library Call number URL Status Date due Barcode Item holds
eBook eBook
Online Access
QA76 (Browse shelf(Opens below)) Link to resource Available
Total holds: 0

1 Introduction -- 2 Everything (We Will Say) About Parsing -- 3 A First Look at Interpretation -- 4 A First Taste of Desugaring -- 5 Adding Functions to the Language -- 6 From Substitution to Environments -- 7 Functions Anywhere -- 8 Mutation Structures and Variables -- 9 Recursion and Cycles: Procedures and Data -- 10 Objects -- 11 Memory Management -- 12 Representation Decisions -- 13 Desugaring as a Language Feature -- 14 Control Operations -- 15 Checking Program Invariants Statically: Types -- 16 Checking Program Invariants Dynamically: Contracts -- 17 Alternate Application Semantics

Unlike some other textbooks, this one does not follow a top-down narrative. Rather it has the flow of a conversation, with backtracking. We will often build up programs incrementally, just as a pair of programmers would. We will include mistakes, not because I don't know the answer, but because this is the best way for you to learn. Including mistakes makes it impossible for you to read passively: you must instead engage with the material, because you can never be sure of the veracity of what you're reading. At the end, you'll always get to the right answer. However, this non-linear path is more frustrating in the short term (you will often be tempted to say, "Just tell me the answer, already!"), and it makes the book a poor reference guide (you can't open up to a random page and be sure what it says is correct). However, that feeling of frustration is the sensation of learning. I don't know of a way around it. At various points you will encounter this: ExerciseThis is an exercise. Do try it. This is a traditional textbook exercise. It's something you need to do on your own. If you're using this book as part of a course, this may very well have been assigned as homework. In contrast, you will also find exercise-like questions that look like this: Do Now!There's an activity here! Do you see it? When you get to one of these, stop. Read, think, and formulate an answer before you proceed. You must do this because this is actually an exercise, but the answer is already in the book-most often in the text immediately following (i.e., in the part you're reading right now)-or is something you can determine for yourself by running a program. If you just read on, you'll see the answer without having thought about it (or not see it at all, if the instructions are to run a program), so you will get to neither (a) test your knowledge, nor (b) improve your intuitions. In other words, these are additional, explicit attempts to encourage active learning. Ultimately, however, I can only encourage it; it's up to you to practice it. The main programming language used in this book is Racket. Like with all operating systems, however, Racket actually supports a host of programming languages, so you must tell Racket which language you're programming in. This textbook has been used in classes at: Brown University, Cal Poly, Columbus State University, Northeastern University, NYU, Reed College, UC-San Diego, UC-Santa Cruz, University of Rhode Island, University of Utah, Westmont College, Williams College, Worcester Polytechnic Institute.

Attribution-NonCommercial-ShareAlike

In English.

Description based on print resource

There are no comments on this title.

to post a comment.

OPENING HOURS

Weekdays: 0815hrs - 1800hrs
Weekends:0900hrs - 1200hrs

Closed for Mass:

Mon, Thur: 1200hrs - 1300hrs
Sunday & Public Holiday’s

CALL SUPPORT

0242-570570, 0242-570169
09200664, +263 8644140602

LOCATION

18443, Cranborne Avenue, Hatfield, Harare

Other Links


©2021 | CUZ Library