Eric Wang
About
Welcome to a place I occasionally write about things I do.
I’m a fourth year CS student at uWaterloo, with an interest in compilers and graphics, minoring in pure math with an algebraic focus and C&O with a graph theory focus. For a while I thought I’d minor in chemistry too, but you apparently can’t do that by only taking organic courses. Oh well, got pretty close.
My hobbies are mostly about doing things fast. I used to speedrun indie games and speedsolve various puzzles; here are some of my PBs:
- Speedcubing (3x3): 6.25 single, 8.72 ao5, 10.17 ao100 (officially, much worse; I should really go to more competitions)
- Nonograms/picross (15x15): 1:10.71
- Minesweeper (Hard, NG): 87.437
These days I take better care of my hands, so I mostly read a lot in order to and study Japanese.
読み終わった作品:
- 狼と香辛料 1~4巻
- 薬屋のひとりごと 1~3巻
- 雨夜の月 1~10巻
- この恋を星には願わない 1~4巻
- 安達としまむら 11~12巻、SS、SS2 (微妙でしょ)
- 拝啓、在りし日に咲く花たちへ 1~2巻
- 小春と湊 1~3巻
- 無力聖女と無能王女 1~2巻
- 週に一度クラスメイトを買う話 1~2巻
音楽なら、強い女性系声やマスロックに目がなくて、ヨルシカの過激派です。
Projects
Some stuff I’ve worked/am working on. If its name links back here, you’ll need an access key to clone the source.
-
joosc: A Java(?) compiler
For my third co-op I joined the PLG in Winter 2024. Woefully underqualified but eager to learn, nabbing both a URF and USRA was enough to convince Yizhou Zhang to supervise me. To gain background in compilers/PL, I concurrently took CS444 (Compiler Construction) and audited CS442 (Principles of Programming Languages).
jooscis the name of the Joos1W compiler two classmates and I built over four months as the main coursework of CS444.Joos1W is a subset of the Java Language Specification (2nd Edition) that notably (among other things) omits:
- Nested classes
- Exceptions
- Private anything
- do-while/switch/break/continue
- Floats
Essentially, it contains just enough to make parsing, name disambiguation, type linking and checking, dataflow analysis, inheritance, and virtual functions/interfaces interesting to implement. It also makes you hate
Array.length, because final fields aren’t supported in general, butlengthacts like one.Both of my team members wanted to write
jooscin Rust. Knowing zero Rust, I agreed immediately—precisely because I knew zero Rust. Four months later, it wound up as my favourite language. That’s right, this heading was really just an excuse to talk about Rust. All my homies love Rust 🦀.A little more on this here.
-
Constructor: A UW-themed Settlers of Catan clone
Also a three-person job, built in C++ for my CS246 final project in Spring 2022. Runs completely on the command line with a text-based board visualization. Catan, but with a lot more geese.
Contact
- e-mail:
e224wang (AT) uwaterloo (DOT) ca