Edgescript® is a multipurpose programming language. The language is primarily used for adding dynamic behavior to Uninode® Suite components. Read More
The Edgescript® syntax is similar to Swift and Java, but with some improvements and simplifications.
There are currently Edgescript® compilers in Java and Typescript.
Since Edgescript® is mostly used in association with Uninode®, a framework for global type definitions and node identities, it can perform any operation on any type of data. Anything you can do with Uninode®, you can do better with Uninode® plus Edgescript®. Read More
While Uninode® defines edges between nodes, Edgescript® makes the edges parameterized. It uses the same class definitions as Uninode®, but adds methods and evaluation structures. Read More
Edgescript® brings a new perspective on Data-as-Code. Uninode® handles versioning of data, access control and other fundamental concepts, and Edgescript® improves these concepts, and adds solutions from the developer world, like refactoring, reactive behavior, declarative configuration, distributed computing, integration with external services, complex data processing and much more.
Edgescript® comes in many flavors, depending on usage.
- The expression flavor is used for single-expression behavior.
- The text flavor is used for adding dynamic behavior to text strings.
- The statements flavor is used for full-language tasks, including definition of classes and types.
- The cell flavor is used for defining cells, similar to Jupyter notebooks.
- The UNQL flavor is used for editing UNQL requests with expression components. Read More
The Edgescript® grammar is defined using a BNF structure with hooks. Read More About Grammar
Edgescript® has a number of different types.
- Edgeclasses are named types with explicitly defined properties and methods.
- Tuples are collections of named attributes.
- Function types define function signatures.
- Enum types define named instances.
Uninode® defines semantic node relations, using edges, defined by Uniclass properties. In a sense, Edgescript® adds parameterized edges, whose value depends on the parameters.
Closures are methods with an evaluation environment, which can be passed as parameters.
Type parameters resembles generics, but may contain general type info, like maximum length of strings.
Attributes are compile-time parameters for classes, properties and methods. They use a '@' prefix in the script.
An edgepath is like a Swift keypath. It is a reference to a property or method that can be evaluated at a later time, but it is type-checked at compile time.