enso/docs/semantics
Pavel Marek c22928ecc2
Implement private modules (#7840)
Adds the ability to declare a module as *private*. Modifies the parser to add the `private` keyword as a reserved keyword. All the checks for private modules are implemented as an independent *Compiler pass*. No checks are done at runtime.

# Important Notes
- Introduces new keyword - `private` - a reserved keyword.
- Modules that have `private` keyword as the first statement are declared as *private* (Project private)
- Public module cannot have private submodules and vice versa.
- This would require runtime access checks
- See #7088 for the specification.
2023-10-04 10:33:10 +00:00
..
bindings.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
diagnostics.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
dispatch.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
encapsulation.md Implement private modules (#7840) 2023-10-04 10:33:10 +00:00
errors.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
evaluation.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
managed-resources.md Refactor methods of Managed_Resource (#3460) 2022-05-18 17:27:42 +00:00
modules.md Implement part of the Enso lexer in rust (#1109) 2020-08-27 13:27:22 +01:00
numbers.md Decimal Numbers (#1146) 2020-09-15 15:05:21 +02:00
README.md Implement private modules (#7840) 2023-10-04 10:33:10 +00:00
scoping.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
tail-call-optimization.md Opt-in TCO (#1219) 2020-10-15 16:52:26 +02:00

layout title category tags order
section-summary Enso's Semantics semantics
semantics
readme
0

Enso's Semantics

Much like we have specifications for the syntax and the type system in Enso, we also need a specification of the language semantics. These documents specify the executable semantics of the Enso language.

The actionables for this section are:

  • As we make more semantic determinations about the language these should be written down here.

This specification is broken down into the following sections:

  • Bindings: The semantics of Enso's binding expressions.
  • Diagnostics: The semantics of Enso's executable compiler diagnostics.
  • Dispatch: The semantics of Enso's dispatch system.
  • Errors: The semantics of Enso's various error systems.
  • Evaluation: Enso's evaluation semantics, including those of suspended computations.
  • Modules: The semantics of Enso's modules.
  • Scoping: Enso's scoping and identifier resolution rules.
  • Encapsulation: The semantics of Enso's encapsulation system - access restriction.