Файл: Основы программирования на языке Pascal (История создания и развития Pascal).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 04.04.2023

Просмотров: 92

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ВВЕДЕНИЕ

Современный мир предполагает практически повсеместное использование разнообразных новых технологий, аппаратных и программных средств. Сегодня существуют потрясающие программы и устройства, которые ранее не могли быть даже воображены. Несмотря на то, что новая техническая революция произошла не так давно, сегодня мы уже не можем представить свою жизнь без средств автоматизации различных сфер человеческой деятельности. Развитие таких средств стало возможно благодаря своевременному изобретению и развитию различных языков программирования.

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

Для достижения данной цели необходимо выполнить следующие задачи:

  1. Рассмотреть историю создания и развития Pascal.
  2. Привести особенности языка Pascal.
  3. Охарактеризовать типы данных языка Pascal.
  4. Проанализировать операторы языка Pascal.
  5. Подвести итоги исследования.

Объектом работы выступает язык Pascal, а предметом – основы программирования на языке Pascal.

В качестве методологической и теоретической базы работы используются научные работы российских и зарубежных исследователей, в частности таких авторов как Абрамов В. Г., Зуев. Е. А., Моргун А. Н., Фаронов В. В. и других. Авторы, чьи труды используются в работе, заслужили доверие и признание в научных трудах, в частности, в вопросах программирования и изучения языка Pascal, так что использование текстов их работ в исследовании целесообразно.

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

Глава 1. Общая характеристика языка Pascal

1.1 История создания и развития Pascal

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


Язык Паскаль был создан Никлаусом Виртом в 1968–1969 годах после его участия в работе комитета разработки стандарта языка Алгол–68. Он был опубликован в 1970 году Виртом как небольшой и эффективный язык, чтобы способствовать хорошему стилю программирования, использовать структурное программирование и структурированные данные [19].

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

Реализации и диалекты

UCSD Pascal

В 1978 году в Университете Сан–Диего (Калифорния, США) была разработана система UCSD p–System, включавшая порт виртовского компилятора с языка Паскаль в переносимый p–код, редактор исходных кодов, файловую систему и прочее, а также реализовывавшая значительное число расширений языка Паскаль, такие как модули, строки символов переменной длины, директивы трансляции, обработка ошибок ввода–вывода, обращение к файлам по именам и другое. Впоследствии основные реализации языка Паскаль основывались на этом диалекте [6].

Object Pascal

В 1986 году фирма Apple Computer разработала объектное расширение языка Паскаль, получив в результате Object Pascal. Он был разработан группой Ларри Теслера, который консультировался с Никлаусом Виртом.

Turbo Pascal и Object Pascal

В 1983 году появилась первая версия Turbo Pascal фирмы Borland.

В 1989 году объектное расширение языка было добавлено в Turbo Pascal версии 5.5.

Последняя версия (7.0) была переименована в Borland Pascal.

Объектные средства были позаимствованы из Object Pascal от Apple, языковые различия между объектным Turbo Pascal 5.5 и Object Pascal от Apple крайне незначительны.

Почти в то же самое время, что и Borland, Microsoft выпустил свою версию объектно–ориентированного языка Паскаль. Эта версия Паскаля не получила широкого распространения. Дальнейшее развитие реализации Паскаля от Borland породило Object Pascal от Borland, впоследствии, в ходе развития среды программирования Delphi, получивший одноимённое название.

Современные версии Object Pascal

Важным шагом в развитии языка является появление свободных реализаций языка Паскаль Free Pascal и GNU Pascal, которые не только вобрали в себя черты множества других диалектов языка, но и обеспечили чрезвычайно широкую переносимость написанных на нём программ (например GNU Pascal поддерживает более 20 различных платформ, под более чем 10 различными операционными системами, Free Pascal обеспечивает специальные режимы совместимости с различными распространёнными диалектами языка, такими как Turbo Pascal (полная совместимость), Delphi и другими [11].


1.2 Особенности языка Pascal

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

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

Подробный разбор недостатков языка Паскаль того времени был выполнен Брайаном Керниганом в статье «Почему Паскаль не является моим любимым языком программирования» (эта статья вышла в начале 1980–х, когда уже существовал язык Модула–2, потомок Паскаля, избавленный от большинства его пороков, а также более развитые диалекты Паскаля). Некоторые недостатки Паскаля были исправлены в ISO–стандарте 1982 года, в частности, в языке появились открытые массивы, давшие возможность использовать одни и те же процедуры для обработки одномерных массивов различных размеров [5].

Необходимо заметить, что многие недостатки языка не проявляются или даже становятся достоинствами при обучении программированию. Кроме того, по сравнению с основным языком программирования в академической среде 1970–х (которым был Фортран, обладавший гораздо более существенными недостатками), Паскаль представлял собой значительный шаг вперёд. В начале 1980–х годов в СССР для обучения школьников основам информатики и вычислительной техники академик А. П. Ершов разработал алголо–паскалеподобный «учебный алгоритмический язык».

Наиболее известной реализацией Паскаля, обеспечившей широкое распространение и развитие языка, является Turbo Pascal фирмы Borland, выросшая затем в объектный Паскаль для DOS (начиная с версии 5.5) и Windows и далее в Delphi, в которой были внедрены значительные расширения языка.

Диалекты Паскаля, применяемые в Turbo Pascal для DOS и Delphi для Windows, стали популярны из–за отсутствия других успешных коммерческих реализаций [9].


В первой главе работы рассмотрены основы и особенности языка Паскаль, а также история его создания и развития. Было определено, что за продолжительное время было создано достаточно много версий среды, что позволяло улучшать его и делать более функциональным и удобным для программирования.

Глава 2. Основы программирования на языке Pascal

2.1 Типы данных языка Pascal

Для обработки ЭВМ данные представляются в виде величин и их совокупностей. С понятием величины связаны такая важная характеристика, как ее тип.

Тип определяет:

  • возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;
  • внутреннюю форму представления данных в ЭВМ;
  • операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу [18].

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

Иерархия типов в языке Паскаль такая:

  1. Простые
  2. Порядковые
  3. Целые
  4. Логические
  5. Символьные
  6. Перечисляемые
  7. Интервальные
  8. Вещественные
  9. Структуированные
  10. Массивы
  11. Строки
  12. Множества
  13. Записи
  14. Файлы
  15. Указатели
  16. Простые типы данных [12]

В таблице 1 [4] приведены простые типы данных Паскаль, объем памяти, необходимый для хранения одной переменной указанного типа, множество допустимых значений и применимые операции.

Таблица 1

Типы данных в языке Паскаль

Идентификатор

Длина (байт)

Диапазон значений

Операции

Целые типы

integer

2

–32768..32767

+, –, /, *, Div, Mod,
>=, <=, =, <>, <, >

byte

1

0..255

+, –, /, *, Div, Mod,
>=, <=, =, <>, <, >

word

2

0..65535

+, –, /, *, Div, Mod,
>=, <=, =, <>, <, >

shortint

1

–128..127

+, –, /, *, Div, Mod,
>=, <=, =, <>, <, >

longint

4

–2147483648..2147483647

+, –, /, *, Div, Mod,
>=, <=, =, <>, <, >

Вещественные типы

real

6

2,9x10–39 – 1,7x1038

+, –, /, *,
>=, <=, =, <>, <, >

single

4

1,5x10–45 – 3,4x1038

+, –, /, *,
>=, <=, =, <>, <, >

double

8

5x10–324 – 1,7x10308

+, –, /, *,
>=, <=, =, <>, <, >

extended

10

3,4x10–4932 – 1,1x104932

+, –, /, *,
>=, <=, =, <>, <, >

Логический тип

boolean

1

true, false

Not, And, Or, Xor,
>=, <=, =, <>, <, >

Символьный тип

char

1

все символы кода ASCII

+,
>=, <=, =, <>, <, >


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

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

В языке Паскаль введены понятия эквивалентности и совместимости типов. Два типа Т1 и Т2 являются эквивалентными (идентичными), если выполняется одно из двух условий:

  • Т1 и Т2 представляют собой одно и то же имя типа;
  • тип Т2 описан с использованием типа Т1 с помощью равенства или последовательности равенств. Например:
  • type
  • T1 = Integer;
  • T2 = T1;
  • T3 = T2 [18].

Менее строгие ограничения накладываются на совместимость типов. Так, типы являются совместимыми, если:

  • они эквивалентны;
  • являются оба либо целыми, либо действительными;
  • один тип – интервальный, другой – его базовый;
  • оба интервальные с общим базовым;
  • один тип – строковый, другой – символьный.

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

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

Напрмер, Integer ('Z') представляет собой значение кода символа 'Z' в двухбайтном представлении целого числа, а Byte(534) даст значение 22, поскольку целое число 534 имеет тип Word и занимает два байта, а тип Byte занимает один байт, и в процессе приведения старший байт будет отброшен [14].

2.2 Операторы языка

Оператор является неделимым элементом программы, который дает возможность выполнять определенные алгоритмические действия. Отличием оператора, по отношению к другим элементам, является то, что под ним всегда подразумевается какое–то действие. В языке Паскаль операторы состоят из служебных слов. Операторы, используемые в программе, отделяются между собой и от других элементов программы символом (;). Все операторы языка Паскаль можно условно разбить на две группы: