-
Notifications
You must be signed in to change notification settings - Fork 2
Specification‐vs‐Implementation
One of the most important ideas in FROG is the distinction between the specification and its future implementations.
The repository defines the language and its architectural layers.
It specifies:
- source representation,
- execution semantics,
- IR structure,
- intrinsic libraries,
- optional profiles,
- IDE-facing architectural responsibilities.
The specification is the source of truth.
An implementation is a concrete system built on top of the specification.
Examples may eventually include:
- editors,
- validators,
- compilers,
- runtimes,
- execution engines,
- backend adapters,
- conformance tooling,
- ecosystem services.
Implementations are expected to consume the specification, not redefine it.
Without this distinction, a project quickly collapses into one vendor-specific stack where:
- the IDE defines the language,
- the runtime defines the semantics,
- undocumented behavior becomes de facto law.
FROG is deliberately trying to avoid that trap.
FROG should be understood as:
- one open language specification,
- potentially many implementations.
Those implementations may differ in:
- architecture,
- performance strategy,
- UX choices,
- deployment model,
- supported profiles,
- backend targets.
But they should still align on the shared specification foundation.
This distinction is what makes possible:
- interoperability,
- alternative IDEs,
- alternative runtimes,
- independent compilers,
- conformance work,
- ecosystem growth beyond one vendor.
That is one of the central reasons FROG exists at all.