Мегаобучалка Главная | О нас | Обратная связь

Компилятор. Синтаксис и семантика




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

Текст набранной программы, для того чтобы быть "понятым" компьютером, должен быть переведен на язык машинных кодов. Такой перевод называется компиляцией и выполняется специальной программой — компилятором. Компилятор анализирует программу и определяет, содержит ли она ошибки. В случае их обнаружения вся работа останавливается. Если же правила языка программирования не нарушены, то формируется модуль на машинном языке, который затем и исполняется.

В отличие от естественных языков, таких как русский, английский и др., язык программирования имеет очень ограниченное количество "слов", понятных компилятору, и строгие правила записи команд. Совокупность этих требований образует синтаксис языка программирования, а смысл команд и других конструкций языка — его семантику.

Типы ошибок

Программирование является творческим процессом, поэтому ошибки неизбежно встречаются даже у опытных программистов. Различают следующие типы ошибок: синтаксические ошибки (ошибки компиляции), ошибки выполнения и ошибки в алгоритме программы (семантические).

1. Синтаксические ошибки возникают при нарушении правил языка (в нашем случае — языка Turbo Pascal), их обнаруживает компилятор, который не может из-за ошибки "понять" назначение команды.

2. Ошибки выполнения не нарушают синтаксис языка. Однако они приводят к ошибочным операциям в процессе выполнения программы, например попытке деления на ноль или извлечения квадратного корня из отрицательного числа. Перечень Turbo Pascal об ошибках содержит более 200 сообщений (см. приложение 1).

3. Ошибки в алгоритме программы при верных исходных данных и внешне безошибочной работе программы приводят к неверным результатам. Этот тип ошибок наиболее коварен и труден для исправления, т. к. пользователь, получая ошибочный результат, считает его верным, поскольку никаких сообщений об ошибках не было. Семантические ошибки должен обнаруживать сам программист. В поиске и исправлении ошибок ему может оказать существенную помощь интегрированная среда разработки Turbo Pascal и ее встроенный отладчик.



 

Алфавит языка Турбо Паскаль. Программа

Система программирования Т-П представляет собой единство двух самостоятельных начал:

· Компилятора с языка программирования Паскаль

· Инструментальной оболочки Турбо.

Язык так назван в честь выдающегося французского математика и философа Блеза Паскаля (1623-1662). Разработал язык Паскаль в 1970 году Никлас Вирт. Турбо Паскаль разработан фирмой Borland. Предназначен для решения широкого круга задач. Все компоненты формируются из множества стандарта ASCII.

Алфавит– совокупность допустимых в языке символов.

Элементы языка можно условно разбить на 4 группы:

· Символы, используемые в идентификаторах;

· Разделители;

· Специальные символы;

· Неиспользуемые символы.

Идентификаторы

Идентификатор – любая последовательность символов, удовлетворяющая требованиям:

· Может состоять из латинских букв (стр. и проп.), цифр 0..9,знака подчеркивания;

· Может начинаться только с буквы или знака подчеркивания;

· Не должна совпадать с зарезервированным словом;

· Длина может быть произвольной, но значащими являются только первые 63 символа.

Разделители

Разделитель – используется только для отделения др. от др. идентификаторов, чисел, зарезервированных слов. В качестве разделителя можно использовать:

· Пробел (код 32);

· Любой управляющий символ (коды 0..31);

· Комментарий.

Комментарий заключается в фигурные скобки {}, (* *).

Специальные символы

Специальные символы – символы, выполняющие в языке определенные функции, их 3 категории:

· Знаки пунктуации,

· Знаки операций,

· Зарезервированные слова.

Таблица 1. Знаки пунктуации.

Знак Применение
{ } Скобки, комментарии
(**) Скобки, комментарии
[ ] Выделение индексов массивов, элементов множеств
Апостроф для выделения символа или строковой const
:= Знак присвоения значения переменной
; Разделение операторов и объявлений
: Отделение переменной или типизированной const от типа или метки оператора
= Отделение идентификатора типа от описания типа или типизированной const от ее значения
, Запятая для разделения элементов списка
Разделение границ диапазона
, Точка для: - обозначения конца программы; - отделения целой части от дробной в вещественных числах; - отделения полей в записи; - отделения идентификатора от имени модуля в котором он находится
^ Обозначение типа указатель, значение величины по ее указателю или управляющего символа (коды 0-31)
# Обозначение символа по его коду
$ Обозначение директивы компилятора или знак шестнадцатеричного числа

Знаки операций предназначены для обозначения тех или иных арифметических действий

Приоритет Операция
Not, @
*, /, div, mod, and, shl, shr
+, -, or, xor
=, <>, <, >, <=, >=, in

Зарезервированные слова включают в себя служебные слова(begin, end, div и т.д.) и имена директив (external, forward и т.д.).

Неиспользуемые символы (%, “ и т.д.) не используются в Т-П, но могут использоваться в комментариях





Читайте также:





Читайте также:
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...

©2015 megaobuchalka.ru Все права защищены авторами материалов.

Почему 3458 студентов выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)