The language described states what a Mica program is made of and what each of its constructs means, chapter by chapter. Where the grammar gives the rules a program is read by, a chapter here gives each rule its meaning: what the construct does, what it may and may not be combined with, and the words the compiler answers a source with when it breaks the rule, quoted as the compiler prints them.

Every example in a chapter is a complete program or library that the compiler’s own test suite compiles and runs on AMD64 and AArch64, or that the website’s gate compiles as the chapter marks it, and the output shown beneath it is the output the program prints; an example that needs a GPU to run, or that is built as a library, says so beside it. Chapter 8 is still to come, and the table names it without a link until it is written.

ChapterCovers
1. Characters, names and literalsthe text a source is, its comments and its first line, names and the words the language reserves, the operators, and every literal: integers, reals, characters, strings and regular expressions
2. Programs, libraries and importsthe program, the library and the object unit, the sections, routines and body of a block, the start value of every variable, exports and a library’s version, imports from every kind of source, how an imported name is found, and the project file
3. Declarations and scopesconstants with and without a type, the types a block declares, variables and their initial values, procedures, functions and their parameters, nested routines, what each declaration may refer to, and the scopes every name is looked up in
4. Typesthe kinds of type and how each is written, the ordinal, real and structured types and their values, the types an operation takes and gives, promotion and conversions, when two types are one and what an assignment admits, and types with parameters
5. Expressionsoperands and primaries, the operators by precedence and the types they take, integer arithmetic in its width and what the checked build traps, comparisons and the case test, the boolean, set and string operators, conversions with as, constant expressions, and calls
6. Statementsstatements and their sequence, assignment and calls, if and case with every kind of label and the rule that a case covers its domain, the while, repeat, counted for and for ... in loops, named loops with leave and next, deferred statements and disposal
7. Routinesthe kinds of routine and their headings, what a call evaluates and hands over, copies, const, pointers, conformant arrays and spans as parameters, what a function answers, recursion and nested routines
8. Generics, to comegeneric routines and types, the capability words, inference and instantiation
9. Failuresthe two kinds of failure, error domains and the routines that fail with fails and fail, the clauses a caller answers a failure with, what reaches the caller and the program, traps and their exit status, the checked tier, and failure in tasks, streams and worker processes
10. Memoryvalues and the copies an assignment and a call make, cells on the heap and their one owner, the hand-over, the read-out and the release of a container, borrowed pointers and the four rules that keep them valid, the stack, static storage and the heap, the hosted heap and the fixed arena, and what the checked tier stops at run time
11. Tasks, generators and processestasks and the task tree, the concurrent block, schedule and placement on carriers and on processes, generators and streams with pull chains, rings, stages, into and select, failure in a block and across a stream, cancellation and deadlines, lost workers, what the checked build traps and what the compiler refuses
12. Tensors and the tapevectors, matrices and tensors with static and dynamic extents, the elementwise operations and the products, tracked values, tape windows, Backward and Gradient, tensors placed on the GPU with ToDevice and ToHost, and the floating-point flags of the optimizing build
13. The C boundaryimports from the C library, POSIX, Linux and a library’s contract, the types that cross and their C spelling, who releases a cell that crosses, exports with the contract and the header a library build writes, callbacks at contract slots, and what a C program sees