-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
72 lines (63 loc) · 4.21 KB
/
index.html
File metadata and controls
72 lines (63 loc) · 4.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Get started | ArkCode Documentation</title>
<link rel="stylesheet" href="./website/styles.css">
</head>
<body>
<aside class="sidebar">
<div class="brand">
<div class="brand-icon">A</div>
ArkCode
</div>
<ul class="nav-links">
<li><a href="index.html" class="active">Get started</a></li>
</ul>
<div class="nav-section-title">Core Engine</div>
<ul class="nav-links">
<li><a href="website/why-arkcode.html" class="">Why ArkCode?</a></li>
<li><a href="website/cli.html" class="">aake CLI</a></li>
<li><a href="website/variables.html" class="">Variables</a></li>
</ul>
<div class="nav-section-title">API Reference</div>
<ul class="nav-links">
<li><a href="website/builtins.html" class="">Built-in Functions</a></li>
<li><a href="website/file-io.html" class="">File I/O & Text</a></li>
<li><a href="website/security.html" class="">Encryption & Security</a></li>
</ul>
<div class="nav-section-title">Advanced</div>
<ul class="nav-links">
<li><a href="website/functions.html" class="">Functions (ark)</a></li>
<li><a href="website/modules.html" class="">Modules</a></li>
<li><a href="website/ui-dsl.html" class="">UI Builder DSL</a></li>
</ul>
</aside>
<main class="content-wrapper">
<section>
<h1>Get Started with ArkCode</h1>
<p class="subtitle" style="color: var(--text-muted); font-size: 0.9rem; margin-bottom: 2rem;">Last modified: 24 May 2026</p>
<h2>What is this?</h2>
<p>Welcome to the official documentation for <strong>ArkCode</strong>, an ultra-fast, minimalist programming language built entirely on a custom C++ runtime engine. ArkCode is designed to abstract away the heaviest parts of system-level programming—such as manual memory allocation and complex tooling ecosystems—while retaining the blazing-fast execution speeds of native code.</p>
<p>By taking heavy inspiration from Kotlin's declarative syntax and Python's readability, we've created a language that feels incredibly lightweight but executes with raw bare-metal efficiency.</p>
<img src="./website/banner.png" alt="ArkCode Banner" class="banner-img">
<h2>What is its purpose?</h2>
<p>Its primary purpose is to allow developers to harness the native, bare-metal speed of C++ without actually having to write C++. It abstracts away memory management, complex tooling, and obscure standard libraries into a clean, modern DSL.</p>
<h2>Where and how it can be used</h2>
<p>You can use ArkCode for anything from simple local file automation scripts, to full-scale desktop UI applications (via our native GTK3 integration). It supports both immediate JIT evaluation and compilation down to optimized machine-code binaries.</p>
<div class="code-container"><pre><code><span class="comment"># Compile the toolchain</span>
<span class="builtin">make</span> aake
<span class="comment"># Run a script natively</span>
./build/aake script.arkc
<span class="comment"># Compile a script to native machine code</span>
./build/aake build script.arkc
./build/app</code></pre></div>
<h2>How it works</h2>
<p>The <code>aake</code> binary operates both as a recursive descent interpreter and an Ahead-of-Time (AOT) compiler transpiling directly to optimized C++17. The AOT pipeline translates ArkCode ASTs into structured C++ and compiles them down to native machine executables using <code>g++</code>, achieving raw bare-metal execution speeds.</p>
<h2>Where it can't be used and why</h2>
<p>ArkCode cannot currently be used for low-level embedded systems programming (like writing a bootloader). Because memory management and typing are entirely abstracted and handled by the C++ engine to guarantee safety, you are intentionally locked out of manual memory address mapping.</p>
</section>
</main>
</body>
</html>