Скачайте проект brainfuck.
Создавать языки программирования сложно. Но не всегда! Язык программирования Brainfuck — это экстремально простой язык программирования, интерпретатор при желании можно уместить на один экран кода. Программа на Brainfuck состоит только из символов +-<>.,[]
, поэтому читать такие программы не очень удобно. 🙂
В этой серии задач вам предстоит создать этот интерпретатор с возможностью его простого расширения новыми операциями.
В задачах программирования интерпретаторов часто оказываются удобными пройденные в этом блоке делегаты анонимные функции — решите эту задачу с помощью анонимных функций.
виртуальная машина хранит следующее:
- Массив памяти, каждая ячейка которого хранит 1 байт. По умолчанию размер памяти — 30000 ячеек.
- Указатель на текущую ячейку памяти. Изначально, указатель указывает на нулевую ячейку.
- Выполняемую программу. Она состоит из инструкций, каждая обозначается одним символом. Программа начинает выполняться с первого символа последовательно.
- Номер выполняемой в данный момент инструкции. После выполнения любой инструкции номер увеличивается на единицу. Как только номер инструкции выходит за пределы программы, выполнение заканчивается.
Конкретные операции на языке Brainfuck могут читать или менять эти данные.
В этой части вам нужно реализовать виртуальную машину в классе VirtualMachine.cs так, чтобы проходили все тесты из файла VirtualMachineTests.cs.
1 2 3 4 5 6 |
// Вставьте сюда финальное содержимое файла VirtualMachine.cs using System; using System.Collections.Generic; namespace func.brainfuck { |
Стоимость решения этой задачи всего 100 рублей, закажи решения у меня 🙂