Syntax and Design¶
The design of Ratscript’s syntax has three goals:
Explicit: Make behavior obvious from the syntax.
Simple: Lower the learning curve for beginning users.
Elegant: Maintain usability by experienced programmers.
compound statement: a statement made up of one or more clauses. For example, an
clause; a single header-suite pair in a compound statement, such as the
elseclause in an
expression: a unit of code that can be evaluated to a value.
header: the top part of a clause, usually defining how and when the clause will be executed.
name: a textual reference to a value in memory, in the context of a variable. Names have both scope and type, and are bound to a value.
statement: a single, executable unit of code.
suite: the body part of a clause, subordinated to a header.
value: any object or piece of data in memory, which can be bound to one or more names. Values have type, but no scope.
variable: a value in memory associated with a name.
In Python, names have scope, but no type; values have type, but no scope. In Ratscript, names have both scope and type, while values only have scope. Ratscript names can be “rebound” to a new value, as long as that value is the same type.
Notes, TODOs, and proposed statements are formatted like this (blue block) to make them easier to find.
Design Principles: These are notes about design principles.
# This is a code example.