Skip to content
GitLab
Menu
Why GitLab
Pricing
Contact Sales
Explore
Why GitLab
Pricing
Contact Sales
Explore
Sign in
Get free trial
Changes
Page history
Update Spring 2021
authored
Apr 06, 2021
by
Jonathan Goble
Show whitespace changes
Inline
Side-by-side
Spring-2021.md
0 → 100644
View page @
cc1975dc
## **Week 1:** February 5 to February 10
-
Set up repo ✅
## **Week 2:** February 10 to February 17
-
Build system ✅
-
Book progress:
-
Chapter 14 code and notes ✅
## **Week 3:** February 17 to February 24
-
Book progress:
-
Chapter 15 code and notes ✅
-
Challenges:
-
Compressed line information ✅ (issue #30, merge request !2)
-
More than 256 constants ✅ (issue #31, merge request !3)
## **Week 4:** February 24 to March 10 (includes spring break)
-
Book progress:
-
Chapter 16 code and notes ✅
-
Chapter 17 code and notes ✅
-
Chapter 18 code and notes [EXTRA] ✅
-
Challenges:
-
String interpolation: determine syntax and tokenization ✅ (issue #33)
-
Ternary operator: write parsing code ✅ (issue #34, merge request !4)
-
Modulo and exponent operator [EXTRA] ✅ (issue #9, merge request !6)
-
Scientific notation and hexadecimal literals [EXTRA] ✅ (issue #4, merge request !7)
## **Week 5:** March 10 to March 17
-
Book progress:
-
Chapter 19 code and notes ✅
-
Chapter 20 code and notes ✅
-
Challenges:
-
String interpolation implementation ✅ (issue #33, merge request !8)
-
String escape sequences ❌ [moved to backlog] (issue #1)
-
Generic hash tables [stretch goal] ❌ [moved to backlog] (issue #35)
## **Week 6:** March 17 to March 24
-
Book progress:
-
Chapter 21 code and notes ✅
-
Chapter 22 code and notes ✅
-
Chapter 23 code and notes [stretch goal] ✅
-
Challenges:
-
Duplicate constant elimination ✅ (issue #36, merge request !9)
-
Ternary operator bytecode [stretch goal] ✅ (issue #34, merge request !4)
## **Week 7:** March 24 to March 31
-
Book progress:
-
Chapter 24 code and notes ✅
-
Challenges:
-
`break`
and
`continue`
statements ✅ (issue #22, merge request !10)
-
`switch`
statements ✅ (issue #38, merge request !11)
-
Native function improvements (merge request !13):
-
Arity checking ✅ (issue #40)
-
Errors from native functions [stretch goal] ✅ (issue #41)
-
Instruction pointer optimization [stretch goal] ❌ [moved to backlog] (issue #39)
## **Week 8:** March 31 to April 7
-
Book progress:
-
Chapter 25 code and notes ✅
-
Chapter 26 code and notes ✅
-
Chapter 27 code and notes ✅
-
Chapter 28 code and notes [stretch goal] ✅
-
Challenges (all in merge request !11):
-
Handling missing fields ✅ (issue #44)
-
Dynamic field access ✅ (issue #45)
-
Deleting fields ✅ (issue #46)
## **Week 9:** April 7 to April 14
-
Book progress:
-
Chapter 29 code and notes
-
Chapter 30 code and notes
-
Challenges:
-
`init()`
optimization (issue #47)
-
Resolve all merge conflicts and merge all branches into
`main`
-
Define opcode set for register-based bytecode (issue #32)
## **Week 10:** April 14 to April 21
-
Challenges:
-
Implement register-based bytecode (issue #32)
-
Begin generational garbage collector [stretch goal] (issue #43)
## **Week 11:** April 21 to April 28 (finals week)
-
Challenges:
-
Finish generational garbage collector (issue #43)
-
Generic hash tables [stretch goal] (issue #35)
## Summer
In order to keep my mind fresh on this, I plan to spend an average of about an hour per week over the summer on this. Some potential summer tasks:
-
Design a complete C API, including a way to define classes
-
Maybe implement part or all of it?
-
Design a standard library using that C API
-
Add basic collection types (issue #5)
-
At minimum, lists/arrays and dictionaries
-
???
## Backlog
The backlog has been moved to
[
this page
](
Backlog
)
and expanded to include potential future tasks for later implementation.
\ No newline at end of file