Get Started. It's Free
or sign up with your email address
ПАСКАЛЬ by Mind Map: ПАСКАЛЬ

1. Автор

1.1. Никлаус Вирт

1.1.1. Родился 15 февраля 1934 года. Швейцарский учёный, специалист в области информатики, один из известнейших теоретиков в области разработки языков программирования, профессор компьютерных наук Швейцарской высшей технической школы Цюриха (ETHZ), лауреат премии Тьюринга 1984 года.

1.1.2. Создатель и ведущий проектировщик языков программирования Паскаль, Модула-2, Оберон.

2. Реализации

2.1. UCSD Pascal

2.1.1. Возможности: разработанная система UCSD p-System, включавшая порт виртовского компилятора с языка Паскаль в переносимый p-код, редактор исходных кодов, файловую систему и прочее, а также реализовывавшая значительное число расширений языка Паскаль, такие как модули, строки символов переменной длины, директивы трансляции, обработка ошибок ввода-вывода, обращение к файлам по именам и пр.

2.2. Object Pascal

2.2.1. Возможность: средствами Pascal обращаться к функциям Windows API для создания полноценных Windows- приложений.

2.3. Turbo Pascal

2.3.1. Этапы

2.3.1.1. Turbo Pascal 1.0, 20 ноября 1983 года.

2.3.1.1.1. Компилирует непосредственно в машинный код. Требует 32 килобайта оперативной памяти. Позволяет размещать динамические данные в куче — динамической области памяти.

2.3.1.2. Turbo Pascal 2.0, 1984 год.

2.3.1.2.1. Увеличен размер создаваемой программы — позволяет использовать до 64 килобайт для кода, стека и данных. Версия для DOS поддерживает арифметический сопроцессор и двоично-десятичную арифметику

2.3.1.3. Turbo Pascal 4.0, 1987 год.

2.3.1.3.1. Компиляция осуществлялась в EXE-файл, а не в COM, как ранее. Впервые введена поддержка модулей с раздельной компиляцией. Размер программы ограничен только объёмом оперативной памяти. Управляемая с помощью меню интегрированная среда разработки (англ. Integrated Development Environment, IDE). Интеллектуальная компоновка модулей. Автономный компилятор командной строки, введенный для больших проектов, компиляция которых затруднялась ресурсоемкой IDE. Убрана поддержка оверлеев. Контекстно-чувствительная система помощи. Опции компилятора настраивались в IDE. Интеллектуальный встроенный компоновщик, который исключал из откомпилированных файлов модулей неиспользуемые в программе процедуры и функции.

2.3.1.4. Turbo Pascal 5.0, 1988 год.

2.3.1.4.1. Встроенный отладчик позволял трассировать исходный текст, вводить точки останова, просматривать и изменять содержимое переменных, не покидая IDE. Отдельный отладчик (Turbo Debugger), который в более поздних версиях позволял отлаживать программу с удаленной машины через RS-232-интерфейс. Эмуляция арифметического сопроцессора. Поддержка графических драйверов BGI (Borland Graphics Interface). Возвращена поддержка оверлеев. В комплект поставки был включен Turbo Assember, в свою очередь, компилятор Turbo Pascal поддерживал включаемые в Pascal-программы OBJ-файлы. Введены процедурные типы.

2.3.1.5. Turbo Pascal 5.5, 2 мая 1989 года.

2.3.1.5.1. Возможность копирования в программу примеров из справочной системы. Электронный учебник на диске. Turbo Profiler — профилировщик, фиксирующий время выполнения каждого блока анализируемой программы в машинных циклах и миллисекундах для последующей оптимизации критических участков. Автономный отладчик Turbo Debugger дополнен средствами для работы с объектами — возможно просматривать иерархию объектов, вызывать методы, просматривать и модифицировать поля.

2.3.1.6. Turbo Pascal 6.0, 1990 год.

2.3.1.6.1. Библиотека Turbo Vision. Новая IDE, переписанная с использованием Turbo Vision, поддерживающая мышь и редактирование нескольких файлов одновременно в разных окнах. Возможность задания во встроенном отладчике условных и по количеству проходов точек останова. Встроенный ассемблер BASM, позволяющий в исходном тексте программы делать ассемблерные вставки. Protected-поля и методы для объектов. Работающий в защищённом режиме компилятор командной строки.

2.3.1.7. Turbo Pascal for Windows.

2.3.1.7.1. Создание 16-разрядных программ под Windows. Библиотека объектов Objects Windows Library (OWL), сходная по идеологии с Turbo Vision. Графическая IDE, работающая под Windows.

2.3.1.8. Borland Pascal 7.0, 1992 год.

2.3.1.8.1. Выпущен Borland Pascal 7.0, включающий в себя более дешёвый и менее мощный Turbo Pascal 7.0, который поставлялся также отдельно. BP 7.0 позволял создавать программы под реальный и защищённый 16-битный режим DOS и Windows. Была введена поддержка открытых массивов, добавлено новое ключевое слово «public» для доступных полей и методов объекта. Открыты исходные тексты системных библиотек и функций времени выполнения

2.3.1.9. Borland Pascal 7.1, 1994 год.

2.3.1.9.1. Пакет обновлений, состоящий из исполняемых файлов компиляторов командной строки реального и защищенного режимов, интегрированных сред, откомпилированных системных библиотек, отладчика, диспетчеров защищенного режима и так далее. Предназначался для установки поверх версии 7.0 и не мог работать в качестве самостоятельной отдельной версии.

2.4. PascalABC

2.4.1. Этапы

2.4.1.1. 2003 год.

2.4.1.1.1. Система представляла собой интегрированную оболочку со встроенным интерпретатором языка программирования Паскаль, близкого к языку Delphi. Несмотря на неполную реализацию языка, она стала удачной заменой устаревшей системе Turbo Pascal в первоначальном обучении программированию.

2.4.1.2. 2005-2006 года

2.4.1.2.1. система была полностью переработана: изменена её архитектура — на полноценный компилятор языка, близкого к Delphi, с расширениями, связанными с платформой .NET. Новая система получила название PascalABC.NET.

2.4.1.3. Сентябрь 2009 год

2.4.1.3.1. Появилась веб-среда разработки WDE, не требующая установки PascalABC.NET на локальный компьютер и позволяющая запускать программы на PascalABC.NET непосредственно из окна браузера.

2.4.1.4. Февраль 2013 год

2.4.1.4.1. вышла версия PascalABC.NET 2.0 с дизайнером форм и поддержкой проектов.

2.4.1.5. 15 мая 2013 год.

2.4.1.5.1. вышла версия 2.1 с английской локализацией интерфейса и сообщений об ошибках.

2.4.1.6. 15 февраля 2014 год

2.4.1.6.1. вышла версия PascalABC.NET 2.2. Многократно ускорено обращение к символам строки на запись.

2.4.1.7. 12 февраля 2016 год

2.4.1.7.1. вышла версия PascalABC.NET 3.1. Появились кортежи и срезы, значительно обновлена стандартная библиотека.

2.4.1.8. 29 августа 2016 год

2.4.1.8.1. вышла версия PascalABC.NET 3.2. Появились операторы yield и yield sequence,

2.4.1.9. 30 августа 2017 год

2.4.1.9.1. Вышла версия PascalABC.NET 3.3. Появились стандартные модули GraphWPF и Graph3D (для Windows Vista и выше), упрощенный цикл loop, операция безопасного среза, кортежное присваивание, поддержка Nullable-типов.

2.4.1.10. 11 февраля 2018 год

2.4.1.10.1. вышла версия PascalABC.NET 3.3.5. Добавлен стандартный модуль NumLibABC (учебная библиотека численных методов), реализованы форматные строки и операция возведения в степень. В полную версию дистрибутива (для Windows Vista и выше) интегрирована .NET 4.7.1, для Windows XP оставлен дистрибутив с .NET 4.0.

2.4.1.11. 25 мая 2018 год

2.4.1.11.1. вышла версия PascalABC.NET 3.4. Реализовано некоторое подмножество Pattern Matching, расширенный оператор is.

2.4.1.12. 1 сентября 2018 год

2.4.1.12.1. вышла версия PascalABC.NET 3.4.2. Реализованы расширенные свойства, расширенные индексные свойства и автосвойства, добавлен модуль WPFObjects как замена устаревшему ABCObjects.

2.4.1.13. 25 мая 2019 год

2.4.1.13.1. вышла версия PascalABC.NET 3.5. В Pattern Matching добавлена возможность сопоставления со списками, кортежами и константами.

3. Типы данных

3.1. Целочисленный

3.1.1. Сюда входят несколько целочисленных типов, которые различаются диапазоном значений, количеством байт отведённых для их хранения и словом, с помощью которого объявляется тип.

3.2. Логический

3.2.1. Переменная, имеющая логический тип данных может принимать всего два значения: true (истина) и false (ложь). Здесь истине соответствует значение 1, а ложь тождественная нулю.

3.3. Символьный

3.3.1. Символьный тип данных – это совокупность символов, используемых в том или ином компьютере. Переменная данного типа принимает значение одного из этих символов, занимает в памяти компьютера 1 байт. Слово Char определяет величину данного типа. Существует несколько способов записать символьную переменную (или константу):

3.4. Вещественный

3.4.1. Над ними может быть выполнено большее количество операций и функций, чем над целыми. Например, эти функции возвращают вещественный результат: sin(x) – синус; cos(x) – косинус; arctan(x) – арктангенс; ln(x) – натуральный логарифм; sqrt(x) – квадратный корень; exp(x) – экспонента;

3.5. Строковый

3.5.1. Строка в Паскале представляет собой последовательность символов заключенных в апострофы, и обозначается словом String. Число символов (длина строки) должно не превышать 255. Если длину строки не указывать, то она автоматически определиться в 255 символов.

3.6. Перечислямый

3.6.1. Перечисляемый тип данных представляет собой некоторое ограниченное количество идентификаторов. Эти идентификаторы заключаются в круглые скобки, и отделяются друг от друга запятыми

3.7. Интервальный

3.7.1. Когда необходимо задать какой то диапазон значений, то в таких ситуациях применяется интервальный тип данных. Для объявления используется конструкция m..n, где m – минимальное (начальное) значение, а n – максимально (конечное); здесь m и n являются константами, которые могут быть целого, символьного, перечисляемого или логического типа. Описываться величины интервального типа могут как в разделе типов, так и в разделе описания переменных.

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

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

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

4.3. Некоторые недостатки Паскаля были исправлены в ISO-стандарте 1982 года, в частности, в языке появились открытые массивы, давшие возможность использовать одни и те же процедуры для обработки одномерных массивов различных размеров.

5. Достоинства и недостатки

5.1. Недостатки

5.1.1. Компилятор рассчитан на реальный режим DOS, который сейчас практически не используется.

5.1.2. Недостаточно полно реализовано объектно-ориентированное программирование.

5.2. Достоинства

5.2.1. Простой синтаксис языка. Небольшое число базовых понятий. Программы на Паскале достаточно легко читаемы.

5.2.2. Достаточно низкие аппаратные и системные требования, как самого компилятора, так и программ, написанных на Паскале.

5.2.3. Универсальность языка. Язык Паскаль применим для решения практически всех задач программирования.

5.2.4. Поддержка структурного програмирования, программирования "сверху-вниз", а также объектно-ориентированного программирования.