I just pushed a D implementation of "Little Scheme", which is a limited educational version of Scheme, to GitHub.
Here I would like to discuss aspects of programming language design from a novice's perspective, including D-specific aspects, rather than try to get forum members to comb through 1500 lines of code.
Problems / Topics:
-
Whenever I create an
Atom
(unit of data), I throw it on the heap and never bother to delete it. I understand that D does GC for me. I am interested in using either timed GC or a free list for finer control of GC. Which is best for the application, do you think? -
Compatibility with both Windows and Linux. What do I need to consider?
- Can I create threads/processes under Windows?
-
PL Authors: Please share what you wish you knew when staring your programming/scripting language.
-
I am open to questions/critiques.
Components:
- Data
- Math and Inequality Primitives
- Lists and Structures
- Lexer
- Parser
- Environment / Variables
- Primitive Functions
- Control Flow
- Evaluator
- REPL
Notes:
- The repo is called SPARROW because I want to transform Little Scheme into my own language through small changes as a way to teach myself PL design.
- SPARROW is not a topic of research. I do not have an application in mind other than learning as a side hobby.