Brainfuck-interpreter
所属分类:人工智能/神经网络/深度学习
开发工具:kotlin
文件大小:0KB
下载次数:0
上传日期:2018-01-27 13:02:38
上 传 者:
sh-1993
说明: 用于brainfuck编程语言的kotlin解释器。,
(kotlin interpreter for the brainfuck programing language.,)
文件列表:
LICENSE (1070, 2018-01-27)
build.gradle (1279, 2018-01-27)
gradle/ (0, 2018-01-27)
gradle/wrapper/ (0, 2018-01-27)
gradle/wrapper/gradle-wrapper.jar (54706, 2018-01-27)
gradle/wrapper/gradle-wrapper.properties (230, 2018-01-27)
gradlew (5296, 2018-01-27)
gradlew.bat (2176, 2018-01-27)
settings.gradle (43, 2018-01-27)
src/ (0, 2018-01-27)
src/main/ (0, 2018-01-27)
src/main/kotlin/ (0, 2018-01-27)
src/main/kotlin/me/ (0, 2018-01-27)
src/main/kotlin/me/palazzomichi/ (0, 2018-01-27)
src/main/kotlin/me/palazzomichi/brainfuckinterpreter/ (0, 2018-01-27)
src/main/kotlin/me/palazzomichi/brainfuckinterpreter/BrainfuckException.kt (320, 2018-01-27)
src/main/kotlin/me/palazzomichi/brainfuckinterpreter/BrainfuckInterpreter.kt (1627, 2018-01-27)
src/main/kotlin/me/palazzomichi/brainfuckinterpreter/BrainfuckProgram.kt (3337, 2018-01-27)
src/main/kotlin/me/palazzomichi/brainfuckinterpreter/CellIterators.kt (1705, 2018-01-27)
src/main/kotlin/me/palazzomichi/brainfuckinterpreter/main.kt (1228, 2018-01-27)
src/main/kotlin/me/palazzomichi/brainfuckinterpreter/stream/ (0, 2018-01-27)
src/main/kotlin/me/palazzomichi/brainfuckinterpreter/stream/BrainfuckReader.kt (2140, 2018-01-27)
src/main/kotlin/me/palazzomichi/brainfuckinterpreter/stream/BrainfuckWriter.kt (1431, 2018-01-27)
src/main/kotlin/me/palazzomichi/brainfuckinterpreter/util/ (0, 2018-01-27)
src/main/kotlin/me/palazzomichi/brainfuckinterpreter/util/Streams.kt (808, 2018-01-27)
src/main/kotlin/me/palazzomichi/brainfuckinterpreter/util/_BrainfuckInterpreter.kt (2577, 2018-01-27)
src/test/ (0, 2018-01-27)
src/test/kotlin/ (0, 2018-01-27)
src/test/kotlin/me/ (0, 2018-01-27)
src/test/kotlin/me/palazzomichi/ (0, 2018-01-27)
src/test/kotlin/me/palazzomichi/brainfuckinterpreter/ (0, 2018-01-27)
src/test/kotlin/me/palazzomichi/brainfuckinterpreter/test/ (0, 2018-01-27)
src/test/kotlin/me/palazzomichi/brainfuckinterpreter/test/BrainfuckInterpreterTest.kt (2063, 2018-01-27)
src/test/kotlin/me/palazzomichi/brainfuckinterpreter/test/BrainfuckProgramTest.kt (5012, 2018-01-27)
src/test/kotlin/me/palazzomichi/brainfuckinterpreter/test/stream/ (0, 2018-01-27)
src/test/kotlin/me/palazzomichi/brainfuckinterpreter/test/stream/BrainfuckReaderTest.kt (1190, 2018-01-27)
src/test/kotlin/me/palazzomichi/brainfuckinterpreter/test/stream/BrainfuckWriterTest.kt (548, 2018-01-27)
# Brainfuck Interpreter
kotlin interpreter for the brainfuck programing language.
## About Brainfuck
Any character other than `><+-.,[]` is ignored.
Brainfuck is characterized by an array of 30,000 cells initialized to zero
and from a pointer pointing to the current cell.
There are eight commands:
- `+`: Increases the value of the current cell by one.
- `-`: Decrements the value of the current cell by one.
- `>`: Move the pointer to the next cell (on the right).
- `<`: Move the pointer to the cell earlier (on the left).
- `.`: Print the ASCII value of the current cell. (ex: 65 = 'A')
- `,`: Read a single character as input and save it in the current cell.
- `[`: If the cell value is zero, it continues up to the corresponding]. Otherwise, move on to the next instruction.
- `]`: If the cell value is zero, move to the next instruction. If not, go back to the [correspondent.
## Use as a binary
This runs a single Brainfuck file specified as a command-line parameter. Standard in and out are passed to the interpreter.
```text
Usage: [-fsi]
-f --file run brainfuck file
-s --string run code directly
-i --infinite run without cell limits
```
## Use as a library
### Kotlin
```kotlin
import me.palazzomichi.brainfuckinterpreter.BrainfuckInterpreter
fun main(args: Array) {
// [...]
val brainfuck = BrainfuckInterpreter(inputStream, outputStream)
// program can be either a BrainfuckProgram, a BrainfuckReader, a Reader or a String.
brainfuck.execute(program)
}
```
### Java
```java
import me.palazzomichi.brainfuckinterpreter.BrainfuckInterpreter;
public class BrainfuckTest {
public static void main(String... args) {
// [...]
BrainfuckInterpreter brainfuck = new BrainfuckInterpreter(inputStream, outputStream);
// program can be either a BrainfuckProgram, a BrainfuckReader, a Reader or a String.
brainfuck.execute(program);
}
}
```
近期下载者:
相关文件:
收藏者: