Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Синтаксис языка Pascal. Алфавит, комментарии, идентификаторы, константы, служебные слова




Трансляция программ. Виды трансляторов. Типы ошибок в программах. Компиляция и отладка программ.

Трансля́тор — программа или техническое средство, выполняющее трансляцию программы.

Транслятор - в широком смысле - программа, преобразующая текст, написанный на одном языке, в текст на другом языке.

Транслятор - в узком смысле - программа, преобразующая: программу, написанную на одном (входном) языке в программу, представленную на другом (выходном) языке.

Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программы и т. д.

Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.

Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом. Выходной язык называется целевым языком или объектным кодом.

Трансляторы подразделяют:

  • Адресный. Функциональное устройство, преобразующее виртуальный адрес (англ. Virtual address) в реальный адрес.
  • Диалоговый. Обеспечивает использование языка программирования в режиме разделения времени.
  • Многопроходной. Формирует объектный модуль за несколько просмотров исходной программы.
  • Обратный. То же, что детранслятор.
  • Однопроходной. Формирует объектный модуль за один последовательный просмотр исходной программы.
  • Оптимизирующий. Выполняет оптимизацию кода в создаваемом объектном модуле.
  • Синтаксически-ориентированный (синтаксически-управляемый). Получает на вход описание синтаксиса и семантики языка и текст на описанном языке, который и транслируется в соответствии с заданным описанием.
  • Тестовый. Набор макрокоманд языка ассемблера, позволяющих задавать различные отладочные процедуры в программах, составленных на языке ассемблера.

Транслятор, который преобразует программы в машинный язык, принимаемый и исполняемый непосредственно процессором, называется компилятором.

Типы ошибок в программах:

1) ошибки компиляции. Среда Турбо-Паскаля обладает мощными средствами обнаружения и локализации ошибок. В случае обнаружения ошибки она идентифицируется курсором. При этом в верхней строке окна редактора появляется диагностическое сообщение. После нажатия на любую клавишу, кроме(F1) верхняя строка восстанавливает свой первоначальный вид, и среда переходит к режиму редактирования. Если после появления сообщения об ошибке нажать функциональную клавишу F1, на экране появиться окно справочной службы с детальной информацией об ошибке и рекомендациями по ее устранению. Некоторые ошибки в исходном тексте обнаруживаются не сразу, а в ходе продолжающегося контекстного разбора.

2) ошибки, возникающие во время выполнения программы. Некоторые ошибки, обнаруженные во время выполнения программы, приводят к
появлению на экране сообщения вида:
Runtime error nnn at xxxx:yyyy
(ошибка периода исполнения nnn по адресу xxxx:yyyy), где nnn- номер ошибки,
xxxx:yyyy- адрес (сегмент и смещение). После этого сообщения программа завершает
свою работу.
Ошибки периода исполнения делятся на четыре категории:
1) Ошибки, обнаруживаемые ДОС (коды ошибок 1-99);
2) Ошибки ввода\вывода (100-149);
3) Критические ошибки (150-199);
4) Фатальные ошибки (200-255);

3) ошибки, обнаруживаемые ДОС (например, File not found (Не найден файл) и Path not found (Путь не найден)).

4) критические ошибки (например, Disk is write protected (Диск защищен от записи)).

5) фатальные ошибки. Эти ошибки всегда приводят к немедленной остановке программы(например, Division by zero (Деление на нуль))


Синтаксис языка Pascal. Алфавит, комментарии, идентификаторы, константы, служебные слова.

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

Буквы – это буквы латинского алфавита от a до z и от A до Z, а также знак подчеркивания _. Нет различия между прописными и строчными буквами алфавита, если только они не входят в символьные или строковые выражения.

Цифры – арабские цифры от 0 до 9.

Каждая шестнадцатеричная цифра имеет значение от 0 до 15. Первые 10 значений обозначаются арабскими цифрами 0..9, остальные шесть – латинскими A..F.

Специальные символы – это символы + – * / =, ‘.:;,. [ ] () { } ^ @ $ #

К специальным также относятся следующие пары символом: < > <= >=:= (* *) (..)

 

Зарезервированные (служебные) слова: and, asm, array, begin, case, const, construction, destructor, div, do, downto, else, end, file, for, function, goto, if, implementation, in, inline, interface, label, mod, nil, not, object, of, or, packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type, unit, until, uses, var, while, with, xor.

Идентификаторы – имена констант, переменных, меток, типов, объектов, процедур, функций, модулей, программ и т.д. В качестве идентификатора можно использовать любые последовательности символов, удовлетворяющих следующим ограничениям:

1. идентификатор может состоять из букв латинского алфавита, цифр, знака подчеркивания; другие символы в идентификаторе не допустимы;

2. идентификатор не может начинаться с цифры;

3. идентификатор не может совпадать ни с одним из зарезервированных слов;

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

Константы. В качестве констант могут использоваться целые, вещественные, шестнадцатеричные числа, логические константы, символы, строки символов, конструкторы множеств и признак неопределенного указателя NIL.

Тип константы определяется способом записи ее значения. Например:

Const

с1 = 17; (константа типа integer)

c2 = 3.14; (константа типа real)

c3 = ‘A’; (константа типа char)

c4 = ‘3.14’; (константа типа string)

c5 = false; (константа типа boolean)

Целые числа записываются со знаком или без него по обычным правилам, могут принимать значения от -2147483648 до +2147483847.

Вещественные числа записываются со знаком или без него с использованием десятичной точки и/или экспоненциальной части (е или Е за которой следуют «+» или «-» и десятичный порядок – например, 3.14е-2 = 3.14*10-2).

Шестнадцатеричное число – состоит из шестнадцатеричных цифр, которым предшествует знак $. Диапазон – от $00000000 до $FFFFFFFF.

Логическая константа – это либо слово FALSE (ложь) либо TRUE (истина).

Символьная константа – это любой символ, заключенный в апострофы (пример – ‘z’).

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

Конструктор множества – список элементов множества, обрамленных квадратными скобками (пример [1, 2, 3, 4..7, 12).

 

Комментарии разрешается вставлять в любое место программы, где по смыслу может стоять пробел. Комментарии обрамляются ограничителями – { комментарий } или (* комментарий *). Можно вкладывать комментарии с ограничителями разных типов друг в друга: { (* *) } или (* { } *).

Синтаксис на примере программы:

Program My_first_program;

Const

text = ‘Ya programmiruyu na Pascale’;

Begin

wtiteln(text);

end.

В данной программе-примере 6 строк. Строки выделяют некоторые смысловые фрагменты текста и могут не связываться с конкретными действиями в программе. Пробел в Pascal используется как разделитель отдельных конструкций языка и не может использоваться произвольно. Поэтому в названии программы (My_first_program) используются символы подчеркивания. В языке игнорируется различие по высоте букв (заглавные и строчные), если только это не связано с текстовыми константами.

Первая строка – слово Program зарезервировано и содержит объявление имени программы. Зарезервированные слова не могут использоваться в качестве идентификатора (имени) объекта программы – переменной, константы и т.д. Вторая строка – const – содержит зарезервированное слово const, означающее, чтодалее будут описываться одна или несколько констант. Константы – такие объекты программы, которые не могут изменять свои значения. Описать константу – значит указать ее имя и значение (третья строка: text – имя константы, ‘Ya programmiruyu na Pascale’ – значение константы). text – константа типа строки символов (признаком этого являются апострофы). Четвертая строка – зарезервированное слово begin – начало главной части программы (раздела операторов). Пятая строка: оператор wtiteln(text) – вывод значения константы textна экран. Слово writeln не является зарезервированным, но является средством вывода данных, поэтому переопределять его не стоит. Шестая строка: зарезервированное слово end с точкой – конец программы. За сочетанием end. может идти какой угодно текст, он не будет обрабатываться компилятором.






Поделиться с друзьями:


Дата добавления: 2016-10-27; Мы поможем в написании ваших работ!; просмотров: 622 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если вы думаете, что на что-то способны, вы правы; если думаете, что у вас ничего не получится - вы тоже правы. © Генри Форд
==> читать все изречения...

2282 - | 2212 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.