В информатике , синтаксическая ошибка ошибка в синтаксисе последовательности символов или маркеров , которые предназначены для записи в компиляции . Программа не будет компилироваться, пока не будут исправлены все синтаксические ошибки. Однако для интерпретируемых языков синтаксическая ошибка может быть обнаружена во время выполнения программы , и сообщения об ошибках интерпретатора могут не отличать синтаксические ошибки от ошибок других типов.
Есть некоторые разногласия относительно того, какие ошибки являются «синтаксическими ошибками». Например, некоторые скажут, что использование значения неинициализированной переменной в коде Java является синтаксической ошибкой, но многие другие не согласятся [1] [2] и классифицируют это как (статическую) семантическую ошибку.
В 8-битных домашних компьютерах, которые использовали интерпретатор BASIC в качестве основного пользовательского интерфейса, сообщение об ошибке SYNTAX ERROR стало несколько печально известным, поскольку это был ответ на любую команду или ввод пользователя, который интерпретатор не мог проанализировать.
Синтаксическая ошибка также может возникнуть, когда в калькулятор вводится недопустимое уравнение . Это может быть вызвано, например, открытием скобок без их закрытия или, что реже, вводом нескольких десятичных знаков в одно число.
В Java следующее синтаксически правильное утверждение:
Система . из . println ( «Привет, мир» );
а следующее - нет:
System.out.println (Привет, мир);
Во втором примере теоретически будет напечатана переменная Hello World вместо слов Hello World. Однако переменная в Java не может иметь пробела между ними, поэтому синтаксически правильной строкой будет System.out.println (Hello_World).
Компилятор помечает синтаксическую ошибку, если исходный код не соответствует требованиям грамматики языка.
Ошибки типа (например, попытка применения оператора приращения ++ к логической переменной в Java) и необъявленные ошибки переменных иногда считаются синтаксическими ошибками, если они обнаруживаются во время компиляции. Однако обычно такие ошибки классифицируются как (статические) семантические ошибки. [2] [3] [4]
Синтаксические ошибки на калькуляторах
Синтаксическая ошибка - это один из нескольких типов ошибок на калькуляторах (чаще всего встречается в научных калькуляторах и графических калькуляторах ), который означает, что введенное уравнение имеет неправильный синтаксис чисел, операций и т. Д. Это может привести к различным результатам, включая, помимо прочего:
- Открытая скобка без закрывающей скобки (если только закрывающая скобка отсутствует в самом конце уравнения)
- Использование знака минус вместо отрицательного символа (или наоборот), которые различны на большинстве научных калькуляторов. Обратите внимание, что в то время как некоторые научные калькуляторы допускают замену отрицательного символа знаком минус, обратное встречается реже.
- Отсутствие чисел в уравнении (например, "12 × + 5", отсутствие числа между знаками × и + )
Их не следует путать с математическими ошибками (например, при делении на 0 или уравнении, в результате которого отображается слишком большое число). Большинство ненаучных калькуляторов не различают различные формы ошибок (часто обозначаемые буквой E), главным образом потому, что вводимые данные менее гибки (предотвращение синтаксических ошибок). Некоторые калькуляторы (особенно научные) также имеют другие типы ошибок, такие как ошибки стека.
Смотрите также
Рекомендации
- ^ Проблема синтаксиса или семантики?
- ^ a b Семантические ошибки в Java
- ^ Ахо, Альфред V .; Моника С. Лам; Рави Сетхи; Джеффри Д. Ульман (2007). Компиляторы: принципы, методы и инструменты (2-е изд.). Эддисон Уэсли. ISBN 978-0-321-48681-3. Раздел 4.1.3: Обработка синтаксических ошибок, стр. 194–195.
- ^ Лауден, Кеннет С. (1997). Построение компилятора: принципы и практика . Брукс / Коул. ISBN 981-243-694-4. Упражнение 1.3, стр.27–28.