1. Write GSVE
Save a program with the .gsve extension.
greenServeFE (greenServe Fast Execution) is a C-based runtime that compiles .gsve programs into bytecode and executes them on a virtual machine. Browse the examples as file cards: click any filename to open its code.
The lexer and parser process the language syntax; the compiler emits bytecode, and the VM executes instructions using values, environments and native functions.
Save a program with the .gsve extension.
The compiler produces instructions, constants, names and child function code objects.
The VM runs bytecode with operand stacks, frames and lexical environments.
.gsve → lexer → parser / AST → bytecode compiler → GSCode → VM → output
Build the source archive on a Linux environment with the required native development libraries installed.
git clone https://github.com/MacoraOne/MacoraOne.git cd MacoraOne/greenServeFE-source-codes-v1.0.3 make clean all ./greenServeFE test.gsve ./greenServeFE --dump test.gsve ./greenServeFE --trace test.gsve
The --dump option displays bytecode disassembly; --trace enables execution tracing. Follow the source archive and release README for dependencies and package installation.
These examples follow the syntax and file names in the greenServeFE-source-codes-v1.0.3/docs/examples archive. Select a file card to expand and read its complete example, then open the original source file on GitHub.
print("Hello, greenServeFE");define name = "greenServeFE";
define version = 1;
define message = name + " " + str(version);
print(message);define a = 20;
define b = 6;
print(a + b);
print(a - b);
print(a * b);
print(a / b);
print(a % b);define values = [10, 20, 30, 40];
print(values[0]);
values[1] = 25;
print(values);
for (value in values) {
print(value);
}define user = {
name: "Alex",
role: "developer",
active: true
};
print(user.name);
user.active = false;
print(user.active);
for (key in user) {
print(key);
print(user[key]);
}define products = [
{name: "Notebook", price: 12},
{name: "Keyboard", price: 45},
{name: "Mouse", price: 25}
];
define total = 0;
for (product in products) {
total = total + product.price;
}
print(total);define n = 1;
define total = 0;
while (n <= 5) {
total = total + n;
n = n + 1;
}
print(total);define total = 0;
for (n in [1, 2, 3, 4, 5]) {
total = total + n;
}
print(total);define score = 82;
if (score >= 90) {
print("excellent");
} else if (score >= 70) {
print("pass");
} else {
print("retry");
}for (n in [1, 2, 3, 4, 5]) {
if (n == 4) {
break;
}
print(n);
}for (n in [1, 2, 3, 4, 5]) {
if (n == 3) {
continue;
}
print(n);
}func add(a, b) {
return a + b;
}
func square(value) {
return value * value;
}
print(add(4, 5));
print(square(7));func make_adder(base) {
func add(value) {
return base + value;
}
return add;
}
define add10 = make_adder(10);
print(add10(5));
print(add10(20));define text = "greenServe";
define items = [1, 2, 3, 4];
define object = {a: 1, b: 2};
print(len(text));
print(len(items));
print(len(object));import gsnum;
print(gsnum.sum(1, 2, 3, 4));
print(gsnum.mean([10, 20, 30]));
print(gsnum.sqrt(144));from gsnum import sum, average;
print(sum(1, 2, 3, 4));
print(average(10, 20, 30));import gs_table;
define headers = ["Name", "Score", "Role"];
define rows = [
["Alex", 95, "developer"],
["Sam", 88, "designer"]
];
print(gs_table.render(headers, rows, {
title: "Scores",
align: ["left", "right", "left"]
}));
print(gs_table.csv(headers, rows));
print(gs_table.markdown(headers, rows));import server;
func home(req, res) {
res.send("Hello from greenServeFE");
}
server.get("/", home);
server.serve(".", 8080, {
index: "index.html",
static: true
});import server;
func status(req, res) {
res.status(200);
res.set("X-App", "greenServeFE");
res.json({
ok: true,
method: req.method,
path: req.path
});
}
server.get("/api/status", status);
server.serve(".", 8080, {
static: true
});import server;
func user(req, res) {
res.json({
id: req.params.id,
path: req.path
});
}
server.get("/users/:id", user);
server.serve(".", 8080, {
static: true
});import server;
func search(req, res) {
res.json({
query: req.query,
raw: req.queryString
});
}
server.get("/search", search);
server.serve(".", 8080, {
static: true
});import server;
func home(req, res) {
res.render("index.html", {
title: "greenServeFE",
message: "Server-side rendering works"
});
}
server.get("/", home);
server.serve(".", 8080, {
index: "index.html",
static: true
});import server;
define response = server.http_get("https://example.com/");
func home(req, res) {
res.json({
status: response.status,
contentType: response.contentType,
url: response.url,
error: response.error
});
}
server.get("/", home);
server.serve(".", 8080, {
static: true
});Examples that import gsnum, gs_table, or server require the matching native module built for your greenServeFE ABI. Server examples need the server module and should be run from a directory containing any referenced static files or templates.
Numbers, strings, booleans, null, arrays and objects.
if, while, for/in, break and continue.
Function calls, recursion, closures and captured lexical environments.
Arithmetic, comparisons, logical operators, assignment, indexing and member access.
print, len, str, num and type.
Inspect generated bytecode with --dump and follow execution with --trace.
Native modules are shared libraries loaded by the runtime. The loader can search direct paths, the current directory, ./modules, and paths in GREENSERVE_MODULE_PATH.
| Module | Example usage | Purpose |
|---|---|---|
gsnum | import gsnum; | Numeric helpers such as sum, mean and square root. |
gs_table | import gs_table; | Render tabular data as text, CSV or Markdown. |
server | import server; | HTTP routes, serving static files, responses, templates and outbound HTTP helpers. |