Чем отличается free pascal от pascal abc

Turbo Pascal, Pascal ABC, Free Pascal, PascalABC.NET — в чем разница?

Чем отличаются Turbo Pascal и Pascal ABC?
Чем отличаются турбо паскаль и abc? Просто у меня windows7 последняя теперь стоит, и там турбо.

Нужен Turbo pascal или Free pascal на русском
Нужен Turbo pascal или Free pascal на русском языке, есть такой или нет? По книге обучаюсь по Turbo.

Указатели в Turbo Pascal и PascalABC
Вопрос: почему в Turbo Pascal тактая конструкция const TAB = ^I; begin end. работает, а.

Лучший ответСообщение было отмечено weblord как решение

Решение

Free Pascal
Ребята помогите пожалуйста,очень надо.

Free Pascal игнорирует $F
Решаю задачу, в которой некоторые процедуры и функции должны получать параметры-функции. Однако при.

Pascal ABC
Нужен человек, который разбирается в Pascal — программах и их написания 🙂 Буду благодарна помощи. .

Что такое Free Pascal, и с чем его едят?

Free Pascal, иначе называемый FPC (Free Pascal Compiler) — это 32х-разрядный, кросс­плат­фор­мен­ный компилятор языка Pascal. В настоящем обзоре я рассмотрю его основные ха­рак­те­рис­ти­ки и возможности. Free Pascal относится к категории сво­бод­но­го программного обес­пе­че­ния (free software) и распространяется по лицензии GNU.

Кроссплатформенность

Итак, что в данном случае понимается под кроссплатформеностью? Довольно-таки большое ко­ли­чес­тво платформ, однако. Во-первых, это два типа процессора:

  • i386 — процессоры Intel серии 80×86, начиная с 80386;
  • m68k — процессоры Motorola серии m68k, соответственно.

Для i386 поддерживаются следующие операционные системы:

  • BeOS
  • BSD Unix, а именно:
  • FreeBSD
  • NetBSD
  • OpenBSD
  • Go32v1 — DJ Delorie DOS extender версии 1
  • Go32v2 — DJ Delorie DOS extender версии 2
  • Amiga
  • Atari
  • PalmOS

Версия 1.1 (находящаяся в состоянии разработки нестабильная ветвь) также поддерживает:

  • OS/2 via EMX
  • Nowell Netware
  • MacOS
  • WDOSX DOS extender

Надо заметить, что поддержка некоторых целевых платформ в нестабильной версии на­хо­дит­ся в состоянии разработки и не впол­не пригодна для серьезной работы. Также в ветке 1.1 идет разработка компиляции для Linux и других ОС на отличных от i386 и m68k типах про­цес­со­ров, таких как PowerPC, Sparc и 64х-разрядные процессоры линии x86.

Непосредственно кросскомпиляция поддерживается, однако возникают серьезные про­бле­мы. Так, например, мне не удалось ском­пи­ли­ро­вать ассемблерные части RTL для Linux ис­поль­зуя версии binutils для DOS и Windows.

Возможности языка

В целом возможности языка ориентированы на развитые "промышленные стандарты", а не на ANSI-стандарт языка, как GNU Pascal. Промышленным же стандартом языка Pascal в нас­тоя­щее время является его диалект Object Pascal от фирмы Borland. Кро­ме того, Free Pascal под­дер­жи­ва­ет дополнительные расширения, нехарактерные для Borland Delphi.

Версия 1.0.10 поддерживает следующие возможности:

  • Object Pascal на уровне Delphi 3, и немного от Delphi 4:
  • Объектные типы, в том числе классы;
  • Длинные строки;
  • "Широкие" строки с поддержкой UNICODE. Впрочем, полной поддержки различных кодовых страниц на данный момент нет, т.е. автоматическое преобразование WideString -> AnsiString и наоборот корректно выполняется только для символов Latin-1;
  • Перегрузка (overloading) функций и процедур.
  • Перегрузка операторов сравнения ( , =, = ), арифметических ( +, -, *, /, **, div, mod ), и оператора присваивания ( := );
  • Поддержка inline- функций и процедур — в отличие от Borland Pascal, такие подпрограммы не требуется писать в машинных кодах;
  • Поддержка примитивных макросов;
  • Поддержка операторов присваивания с выполнением некоторого арифметического действия ( +=, -=, *=, /= ).

В версии 1.1 добавлены средства языка из старших версий Borland Delphi:

  • Динамические массивы;
  • Интерфейсы.

В настоящий момент все перечисленные средства языка работают удовлетворительно, хотя мож­но выделить пару проблем: во-пер­вых, незавершено автопреобразование строк UNICODE, и во-вторых, реализация интерфейсов допускает не­со­от­вет­ствие тре­бо­ва­ни­ям мо­де­ли COM — единственность ссылки на IUnknown должна отслеживаться разработчиком.

Компиляция

Компиляция происходит весьма быстро, поскольку, как и положено компилятору Pascal, Free Pascal работает в один проход. Так, на­при­мер, полная сборка самого компилятора на моем ком­пью­те­ре (Celeron 600) занимает около полутора минут.

Для сборки объектных файлов, получающихся в результате компиляции, вызывается внеш­ний компоновщик — GNU ld (или ldw для Windows-платформы). Вообще, дистрибутив Free Pascal попросту включает в себя пакет GNU BinUtils, частью которого яв­ля­ет­ся ld. Также дан­ный пакет включает в себя кроссплатформенный ассемблер as (asw), GNU make, ком­пи­ля­тор ресурсов для Win32 — windres и другие программы.

Встроенный компоновщик планируется в следующих версиях компилятора, однако ход ра­бот в этом направлении мне неизвестен.

Компилятор командной строки для платформ i386 называется ppc386 (ppc386.exe для DOS и Windows). В дистрибутив входит так­же "загрузчик" (loader) компилятора, называемый, для лю­бо­го процессора, fpc (fpc.exe). Таким образом, на любой платформе мож­но использовать в ко­манд­ной строке fpc .

Компилятор Free Pascal использует оптимизацию. Хотя она и уступает интеллектуальной оп­ти­ми­за­ции компилятора того же Delphi, од­на­ко рутинную, формальную оптимизацию FPC та­ки выполняет. В частности, можно указать целевой процессор, чтобы ис­поль­зо­вать рас­ши­рен­ный набор команд, отсутствующих в i386, например, команды Pentium II. Для вычислений мож­но задействовать на­бор команд MMX или XMM.

Стандартные модули

В состав дистрибутива входят модули, реализующие основную функциональность. Кон­крет­ный состав модулей зависит от плат­фор­мы. Кроме ядра RTL, дистрибутив включает в себя до­пол­ни­тель­ные модули, на­зы­ва­емые "пакетами" (packages), со­дер­жа­щие, на­при­мер, ин­тер­фейс к API SQL-сервера InterBase (пакет ibase ), или функции работы с регулярными вы­ра­же­ни­ями (пакет regexpr ).

Также наличествует некоторый аналог VCL, точнее ее ядра — основных классов и модулей биб­лио­те­ки. Библиотека на­зы­ва­ет­ся FCL — Free Component Library. Содержит как от­но­си­тель­но примитивные классы, a-la TStringList , так и классы для ра­бо­ты с ба­за­ми данных. Впро­чем, модули FCL в настоящее время явно недоработаны — содержат пробелы в функ­цио­наль­нос­ти и не­ко­то­рые баги.

Документация

В целом, Free Pascal весьма хорошо документирован.

Документация к версии 1.0.10 состоит из шести частей и распространяется в различных фор­ма­тах, в том числе — исходники LaTeX. В состав дистрибутива входит документация в виде PDF и HTML. Ниже — описание частей документации.

Free Pascal : Reference guide

Справочное руководство. Содержит описание языка и модуля System . Также описывается модуль ObjPas , автоматически под­гру­жа­емый (аналогично System ) при выборе режима ком­пи­ля­ции Delphi , или ObjFPC .

Free Pascal : Users’ manual

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

Free Pascal : Programmers’ manual

Руководство программиста. Описываются режимы компиляции, директивы компилятора, во­про­сы распределения памяти, ком­по­нов­ки, использования ассемблера и так далее.

Free Pascal supplied units : Reference guide

Справочное руководство по стандартным модулям. Довольно подробно описываюся модули RTL, за исключением тех, которые яв­ля­ют­ся интерфейсами к API операционных систем и их ком­по­нент.

Free Component Library (FCL) : Reference guide

Справочное руководство по FCL. В настоящий момент содержит описание классов модуля Classes . По всей видимости, в даль­ней­шем будет расти вместе с доработкой самой FCL. По край­ней мере, я на это надеюсь.

FPDoc : Free Pascal code documenter : Reference manual

Руководство по использованию утилиты для автодокументации fpcdoc, входящей в состав дист­ри­бу­ти­ва.

IDE и утилиты

Вместе с компилятором распространяется IDE (интегрированная среда разработки — In­te­gra­ted Development Environment) тек­сто­во­го режима, похожее на IDE Turbo/Borland Pascal. В нас­тоя­щее время, стабильные версии IDE, насколько мне известно, су­щес­тву­ют только для DOS и Win32, работа над вариантами для других платформ еще не закончена. IDE содержит встро­ен­ную систему отладки — если я не ошибаюсь, с использованием отладчика GNU GDB, — и встроенную справку.

О стабильности IDE, к сожалению, приходится говорить с некоторой натяжкой — проблемы су­щест­ву­ют. Однако, в целом поль­зо­вать­ся можно.

Также в состав дистрибутива входят следующие утилиты:

  • data2inc — преобразует произвольный файл во включаемый файл ( .inc ) для FPC, где соответсвующие данные представлены в виде константы-массива.
  • delp — очищает каталог от "временных" файлов, возникающих при компиляции, таких как объектные файлы модулей и .ppu .
  • fpcmake — используется для подготовки make-файлов для GNU make.
  • fpdoc — генерирует документацию из модулей Free Pascal в форматах HTML и LaTeX.
  • fpmc — компилятор msg-файлов.
  • fprcp — pascal-препроцессор для windres.
  • h2pas и h2paspp — транслятор заголовочных файлов C и C++ в модули Pascal.
  • makeskel — утилита для подготовки скелета xml-описания для fpdoc.
  • ppdep — позволяет получить список модулей, от которых зависит некий данный.
  • ppudump — извлекает информацию из .ppu- файлов.
  • ppufiles — то же, что ppdep, но не для исходных модулей, как тот, а для .ppu- файлов.
  • ppumove — позволяет собирать библиотеки из .ppu .
  • ptop — форматирование исходников.
  • rstconv — конвертирует файлы .rst , создаваемые компилятором для строк, описанных как resourcestring , в формат GNU gettext .po .

Кроме вышеперечисленных, относящихся собственно к Free Pascal, утилит, в дистрибутив вхо­дит, как уже упоминалось, пакет GNU BinUtils.

В настоящий момент находится в процессе разработки RAD для Free Pascal — IDE Lazarus. Су­щест­ву­ет рабочая версия для Linux. Версия для Win32 пока не работает.

Лицензия

Free Pascal распространяется под лицензией GNU GPL (GNU General Public License), вхо­дя­щие в состав дистрибутива биб­ли­о­те­ки модулей — под лиценизией GNU LGPL (GNU Lesser Public License). Таким образом, программы, написанные на Free Pascal, мо­гут рас­про­стра­нять­ся каким угодно образом, в том числе — и закрытым, а исходники самого компилятора дос­туп­ны для из­ме­не­ния и использования с сохранением условий GNU GPL.

Отличие free pascal от pascal abc

Это просто паскаль с .net
Можете не использовать .net и компилить обычный паскаль.

Несовместимы.
Самые простейшие примеры можно и во FreePascal делать, но он тоже не совместим.

Единственный полноценный выход — ставить DosBox и запускать TP7 под ним.

Но если есть возможность, не надо изучать это проплесневевшие поделие (по современным меркам), возьмите PyCharm Educational Edition и начинайте с Python.

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

а вот первый пункт — это принципиально полезно.
как раз упрощает, а не усложняет.

да, нужно объявлять переменные и указывать в них типы, лишняя работа
но зато об ошибках сообщает.

в питоне есть контроль типов. Он опционален.

OnYourLips, добавлю про статическую типизацию:

Кроме более точного указания ошибок ДО выполнения программы
это еще и более точные подсказки в IDE.

это еще и более точные подсказки в IDE

В питоне есть type hints, этого достаточно для IDE.

А для обучения надо держать человека заинтересованным и мотивированным. Результат полезнее, чем попытки запустить программу, рандомно проставляя в нужных местах звездочки и амперсанды.

  • 3.0.4 ( 28 ноября2017 ) [1]

Free Pascal (полное название Free Pascal Compiler, часто используется сокращение FPC) — свободно распространяемый компилятор языка программирования Object Pascal.

Содержание

Платформы [ править | править код ]

Компилятор существует для различных аппаратных и программных платформ, ветвь 2.4.x поддерживает следующие:

Более ранние версии также поддерживали архитектуру m68k (операционные системы NetBSD, Linux и AmigaOS), а также операционные системы Solaris, QNX и BeOS для x86.

В разработке — поддержка создания кода для Java Virtual Machine [3] .

Библиотеки и оболочки [ править | править код ]

В настоящее время в рамках проекта также разрабатывается Lazarus — свободный аналог среды разработки Delphi и Lazarus Components Library (LCL) — свободная библиотека виджетов, аналогичная VCL в Delphi.

Существуют и альтернативные проекты визуального программирования на базе Free Pascal, наиболее зрелым из которых является MSEide, использующий собственную, несовместимую с VCL библиотеку компонентов MSEgui.

Альтернатива Lazarus’u fpGUI — простая библиотека виджетов, не содержащая дополнительных библиотек вроде работы с БД, XML и тому подобным. В её состав включён визуальный редактор форм, генерирующий исходный код создания формы на паскале.

Кроме того, в настоящее время для создания Windows-приложений можно использовать известную невизуальную библиотеку KOL.

Режимы совместимости [ править | править код ]

Важной особенностью данного компилятора, в отличие, например, от GNU Pascal, является ориентация на распространённые коммерческие диалекты языка: Object Pascal и Delphi.

Free Pascal поддерживает компиляцию в нескольких режимах, обеспечивающих совместимость с различными диалектами и реализациями языка.

  • Режим FPC — собственный диалект: соответствует предыдущему, расширенному дополнительными возможностями, такими как, например, перегрузка операций.
  • Режим ObjFPC — совмещает объектно-ориентированные возможности Delphi и собственные расширения языка.
  • Режим Delphi — данный режим предоставлен для совместимости с компилятором Delphi от компании Embarcadero с целью упрощения портирования существующих исходных файлов на Free Pascal. Для этого вам необходимо включить этот режим директивой $ в исходном файле или с помощью опции-Mdelphi в командной строке компилятора.
  • Режим TP/BP — Этот режим обеспечивает максимальную совместимость с компиляторамиTurbo Pascal / Borland Pascal , чтобы упростить перенос существующего кода на FPC. Он использует возможности, которые не рассматриваются в качестве рекомендуемых, несколько изменяя правила синтаксиса. В случае необходимости, он вносит изменения в стандартный режим ассемблера $ASMMODE INTEL и т.п. Для этого вам необходимо включить этот режим директивой $ в исходном файле или с помощью опции-Mtp в командной строке компилятора.
  • Режим MacPas — режим совместимости с Mac Pascal.
  • Режим ISO 7185
  • Режим ExPas
  • Режим GPas — был режимом компилятора, с помощью которого Free Pascal пытался компилировать только допустимый код GNU Pascal. Данный режим удален из компилятора Free Pascal начиная с версии 2.2.

Особенности [ править | править код ]

  • Поддержка перегрузки арифметических операторов ( + , — , * , ** , / , div , mod ), операторов сравнения ( , > , = , >= , ) и оператора присваивания := .
  • Поддержка операторов присваивания с выполнением арифметической операции в стиле Си ( += , -= , *= , /= ).
  • Наличие собственной системы сборки (fpcmake) и генератора документации (fpcdoc).
  • Встроенный ассемблер по умолчанию использует синтаксис AT&T, синтаксис Intel включается отдельной директивой.

Краткая история [ править | править код ]

  • 1993 год — начало работы над проектом.
  • 1995 год — компилятор успешно компилирует сам себя.
  • 1996 год — проект опубликован в интернете под лицензией GNU GPL.
  • 12 июля 2000 года — выход версии 1.0.
  • 2003 год — выход версии 1.0.10, завершение работы над ветвью 1.0.x.
  • 15 мая 2005 года — выход версии 2.0.
  • 10 сентября 2007 года — выход версии 2.2.
  • 30 декабря 2009 года — выход версии 2.4.
  • 12 ноября 2010 года — выход версии 2.4.2.
  • 20 мая 2011 года — выход версии 2.4.4
  • 1 января 2012 года — выход версии 2.6.0
  • 23 февраля 2013 года — выход версии 2.6.2
  • 11 марта 2014 года — выход версии 2.6.4
  • 25 ноября 2015 года — выход версии 3.0.0
  • 15 февраля 2017 года — выход версии 3.0.2 [4]
  • 28 ноября 2017 года — выход версии 3.0.4 [5]

Лицензия [ править | править код ]

Компилятор распространяется на условиях GNU General Public License, а значительная часть библиотек, в том числе ядро RTL — на условиях более мягкой GNU Lesser General Public License.

Создание программ на языках Pascal, Delphi и Lazarus.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 114
puporev
Статус: Профессор
Рейтинг: 44
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг:
Перейти к консультации №:

Доброго времени суток уважаемые эксперты!
Скажите пожалуйста, чем отличаются компиляторы PascalABS, FreePascal, и Borland Pascal друг от друга?
больше всего интересует разница между фри паскалем и борланд паскалем. Когда пытаюсь написать прогу на фри паскале, со 2-3 строки уже вылетают какие-то ошибки. Что компилятор фри паскаля хочет от меня? Приведите пожалуйста хоть какой-нибудь пример переноса кода из одного паскаля в другой.

Состояние: Консультация закрыта

Oтветов пока не поступило.

Motoden

И кстати, если есть какая-нибудь литература по фри паскалю, дайте пожалуйста ссылки на неё.

Micren

Отличия PascalABC можете глянуть в этом вопросе 158644. Сравните мой ответ и ответ из мини-форума.

Вадим Исаев ака sir Henry
Мастер-Эксперт

ID: 425

=====
Я только в одном глубоко убеждён — не надо иметь убеждений! 🙂

Micren

Согласен с sir Henry поскольку код, который компилируется в TP компилируется и в FreePascal. Я по крайней мере не замечал разницы за исключением того, что TP-16битный. Но часто не работает в PascalABC.

=====
Я только в одном глубоко убеждён — не надо иметь убеждений! 🙂

Зенченко Константин Николаевич
Старший модератор

ID: 31795

Вопрос №160325 посмотрите(есть код в ответе и в мини-форуме).
По АВС, от других компиляторов он отличается ( только: АВС ТР7.0, Фри проверить нет возможности):
— это эммулятор, как не бился с ним исполняемый код не получил;
— работа с графикой построенна по другиму принципу, функции даже по другому называются;
— поцедура delete работает не так, считает все строки должны быть стандартного размера и не работает со строками, к примеру: string [ 20 ];
— функция ORD — невоспринимает логический тип как перечисляемый, а должна;
&#8212; работа с динамической памятью некорректная, строка b<>nil дает ошибку попытка переименовать константу;
&#8212; контроль вводимой строки отсутствует: readln(а) &#8212; ТР7.0 вводит только 127 символом, АВС хоть 500 нажми, а вводится только 255.
&#8212; управляющие последовательности невоспринимаются (типа: #10#13 &#8212; обнаружил Boriss);
Для начала я думаю достаточно.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас &#8212; Вы начали думать.

Micren

К предыдущему посту могу добавить, что Inc() и Dec() не работают с указателями, нет типа Double и ф-я FreeMem() вызывается без 2го параметра.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас &#8212; Вы начали думать.

Motoden

Хорошо. А описание всех "фокусов" фри паскаля где-нибудь есть?
А то в продаже я вижу только книги по турбо паскалю и борланд паскалю, а описания фри паскаля даже в интернете найти не смог.:(
О существовании ПаскаляАВС узнал вообще только с этого сайта:)

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас &#8212; Вы начали думать.

Вадим Исаев ака sir Henry
Мастер-Эксперт

ID: 425

FreePascal (FP)- это почти точная копия (по синтаксису) Borland (Turbo) Pascl (BPTP) и Delphi.
Разница между FP и TP (BP) в том, что FP 32-ух и 64-ёх разрядный компилятор и может использовать всю без исключения память, предоставляемую ему операционной системой, без её сегментации и костылей, навроде драйверов XMSEMS, как это было в ВР. Соответственно разница будет только в принципе адресации памяти. В ТРВР адресация складывается из базового сегмента памяти и смещения. У FP только адрес ячейки памяти и ничего больше. Всё остальное практически один в один. Так что спокойно можно пользоваться книгами как по ВР, так и по Delphi.

=====
Я только в одном глубоко убеждён &#8212; не надо иметь убеждений! &#128578;

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *