Structure and Interpretation of Computer Programs¶
Abelson, H., Sussman, G. J., & Sussman, J. (1985/1996). Structure and Interpretation of Computer Programs. MIT Press.
Cited by¶
10 citations across 10 artifacts.
Each citation links to the sentence it supports in the citing article.
Primes¶
- Context
- In computing and programming languages, lexical and dynamic scope and namespace resolution make the same identifier resolve to different bindings under different contexts
This sourceTreats environment-based name resolution, contrasting lexical scope (binding fixed by surrounding program text) with dynamic scope (binding fixed by the runtime call stack) as context for identifier binding.
Supported in partVerified against the work's full text
SICP shows names resolving to bindings by lexical scope and environment, but the available text has no dynamic-scope discussion or namespace resolution beyond that.
“Lexical scoping dictates that free variables in a procedure are taken to refer to”
- In computing and programming languages, lexical and dynamic scope and namespace resolution make the same identifier resolve to different bindings under different contexts
- Higher Order Function
- In programming it is
map,filter,reduce, decorators, callbacks, middleware, dependency injection, currying, and monads.This sourceCanonical treatment of higher-order procedures — functions as arguments and return values (map, fold, function factories) — and the view of mathematical operators as the same move.
Supported in partVerified against the work's full text
SICP supports the higher-order-procedure pattern and covers accumulate (reduce) and filtered accumulate; it does not discuss decorators, callbacks, middleware, DI or monads.
“shows how higher-order procedures can serve as powerful abstraction mechanisms”
- In programming it is
- Located-In Relation
- The locatum is the variable; the location is the scope (a function or block); the inclusion region is the lexical extent, with the inclusion test decided by scope rules; and the relation-time is the variable's lifetime
This sourceTreats lexical scoping and closure capture of variables in an environment, the variable's lifetime within its scope.
Supported in partVerified against the work's full text
SICP defines scope and lexical scoping of bound variables in procedures; the locatum/location mapping and the variable-lifetime half are the encyclopedia's own gloss, and lifetime is not in the text held.
“e set of expressions for which a binding defines a name is called the scope of that name.”
- The locatum is the variable; the location is the scope (a function or block); the inclusion region is the lexical extent, with the inclusion test decided by scope rules; and the relation-time is the variable's lifetime
- Meta-Symbolic Reflection
- Programming languages: Lisp's homoiconicity (code is data) enables macros, eval, and reflection APIs; Abelson & Sussman 1985
Supported in partVerified against the work's full text
SICP's preface credits Lisp's uniform representation of programs as data objects; macros and reflection are not covered in the text held, which stops in Chapter 1.
“the metalinguistic power that derives from the simple syntax, the uniform representation of programs as data objects”
- Programming languages: Lisp's homoiconicity (code is data) enables macros, eval, and reflection APIs; Abelson & Sussman 1985
- Portable Context Bundle
- A programmer reasoning about a lexical closure, a lawyer reasoning about stare decisis, an ML engineer reasoning about distribution shift, and an operations engineer reasoning about a frozen container image are reasoning about the same structure: a behaviour-unit that carries its definition-time environment across a context boundary, with a binding rule that determines whether free references resolve against captured or ambient context.
This sourceTreats lexical scoping and the environment model in which a procedure captures and resolves free variables against its definition-time environment.
Supported in partVerified against the work's full text
SICP supplies the programming leg only: free variables in a procedure resolve in the environment where it was defined (lexical scoping), not the cross-domain identity.
“Lexical scoping dictates that free variables in a procedure are taken to refer to bindings made by enclosing procedure ... they are looked up in the environment in which the procedure was”
- A programmer reasoning about a lexical closure, a lawyer reasoning about stare decisis, an ML engineer reasoning about distribution shift, and an operations engineer reasoning about a frozen container image are reasoning about the same structure: a behaviour-unit that carries its definition-time environment across a context boundary, with a binding rule that determines whether free references resolve against captured or ambient context.
- Postponement
- Software. Late binding, lazy evaluation, parametric types, configuration deferred to deploy or first run rather than compile time, and feature flags that decouple release from build.
This sourceTreats delayed (lazy) evaluation, streams, and late binding as deferring commitment until a value is demanded.
Supported in partVerified against the work's full text
SICP backs only the lazy-evaluation item, via normal-order evaluation and delayed streams; late binding, parametric types, deploy-time config and feature flags are not covered.
“On the other hand, normal-order evaluation can be an extremely valuable tool”
- Software. Late binding, lazy evaluation, parametric types, configuration deferred to deploy or first run rather than compile time, and feature flags that decouple release from build.
- Progressive Disclosure
- The well-chosen defaults are the canonical first examples — countdown, factorial — chosen because a typical learner at that depth is well served by them.
This sourceUses factorial and counting-down recursions as the canonical first examples for teaching recursive process (Section 1.2).
Supported in partVerified against the work's full text
SICP section 1.2.1 opens its treatment of recursive processes with factorial, but has no countdown example and gives a different rationale than typical-learner defaults.
“We begin by considering the factorial function”
- The well-chosen defaults are the canonical first examples — countdown, factorial — chosen because a typical learner at that depth is well served by them.
Domain-specific¶
Mechanisms¶
- Lazy Sequence Generator
- The discipline is to bound infinite sources at the consumer
This sourceDemonstrates lazy infinite streams that compute only the finite portion a consumer accesses.
- The discipline is to bound infinite sources at the consumer
Verification¶
Does it exist? Not checked yet. This entry carries no identifier to resolve. It was extracted from the citation as written in the article, normalized, and deduplicated against the rest of the registry.
Does it back the claim? Read against the text for 7 of 10 citations: 7 supported in part. Each verdict is shown under its citation below, with what in the work backs the sentence.
Support is checked per citation rather than per work — the same source can be cited soundly in one article and wrongly in another. Per-citation recording began recently, so a citation with no recorded check is a gap in the record rather than evidence it went unchecked.
See how references were verified.
Links previously used in the corpus¶
Before the registry existed this work was also linked 1 other way.
Registry ID ref:1217be55cfec · see in the full table