ESP
Due Monday Oct 28th @ 9 am
From this assignment, students may show...
Technical Reading - Reasoning, Radiance
Usability and Documentation - Reasoning
Software Ecosystem - Reasoning
Feedback - Reasoning
... in addition to other learning objectives students feel their work accomplishes.
For radiance objectives, I am looking for analysis that would have boarder impacts or relation to (future) work outside the scope of this class.
This can be achieved by providing deeper speculation on how you think the topics of this paper impact real language design "in the wild" (providing concrete details),
or doing your own light research/fact finding and bringing in citations to compare/contrast.
Let's begin
The ESP paper can be found here in addition to the reading repo.
Reading Comprehension
- What is the domain of ESP?
- What are event-driven state machines? How do they work, and why are they used to program firmware?
- Why is the C code for programming firmware difficult to "get right"? What can go wrong?
- What are the design goals of ESP?
Open Essay Question:
What do you believe people do in practice to program firmware or embedded devices?
What tool(s) do they use, and how does it compare to the design of ESP?
One similar toolchain Matthew has used before is the nesC programming language which runs specifically on the TinyOS ecosystem. You can pick whatever you like for comparison.
Usability + Ecosystem + Feedback
After reading Section 5, and with the spin verification tool documentation as reference ,
describe what you imagine the debugging process in Section 5.3 looked like from a user's perspective..
Please include what you believe the language does and does not handle for the users, what you are unsure about, and what your best guess is for anything you are unsure about.
How do you think this workflow would look given the metaprogramming strategies we've learned in class?
What advice, expectations, or feedback do you have for the authors of ESP about the user experience of composing a language with an external tool? E.g. do you expect it to be seamless, or to have set stages of interaction, etc.
Optional META.md
META.md should include
- your name
- your utln
- how much time you spent on this assignment
- the witness "proof" for how you earned each learning objective
Please Submit
Contents to be submitted
- your answers to the comprehension questions
- your comparison to what you believe the state-of-the-art is now
- your usability assessment
- META.md
Method of submission
Please commit your changes in the hw15-1 directory of your private repo and push them to the remote server before 9 am.