Reputation
271
Top tag
Next privilege 300 Rep.
Create new tags
Badges
1 4
Newest
 Yearling
Impact
~2k people reached

  • 0 posts edited
  • 0 helpful flags
  • 11 votes cast
May
1
answered What is the minimum practical definition for the Scheme language?
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...
Mar
30
awarded  Yearling
Mar
29
answered In Scheme, what is formally a program's state?
Sep
20
answered OS choice for functional developing
Jun
5
awarded  Editor
Jun
5
revised How useful are Lisp macros?
copy-editing, mostly. Thanks for the expansion!
Dec
16
awarded  Teacher
Dec
13
answered How useful are Lisp macros?
Jun
20
awarded  Autobiographer
Jun
20
awarded  Supporter