Паскаль

Содержание

Слайд 2

Создатель Языка - Никлаус Вирт Никлаус Вирт — швейцарский учёный, специалист

Создатель Языка - Никлаус Вирт

Никлаус Вирт — швейцарский учёный, специалист

в области информатики, один из известнейших теоретиков в области разработки языков программирования, профессор компьютерных наук Швейцарской высшей технической школы Цюриха (ETHZ), лауреат премии Тьюринга 1984 года. Создатель и ведущий проектировщик языков программирования Паскаль, Модула-2, Оберон.
Слайд 3

История Язык был создан Никлаусом Виртом в 1968—1969 годах после его

История

Язык был создан Никлаусом Виртом в 1968—1969 годах после его участия

в работе комитета разработки стандарта языка Алгол-68. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал одну из первых в мире механических машин, складывающую два числа. Первая публикация Вирта о языке датирована 1970 годом; представляя язык, автор в качестве цели его создания указывал построение небольшого и эффективного языка, способствующего хорошему стилю программирования, использующему структурное программирование и структурированные данные.
Слайд 4

Особенности языка Особенностями языка являются строгая типизация и наличие средств структурного

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

Особенностями языка являются строгая типизация и наличие средств структурного (процедурного)

программирования. Паскаль был одним из первых таких языков. По мнению Вирта, язык должен способствовать дисциплинированному программированию, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис автор постарался сделать интуитивно понятным даже при первом знакомстве с языком.
Тем не менее, первоначально язык имел ряд ограничений: невозможность передачи функциям массивов переменной длины, отсутствие нормальных средств работы с динамической памятью, ограниченная библиотека ввода-вывода, отсутствие средств для подключения функций, написанных на других языках, отсутствие средств раздельной компиляции и т. п.
Слайд 5

Типы данных Простые типы Множества Составные типы Строки Указатели Процедурный тип

Типы данных
Простые типы
Множества
Составные типы
Строки
Указатели
Процедурный тип

Слайд 6

Простые типы В стандартном и расширенном Паскале есть такие простые типы:

Простые типы

В стандартном и расширенном Паскале есть такие простые типы: числа

с плавающей запятой (real), целые (integer), символьный (char), логический (boolean) и перечисления (конструктор нового типа, введённый в Pascal).
Turbo Pascal дополнил язык вариациями этих типов: например, shortint будет короче integer, а longint — длиннее.
Современные диалекты Pascal, такие, как FPC или Delphi, считают, что integer — это наиболее подходящий для данной машины целый, применяемый, например, для индексов массива, а shortint, longint и другие — целые определённой длины; это удобно при кроссплатформенном программировании. Аналогично и с дробными числами.
Ещё раз расширили типы при переходе на x64 — «просто целое» (integer) осталось 32-битным, но потребовался особый тип, который равен longint на x86 и int64 на x64.
Слайд 7

Множества Множество — фундаментальное понятие в современной математике, которое может быть

Множества

Множество — фундаментальное понятие в современной математике, которое может быть использовано

во многих алгоритмах.
В паскале тип множество может содержать только однотипные элементы порядкового типа. Эта особенность широко используется и обычно быстрее эквивалентной конструкции в языке, не поддерживающем множества. К примеру, для большинства компиляторов Паскаля:
Слайд 8

Составные типы Новые типы могут быть определены из существующих Более того,

Составные типы

Новые типы могут быть определены из существующих
Более того, из примитивных

типов могут быть сконструированы составные
Типизированные файлы в Паскале — это последовательности однотипных элементов. Для каждого файла существует переменная-указатель на буфер, которая обозначается f^. Процедуры get (для чтения) и put (для записи) перемещают указатель к следующему элементу. Чтение реализовано так, что read(f, x) представляет собою то же, что и get(f); x:=f^.
Слайд 9

Строки В современном Паскале для работы со строками используется встроенный тип

Строки

В современном Паскале для работы со строками используется встроенный тип string,

поддерживающий операции конкатенации (+) и сравнения (> < = <> >= <=). Строки сравниваются в лексикографическом порядке. Например, строки считаются равными, если они имеют одинаковую длину и коды всех символов с одинаковыми индексами совпадают.
Тип string в диалектах языка 1970—1990-х годов определялся в виде массива символов array [0..n] of char (n по умолчанию принимало значение 80 в UCSD Pascal и 255 в Turbo/Borland Pascal), нулевой элемент массива при таком представлении служит для задания длины строки, соответственно строка могла иметь максимальный размер 255 символов. По умолчанию в Delphi и FreePascal в качестве String используется тип AnsiString, память под который выделяется и освобождается компилятором динамически, а максимальный размер строки в текущих реализациях составляет 2 гигабайта.
Слайд 10

Указатели Здесь переменная pointer_to_b — указатель на тип данных b, являющийся

Указатели

Здесь переменная pointer_to_b — указатель на тип данных b, являющийся записью.

Типизированный указатель может быть определён (опережающее определение) перед объявлением типа, на который он ссылается. Это одно из исключений к правилу, которое гласит, что любой элемент (константа, тип, переменная, процедура, функция) должен быть объявлен перед тем, как используется. Введение этого исключения позволяет организовывать рекуррентные определения структур данных, в том числе такие, как линейные списки, стеки, очереди, деревья, включая указатель на запись в описание этой записи (см. также: нулевой указатель — nil).
Слайд 11

Процедурный тип В оригинальном языке Паскаль Йенсен и Вирта процедурный тип

Процедурный тип

В оригинальном языке Паскаль Йенсен и Вирта процедурный тип использовался

только при описании формального параметра. Уже в TP существовал полноправный процедурный тип. В объявлении типа ставится заголовок процедуры либо функции (без имени), обобщённо описывающий интерфейс подпрограммы. Значение этого типа содержит указатель на подпрограмму с заголовком, соответствующую описанному в объявлении типа. С помощью идентификатора переменной может происходить вызов соответствующей процедуры или функции.