Синтаксична помилка (програмування)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

В інформатиці синтаксична помилка — це помилка в синтаксисі послідовності символів або токенів, які призначений для написання певною мовою програмування.[джерело?]

Для компільованих мов синтаксичні помилки виявляються під час час компіляції. Програма не буде скомпільована, доки не буде виправлено всі синтаксичні помилки. Однак для інтерпретованих мов синтаксична помилка може бути виявлена під час виконання програми, і повідомлення про помилки інтерпретатора можуть не відрізняти синтаксичні помилки від помилок іншого роду.

Опис[ред. | ред. код]

Існують певні розбіжності щодо того, які помилки є «синтаксичними помилками». Наприклад, деякі скажуть, що використання неініціалізованого значення змінної в коді Java є синтаксичною помилкою, але багато інших не погодяться з цим[1][2] і класифікує це як помилку (static) semantic.

У 8-бітних домашніх комп'ютерах, які використовували інтерпретатор BASIC як основний інтерфейс користувача, SYNTAX ERROR повідомлення про помилку стало дещо сумно відомим, оскільки це була відповідь на будь-яку команду або введений користувачем інтерпретатор не міг проаналізувати. Синтаксична помилка може виникнути або мати місце, коли на калькуляторі вводиться недійсне рівняння. Це може бути спричинено, наприклад, розкриттям дужок без їх закриття або, рідше, введенням кількох десяткових крапок в одному числі.

У Java наступний синтаксично правильний оператор:

System.out.println("Hello World");

тоді як наступне не є:

System.out.println(Hello World);

У другому прикладі теоретично буде друкуватися змінна Hello World замість слів «Hello World». Однак між змінними в Java не може бути пробілу, тому синтаксично правильний рядок буде System.out.println(Hello_World).

Компілятор позначатиме синтаксичну помилку, коли надано вихідний код, який не відповідає вимогам граматики мови.

Помилки типу (наприклад, спроба застосувати оператор приросту ++ до логічної змінної в Java) і помилки неоголошених змінних іноді вважаються синтаксичними помилками, якщо вони виявляються під час компіляції. Однак прийнято класифікувати такі помилки як помилки (static) semantic.[2][3][4]

Синтаксичні помилки в калькуляторах[ред. | ред. код]

Синтаксична помилка в науковому калькуляторі

Синтаксична помилка — це один із кількох типів помилок у калькуляторах (найчастіше зустрічається в наукових калькуляторах і графічних калькуляторах), що означає, що рівняння, яке було введені дані мають неправильний синтаксис чисел, операцій тощо. Це може призводити різними способами, включаючи, але не обмежуючись:

  • Відкрита дужка без закриваючої дужки (якщо пропущена закриваюча дужка не знаходиться в самому кінці рівняння)
  • Використання знака мінус замість від'ємного символу (або навпаки), які є різними на більшості наукових калькуляторів. Зауважте, що в той час як деякі наукові калькулятори дозволяють знаку мінус замінювати негативний символ, зворотне зустрічається рідше.

Примітки[ред. | ред. код]

  1. Проблема з синтаксисом чи семантикою?
  2. а б Семантичні помилки в Java
  3. Aho, Alfred V.; Monica S. Lam; Ravi Sethi; Jeffrey D. Ullman (2007). Компілятори: Принципи, методи та інструменти (вид. 2nd). Addison Wesley. ISBN 978-0-321-48681-3. Розділ 4.1.3: Обробка синтаксичних помилок, стор.194–195.
  4. Louden, Kenneth C . (1997). Побудова компілятора: Принципи та практика. Brooks/Cole. ISBN 981-243-694-4. Вправа 1.3, стор.27–28.