Консольный калькулятор (проект)

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Ментор Архангельский Сергей
Учебный семестр Весна 2015
Учебный курс 1-й курс



Что это за проект?

Консольная утилита, позволяющая производить базовые арифмитические операции.

Чему вы научитесь?

  • Основам теории синтаксического анализа формальных языков
  • Работе с консолью внутри приложения

Какие начальные требования?

  • Начальное владение одним из языков: Python, C++, go.
  • Готовность самостоятельной работе.

Какие будут использоваться технологии?

Те, которые предполагаются форматом проектного семинара, git, github, возможно среды разработки.

Темы вводных занятий

  • Формальные грамматики. Лексический и синтаксический разбор.

Направления развития

  • Реализация полноценного интерпретатора своего собственного языка программирования

Критерии оценки

  • Удовлетворительно: Поддержка арифметических действий (сложение, вычитание, умножение, деление, возведение в степень), скобочных выражений, базовых математических функций (логарифм, тригонометрия). Поддержка именованных переменных присваивание и использование в выражении. Поддержка режима чтения со стандартного входа.
  • Хорошо: Поддержка навигации по истории команд (нажатие кнопки вверх -- предыдущая команда, вниз -- последующая). Поддержка автодополнения (нажатие TAB -- предлагается список допустимых лексем, если только одна, то она автоматически подставляется)
  • Отлично: Поддержка символьных выражений (когда один из операндов задан как некая переменная, пример: 2x + 3y). Реализация раскрытия скобок (например (2x + 3y) * (4x + 1) -> 8x^2 + 2x + 12xy + 3y)

Дополнительные ссылки