5fan_ru_Язык программирования Pascal. Язык программирования Pascal
Скачать 57.5 Kb.
|
Язык программирования Pascal. 1.Алфавит языка 2.Концепция данных 3.Имена и их употребление 4.Структура Pascal-программы 5.Понятие о лексике, прагматике, синтаксисе и семантике языка. 6.Синтаксические диаграммы как средство определения языка Язык программирования Паскаль разработан известным швейцарским ученым и педагогом в области программирования Н.Виртом. Предварительное сообщение появилось в 1968 г. В 1971 году заработал первый компилятор пересмотренной версии, которая приобрела статус стандарта. Первоначально Паскаль предназначался для учебных целей - для преподавания основ программирования студентам - будущим специалистам в области информатики. Очень быстро язык завоевал популярность не только в среде преподавателей и студентов, но и среди профессионалов благодаря своей компактности, гибкости, тщательной проработке концепции. Существующие сегодня реализации языка, сохранив его стандарт в качестве ядра, обладают очень мощными дополнительными средствами, что способствует широкому применению языка. 1. Алфавит языка В языке используются: 1.Латинские буквы (большие и маленькие), знак подчеркивания ’_’ 2.Цифры 0,...,9 3.Математические символы +, -, *, /, <, >, = 4.Разделители: ; , “ ‘ . : ^ 5.Скобки ( ) [ ] { } 6.Другие символы (используемые для печати): буквы национальных алфавитов, !, ?, \, |, ... В различных версиях могут использоваться различные наборы символов. Сейчас широко используется набор символов кода ASCII (American Standard Code for Information Interchange). Этот код предусматривает расширения для национальных алфавитов, символов псевдографики, которые могут меняться от версии к версии. 2.Концепция данных. Данные есть общее понятие для всего того, с чем оперирует ЭВМ. Языки программирования позволяют нам абстрагироваться от деталей представления данных на машинном уровне прежде всего за счет введения понятия типа данных. В языке Pascal представляются числа и строки. Целые числа записываются в десятичной системе счисления: 137, -56, +26 . Вещественные числа используют также десятичную нотацию, причем целая часть отделяется от дробной не запятой, а точкой. Для обозначения порядка числа в качестве разделителя используется буква Е. Например, -5.1Е14 означает -5.1, умноженное на 10 в степени 14 (-5,1*1014). Степени чисел могут быть и отрицательными: 6.74Е-8, -56.89Е-10. Последовательности символов, заключенные в одиночные кавычки, называются строками. Если в строку нужно включить кавычку, то вместо нее записывают две кавычки: ‘ строка из символов ‘, ‘ апостроф ‘’ в слове ‘ В языке очень тщательно в соответствии с концепцией структурного программмирования проработано понятие типа данных. Существуют так называемые простые (элементарные) типы, которые либо определены как стандартные, либо определяются программистом. Определен также механизм описания и использования сложных типов из более простых как из базовых. 3.Имена и их употребление. Именем в языке называется последовательность (латинских) букв, знака подчеркивания ‘_’ и цифр, начинающаяся с буквы либо со знака подчеркивания. Хотя имена могут быть сколь угодно длинными, в реализации количество значащих символов в имени может быть ограничено. В стандарте языка имена различаются по первым восьми символам. Это означает, что имена VeryLongNumber, VeryLongCardinal в стандарте языка обозначают (именуют) один и тот же объект. Кроме того, язык не различает больших и маленьких букв. Поэтому имена Sin, SIN, sin неразличимы. Имена используются для обозначения констант, типов, переменных, процедур и функций. Например: Pi, Сonstant - имена констант; x, y1, y2, Counter - имена переменных; Integral, MaxMin - имена процедур; Man, Color, WeekDay - имена типов; Некоторые имена предопределены заранее. Например: Sin - имя для обозначения функции синус; Read - имя для обозначения процедуры чтения; Они называются стандартными. Все другие имена выбираются программистом по его усмотрению. Однако в целях улучшения читаемости программы рекомендуется выбирать имена, несущие информацию о поименованном объекте. К сожалению, практически все реализации языка допускают использование только латинских букв в именах, поэтому программы не так понятны неанглоязычным пользователям, как этого хотелось бы. 4.Структура программы Программа на языке Pascal состоит из заголовка и блока. Блок называют телом программы. Заголовок программы отделен от тела точкой с запятой. Точка, стоящая после блока, служит признаком конца программы. Таким образом, программа имеет вид: п рограмма Заметим, что рисунок, приведенный выше, более точно, наглядно и коротко определяет понятие программы, чем текст, ему предшествующий. Поэтому в дальнейшем мы, следуя традиции, восходящей к автору языка, будем применять именно такой способ определений языковых конструкций, называемый языком синтаксических диаграмм. 5.Понятие о лексике, прагматике, синтаксисе и семантике языка. Любой язык программирования обладает сходством с естественными языками. Как и естественный язык, он имеет свой алфавит, словарь, знаки препинания (разделители), с помощью которых можно образовывать более сложные языковые конструкции, подобные предложениям естественного языка. Словарь языка программирования состоит из чисел, слов и некоторых других символов. Элементы этого словаря называют лексемами. Примеры лексем: 394, -5678, 12.456, 67.5е8 - числа; Integer, Cos, MaxInt - имена; (, ) - скобки. Язык программирования содержит набор правил построения лексем. Совокупность этих правил называется лексикой языка. Лексические правила для чисел, строк и имен изложены выше. Поскольку текст любой программы есть последовательность лексем, основная задача лексического анализа - проверка правильности написания и идентификация лексем в этом тексте. Каждая лексема имеет свою интерпретацию (смысл). Так, последовательность цифр, разделенная точкой, интерпретируется как вещественное число в десятичной нотации, а Cos - как имя функции. Совокупность интерпретаций лексики языка называется его прагматикой. Правила образования более сложных конструкций языка называются синтаксическими. Совокупность синтаксических правил образует синтаксис языка программирования. Одно из синтаксических правил - правило описания заголовка программы - приведено выше. Также, как и лексемы, другие конструкции языка интерпретируются как действия или описания. Например, оператор присваивания x := x+2 имеет смысл “сложить значение переменной x с числом 2 и результат интерпретировать как (новое) значение этой же переменной”. Совокупность интерпретаций синтаксических правил называется семантикой языка. Можно сказать, что изучение языка программирования заключается в изучении его синтаксиса и семантики. 6.Синтаксические диаграммы как средство определения языка Правила построения синтаксических диаграмм поясним на примере диаграммы заголовка программы: Имя имя заголовок программы Языковая конструкция, определяемая диаграммой, указана в начале диаграммы (в примере это - заголовок программы). Собственно диаграмма представляет из себя особого рода схему, движение по которой определяет синтаксически правильную языковую конструкцию. В диаграмме выделены два вида объектов: терминальные символы или цепочки (лексемы) и языковые конструкции, определяемые другими (в частности, этой же) диаграммами. Они называются нетерминальными объектами. Терминальные объекты заключаются в овалы, а нетерминальные - в прямоугольники. Направление движения вдоль диаграммы (обхода) указывают стрелки, соединяющие объекты. Описание языка программирования на языке синтаксических диаграмм представляет из себя набор диаграмм, каждая из которых определяет одну из языковых конструкций (нетерминальных объектов). В синтаксически правильной программе все ее объекты удовлетворяют соответствующим диаграммам. Следует отметить, что существуют и другие метаязыки (языки описания языков), например - язык нормальных форм Бэкуса-Наура. В заключение приведем определение блока на языке синтаксических диаграмм: Б Раздел меток лок Раздел констант Раздел типов Раздел переменных Раздел процедур и функций Раздел операторов Таким образом, блок программы состоит из шести разделов, каждый из которых, за исключением раздела операторов, может и отсутствовать. Разделы блока отделены друг от друга точкой с запятой. |