Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

grafovdenis/SmallBasic_Interpreter

Open more actions menu

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

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.