Skip to content

vladbogun1/BrainFuckCompilerOOP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BrainFuckCompilerOOP

Java compiler from BrainFuck code to text

Run

  1. Go to BrainFuckCompilerOOP/src/main/ directory.
  2. Open CMD
  3. Run command brainfuck "%COMMAND%" where %COMMAND% is your command
For example:
C:\BrainFuckCompilerOOP\src\main>brainfuck "++++++++++++++++++++++++++++++++++++++."

&

Task

Brainfuck Compiler

Write a Java program that runs a program written in the language Brainfuck

Input: Brainfuck line of instructions

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.

Output: a string containing the output of a executed program Hello World!

Additional requirements:

The implementation of the program should consist of 2 stages:

  1. Compilation. An input line is used to construct a data model using the principles OOP and design patterns.
  2. Execution. To execute the program according to the constructed model, without access to the original line.

The input command , does not need to be supported

Write the necessary Unіt and functional tests.

Java 8, Gradle, Github.

BrainFuck commands:

> increment the data pointer (to point to the next cell to the right).

< decrement the data pointer (to point to the next cell to the left).

+ increment (increase by one) the byte at the data pointer.

- decrement (decrease by one) the byte at the data pointer.

. output the byte at the data pointer.

, accept one byte of input, storing its value in the byte at the data pointer.

[ if the byte at the data pointer is zero, then instead of moving the instruction pointer forward to the next command, jump it forward to the command after the matching ] command.

] if the byte at the data pointer is nonzero, then instead of moving the instruction pointer forward to the next command, jump it back to the command after the matching [ command.

About

BrainFuckCompilerOOP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published