КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Лекции 3-4: Базисные конструкции языка
1.Общая характеристика языка Pascal. 2. Алфавит языка, основные конструкции языка. 3. Структура программы. 4. Стандартные типы данных, операции, выражения. 1.Общая характеристика языка Паскаль. Язык Паскаль в его современном воплощении (TURBO PASCAL 7.0, OBJECT PASCAL 9.0) -это весьма мощный язык, содержащий многие десятки различных и весьма полезных конструкций. Изучить все его возможности в таком кратком курсе, как наш, нереально. Одним из фундаментальных свойств Паскаля является его сильная типизация. Это означает, что каждый элемент обрабатываемых данных жёстко связан с соответствующим типом данных, т.е. каждый элемент данных имеет один и только один тип, а каждая операция имеет фиксированные типы для своих операндов и результата. Типизация данных помогает контролировать (в том числе автоматически) многие ошибки в данных и операциях, оптимально распределять память, что упрощает создание высокоэффективных трансляторов. Не все языки программирования поддерживают сильную типизацию (например, Basic, C её игнорируют).
Для того чтобы использовать преимущества, которые даёт сильная типизация, необходимо в программе описывать все вводимые программистом имена обрабатываемых структур данных и других объектов до того, как они используются в процессах обработки. Для этого в структуре программы предусмотрен раздел описаний. Транслятор Паскаля устроен таким образом, что он не позволяет использовать данные, которые предварительно неописаны.
Другой важной стороной типизации является наличие в Паскале развитого механизма создания новых типов самим программистом, что также отличает Паскаль от многих других языков. Собственно этот механизм является сердцевиной Паскаля, обеспечивая чрезвычайную гибкость языка. Мы познакомимся с ним постепенно, начиная с конструирования простых типов и до конструирования объектов как расширения типа. Помимо всего, что связано с типизацией, Паскаль также имеет хорошо структурированные средства для композиции и декомпозиции алгоритмических действий (операций и операторов). Всё это упрощает разработку программ на Паскале, делая её удобной и доступной для программирования практически любых задач. Однако не следует обольщаться! Программирование на Паскале (как впрочем, и на любом другом языке) не даётся само собой! Для программирования необходимо овладеть основами языка и методики разработки программ. Необходимо научиться "читать" программы (понимая смысл написанного!), а затем и "писать" собственные (пусть вначале и несложные) программы. Не следует думать, что вы легко сможете постичь и то и другое сразу. Поэтому важно на первых этапах сосредоточиться на изучении основ языка, т.е. научиться "читать программы". Этот процесс естественен при изучении любого языка. К изучению Паскаля следует относиться как к изучению нового для вас языка (аналогичного скажем английскому) и понять, что означают отдельные его слова, а затем и фразы (операторы и другие фрагменты) и как правильно их записывать. Если ассоциация с английским языком вызывает у вас волнения, то хочу успокоить. Паскаль много проще английского языка, и изучить его основы можно за относительно небольшой срок и с несравненно меньшими усилиями. В нём нет двусмысленных или расплывчатых конструкций, времён, склонений или спряжений. Паскаль, как язык программирования, - это язык записи действий (алгоритмов и структур данных). Каждой его конструкции приписывается однозначный смысл (часто независящий от "окружения"), а правила записи конструкций во многом сходны с императивами (командами, указаниями, инструкциями) естественного языка.
При чтении программ на Паскале ключевым принципом является принцип программного управления. Важно помнить, что за исключением описаний каждая законченная конструкция программы - это оператор, представляющий некоторое алгоритмическое действие. Операторы отделяются друг от друга точкой с запятой (в специальных случаях этот разделитель может опускаться) и выполняются в той последовательности, в которой они записаны (если сам оператор не изменяет эту последовательность). Операторы обрабатывают данные, размещенные в памяти компьютера и идентифицируемые по именам. По сути, операторы и имена - это та модификация, которую претерпел программный принцип управления при переходе от машинного языка к языку программирования высокого уровня. Можно считать, что оператор - это аналог команды, а имя - аналог адреса памяти. Конечно, отличие имеется и в том, что состав возможных операций резко расширен по сравнению с машинным языком и приближен по форме к их выражению на естественном языке.
2. Алфавит языка, ключевые слова, идентификаторы. Любой язык, в том числе и Паскаль, начинается со своего алфавита - "кирпичей", из которых строятся все конструкции языка. Алфавитом Паскаля являются некоторые символы кодовой таблицы ASCII, которым в Паскале приписан определённый (и фиксированный смысл), а также некоторые цепочки символов. В алфавит входят все латинские (большие и малые) буквы, десятичные цифры, специальные символы и зарезервированные (ключевые) слова. К специальным символам относятся символы операций (+,-, *, /), бинарных отношений (=,>,<,), скобки (простые, квадратные, фигурные), разделительные символы (.,:;), кавычки (''), а также символы ^,@, $, #. Кроме того, к алфавиту относятся некоторые пары символов (рассматриваемые как неделимые): <> - символ неравенства, >= и <= - больше или равно (меньше или равно),:= - символ присваивания.
Дополнительную группу символов алфавита составляют ключевые слова (зарезервированные слова). Их в Паскале несколько десятков и мы будем знакомиться с ними постепенно по мере изучения конструкций языка. Примерами ключевых слов (которые потребуются нам в ближайшее время) являются program, begin, end, var. Эти и некоторые другие последовательности символов ASCII зарезервированы в Паскале, им приписан фиксированный смысл (например, begin - открывающая операторная скобка) и использовать их в другом смысле нельзя. Мы будем выделять ключевые слова полужирным шрифтом. Заметим, что русские буквы не являются элементами алфавита Паскаля, как и некоторые другие символы кодовой таблицы. Это не значит, что их нигде нельзя использовать, но их использование в программах на Паскале ограничено только определенными конструкциями, о которых мы ещё поговорим особо. Из алфавита языка строятся все остальные языковые конструкции: имена, выражения, описания, операторы, с помощью которых представляется любая программа на Паскале, аналогично тому, как текст на естественном языке представляется из предложений, слов, связок.
Паскаль - формальный язык, основная цель которого - представление алгоритма решаемой задачи. Поэтому аналогия с естественным языком (цели которого значительно шире), конечно, ограничена. Каждая конструкция Паскаля имеет свой точный смысл, и изучение конструкций Паскаля имеет две стороны: во-первых, это изучение синтаксиса конструкций (т.е. правил их записи), с другой стороны - изучение смысла конструкций. Для описания синтаксиса мы будем использовать простые формальные средства - нотацию Бэкуса-Наура, а для описания семантики - пояснения на естественном языке. Нотация Бэкуса-Наура (называемая также БНФ) описывает синтаксис конструкций языка через небольшое число примитивов:
Метаопределение - заключённое в угловые скобки название конструкции (название может рассматриваться как комментарий конструкции). Примеры: < буква >, < ключевое слово >, < литерал >, < комментарий >. При этом последовательность символов, не заключенная в угловые скобки, рассматривается буквально (т.е. только как последовательность написанных символов). Равенство по определению будем обозначать сочетанием 3 символов ::= Альтернативный выбор (союз "или") будем обозначать символом | Необязательный выбор конструкции будем заключать в квадратные скобки [ ] Повторяющуюся (нуль или более раз) конструкцию будем заключать в фигурные скобки { }. Введённых примитивов вполне достаточно для синтаксического определения конструкций языка Паскаля, которые нам предстоит рассмотреть. Продемонстрируем введённые примитивы рядом примеров описания используемых далее конструкций языка Паскаль. Синтаксическое определение понятия "цифра": < цифра >::= 0 | 1 | 2 | 3|4 | 5|6 | 7 | 8 | 9 Синтаксическое определение понятия "литерал ": < литерал >::= ' {< символ кодовой таблицы >} ' Синтаксическое определение понятия "комментарий": { < строка символов ASCII, не содержащая символов { и } > } Одной из важных конструкций Паскаля является идентификатор (имя). Имя может обозначать переменную, функцию, тип данных или другие элементы программы. Понятие имени во многом аналогично его использованию в естественном языке и является одним из фундаментальных понятий языка. В языках программирования имена часто используются для обозначения переменных, т.е. объектов, способных изменять своё значение в процессе выполнения программы. В Паскале имена могут использоваться даже для обозначения именованных констант (мнемоническое имя константы, которое легче запомнить, чем значение константы). Имена (кроме стандартных имён) выбирает программист в процессе разработки программы и этот выбор должен облегчать чтение текста программы: имя должно "говорить само за себя" - пояснять смысл используемого объекта. При этом имена должны быть одновременно и достаточно выразительными и достаточно лаконичными (краткими). Синтаксические ограничения в выборе имени даёт определение имени: < имя >::= < латинская буква или символ _ > { < латинская буква >| < цифра >| _ } Примеры имён: alfa, F1, test_1m; неправильные имена: тест1, 2_vol. Некоторые имена являются стандартными именами Паскаля. К их числу относятся имена стандартных функций, процедур, типов и др. Следует особо отметить, что стандартные имена не являются ключевыми словами (т.е. они могут быть использованы в ином смысле, хотя это не следует делать без особой надобности!). Примеры таких стандартных имён: write, odd, integer, boolean. Заметьте, что русские буквы нельзя использовать в именах Паскаля! Существуют только три конструкции Паскаля, в которых разрешено использовать любые символы (в том числе и русские буквы):- это символьные константы, строковые константы (литералы) и комментарии. Символьные и строковые константы - это, соответственно, один символ или любые последовательности символов кодовой таблицы, заключенные в апострофы. Пример: ' Это - строка символов'. Литералы - важные конструкции языка, с которыми мы будем еще неоднократно иметь дело. Они используются в операторах ввода-вывода и при обработке строк. Комментарии - любые последовательности символов кодовой таблицы (не содержащие фигурных скобок), заключенные в фигурные скобки. Пример комментария: { Программа на TURBO PASCAL}. Заметим, что фигурные скобки есть ограничитель для комментариев, и использовать их ни в каком другом смысле нельзя.
Незарезервированные комментарии вы вправе использовать в любом месте программы. Такие комментарии следует использовать для пояснений текста программы, делая этот текст более понятным. Никаких других функций эти комментарии в программе на Паскале не несут.
3. Структура программы. Любая программа на Турбо Паскале имеет одну и ту же общую структуру: [ program < имя программы >; ] [ < раздел описаний > ]
Дата добавления: 2014-01-06; Просмотров: 484; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |