русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Язык Паскаль | Язык Pascal

Pascal - алгоритмическая язык универсального назначения. Существуют диалекты языка с поддержкой объектно-ориентированного программирования. В 1990 году был утвержден стандарт ISO 7185:1990, «Pascal», и ISO 10206:1990 «Extended Pascal».

История возникновения и особенности языка Паскаль

Первым компилятором языка Pascal является ETH Pascal, созданный в 1970 -м. Название ETH происходит от названия института немецкой Eidgenössische Technische Hochschule Zürich (Украинская Федеральная высшая техническая школа Цюриха ), где он был разработан. Творцом языка является Никлаус Вирт. В конце того же года Вирт опубликовал первый официальный описание языка, синтаксиса и семантики. Новая версия языка вышла в 1972 году. Тогда же Вирт и его английский коллега Чарльз Энтони Хоар ( Тони Хоар ) выпустили аксиоматический описание языка Pascal.

В 1969 году Вирт поручает разработку компилятора одному из своих студентов (Е. Мармье). На тот момент Мармье владел Фортраном ( Fortran ) и писал компилятор исключительно на этом языке. После написания компилятор Pascal был переписан на самом себе. Как вспоминал потом Вирт, выбор Фортрану был серьезной ошибкой, потому что он не мог адекватно представлять сложные структуры данных компилятора Pascal, что лишь запутывало программу.

Следующая попытка создания компилятору началась с четкого формулирования на описании (1970 года) самого Паскалю. Синтаксический анализ нового однопроходного компилятору реализовывался с помощью рекурсии. Теперь команду разработчиков составили: В. Амман, Э. Мармье, Р. Шилд. После того как компилятор был написан на еще неизвестном языке, Шилд поехал домой, где он в течение двух недель вручную транслировал программу во вспомогательную низкоуровневую язык. Итак, в середине 1970 компилятор ETH Pascal был готов.

ETH Pascal был интересен прежде всего тем, что стал он одним из первых реализаций языков высокого уровня написанных на самой себе, на два года опередив компилятор Си. В 1973 году была создана абстрактная Pascal-машина (P-машина), которая выполняла специальный P-код. Чтобы решить проблему совместимости компилятора, Вирт решил воспользоваться проверенными временем методами интерпретации. Самыми известными из них решениями, которые предшествовали P-кода, можно назвать реализацию языка Snobol-4 (Р. Грисуолдом, в 1967 году), где в качестве кода абстрактной машины использовался язык SIL ( System Implementation Language ).

Первоначальная цель разработки языка диктовалась необходимостью инструмента "для обучения программированию как систематической дисциплине". Pascal принадлежит к Algol -подобных языков программирования, поскольку использует семантику Algol -ла. Однако Pascal имел существенное усовершенствование - жесткую типизацию. Это означало, что присваивание можно было выполнять только для переменных, принадлежащих к одному типу (одновременно указывались правила, по которым типы считались одинаковыми). Это усовершенствование существенно улучшило стиль программирования, поскольку значительную часть ошибок удавалось обнаружить еще на этапе компиляции - что увеличивает надежность программ.

Однако речь разрабатывалась как исследовательский проект и первоначальный Pascal был мало пригоден для написания больших проектов, поскольку программу нельзя было составить из нескольких программных частей - просто не было предусмотрено такой возможности. Но этот язык программирования быстро завоевала популярность в учебных заведениях при изучениипрограммирования. А когда появились диалекты языка где возможно было отдельное компилирования программных частей - Pascal стал средством написания больших программных систем.

Существует ряд объективных причин, обусловивших выдающийся успех языка Pascal. Среди них в первую очередь необходимо указать следующие:

  • Язык в естественной и элегантной форме отразила важнейшие современные концепции технологии разработки программ.
  • Благодаря своей компактности, концептуальной целостности и ортогональности понятий, а также удачному оригинальном описанию, предложенному автором языка, Pascal оказался очень легким для изучения и освоения.
  • Несмотря на относительную простоту языка, она оказалась пригодной для очень широкого спектра приложений, в том числе для разработки очень больших и сложных программ, например, операционных систем.
  • Pascal очень технологичен для реализации практически всех, в том числе и нетрадиционных, машинных архитектур. Утверждается, что разработка Pascal -транслятора "почти" не превышает по трудоемкости хорошей дипломной работы выпускника ВУЗа.
  • Язык Pascal стандартизован во многих странах, а в 1983 году был принят международный стандарт ( ISO 7185:1983).

Turbo Pascal и Borland Pascal

Обзор

Turbo Pascal 1.0 IDE (1983 год)

Borland Pascal 7.0 IDE (1992 год)

Turbo, а позже Borland Pascal - это одна из самых удачных и распространенных реализаций языка Pascal, созданная компанией Borland. Turbo Pascal - расширение американского стандарта ( ANSI Pascal), которое учитывает архитектурные особенности MS-DOS и MS Windows и поставляется со значительными по объему и разнообразию пакетами стандартных процедур. Такие принципиальные новшества, как аппарат модулей и объектно-ориентированные средства облегчают конструирование больших программных систем на основе технологии модульного программирования.

Компилятор Turbo Pascal работает по однопроходной схеме, реализующей функции редактирования связей, формируя на выходе готовый к выполнению объектный код. Компилятор может осуществлять широкий набор локальных оптимизаций (сворачивание констант, исключение неиспользуемого кода и лишних данных, оптимизация операций и т.д.), что способствует высокой эффективности конечных приложений.

Система Turbo Pascal является интегрированной средой ( IDE ), насчитывающее ряд компонентов, в совокупности поддерживают все виды работ по созданию программ. Система содержит универсальный текстовый редактор, компилятор входного языка, редактор связей. Многооконный интерфейс с развитой системой меню и совершенной справочной системой обеспечивает высокую производительность труда программиста.

Borland Pascal 7.0, 7.01 компилирует программы для DOS и ОС Windows 1.0, Windows 2.0, Windows 3.x, а также содержит ряд дополнительных утилит и компиляторов вроде: Turbo Pascal for Windows (TPW), Borland Pascal for Windows (BPW), редактор ресурсов (иконок, графических файлов, курсоров и т.д.) и другие. Хронологическая таблица версий компилятора серии "Turbo":


Название компилятора Дата выхода Особенности и прочее
Turbo Pascal 1.0 20 ноября 1983 Разработанная для PC-DOS и ОС CP / M. Компилятор требует лишь 64 КИБ оперативной памяти и компилирует код для COM или CHN файлов (формата / структуры файлов). Выходной машинный код не может превышать 64 КИБ, графический режим- CGA, манипуляции со звуком с помощью PC-динамика (подключенного к 2-гого выхода таймера (в IBM AT-совместимых).
Turbo Pascal 2.0 17 апреля 1984 Цвет интерфейса изменен с желто-серого на серо-белый. Удалена команда меню "выполнить", увеличен возможный размер кода и добавлен ряд новых примеров программ.
Turbo Pascal 3.0 17 сентября 1986 Цвета EGA -палитры, новые графические процедуры (в том числе графическая черепаха), оверлеи, BCD, новые процедуры для работы с файлами, параметры компиляции можно задавать через командную строку.
Turbo Pascal 4.0 2 ноября 1987 В компилятор внесены кардинальные изменения. Он перестал поддерживать ОС CP / M, стала возможной компиляция в EXE -файлы, работа с EGA, VGA графикой, добавлен тип данных LongInt.

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

Turbo Pascal 5.0 осень 1988 Появился встроенный видлагоджувальник (от англ. Debugger), а также отдельный видлагоджувальник Turbo Debugger, драйвер BGI.
Turbo Pascal 5.5 2 мая 1989 В язык вводится понятие объектно-ориентированного программирования (понятие классов, статических и динамических объектов, конструкторов и деструкторов, а также наследование).

В интерфейсе стал преобладать синий цвет, который использовался во всех последующих версиях серии "Turbo". В ИСР (акроним от " интегрированная среда разработки ", англ. integrated development environment ( IDE )) введено два важных изменения: пошаговый видлагоджувальник и контекстная справка с описанием всех встроенных функций и возможностью копирования фрагментов кода.

Turbo Pascal 6.0 4 октября 1990 Язык имеет ряд изменений по сравнению с предыдущей версией: встроенный ассемблер, улучшение объектно-ориентированной парадигмы, улучшенный админстратор кучи (от англ. Heap). Появляется библиотека Turbo Vision, предназначенная для разработки приложений со сложным визуальным интерфейсом.

Интерфейс. Улучшенный поддержкой мыши, буфером обмена текстом, возможностью манипуляций с оконным редактором (а также одновременным редактированием нескольких файлов). Видлагоджувальник также улучшилось. Стало возможным использованием пауз точек (от англ. Breakpoints) и окна наблюдения (watches).

Turbo Pascal 7.0 9 марта 1993 Компилятор стал кросс-платформенных - это позволило компилировать программы как для DOS так и для Windows. Другой важной особенностью является возможность создания динамических библиотек (англ. DLL - ДЗБ) и подсветка синтаксиса.


Хронологическая таблица версий компилятора серии "Borland":

Название компилятора Дата выхода Особенности и прочее
Borland Pascal with Objects 7.0 27 октября 1992 7:00 Генерирования кода исполняемые файлы в Windows, DOS, DPMI. Скорость компиляции более 85000 линий в минуту. Полный доступ ко всем функциям Windows и сообщений. Динамически загружаемые библиотеки для DOS и Windows. C, C + + код может быть использован благодаря ДЗБ ( DLL ). Встроенный ассемблер для скорости и полного контроля кода. Математический сопроцессор и оффлайн поддержка. Умный компоновщик для удаления ненужных объектов и кода. Зарезервированные слова: "public", "private" и "inherited". Открытые массивы и строки. 80386-инструкции для операций с 32-битными числами. Оптимизация множеств. Быстрые операции со строками и файлами. Неограниченная вложенность. Пакет включает в себя: DOS-, Windows-интегрированные среды разработки.Подсветка синтаксиса, неограниченные количество операций "Undo" (вернуть) и "Redo" (повторить). Выбор целевого файла и кода для: DOS, DPMI и Windows.Браузер объектов (ObjectBrowser), он-лайн справка, Turbo Debugger, Turbo Profiler, Turbo Assembler, Resource Workshop, Winsight / Winspector, компилятор ресурсов, компилятор справки, модуль "Windows CRT". Цена - $ 500, обновление Turbo Pascal-150.
Borland Pascal with Objects 7.01 9 марта 1993 7:01 Устранены некоторые ошибки в самом компиляторе (некоторые моменты проверки диапазона и переполнение типа Byte и ShortInt были реализованы неправильно), в работе таймера (процедура Delay), а также в тексте Turbo Vision-модулей. Зарегистрированные пользователи версии 7.0 получили 7.01 бесплатно. Была исправлена серьезная ошибка сдвига (операции shl и shr) для типа LongInt (с числом сдвига битов 16-31), которая происходила во время выполнения кода на процессорах 80386 (на некоторых процессорах код работал, на других - нет). Проблема была решена путем внедрения глобальной переменной Save8086 типа Byte и вставкой дополнительного тесткоду, окружавшая инструкции. Это замедлило оползни, но сделало их стабильным, так как теперь они выполняются с использованием 16-битных регистров как в TP 4.0-6.0 реализации.

Исправлены ошибки, соответственно информации предоставленной Джимом Хиггинсом (Jim Higgins):
1.Перевирка диапазона и переполнение типа Byte и ShortInt;
2.Помилка, связанная со смещением со значениями 16-31 на процессорах 80386, 80486;
3.Функции GetDir не вызывала ошибку № 15, если переданный параметр несуществующего диска;
4.В программ откомпилированный директивой $ N, была проблема с правильным определением INFs и NaN;
5.Функции Exp, когда использовалась для очень малых аргументов типа Real виклакала переполнения вместо того, чтобы вернуть ноль;
6.Була проблема преобразования денормализованих чисел в нуле при использовании сопроцессора 8087;
7.Денормализовани числа типа Extended не превращались надлежащим образом в десятичные с помощью процедур Str и Write (Ln);
8.Инициализации процедур не проверяли должным образом, чтобы предотвратить ошибочного выполнения кода скомпилированного для процессоров 80286 директиве $ G, которые работают на процессорах 8086/8088.

Компиляторы Turbo Pascal 7.0 и Borland Pascal 7.x

Первоначальные версии компилятора имеют другой вид. Далее будут розлянути версии корпорации Borland : Turbo Pascal 7.0 и Borland Pascal 7.0/7.01, которые уже давно стали классическими. Текст компилируется в машинный язык для центральных процессоров 8086, 8088, 80186, 80188, 80286, 80386 (BP 7.0/7.01) и совместимых с ними. Компиляция кода для работы с числами с плавающей точкой может здийнюватися, как в прямые машинные инструкции сопроцессоров 8087, 80187, 80287 и совместимых с ними, так и путем эмуляции.

Алфавит языка
Имена в языке Pascal формируются из латинских букв AZ, az, цифр 0-9 и знака "подчеркивание" ("_"). Также используются специальные символы: + - * / = <> [] () {} $ ^ #. Любое имя должно начинаться с латинской буквы или символа "подчеркивание" (от англ. "Underscore"), исключение составляют лишь имена меток. В отличие от Си в Паскале не учитывается регистр букв.

Служебные слова
Служебное слово представляет собой неделимое образование, содержание которого фиксированный языке. Служебные слова нельзя использовать в качестве имен. Комментарии в коде программы оформляются фигурными скобками {комментарий} или же сочетанием обычных скобок со звездочкой (* комментарий *).
Зарезервированные слова:
and, asm, array, begin, case, const, constructor, destructor, div, do, downto, else, end, exports, file, for, function, goto, if, implementation, in, inherited, inline, interface, label, library, mod, nil, not, object, of, or, packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type, unit, until, uses, var, while, with, xor, absolute, assembler, export, external, far, forward, index, interrupt, near, private, public, resident, virtual.

Использование имен псевдомасивив Port, PortW, Mem, MemW, MemL не вызывает ошибки, но делает невозможным их дальнейшее применение.

Структура программы
Учитывая, что для имен можно применять только латинские буквы, все названия параметров представлены на английском.
Условные обозначения:
<> - обязательный параметр;
[] - не обязательный параметр.

Описание директив (макросов):
{$ <directive> <switch>, <directive> <switch>, ..}
Место описания директив (макросов) является произвольным. Некоторые директивы имеют более чем одно значение. Например
$I <filename.pas> и $I <switch>;
$L <switch> $ L <filename.obj>.
Большинство директив имеет одинаковую форму записи, но есть и исключения, вроде:
$M <value>, <value>, <value>;
$IFDEF <name>; $ELSE; $INC.

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

Вы можете --> Заказать программу или Задать вопрос на форуме

Вернуться воглавление


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.