Fantom

 

docLang

Fundamentals

Structure pod::type.slot program structure
Literals syntax for literal types
Expressions syntax for expressions
Statements syntax for statements
Exceptions exception handling

Type System

Type System static type system with bit of dynamic thrown in
Compilation Units organization of source code
Pods creating pods
Classes creating class types
Mixins creating mixin types
Enums creating enum types
Slots slot model
Methods deep dive into method slots
Fields deep dive into field slots
Inheritance rules for slot inheritance
Facets annotating types and slots with metadata

Functions

Functions functional programming
Closures deep dive into closures

Interop

Java FFI Java foreign function interface
Dotnet FFI .NET foreign function interface
Natives implementing methods and fields in Java and C# code
JavaScript compiling to JavaScript

Advanced

Deployment how to deploy pods and applications
Env customizing the Fantom environment
Serialization reading/writing objects
Concurrency model for sharing data between threads
Actors message passing concurrency
Naming URI naming system
Logging logging APIs
Localization localization APIs
DSLs domain specific language and compiler plugins
Date Time date and time APIs

Appendix

Appendix additional detailed notes
Conventions coding conventions we use
Grammar formal BNF syntax grammar