| bio | website | brinckerhoff.org |
|---|---|---|
| location | San Luis Obispo, CA | |
| age | 41 | |
| visits | member for | 2 years |
| seen | Apr 17 at 18:40 | |
| stats | profile views | 14 |
Racket Developer, A-Prof @ Cal Poly
|
Apr 17 |
comment |
In Scheme, what is formally a program's state? That's true... unless you instead substitute memory locations, rather than values. That's an unusual combination, though, I agree. |
|
Apr 17 |
comment |
In Scheme, what is formally a program's state? In response to your second question: the environment is part of the state if you're using a model with environments. If you're using substitution, though, you don't need environments. Environments are a way of implementing substitution efficiently. It looks to me like you'd really get a lot out of Shriram Krishnamurthi's (free, online, PDF) textbook, "Programming Languages: Application and Interpretation" |
|
Apr 17 |
comment |
In Scheme, what is formally a program's state? Two responses, to your two comments. In your first comment, you're basically describing the difference between a "small-step" and "big-step" semantics; the first takes many small steps to get to the answer, the second takes one giant step to get to the answer. |
|
Apr 15 |
comment |
In Scheme, what is formally a program's state? All substitutions are going to require searching the whole program; naturally, an implementation would avoid (or amortize) this cost by using an environment. A semantics such as the one we're describing here is chosen for its simplicity, not for its performance. |
|
Apr 1 |
comment |
In Scheme, what is formally a program's state? Alternatively, you could go with a "labeled transition" semantics that attaches outputs to the arrows; basically, each step produces both a new expression and an optional output. If you're looking for a book, I think I'd probably recommend "Engineering Reduction Semantics with PLT Redex", by Findler/Felleisen/Flatt . |
|
Apr 1 |
comment |
In Scheme, what is formally a program's state? Well, you have two choices here. You can regard inputs and outputs as being "internal" to the model, or "external." In the first case, you'd probably use tricks like Morrisett/Felleisen/Harper to model external streams as mutable variables specified at the outside of the program. In the second case, you would probably model input operations as nondeterministic, and output operations as no-ops. more... |
|
Aug 9 |
comment |
Is there a language more general than Lisp? Sounds like you want to go read some programming language textbooks. I recommend PLAI and Benjamin Pierce's "Types and Programming Languages". |
|
Jun 20 |
comment |
What implementation of Scheme is good for studying SICP? Apologies if this is already obvious: DrScheme is the same thing as DrRacket. I also think that DrRacket with Neil Van Dyke's extensions is the right way to go, but then, I'm (extremely) biased. |