GOOL: A Generic Object-Oriented Lanugage
summary
GOOL is a embedded DSL in Haskell that uses finally‑tagless encodings and type families to generate readable, idiomatic code and documentation for multiple OO targets. The implementation comprises 43 classes and 328 methods that encode a common core plus language‑specific payloads so C# and Java share most generators while Python and C++ need more divergence. It plugs into the Raziel pipeline, offers knobs for visibility, logging and bundling, and successfully produces human‑looking code.
AI-written summary · about
chapters (17)
- 0:00Intro
- 0:21Observation
- 1:38DSL Sauce
- 2:36Generating readable programs
- 4:08Writing documentation
- 5:03Our approach
- 5:47Remarks
- 7:10Blocks
- 9:06Packages
- 10:52Classes
- 11:35Languages
- 12:43List routines
- 13:28External syntax
- 14:15Generating documentation
- 16:33Knobs
- 17:19Programming Language
- 18:00Questions
related talks
33mIs Go Object-Oriented? A Case of Public Opinion
34mI quit my job to write my own language: Goby
38mWhen Toy Languages Grow Up
39mIs Go A Good Language to Build Compilers?
20mThe Lands Platform: Lan.guages and D.omain S.yntax
26mAn Invitation to OCaml
59mUnleashing the Go Toolchain
30mA reference GLL implementation
