From da239aafa14fa1f727299a5f34ba90a80f9efee4 Mon Sep 17 00:00:00 2001 From: Dmytro Hushchin <65043455+DHushchin@users.noreply.github.com> Date: Tue, 4 May 2021 21:50:23 +0300 Subject: [PATCH] Update assignment_5.md --- labs_spring_2021/assignment_5.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/labs_spring_2021/assignment_5.md b/labs_spring_2021/assignment_5.md index f26e30f..43fd505 100644 --- a/labs_spring_2021/assignment_5.md +++ b/labs_spring_2021/assignment_5.md @@ -7,7 +7,7 @@ ## Варіант #0. Побудова математичного інтерпретатора Написати програму-інтерпретатор математичних виразів, що підтримує змінні та (в більш складному варіанті) оператори розгалуження. Можете взяти за основу вашу або чиюсь попередню лабораторну роботу із Shunting Yard. -В цій роботі замість того, щоб одразу обчислювати значення кожної операції, необхідно спочатку побудувати абстрактне синтаксичне дерево виразу. Далі обчислення виразу зводиться до обходу дерева в глибину і обчислення значення вузлів дерева або прийняття рішення про зміну порядку обходу дерева. Як приклад, можна навести умовний оператор: обчислюється лише одна з гілок вершини цього оператора, а інша пропускається. +В цій роботі замість того, щоб одразу обчислювати значення кожної операції, необхідно спочатку побудувати [абстрактне синтаксичне дерево](https://www.twilio.com/blog/abstract-syntax-trees) виразу. Далі обчислення виразу зводиться до обходу дерева в глибину і обчислення значення вузлів дерева або прийняття рішення про зміну порядку обходу дерева. Як приклад, можна навести умовний оператор: обчислюється лише одна з гілок вершини цього оператора, а інша пропускається. Значення змінних під час обходу дерева найкраще зберігати в хеш-таблиці. Ніякі типи даних, крім чисел із плаваючою комою, впроваджувати не обов\'язково.