aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi92@disroot.org>2026-05-09 02:56:07 +0200
committerXavier Del Campo Romero <xavi92@disroot.org>2026-06-21 01:15:38 +0200
commitb25ff71bb198c227b3202ee32a8067cda413bc16 (patch)
tree41d665a87d948c10b17a853220cbcdbaeebf3672 /README.md
downloadprc-b25ff71bb198c227b3202ee32a8067cda413bc16.tar.gz
Add project skeletonHEADmaster
Diffstat (limited to 'README.md')
-rw-r--r--README.md70
1 files changed, 70 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a884dfa
--- /dev/null
+++ b/README.md
@@ -0,0 +1,70 @@
+# `prc`, a compiler for the Prose programming language
+
+> **IMPORTANT NOTE**: Prose is still under heavy development. It is therefore
+> not ready for production yet.
+
+Prose is a new and small programming language that aims for readability
+and native interoperability with C. Its syntax, while a bit distant from
+ALGOL-like languages like C, should still be readable to most programmers.
+
+Most remarkably, Prose avoids sigils such as `{}`, `$` or any other kind of
+symbol, in favour of simple and readable English-like statements.
+The only exception is `*`, which is used for comments:
+
+A hello world example:
+
+```
+* this is a comment
+public function main
+linkage
+ status word
+procedure returning status
+ display "hello world"
+ set status to 0
+```
+
+As opposed to other programming languages such as Python, Prose follows
+free-form syntax, and therefore the same program can be written in any format:
+
+```
+public function main linkage status word procedure returning status display "hello world" set status to 0
+```
+
+Prose follows the C ABI and also inherits its type system:
+
+```
+public function main
+imports "cstd"
+linkage
+ status cint
+ argc cint
+ argv pointer to array of etc byte
+storage
+ fd cint
+procedure using argc argv returning status
+ display "argc=" argc ", argv=" argv
+ call socket using AF_INET SOCK_STREAM 0 returning fd
+ display "fd=" fd
+ call close using fd
+ set status to 0
+```
+
+## LICENSE
+
+```
+ prc, a compiler for the Prose programming language.
+ Copyright (C) 2026 Xavier Del Campo Romero
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+```