Skip to content

Commit

Permalink
Doc additions
Browse files Browse the repository at this point in the history
  • Loading branch information
rclovis committed Jan 16, 2024
1 parent aeae37e commit 822d8ac
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 8 deletions.
14 changes: 6 additions & 8 deletions documentation/docs/Technical Documentation/Funk Language/Bnf.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
# Glados

#Grammar Rules

1.Program Structure

```bnf
```bnf
<program> ::= { <declaration> }*
```

2.Declarations:
```bnf
```bnf
<declaration> ::= <function-definition> | <pointer-definition> | <import-statement>
```
```

3.Function Definition:
```bnf
Expand All @@ -24,7 +22,7 @@
```

5.Parameter:
```bnf
```bnf
<parameter> ::= <variable-name> ":" <data-type>
```

Expand All @@ -39,12 +37,12 @@
```

8.Expressions:
```bnf
```bnf
<expression> ::= <variable-name> | <literal> | <binary-operation> | <unary-operation> | "(" <expression> ")"
```

9.Binary Operation:
```bnf
```bnf
<binary-operation> ::= <expression> <binary-operator> <expression>
```

Expand Down
64 changes: 64 additions & 0 deletions documentation/docs/User Documentation/Funk_Introduction_cn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
## The Funk编程语言

欢迎来到 *The Funk Programming Language*,这是有关Funk的介绍。Funk是一种受Rust和C传统启发的高级和低级控制语言。Funk注重现代语言的优雅语法,同时提供对代码的控制。

## Funk适用于谁?

Funk适用于那些程序员,用一个词来形容就是“时髦的”。
在Funk基金会,我们希望有一种语言,能让来自各行各业和背景的人都能拥抱他们的真我。成为Funk程序员不仅仅是简历上的一项技能,更是一种精神

## 法律事项

Funk是一种开源语言,欢迎新的贡献者。写Funk代码的唯一要求是要时髦。

## 入门指南

让我们开始你的Funk之旅吧!有很多东西要学,但每个旅程都要从某个地方开始。我们将讨论在Funk中编写*Hello World!*程序以及如何使用语法。

## Hello World

Hello World!这是经典的、每次学习新东西时都会写的第一个程序。在Funk中我们也会做同样的事情!

首先,创建一个新的项目文件夹和一个名为 `hello.fk` 的文件。Funk使用 `.fk` 扩展名来表示其源文件。

通过使用 `var` 关键字创建一个变量。给它一个名字,然后使用 `:` 符号指定类型。Funk有多种原始类型,我们将在后面的章节中介绍,现在我们想要存储一个字符串。我们将使用 `u8[]` 来存储我们的字符串。然后使用 = 符号添加一个值。在这里指定我们的消息。用必需的 `;` 分号结束你的指令,这样你就创建了你的第一个变量!

```ts
var hello: u8[] = "Hello World!";
```

现在,为了打印它,我们将使用Funk的标准库:`funkystd`

在你的文件顶部添加以下内容 `"#include "funkystd"`。这将为你的程序提供比以往更多的功能实用性!现在我们可以使用库中的 `putstr` 函数来打印我们的消息。

```ts
#include "funkystd"

var hello: u8[] = "Hello World!";

putstrln(hello);
```

恭喜!你刚刚在Funk中编写了你的第一个程序!但等一下,我们还没有运行它!不要担心,我们将看到如何在下一章中运行Funk程序。

## 运行Funk程序

你刚刚完成了你的第一个Funk *Hello World!*,但你仍然不知道如何运行它?在本章中,我们将介绍Funk的执行方式。

Funk是一种**编译**语言,这意味着它需要被放入另一个程序中才能执行。但别担心,我们已经为你准备好了,你不必自己编写。使用命令行界面,输入以下命令:

```console
$ funkc hello.fk
Created: out.bin
```

你得到了一个新文件:`out.bin`。这个文件代表我们的程序的`字节码`。与其他编译语言一样,Funk首先被编译成包含程序所需指令集的字节码。

这个文件不是一个可执行二进制文件,而是字节码。现在我们可以使用`FVM`(Funk虚拟机)来执行字节码指令。想象一下Java的执行方式。你将项目编译成一个包含字节码的 `.jar` 文件,然后将其传递给`JVM`(Java虚拟机)。这不是剽窃,这是灵感来源。

```console
$ fvm out.bin
Hello World!
```

现在它正在运行!你的第一个程序,现在在终端上显示输出。

0 comments on commit 822d8ac

Please sign in to comment.