72197

Синтаксис и семантика языка Паскаль

Лекция

Информатика, кибернетика и программирование

Элементарные конструкции языка Паскаль включают в себя имена, числа и строки. Имена (идентификаторы) называют элементы языка - константы, метки, типы, переменные, процедуры, функции, модули, объекты. Идентификатор в Турбо Паскале может включать в себя: буквы латинского алфавита, цифры символ подчеркивания.

Русский

2014-11-19

42.5 KB

10 чел.

Описание каждого элемента языка задается его СИНТАКСИСОМ и СЕМАНТИКОЙ. Синтаксические определения устанавливают правила построения элементов языка. Семантика определяет смысл и правила использования тех элементов языка, для которых были даны синтаксические определения.

Рис 0

Элементарные конструкции языка Паскаль включают в себя имена, числа и строки.

Имена (идентификаторы) называют элементы языка - константы, метки, типы, переменные, процедуры, функции, модули, объекты. Идентификатор в Турбо Паскале может включать в себя:

- буквы латинского алфавита,

- цифры

- символ подчеркивания.

Строчные и прописные буквы не различаются (например, NAME, Name и name будет означать одно и то же).

Цифра не может стоять на первом месте в идентификаторе, а символ подчеркивания может находиться в любой позиции.

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

В качестве имен не допускается использовать служебные слова.  

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

Числа в языке Паскаль обычно записываются в десятичной системе счисления. Они могут быть целыми и действительными. Положительный знак числа может быть опущен. Целые числа записываются в форме без десятичной точки, например:

217  -45  8954  +483

Действительные числа записываются в форме с десятичной точкой:

28.6  0.65  -0.018  4.0

Возможна также запись с использованием десятичного порядка, который изображается буквой Е:

5Е12  -1.72Е9  73.1Е-16

В "переводе" такую запись следует понимать соответственно как:

5x1012  -1.72x109  73.1x10-16

Паскаль допускает запись целых чисел и фрагментов действительных чисел в форме с порядком в шестнадцатиричной системе счисления:

$7F  $40  $ABC0

Строки в языке Паскаль - это последовательность символов, записанная между апострофами.

Порядковые типы, выделяемые из группы простых типов, характеризуются следующими свойствами:

  •  все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество;
  •  к любому порядковому типу может быть применена стандартная функция Ord, которая в качестве результата возвращает порядковый номер конкретного значения в данном типе;
  •  к любому порядковому типу могут быть применены стандартные функции Pred и Succ, которые возвращают предыдущее и последующее значения соответственно;
  •  к любому порядковому типу могут быть применены стандартные функции Low и High, которые возвращают наименьшее и наибольшее значения величин данного типа.

В языке Паскаль введены понятия эквивалентности и совместимости типов.

Два типа X1 и X2 являются эквивалентными (идентичными), если выполняется одно из двух условий:

  •  X1 и X2 представляют собой одно и то же имя типа;
  •  тип X2 описан с использованием типа X1 с помощью равенства или последовательности равенств.

Например:

type

 X1 = Integer;

 X2 = X1;

 X3 = X2;

Менее строгие ограничения накладываются на совместимость типов. Совместимость означает, что для переменных этих типов возможна операция присваивания.

В Турбо Паскаль ограничения на совместимость типов можно обойти с помощью приведения типов. Приведение типов позволяет рассматривать одну и ту же величину в памяти ЭВМ как принадлежащую разным типам. Для этого используется конструкция

Имя_Типа(переменная или значение)

Например, Integer('Z') представляет собой значение кода символа 'Z' в двухбайтном представлении целого числа.

trunc: real -> integer;

round: real -> integer;

val: string -> byte/integer/real;

chr: byte -> char;

ord: <порядковый_тип> -> longint;

Переменной называют элемент программы, который предназначен для хранения, коррекции и передачи данных внутри программы.

Наряду с переменными в программах используются и константы.

Константа - это идентификатор, обозначающий некоторую неизменную величину определенного типа.

Целочисленные константы.

Вещественные константы.

Символьные константы.

Строковые константы.

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

Каждой типизированной константе ставится в соответствие имя, тип и начальное значение. Например:

year: integer = 2001;

symb: char = '?';

money: real = 57.23;

Математические операции

* / + - div mod

Логические операции

NOT - логическое отрицание ("НЕ")

AND - логическое умножение ("И")

OR - логическое сложение ("ИЛИ")

XOR - логическое "Исключающее ИЛИ"

Операции отношения

> - больше

< - меньше

= - равно

<> - не равно

>= - больше или равно

<= - меньше или равно

Приоритет операций

Порядок вычисления выражения определяется старшинством (приоритетом) содержащихся в нем операций. В языке Паскаль принят следующий приоритет операций:

унарная операция not, унарный минус -, взятие адреса @

операции типа умножения:  *  /  div  mod  and

операции типа сложения:  +  -  or  xor

операции отношения:  =  <>  <  >  <=  >=  in

Порядок выполнения операций переопределить можно с помощью скобок.

Основные математические функции

Рис 3

Программа на языке Паскаль состоит из заголовка, разделов описаний и раздела операторов. Заголовок программы содержит имя программы, например:

Program PRIMER;

Описания могут включать в себя:

раздел подключаемых библиотек (модулей);

раздел описания меток;

раздел описания констант;

раздел описания типов;

раздел описания переменных;

раздел описания процедур и функций.

Раздел описания модулей определяется служебным словом USES и содержит имена подключаемых модулей (библиотек) как входящих в состав системы Pascal, так и написанных пользователем.

program Primer; {вычисление суммы двух чисел}

uses Crt; {подключение модуля, необходимого для процедур

          очистки экрана и задержки}

//label

//const

var

 x,y,s: integer;

begin

 ClrScr; {очистка экрана}

 WriteLn('Введите через пробел два числа ');

 ReadLn(x,y);

 s := x + y;

 WriteLn('Сумма чисел равна ',s);

 ReadKey; {ожидание нажатия клавиши}

end.

Пример множественного выбора

case ch of

   'A'..'Z', 'a'..'z' : WriteLn('Буква');

   '0'..'9'           : WriteLn('Цифра');

   '+', '-', '*', '/' : WriteLn('Оператор');

   else WriteLn('Специальный символ')

end;

окончание лет год года

Оператор безусловного перехода

Помимо операторов условного перехода существует также оператор безусловного перехода goto. Формат:  goto метка

Оператор goto переходит при выполнении программы к определенному оператору программы, перед которым находится метка. Метка должна быть описана в разделе описания меток той программы (процедуры или функции), в которой она используется. Нельзя перейти из одной процедуры или функции в другую.

Необходимо, чтобы в программе существовал оператор, отмеченный указанной меткой. Она записывается перед оператором и отделяется от него двоеточием.

Пример

label 1;

begin

 ...

 goto 1;

 ...

 1: WriteLn('Переход к метке 1');

end.

Учтите! Само понятие структурного программирования и общепринятый стиль программирования на структурных языках НЕ ПРИВЕТСТВУЕТ применение меток и операторов перехода в программах. Это затрудняет понимание программы как автором, так и потребителями, кроме того, применение меток отрицательно сказывается на эффективности генерируемого кода.

  1.  Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней.

  1.  Написать программу угадывания (целых) чисел. Один из партнеров вводит в программу число, а второй должен отгадать это число. Причем на каждое предлагаемый вариант программа отвечает либо "больше", либо "меньше" до тех пор, пока число не будет отгадано.
  2.  Билет называется «счастливым», если в его номере сумма первых трех цифр равна сумме последних трех. Подсчитать число тех «счастливых» билетов, у которых сумма трех цифр равна 13.


 

А также другие работы, которые могут Вас заинтересовать

24738. Теория языков программирования и методы трансляции 233.96 KB
  Если синтаксический анализ предназначен для распознавания и проверки правильности различных конструкций языка с точки зрения их синтаксиса структуры то семантический анализ предназначен для контроля этих конструкций с точки зрения их смыслового содержания. Фаза генерации кода предназначена для перевода промежуточной программы на машинный язык мы будем предполагать коды Ассемблера. Языки...
24739. Системы искусственного интеллекта. Модель логики предикатов первого порядка 418.5 KB
  Задаваемые при описании формальной системы правила вывода называют также правилами вывода заключений т. Различают два типа правил вывода. Правила вывода. Правила вывода устанавливают отношения на множестве формул исчисления высказываний.
24740. Линейные списки – стеки, очереди, деки. Набор процедур для работы со связанным стеком, очередью 1.08 MB
  Способы обхода бинарного дерева. Древовидная структура это конечное множество содержащее один или более узлов n такое что: 1 имеется один специально обозначенный узел называемый корнем данного дерева. Линия связи между парой узлов дерева называется обычно ветвью. Те узлы которые не ссылаются ни на какие другие узлы дерева называются листьями или терминальными вершинами рис.
24741. English Speaking Countries 17.49 KB
  The Commonwealth of Australia territories are the continent of Australia the island of Tasmania and number of smaller islands. Australia has an area of nearly eight million square kilometres. The population of Australia is over sixteen million people.
24742. Outstanding people of Russia Federation 16.41 KB
  The names of Russian scientists and writers poets composers and painters are worldfamous Pushkin Lermontov Chehov Levitan. It is almost impossible to name a branch of science in the development of which the Russian scientists haven't played the greatest role. Works of our Russian writes and poets are translated into many languages.
24743. Службы разрешения имен DNS и WINS 15.76 KB
  Для решения этой проблемы Windows XP и Windows Server 2003 обеспечивают возможность сопоставления разрешения IPадреса с именем компьютера. В состав Windows XP и Windows Server 2003 входят также две службы обеспечивающие централизованное хранение информации о соответствии имен компьютеров IPадресам и обслуживание запросов на поиск такого соответствия: служба WINS Windows Internet Name Service обеспечивающая управление именами NetBIOS. Эта служба включена для поддержки клиентских компьютеров управляемых версиями Windows 9x Me NT; ...
24744. Сетевая технология 23.5 KB
  Принципиально эти решения можно разделить на три группы: передача разных типов трафика по отдельным физическим линиям создание двух независимых сетевых инфраструктур; передача различных типов трафика по одной линии; преобразование одного вида трафика в другой с последующей транспортировкой и коммутацией.
24745. Физическая структуризация сетей. Примеры 26.36 KB
  Примеры Для построения простейшей односегментной сети достаточно иметь сетевые адаптеры и кабель подходящего типа. Повторитель улучшает электрические характеристики сигналов и их синхронность и за счет этого появляется возможность увеличивать общую длину кабеля между самыми удаленными в сети станциями. Логический сегмент построенный с использованием концентраторов Появление устройств централизующих соединения между отдельными сетевыми устройствами потенциально позволяет улучшить управляемость сети и ее эксплуатационные характеристики...
24746. Логическая структуризация сети 26 KB
  Логическая структуризация сети Несмотря на появление новых дополнительных возможностей основной функцией концентраторов остается передача пакетов по общей разделяемой среде. Коллективное использование многими компьютерами общей кабельной системы в режиме разделения времени приводит к существенному снижению производительности сети при интенсивном трафике. Общая среда перестает справляться с потоком передаваемых кадров и в сети возникает очередь компьютеров ожидающих доступа. Это явление характерно для всех технологий использующих разделяемые...