Файл: Основы программирования на языке Pascal. Особенности языка Паскаль как программирования.pdf
Добавлен: 29.06.2023
Просмотров: 59
Скачиваний: 4
Сравним теперь компиляторы Паскаля.
Не может не радовать тот факт, что в России все больше начинают уделять внимание легальности использования программных продуктов. В связи с этим всем приходится платить за использование Turbo/Borland Pascal – и частным, и общественным пользователям. И мало кто знает о том, что есть 32-разрядные компиляторы Паскаля, которые для целей некоммерческого пользования совершенно бесплатны, и что примечательно, - более полно используют оперативную память ПК и возможности видеоадаптера.
Среди компиляторов, которые достигли конкретной степени, - TMT Pascal (www.tmt.com) и Free Pascal Compiler (FPC, www.ru.freepascal.org). В числе других проектов стоит упомянуть P32V Джона Принса (surf.to/p32) и Virtual Pascal (www.vpascal.com), недавно ставший бесплатным. Последний, пожалуй, наиболее тщательно проработан, но в исходном виде не позволяет делать DOS-приложения.
Отметим тот факт, что в разработке TMT и Free Pascal участвовали наши соотечественники.
Версия 3.50 компилятора ТМТ выглядит достаточно отлаженным продуктом, потому что большинство выявленных ошибок устранены, да и сам он и его интегрированная среда работают без перебоев и установка их легка. Просматривается при всем этом, к сожалению, немногочисленность коллектива разработчиков - интегрированная среда как отражение в зеркале походит на аналогичные GUI-ориентированные IDE и возможности у нее ограничены - отсутствует даже встроенный наладчик. Во встроенном ассемблере до сих пор отсутствует поддержка SSE, хотя есть 3DNow! и MMX. Более расширенные и зарегистрированные версии компилятора начиная с 1.0 содержали IDE-среду в текстовом режиме, с которой из-за множества ошибок все равно было невозможно работать, а свободно распространяемые - ограничения на объем используемой памяти, но их можно было достаточно легко обойти. Поэтому в версии 3.50 они были сняты, а в последнюю бесплатно предоставляемую добавлена IDE-среда.
Free Pascal был разработан с помощью немалого числа энтузиастов. Он поставлялся вместе с исходными текстами, из-за чего каждый желающий мог принять участие в процессе его создания. Кстати, написан Free Pascal на Паскале, так что для него проблем не возникает.
Версия компилятора обозначается не двузначным, как принято, а трехзначным числом, так как значение 99 в младшей части версии появилось задолго до того, как основной было присвоено 1.0. Сейчас 1.0 наконец вышла, но она в итоге получилась более сырой, чем предыдущая. Далее, следом выпускают версию 1.02, которая содержит в себе только исправления замеченных ошибок. Одновременно с этим готовилась к выходу версия 1.04.
Здесь уже в состав поставки компилятора включена интегрированная среда, которая работает только в текстовом режиме. Этого не скрывали – в документациях к компилятору честно написано, что это всего лишь отладочная версия. Да и к тому же IDE нуждается в настройках, которые к великому разочарованию, описаны неверно. Эта IDE- своего рода текстовый редактор с встроенным компилятором (почему-то не внешним), в ней нет не то что контекстной подсказки, не говоря и об отладчике.
Оба компилятора в определенной степени походят на диалект Turbo/Borland Pascal, хотя и различия конечно есть. По большой сути они касаются усовершенствований языка, потому что отсутствуют ограничения, связанные с 16-разрядной сегментированной моделью памяти, есть Си-подобные комментарии. Да, и еще - ТМТ дополнился Си-подобными операциями: , . В Free Pascal появились перегружаемые функции, а у ТМТ - перегружаемые операторы и множество усовершенствований, о чем говорится и в документации. У Free Pascal желаемое нередко выдается за действительное. Так, в одной из предыдущих версий он наотрез отказался компилировать MMX-инструкции, в том числе и пример из документации. Конечно, оба компилятора не во всем похожи. У ТМТ отсутствует 64-разрядный целый тип comp. Притом, скорее всего, его введение и не предполагается, так как существует дополнительный модуль для обработки комплексных чисел, имеющий то же самое название. В Free Pascal же не предусмотрено предопределенных массивов Port и PortW, а в ТМТ есть даже PortD.
Поскольку оба компилятора используют 32-разрядную плоскую модель памяти, функция seg у обоих возвращает 0, однако в системе программирования Free Pascal неправильно работает функция ptr. Например, в выражении longint(ptr($40,$6c)^) мы можем получить все что угодно, но только не значение счетчика времени BIOS (видимо, программа прекратит работу по ошибке обращения к памяти). У TMT же такая конструкция выполняется правильно.
После компиляции минимальный размер исполняемого файла для ТМТ составляет около 15 Кбайт, а для Free Pascal - 55 Кбайт. Кроме того, второй требует еще внешнего DPMI-сервера на 20 Кбайт, тогда как у ТМТ он содержится внутри исполняемого файла.
Чтобы сравнить скорости работы исполняемых файлов, полученных с помощью этих компиляторов, можно использовать тест Ветстоуна по определению производительности системы с точки зрения выполнения операций над числами с плавающей запятой, переписанный с Фортрана на Паскаль. Значительно уступая TMT по оптимизации размера, Free Pascal работает в полтора раза быстрее. В то же время оба компилятора оставляют далеко позади Borland Pascal, особенно на современных процессорах.
Однако некоторые результаты при измерении производительности выглядят довольно странно. Написанная на ассемблере процедура поиска кратчайшего пути в графе при помощи алгоритма Дейкстры, будучи откомпилированной тем же Free Pascal, выполнялась на 20% быстрее, чем ТМТ. При заполнении таблицы весов дуг графа использовался датчик случайных чисел, измерения повторялись 1000 раз и полученные значения усреднялись, а процедуры чтения, записи и пересылки содержимого оперативной памяти выполнялись в обоих случаях с одинаковой скоростью.
Среднее время выполнения этого теста для компилятора ТМТ Pascal составило 2,20 с, а для Free Pascal - 1,81 с.
Бесплатная версия TMT Pascal позволяет делать исполняемые файлы только для DOS, зато при использовании коммерческой один и тот же текст, будучи откомпилированным и для DOS, и для Windows, работает визуально совершенно одинаково, хотя внутренний механизм для DOS реализован через VESA, а для Windows - через DirectDraw.
Рекомендации
Что же, хотя крупные фирмы и отказались от ведения разработок Паскаля для DOS, небольшие компании, коллективы энтузиастов и даже отдельные программисты весьма успешно продолжили это дело, создавая вполне достойную замену проверенному компилятору Turbo Pascal. Так что если вам нужен надежный компилятор и вы не хотите возиться с установкой и настройкой его самого и прилагаемой к нему среды, а также если при вашей работе предъявляются жесткие требования к объему кода, то лучше остановить свой выбор на ТМТ. Кстати, при применении внешнего DOS-расширителя памяти, например DOS4GW, минимальный объем исполняемого файла можно сократить до 3 Кбайт. Если же вам не терпится самому принять участие в разработке компилятора Паскаля, если вам нужен транслятор, настраиваемый на ваши конкретные задачи и вы согласны над ним поработать, то следует отдать предпочтение FPC. Впрочем, вместе с исходными текстами также поставляется Р32V, однако он в отличие от FPC компилируется в среде Borland Pascal. Правда, P32V - не полный компилятор, так как переводит текст на Паскале не в объектный код, а в текст на языке ассемблера, и поэтому потребуется внешний ассемблер. Если же вы работаете с OS/2, то целесообразнее предпочесть Virtual Pascal.
Заключение
На основе проведенной работы можно сделать вывод о том, что Паскаль, являясь языком программирования высшего уровня, охватывает широкий спектр логических конструкций и функций, которые необходимы для успешного решения задач во многих областях и сферах деятельности человека.
Наверное, нет таких программистов, кто незнаком или не слышал о языке Паскаль. Пик популярности языка пришелся на 80-е гг, период «переворотов» в индустрии ПК, время начала нового программирования. Паскаль можно считать так называемой точкой отсчета другой, новой эпохи языков. На сегодняшнем этапе развития трудно предсказать что будет с Паскалем в будущем, он не перестает быть верным для своих почитателей.
Паскаль объяснялся на языке прошлого времени, но, тем не менее, ему удалось донести с помощью этого языка, для нас, жителей эпохи XXI века, непреходящие «общечеловеческие истины, остающиеся насущными и по настоящий день»