Skip to content

grafovdenis/SmallBasic_Interpreter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Техническое задание

Интерпретатор BASIC

Задача: реализовать интерпретатор диалекта BASIC (Small BASIC)

Минимальные требования:

  • целочисленные переменные;
  • инфиксные выражения с “+”, “-“, “*”, “/”, скобками;
  • операторы сравнения “<”, “<=”, “=”, “<>”, “>=”, “>”;
  • операторы TextWindow.Write(), TextWindow.Read(), If, GoTo, Sub.

Интерпретатор Small BASIC должен уметь построчно анализировать, обрабатывать и выполнять исходный код программы или запроса.

Алгоритм работы интерпретатора:

  1. прочитать инструкцию;
  2. проанализировать инструкцию и определить соответствующие действия;
  3. выполнить соответствующие действия;
  4. если не достигнуто условие завершения программы, прочитать следующую инструкцию и перейти к пункту 2.

Для выполнения пункта 2 необходимо будет создать синтаксический анализатор выражений, который будет разбивать исходное выражение на составные части, компоненты (неделимые элементы выражения – лексемы).

Функция, разбивающая выражение на составные части, должна решать несколько задач:

  1. игнорировать пробелы и символы табуляции;
  2. извлекать каждую лексему из текста;
  3. определять тип лексемы.

Анализатор будет использовать шесть типов лексем: DELIMITER, VARIABLE, NUMBER, COMMAND, STRING, MARK (разделитель, переменная, число, команда, строка, метка).

Также при создании интерпретатора нужно будет учитывать все особенности и грамматику языка Small BASIC. Например, все числа – целые (integers: -32767...32767).

Формат входных данных: .sb.

C документацией языка SmallBasic можно ознакомиться тут

About

Low level programming coursework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages