Язык Паскаль
Появление Паскаля на рынке программных продуктов. Характеристика и особенности языка. Основная структура программы. Конструкции и типы данных. Порядок вычисления выражений. Многочисленные реализации языка Pascal для различных машинных архитектур.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 29.03.2010 |
Размер файла | 42,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Введение
В кратком изложении история языков программирования такова: изначально вычислительные машины программировались в машинном коде. То есть в их оперативную память напрямую вводили последовательность чисел, являющиеся кодами команд, которые процессор может выполнить. При этом программа составлялась с периодическим заглядыванием в таблицу кодов команд процессора и была отнюдь не наглядной. Затем появилась идея обозначить коды какими-то короткими, но осмысленными, и потому легко запоминаемыми словами - мнемониками, и создать программу, которая бы, руководствуясь таблицей команд, переводила последовательность мнемоник - мнемокод в последовательность машинных кодов. Такую программу называют ассемблером (assembler - сборочное устройство, транслятор, ассемблер). Программы стали гораздо нагляднее, но решение практических задач требовало написания очень длинных программ (например, файловый менеджер Volkov Commander имеет размер около 64000 байт). Тогда появились языки программирования высокого уровня. При их создании использовали то обстоятельство, что в программе часто встречаются участки одинакового кода, выполняющие какое либо одно действие: вывод строки, запись в файл, вычисление математической функции и т.д. В языках высокого уровня таким последовательностям кода присвоены имена, и программа составляется на условном языке, каждое, из слов которого заменяет десятки, ато и сотни команд процессора. Таким образом, программа становится еще нагляднее и короче. Существует множество условных языков высокого уровня, для каждого из них написано немало вариантов пограммы, переводящей условный код в последовательность машинных команд. Один из таких языков - Паскаль.
Язык программирования Pascal был разработан в 1968-1971 гг. Никлаусом Виртом в Цюрихском Институте информатики (Швейцария), и назван в честь Блеза Паскаля - выдающегося математика, философа и физика 17-го века. Первоначальная цель разработки языка диктовалась необходимостью создания инструмента "для обучения программированию как систематической дисциплине". Однако очень скоро обнаружилась чрезвычайная эффективность языка Pascal в самых разнообразных приложениях, от решения небольших задач численного характера до разработки сложных программных систем - компиляторов, баз данных, операционных систем и т.п. К настоящему времени Pascal принадлежит к группе наиболее распространенных и популярных в мире языков программирования:
· существуют многочисленные реализации языка практически для всех машинных архитектур;
· разработаны десятки диалектов и проблемно-ориентированных расширений языка Pascal;
· обучение программированию и научно-технические публикации в значительной степени базируются на этом языке.
Характеристика и особенности языка
Существует ряд объективных причин, обусловивших выдающийся успех языка Pascal. Среди них в первую очередь необходимо указать следующие:
· Язык в естественной и элегантной форме отразил важнейшие современные концепции технологии разработки программ:
a. развитая система типов,
b. ориентация на принципы структурного программирования,
c. поддержка процесса пошаговой разработки.
Благодаря своей компактности, концептуальной целостности и ортогональности понятий, а также удачному первоначальному описанию, предложенному автором языка, Pascal оказался весьма легок для изучения и освоения. В противоположность громоздким многотомным описаниям таких языков, как PL/l, Cobol, FORTRAN, достаточно полное описание языка Pascal занимает около 30 страниц текста, а его синтаксические правила можно разместить на одной странице.
· Несмотря на относительную простоту языка, он оказался пригоден для весьма широкого спектра приложений, в том числе для разработки очень больших и сложных программ, например, операционных систем.
· Pascal весьма технологичен для реализации практически для всех, в том числе и нетрадиционных, машинных архитектур. Утверждается, что разработка Pascal-транслятора "почти не превышает по трудоемкости хорошую дипломную работу выпускника вуза". Благодаря этому для многих ЭВМ существует несколько различных реализаций языка, отражающих те или иные практические потребности программистов.
Язык Pascal стандартизован во многих странах. В 1983 году был принят международный стандарт (ISO 7185:1983).
Основные особенности языка Pascal
Pascal является традиционным алгоритмическим языком программирования, продолжающим линию Algol-60. Это означает, что программа на языке Pascal представляет собой специально организованную последовательность шагов по преобразованию данных, приводящую к решению некоторой задачи. Это отличает Pascal от так называемых непроцедурных языков типа Prolog, по существу, представляющих собой формализмы для записи начальных условий некоторой задачи и синтезирующих решение посредством встроенных механизмов логического вывода.
Язык Pascal содержит удобные средства для представления данных. Развитая система типов позволяет адекватно описывать данные, подлежащие обработке, и конструировать структуры данных произвольной сложности. Pascal является типизированным языком, что означает фиксацию типов переменных при их описании, а также строгий контроль преобразований типов и контроль доступа к данным в соответствии с их типом (как на этапе компиляции, так и при исполнении программ).
Набор операторов языка Pascal отражает принципы структурного программирования и позволяет записывать достаточно сложные алгоритмы в компактной и элегантной форме. Pascal является процедурным языком с традиционной блочной структурой и статически определенными областями действия имен. Процедурный механизм сочетает в себе простоту реализации и использования и гибкие средства параметризации.
Синтаксис языка достаточно несложен. Программы записываются в свободном формате, что позволяет сделать их наглядными и удобными для изучения.
Паскаль - компилятор, тоесть, прежде чем начать испоолнение программы, Паскаль полностью прочитывает исходный текст, написанный программистом, и составляет последовательность машинных кодов, выполняющую те действия, которые описал программист в hqundmnl тексте. Эта последовательность сохраняется в файл с расширением “.EXE” и является самостоятельным исполняемым файлом, который может быть запущен сам по себе, уже без участия Паскаля и, даже, на другом компъютере, на котором Паскаль может быть не установлен.
TURBO PASCAL
Прошло много времени с момента появления Паскаля на рынке программных продуктов, прежде чем он получил всеобщее признание. Признание программистов и простых пользователей пришло вследствие появления языка программирования Турбо Паскаль (ТП) -диалекта языка, созданного американской фирмой Борланд. Эта фирма объединила очень быстрый компилятор с редактором текста и добавила к стандартному Паскалю мощное расширение, что способствовало успеху первой версии этого языка.
В 1985 году на рынке ПЭВМ появился язык программирования Турбо Паскаль (версия 3.0) с компилятором стандартного Паскаля. С тех пор Паскаль стал применяться в общеобразовательных, профессионально-технических школах и в сфере высшего образования в качестве "первого" языка программирования. Благодаря простоте использования язык Турбо Паскаль получил широкое распространение и в любительских кругах. Повышению популярности Турбо Паскаля способствовал набор небольших сопутствующих программ (т.н. Tools), позволяющих получать чрезвычайно компактную, быструю и легко читаемую программу.
Эти качества Турбо Паскаля были высоко оценены и в среде профессиональных программистов. Встроенный редактор текста использует достаточно широко распространенную систему команд, берущую начало от пакета WordStar и хорошо знакомую каждому, кто интенсивно использует ПЭВМ.
В появившемся со временем пакете Турбо Паскаль 4.0 было устранено большинство подвергавшихся критике ограничений компилятора и была повышена производительность системы. Кроме того, новый компилятор версии 4.0 имел существенные отличия от предыдущей версии. Наиболее важным нововведением была UNIT- концепция, заимствованная из языка Модула-2. Это дало возможность реализовать в рамках ТП разработку крупных программных продуктов.
С выходом в свет версии 5.0 ТП получил еще большие шансы на благосклонную реакцию со стороны профессиональных пользователей благодаря встроенному в среду программирования интегрированному отладчику, который позволил повысить производительность труда.
Существенно улучшила технические характеристики ТП реализация аппарата перекрытий (overlays), позволяющего строить мощные программные комплексы, рассчитанные на эксплуатацию в малых по объему областях памяти. Суть механизма перекрытий сводится к делению программы на части, поочередно загружаемые по мере необходимости с дискеты или магнитного диска (винчестера) в одну и ту же область памяти, заменяя при этом находившуюся там часть программы.
Кроме того, в ТП 5.0 были расширены возможности отладки (debugging) программ и обеспечена возможность поддержки расширенной помята в стандарте Lotus-Intel-Microsoft (LIMS/EMS 4.0). Сокращение EMS обозначает Expanded Memory Specification (спецификация расширенной памяти). Нельзя путать этот вид дополнительной памяти с другим - Extended Memory (сокращенно - XMS). EMS имеется на обычных ПЭВМ класса ХТ, в то время как Extended Memory -только на машинах АТ-класса (с процессором 286, 386 и выше) при объеме памяти свыше 1 Мбайта.
В этой версии были также исправлены и улучшены библиотеки графических процедур, поставляемые вместе с пакетом ТП. При этом обеспечивалась полная совместимость с графическими адаптерами класса VGA (Video Graphics Array).
В рамках версии ТП 5.5 были осуществлены дальнейшие преобразования в направлении улучшения технических характеристик пакета. Наряду с внутренними улучшениями и новыми возможностями встроенной справочной системы Help и большим набором учебных примеров, важным нововведением явилась реализация в языке концепции объектно-ориентированного программирования (ООП).
Через некоторое время на рынке появилась версия 6.0 ТП, в которой чисто теоретическая концепция объектно-ориентированного программирования была реализована практически с полным набором объектов, которые могли использоваться для решения прикладных задач пользователя. Кроме того, реализация системы меню приведена b соответствие со стандартом SAA (Turbo Vision). В качестве практического примера использования новых возможностей был реализован текстовый редактор, встроенный в IDE - Integrated Development Environment - интегрированную инструментальную оболочку. При этом сторонники программирования на ТП 6.0 получили возможность не только работать со встроенным многооконным текстовым редактором, но и использовать мышь, которая значительно облегчает работу пользователя.
В 1992 году фирма Borland International представила пользователям очередную версию языка программирования Паскаль - Турбо Паскаль 7.0. Наряду со всеми преимуществами, которые ТП 7.0 унаследовал от предыдущей версии ТП (многооконный режим работы, возможность использования мыши, возможность использования при написании программ языка программирования низкого уровня Ассемблер или прямого ввода машинного кода, возможность создавать объектно-ориентированные программы), в нем были произведены изменения и улучшения:
· Появилась возможность выделять определенным цветом различные элементы исходного текста (зарезервированные слова, идентификаторы, числа и т.д.), позволяющая даже неопытным пользователям устранять ошибки на этапе ввода исходного текста.
· Язык программирования ТП 7.0 был расширен (появилась возможность использовать типизированный адресный оператор, открытые массивы и строки и т.д.), что предоставило пользователю дополнительные возможности при решении повседневных задач.
· Был улучшен компилятор, вследствие чего "коды программ" стали более эффективными.
· Был улучшен интерфейс пользователя. Кроме того, в ТП 7.0 расширены возможности объектно-ориентированного программирования (в частности, расширены и улучшены возможности Turbo Vision
Язык Паскаль практически с самого его рождения противопоставляют другому языку -- Си. Это ярко выраженное идейное противостояние вошло в историю наряду с двумя другими: в 60-е годы - Алгол-60 и Фортран, в 90-е годы - Си++ и Java. Вот что по этому поводу сказал Деннис Ритчи, автор Си (1993): «Я утверждаю, что Паскаль очень близок языку Си. Одни, быть может, этому удивятся, другие -- нет... Даже интересно, насколько они близки друг другу. Эти языки больше расходятся в деталях, но в основе своей одинаковы. Если вы взглянете на используемые типы данных, а также на операции над типами, то обнаружите очень большую степень совпадения... И это несмотря на то, что намерения Вирта при создании Паскаля весьма отличались от наших в языке Си. Он создавал язык для обучения, а потому преследовал дидактические цели. И, как я заметил это по Паскалю и по его более поздним языкам, Вирт был во власти своего стремления ограничить выразительные средства как можно сильнее...».
Да, Паскаль, в отличие от Си, не создавался как язык системного программирования. Во имя простоты и эффективности на том уровне понимания программирования Вирт сознательно пошел на заведомое ограничение возможностей языка, прежде всего в отношении общения с внешним миром (ввод-вывод и системно-зависимые средства). И все же думать, что Паскаль -- язык исключительно для преподавания, было бы неверно. Послушаем на этот счет мнение самого Вирта (1984): «Утверждалось, что Паскаль был разработан в качестве языка для обучения. Хотя это утверждение справедливо, но его использование при обучении не являлось единственной целью. На самом деле я не верю в успешность применения во время обучения таких инструментов и методик, которые нельзя использовать при решении каких-то практических задач. По сегодняшним меркам Паскаль обладал явными недостатками при программировании больших систем, но 15 лет назад он представлял собой разумный компромисс между тем, что было желательно, и тем, что было эффективно».
Прежде всего, следует напомнить, что изучение языка программирования представляет собой знакомство с формальными правилами записи алгоритмов для их последующего выполнения компьютером. Формальность сия проистекает из самих принципов, заложенных в архитектуру вычислительных устройств, и жесткости математической логики. Поэтому, постарайтесь воспринять все довольно строгие правила как неизбежность, настроитьсебя на серьезную, скрупулезную, порой сложную работу. Однако не стоит бояться, расстраиваться и сетовать на судьбу: немного аккуратности, внимания, знания предыдущего материала - и вы уже программист.
Основные понятия
Как и любой алгоритм, являющийся, как вы помните, последовательностью инструкций, программа на языке Паскаль состоит из команд (операторов), записанных в определенном порядке и формате.
Команды позволяют получать, сохранять и обрабатывать данные различных типов (например, целые числа, символы, строки символов, т.д.). Однако кроме команд в записи программы участвуют еще так называемые "служебные слова". Это и есть элементы формальности, организующие структуру программы. Их не так много, но их значение трудно переоценить. Служебные слова можно использовать только по своему прямому назначению. Переопределять их не разрешается.
Вам уже известно, что основное назначение компьютера - облегчить человеку работу с большими объемами информации, поэтому подавляющее большинство программ построено по одному, довольно простому принципу: получение данных из внешнего мира (ввод), обработка их по соответствующему алгоритму, хранение необходимой информации и вывод во внешний (по отношению к компьютеру) мир полученных результатов. Все эти действия реализуются через имеющиеся в языках программирования команды, алгоритмические структуры и структуры данных.
Основная структура программы
Правила языка Паскаль предусматривают единую для всех программ форму основной структуры:
Program <Имя программы>;
<Раздел описаний>
Begin
<Тело программы>
End.
Здесь слова Program, Begin и End являются служебными. Правильное и уместное употребление этих слов является обязательным.
Угловые скобки в формате указывают на то, что изначально, то тело цикла не будет выполнено ни разу. Если условие изначально истинно и в теле цикла нет действий, влияющих на истинность этого условия, то тело цикла будет выполняться бесконечное количество раз. Такая ситуация называется "зацикливанием". Прервать зациклившуюся программу может либо оператор (нажав Ctrl+C), либо аварийный останов самой программы, в случае переполнения переменной, деления на ноль и т.п., поэтому использовать структуру цикла следует с осторожностью, хорошо понимая, что многократное выполнение должно когда-нибудь заканчиваться.
На языке Pascal структура цикла "Пока" записывается следующим образом:
While <условие> Do <оператор>;
Правда, лаконично? По-русски можно прочитать так: "Пока истинно условие, выполнять оператор". Здесь, так же как в формате условного оператора, подразумевается выполнение только одного оператора. Если необходимо выполнить несколько действий, то может быть использован составной оператор. Тогда формат оператора принимает такой вид:
While <условие> Do
Begin
<оператор #1>;
<оператор #2>;
<оператор #3>;
End;
В Паскале используются:
1. Буквы лaтинского aлфавита
2. Цифры от 0 до 9
3. Спeцсимволы + - * / = > < и др.
4. Комбинации символов:
< > не равно
: = присваивание
.. диапазон
> = больше или равно
< = меньше или равно
5. Kлючевые слова:
absolute - абсолютный, and - и, array - массив, begin - начало, case - в случае, const - константа, div - делить, do - выполнить, else - иначе, downto - назад, end - конец, external - внешний, file - файл, forward - вперед, for - для, function - функция, goto - перейти к, inline - вставить, if - если, in - в, label - метка, mod - модуль, nil - ничто, not - нет, owerlay - перекрытие, of - из, or - или, packed - упакованный, procedure - процедура, program - программа, record - запись, repeat - повторять, set - множество, shl - сдвиг влево, shr - сдвиг вправо, string - строка, then - тогда, type - тип, to - к, until - пока, uses-используется, var - переменная, while - пока, with - с, xor - дизъюнкция.
Знание значений ключевых слов необходимо для понимания программ, написанных на Паскале.
6. Знаки операций:
а) арифметических -
+ сложение
- вычитание
/ деление
* умножение
div деление нацело (остаток отбрасывается)
mod находится остаток от деления нацело
< меньше
> больше
< > не равно
> = больше или равно
< = меньше или равно
= равно
б) логических
not отрицание
or логическое сложение
and логическое умножение
в) над множествами:
+ объединение множеств
* пересечение множеств
- разность множеств
in принадлежность множеству
Конструкции и типы данных
Простейшиe конструкции Паскаля - это числа, константы, переменные, вырaжения и стaндартные функции. Их знaчения имеют тoт или иной тип. Некоторые типы простых данных, а также сложный тип string, представлены в таблице.
Таблица 1 - Типы данных
Тип |
Диaпaзон |
Примеры зaписи |
||
В Паскале |
Обычнaя |
|||
integer (целый) |
-32768...32767 |
-45 |
-45 |
|
longint (длинное целое) |
-2147483648...2147483647 |
675931 |
675931 |
|
real (действительный) |
±2,9*10-39...1,7*1038 |
-33.4581 |
-33,4581 |
|
4.1Е6 |
4,1*106 |
|||
-2.88Е-4 |
-2,88*10-4 |
|||
boolean (логический) |
False, True |
false |
ложно |
|
true |
истинно |
|||
char (символьный) |
Набор литер дaнного компьютера |
'Ц' |
Ц |
|
'F' |
F |
|||
string (строка) |
Набор литер дaнного компьютера |
'лист' |
лист |
Rонстанты, переменные, процедуры, функции, файлы записывают, указывая их имена (идентификаторы). Например, y, х, t, summа2 и т.п. Некоторые стандартные математические функции, используемые в Паскале:
Запись на Паскале Действие
abs(x) |x|
sgr(x) x2
sin(x) sin x
cos(x) cos x
exp(x) ex
ln(x) ln x
sgrt(x) x1/2
arctan(x) arctg x
trung(x) выделение целой части х
round(x) округление х до ближайшего целого
pred(x) нaхождение предыдущего элемента
succ(x) нахождение последующего элементa
ord(x) определение порядкового номера символа
chr(x) определение символа из нaбора символов по номеру
odd(x) опредeление нечетности числа
Для вычисления выражений xy и lg x в Паскале нет стандартных функций. Поэтому для их вычисления используют равенства xy=ey ln x и lg x =ln x/ln 10. На Паскале это записывается так: exp(y*ln(x)) и ln(x)/ln(10).
Переменные бывают простые и с индексом. Переменная с индексом - это элемент массива. Например, если имеется одномерный массив A=(c, f, p, k ), то A[2] = f , A[4] = k Если задан двумерный массив , то B[1,2] = 2 , B[2,2] = 11.
Порядок вычисления вырaжения определяется скобкaми, а при их отсутствии - в соответствии с приоритетом операций.
Приоритет операций уменьшается в следующем ряду:
1. Отрицание NOT
2. *, /, div, mod, and
3. +, - , or
4. <=, <, =, < >, >, >=
Если операции имеют одинаковый приоритет, они выполняются последовательно слева направо.
Подобные документы
Общая характеристика языков программирования. Описание языка Паскаль: основные субъекты языка; структура Паскаль-программы; типизация и объявление данных. Операторы присваивания и выражения. Структурные операторы, организация ветвлений и циклов.
дипломная работа [276,6 K], добавлен 26.01.2011Лингвистическая концепция языка Паскаль. Интегрированная инструментальная оболочка. Основы построения программ на ТП 7.0. Алфавит языка и специфика использования символов. Простые типы данных: константы и переменные. Циклические конструкции и операции.
курсовая работа [284,6 K], добавлен 02.07.2011Взаимосвязь стадий процесса проектирования сложных программных систем. Создание компилятора подмножества языка высокого уровня (Pascal) на язык Ассемблера. Структура входных и выходных данных, алгоритмы их обработки. Рабочая документация программы.
курсовая работа [256,7 K], добавлен 27.07.2014Написaние прoграммы, выполняющей трансляцию с языка программирования Пaскaль нa язык прoгрaммирoвaния Си и транслирующей конструкции, такие кaк integer, repeat … until Le, procedure, type, record для type. Обработка арифметических и логических выражений.
курсовая работа [314,3 K], добавлен 03.07.2011Основные сведения о системе программирования Турбо Паскаль. Структура программы на Паскале и ее компоненты. Особенности и элементы языка Турбо Паскаль. Порядок выполнения операций в арифметическом выражении, стандартные функции и оператор присваивания.
лекция [55,7 K], добавлен 21.05.2009Создание приложения, исполняющего трансляцию программы из языка Паскаль в язык Си: разработка алгоритма реализации задачи, описание необходимых констант, переменных, функций и операторов, представление листинга программы и распечатка результатов.
курсовая работа [305,9 K], добавлен 03.07.2011Логические конструкции в системе программирования Паскаль. Команды языка программирования, использование функций, процедур. Постановка и решение задач механики в среде системы Паскаль. Задачи статики, кинематики, динамики решаемые с помощью языка Паскаль.
курсовая работа [290,9 K], добавлен 05.12.2008История языка Pascal, его основные концепции. Линейный и циклический алгоритмы, типы данных. Условные операторы, операторы цикла. Программа вычисления суммы n первых членов геометрической прогрессии по любым двум ее членам, номера которых известны.
отчет по практике [421,8 K], добавлен 07.06.2010Free Pascal как свободная реализация языка Паскаль, совместимая с Borland Pascal и Object Pascal - Delphi, но при этом обладающая и некоторыми дополнительными возможностями. Основы алгоритмизации и программирования, создание визуальных приложений.
учебное пособие [4,2 M], добавлен 13.12.2011Создание программы для перевода кодов с языка Pascal на язык Си. Обработка программ операторами case, assign, rewrite и write. Способы объявления файла, комментария, переменных, логических и арифметических выражений. Виды синтаксических анализаторов.
курсовая работа [461,0 K], добавлен 03.07.2011