<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=GNU_Pascal</id>
	<title>GNU Pascal - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=GNU_Pascal"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=GNU_Pascal&amp;action=history"/>
	<updated>2026-07-16T06:22:22Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=GNU_Pascal&amp;diff=16174&amp;oldid=prev</id>
		<title>imported&gt;PeterLemenkov: Удалил пустые и дублирующие викидату поля из карточки, уточнил</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=GNU_Pascal&amp;diff=16174&amp;oldid=prev"/>
		<updated>2025-06-03T11:31:32Z</updated>

		<summary type="html">&lt;p&gt;Удалил пустые и дублирующие викидату поля из карточки, уточнил&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Карточка программы&lt;br /&gt;
 | developer   = GNU Project &amp;lt;!-- разработчик  ( можно   developers  = разработчики )  --&amp;gt;&lt;br /&gt;
 | genre       = [[компилятор]]&lt;br /&gt;
 | operating_system       = кроссплатформенный&lt;br /&gt;
 | platform    =  кроссплатформенный&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;GNU Pascal&amp;#039;&amp;#039;&amp;#039; — свободно распространяемый [[компилятор]] языка [[Pascal]] для 32/64-битных платформ, входящий в семейство компиляторов GNU. Реализован в виде фронтенда к [[GCC]] (Gnu Compiler Collection), но не является его частью.&lt;br /&gt;
&lt;br /&gt;
Преимущества:&lt;br /&gt;
* Совмещение чистоты Pascal с приёмами реального программирования&lt;br /&gt;
* Поддержка стандартного и расширенного набора Pascal в соответствии с ISO, ANSI и IEEE (ISO 7185:1990, ISO/IEC 10206:1991, ANSI/IEEE 770X3.160—1989).&lt;br /&gt;
* Поддержка других стандартов Pascal (UCSD Pascal, Borland Pascal, частей Borland Delphi, Mac Pascal и Pascal-SC) учитывая принцип разумности и элегантности.&lt;br /&gt;
* Может распространяться по лицензии [[GNU]].&lt;br /&gt;
* Генерирует код и работает на любом компьютере, на котором есть GNU C (а это практически любая 32- и более битная платформа под практически любой ОС: от [[DOS]] до [[GNU Hurd|HURD]]).&lt;br /&gt;
&lt;br /&gt;
== Поддерживаемые платформы ==&lt;br /&gt;
* ix86-gnu (GNU Hurd)&lt;br /&gt;
* ix86-linux (Linux 2.x, ELF)&lt;br /&gt;
* i486-linuxaout&lt;br /&gt;
* i486-linuxoldld&lt;br /&gt;
* i386-freebsd1.2.0&lt;br /&gt;
* AIX 4.2.1&lt;br /&gt;
* AIX 4.3&lt;br /&gt;
* DJGPP V2 (Dos)&lt;br /&gt;
* EMX 0.9B (OS/2, Dos)&lt;br /&gt;
* [[Cygwin|Cygwin32]] beta20 и выше (MS-Windows95/98, MS-Windows NT)&lt;br /&gt;
* [[MinGW|mingw32]] (MS-Windows95/98, MS-Windows NT)&lt;br /&gt;
* [[MSYS]] (MS-Windows)&lt;br /&gt;
* mips-sgi-irix5.3&lt;br /&gt;
* mips-sgi-irix6.5&lt;br /&gt;
* sun-sparc-sunos4.1.4&lt;br /&gt;
* sparc-sun-solaris2.x&lt;br /&gt;
* sun-sparc-solaris 2.5.1&lt;br /&gt;
* sun-sparc-solaris 2.6&lt;br /&gt;
* sun-sparc-solaris 7&lt;br /&gt;
* sun-sparc-solaris 8&lt;br /&gt;
* alpha-unknown-linux&lt;br /&gt;
* alpha-dec-osf4.0b&lt;br /&gt;
* s390-ibm-linux-gnu&lt;br /&gt;
&lt;br /&gt;
== Поддержка операционных систем ==&lt;br /&gt;
* GNU Hurd,&lt;br /&gt;
* Linux on Intel, Alpha, S390, и все другие поддерживаемые типы оборудования,&lt;br /&gt;
* Семейство BSD: FreeBSD, NetBSD, OpenBSD,&lt;br /&gt;
* DOS в 32 битном режиме, используя [[DJGPP]] или [[EMX]],&lt;br /&gt;
* MS-Windows 9x/NT, используя [[Cygwin]] или [[MinGW]] или [[MSYS]],&lt;br /&gt;
* OS/2, используя [[EMX]],&lt;br /&gt;
* Mac OS X,&lt;br /&gt;
* MIPS-SGI-IRIX,&lt;br /&gt;
* Alpha-DEC-OSF,&lt;br /&gt;
* [[SPARC|Sparc]]-[[Sun Microsystems|Sun]]-[[Solaris]],&lt;br /&gt;
* HP/UX,&lt;br /&gt;
&lt;br /&gt;
Может служить [[кросс-компилятор]]ом, перенося код между этими системами.&lt;br /&gt;
Генерирует код очень высокого качества для всех этих систем.&lt;br /&gt;
Является [[Свободное программное обеспечение|свободным ПО]] в соответствии с [[GNU]].&lt;br /&gt;
Совместим с другими средствами отладки и разработки, такими как GNU C, gdb {{nobr|и т. п.}}&lt;br /&gt;
&lt;br /&gt;
== Поддержка языковых конструкций ==&lt;br /&gt;
* Из стандартного Pascal: Многие компиляторы расширяют синтаксис стандартного Pascal, реализуя, правда, исходный не полностью, упуская очень важные моменты:&lt;br /&gt;
** Поддержка массивов в качестве параметров процедуры/функции в виде &amp;lt;br /&amp;gt;&amp;lt;tt&amp;gt;Arr: array[a..b] of Integer;&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt; где a и b показывают начало и конец массива Arr.&lt;br /&gt;
** Возможность передачи локальных процедур в качестве параметров с полным доступом ко всем переменным родительской процедуры.&lt;br /&gt;
** Автоматические file, расширяющие возможность процедур Put и Get.&lt;br /&gt;
** Восемь булевых элементов, упакованных в массив или структуру, занимают ровно 1 байт.&lt;br /&gt;
** Поддержка временных файлов: вам не нужно думать об имени файла и его удалении потом.&lt;br /&gt;
** Глобальное goto: Вы можете переходить когда угодно и куда угодно, не ограничиваясь текущей процедурой.&lt;br /&gt;
** Автоматическая настройка параметров и вариантов записей в New.&lt;br /&gt;
** Set без ограничений на размер.&lt;br /&gt;
* Из Extended Pascal:&lt;br /&gt;
** Строки неограниченной длины.&lt;br /&gt;
** ReadStr, WriteStr — запись и чтение в строку, как WriteLn, ReadLn.&lt;br /&gt;
** Системонезависимые time/date-подпрограммы.&lt;br /&gt;
** Итерации по множеству: &amp;lt;br /&amp;gt;&amp;lt;tt&amp;gt;for Ch in [&amp;#039;A&amp;#039; .. &amp;#039;Z&amp;#039;, &amp;#039;a&amp;#039; .. &amp;#039;z&amp;#039;] do …&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Расширенная поддержка множеств.&lt;br /&gt;
** Создание Succ и Pred-функций: Foo := Succ (Bar, 5);&lt;br /&gt;
** Комплексные числа&lt;br /&gt;
** Операторы для возведения в степень с поддержкой комплексных чисел&lt;br /&gt;
** Начальная инициализация переменных&lt;br /&gt;
** Функции могут возвращать массивы и структуры&lt;br /&gt;
** Поддержка [[Модуль (программирование)|модулей]]&lt;br /&gt;
** Поддержка не-десятичных чисел в стиле: основание#число&lt;br /&gt;
** MinReal, MaxReal, EpsReal, MaxChar — константы&lt;br /&gt;
** Поддержка динамических массивов без грязных трюков&lt;br /&gt;
** Локальные параметры могут иметь задаваемый только при входе в процедуру размер (динамический размер)&lt;br /&gt;
** Доступ лишь к части массива в левой части присваивания &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;Arr1(3..5) := Arr(4..6);&amp;lt;/code&amp;gt;&lt;br /&gt;
* Из Borland Pascal:&lt;br /&gt;
** Поддержка units, objects {{nobr|и т. п.}} Даже трюки в стиле absolute сделаны портируемыми.&lt;br /&gt;
** Поддержка полного набора стандартных units&lt;br /&gt;
** Поддержка сетевого CRT: программа может выполняться на одном компьютере, а результат её работы быть виден на другом, здесь есть также поддержка перекрывающихся окон&lt;br /&gt;
** Процедура Random производит даже такую же последовательность случайных чисел, как и BP Random()&lt;br /&gt;
** Поддержка процедурных переменных в стиле BP&lt;br /&gt;
** Поддержка массивов и процедур, позволяющих вести доступ к I/O портам процессора&lt;br /&gt;
** Распространяется с binobj программой, работающей как на BP&lt;br /&gt;
* Из [[Delphi (язык программирования)|Delphi]]&lt;br /&gt;
** Абстрактные типы и методы&lt;br /&gt;
** Комментарии в стиле //&lt;br /&gt;
** Пустой список параметров: ()&lt;br /&gt;
** Поддержка утверждений (&amp;#039;&amp;#039;assertions&amp;#039;&amp;#039;)&lt;br /&gt;
** Initialize и Finalize для управления переменными на низком уровне&lt;br /&gt;
** Секции Initialize и Finalize для модулей&lt;br /&gt;
* Из Pascal-SC&lt;br /&gt;
** Определяемые пользователем операторы. Например, сложение векторов простым оператором «+».&lt;br /&gt;
* GNU расширения:&lt;br /&gt;
** 64-битные знаковые и беззнаковые целочисленные типы&lt;br /&gt;
** Поддержка выполнения кода других языков программирования&lt;br /&gt;
** Вставка Pascal-кода в другие языки программирования&lt;br /&gt;
** Поддержка процедур BitSizeOf(), ConvertFromBigEndian() {{nobr|и т. п.}} для повышения портируемости программ на другие платформы&lt;br /&gt;
** Поддержка DirSeparator, PathSeparator, GetTempDirectory сделают программу более [[переносимость|переносимой]]&lt;br /&gt;
** PExecute — переносимый запуск программ для многозадачных систем&lt;br /&gt;
** Функции FSplit, FSearch, FExpand — знают об особенностях ОС&lt;br /&gt;
** FormatTime — выдаёт время по определённым правилам&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Free Pascal]]&lt;br /&gt;
* [[GCC]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://www.gnu-pascal.de/ Сайт GNU Pascal]&lt;br /&gt;
* [http://www.moorecad.com/standardpascal Standard Pascal] — Сопутствующие материалы и история исходного, стандартного языка Pascal&lt;br /&gt;
* [http://www.moorecad.com/standardpascal/pug.html Pascal User’s Group Newsletters] — Ресурс, посвящённый ранней истории языка, содержащий много писем Вирта и других разработчиков, касающихся языка Pascal&lt;br /&gt;
* [http://www.swissdelphicenter.ch/en/niklauswirth.php Pascal and its Successors] — Статья Никлауса Вирта о разработке языков Pascal, [[Modula-2]] и [[Оберон (язык программирования)|Oberon]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{примечания}}&lt;br /&gt;
&lt;br /&gt;
{{Pascal}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Компиляторы Паскаля]]&lt;br /&gt;
[[Категория:Свободные компиляторы и интерпретаторы]]&lt;br /&gt;
[[Категория:Кроссплатформенные реализации языков программирования]]&lt;/div&gt;</summary>
		<author><name>imported&gt;PeterLemenkov</name></author>
	</entry>
</feed>