The Sophie Language
Sophie is a programming language named for French mathematician Sophie Germain. Sophie has many desirable characteristics. You might like to get to know Sophie.
Sophie is a work in progress
Sophie is not yet a complete system. If you’re feeling adventurous, read on. This manual may mention features that don’t work yet, but they’ll be noted as such. Check back from time to time, or contact me via the GitHub project page
- Learn Sophie (by Example)
- Why Learn (with) Sophie?
- First Things First
- Functions: How Sophie Calculates
- Apples, Oranges, and Mixing Them
- Making Decisions (Conditional Forms)
- Interlude: Seven Moving Parts
- Fantastic Lists and Where to Find Them
- Turtle Graphics
- Let’s Play a Text Game!
- Syntactic Sugar
- Modules: Programming in the Large
- Congratulations
- Guides and Recipies
- Reference Manual
- Explaining Sophie
- Mechanics of Sophie
- Respectable Error Messages
- Resolving Imports
- High-Order Type Checking (HOT)
- Tree-Walking Evaluation with Modules
- Division by Zero and Other Stories
- The Message Queue
- How the Runtime Casts Actors
- Strictness and Volatility
- Sophie’s Virtual Machine
- Garbage Collection
- Garbage Collection - The Next Generation
- NaN Boxing
- Graphics in Sophie’s VM
- Laziness and the Virtual Machine
- Actors and the Virtual Machine
- Representing an AST Efficiently
- Sophie’s Future
Some Desirable Characteristics
For practical purposes, Sophie is:
Easy on the eyes,
Easy on the brain (for beginners and experts alike)
Fun at parties. (Wait, WHAT?)
That last point might need a word of explanation. Games are an early niche. That’s actually part of Sophie’s secret plan to take over the world. (Not so secret anymore, is it?)
For the language geeks, Sophie features:
A pure functional core with immutable data and lazy evaluation
A powerful static type system based on abstract interpretation
[In Progress] A pure actor-oriented shell with asynchronous causally-ordered message-passing
A decent amount of interest and curiosity from other language geeks