web/templates/index.html
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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>hex programming language</title>
<style>
html {
margin: 0;
padding: 0;
font-size: 12px;
line-height: 16px;
}
body {
margin: 1rem;
padding: 0;
font-family: Monospace;
font-size: 1rem;
background-color: black;
color: white;
}
h1, h2, h3 {
margin: 1rem 0 0.5rem 0;
font-size: 1rem;
font-weight: 700;
}
header {
white-space: pre-wrap;
margin: 0;
}
header h1 {
display: inline;
margin: 0;
}
footer {
font-size: 80%;
text-align: center;
margin: auto;
}
a {
color: lime;
text-decoration: underline;
}
a:visited {
color: limegreen;
}
a[href^=http] {
text-decoration-style: dashed;
}
strong {
font-weight: 600;
}
em {
font-style: italic;
}
li {
margin: 0.5rem 0;
}
</style>
</head>
<body>
<header>
_*_ _
/ \<h1><a href="/">hex</a></h1>\* programming language
*\_/_/_/
*
</header>
<nav>
<a href="/get-started">Get Started</a> |
<a href="/manual">Manual</a> |
<a href="/play">Play</a> |
<a href="/changelog">Changelog</a> |
<a href="/about">About</a>
</nav>
<article>
<h2>Welcome</h2>
<p>Welcome to the <strong>hex</strong> programming language.</p>
<p><strong>hex</strong> is a tiny minimalist, concatenative, stack-based and slightly-esoteric programming language that can run on many platforms (including <a href="/play">the browser</a>) and can be used as an embedded language, to create shell scripts, or simply to learn more about concatenative programming.</p>
<p>Its syntax is heavily inspired by the <a href="https://min-lang.org">min</a> programming language, and features space-separated tokens, no unnecessary punctuation characters, and round brackets to delimit lists.</p>
<h2>Features</h2>
<ul>
<li>Support <strong>32bit integers</strong>, <em>written only in hexadecimal format</em>, both positive and negative (represented via <a href="https://en.wikipedia.org/wiki/Two%27s_complement">two's complement</a>), <strong>strings</strong>, and <strong>quotations</strong> (lists).</li>
<li><strong>64 native symbols</strong> implementing simple arithmetic, boolean logic, bitwise operations, comparison of integers, read/write from/to stdin/stdout/stderr, read and write files, execute external processes, work with quotations and strings, create and delete user symbols (variables), error handling, and manipulate the stack.</li>
<li>Fully <strong>homoiconic</strong> (everything is data).</li>
<li>Includes a simple <strong>REPL</strong>.</li>
<li>Includes an integrated <strong>help system</strong>.</li>
<li>Implemented as <strong>a single <a href="https://github.com/h3rald/hex/blob/master/hex.c">.c file</a> and a single <a href="https://github.com/h3rald/hex/blob/master/hex.h">.h file</a></strong>, making it easier to embed in other programs and port to different platforms.</li>
</ul>
</article>
<footer>
© 2024 Fabio Cevasco
</footer>
</body>
</html>
|