GNU Pascal

GNU Pascal
GNU Pascal
Тип

компилятор

Разработчик

GNU Project

Операционная система

кроссплатформенный

Аппаратная платформа

кроссплатформенный

Лицензия

GPL

Сайт

http://www.gnu-pascal.de/

GNU Pascal — свободно распространяемый компилятор языка Pascal для 32/64-битных платформ, входящий в семейство компиляторов GNU. Реализован в виде фронтенда к GCC (Gnu Compiler Collection), но не является его частью.

Преимущества:

  • Совмещение чистоты Pascal с приёмами реального программирования
  • Поддержка стандартного и расширенного набора Pascal в соответствии с ISO, ANSI и IEEE (ISO 7185:1990, ISO/IEC 10206:1991, ANSI/IEEE 770X3.160—1989).
  • Поддержка других стандартов Pascal (UCSD Pascal, Borland Pascal, частей Borland Delphi, Mac Pascal и Pascal-SC) учитывая принцип разумности и элегантности.
  • Может распространяться по лицензии GNU.
  • Генерирует код и работает на любом компьютере, на котором есть GNU C. (А это практически любая 32-х и более битная платформа под практически любой ОС: от DOS до HURD).

Содержание

Поддерживаемые платформы

  • ix86-gnu (GNU Hurd)
  • ix86-linux (Linux 2.x, ELF)
  • i486-linuxaout
  • i486-linuxoldld
  • i386-freebsd1.2.0
  • AIX 4.2.1
  • AIX 4.3
  • DJGPP V2 (Dos)
  • EMX 0.9B (OS/2, Dos)
  • Cygwin32 beta20 и выше (MS-Windows95/98, MS-Windows NT)
  • mingw32 (MS-Windows95/98, MS-Windows NT)
  • MSYS (MS-Windows)
  • mips-sgi-irix5.3
  • mips-sgi-irix6.5
  • sun-sparc-sunos4.1.4
  • sparc-sun-solaris2.x
  • sun-sparc-solaris 2.5.1
  • sun-sparc-solaris 2.6
  • sun-sparc-solaris 7
  • sun-sparc-solaris 8
  • alpha-unknown-linux
  • alpha-dec-osf4.0b
  • s390-ibm-linux-gnu

Поддержка операционных систем

  • GNU Hurd,
  • Linux on Intel, Alpha, S390, и все другие поддерживаемые типы оборудования,
  • Семейство BSD: FreeBSD, NetBSD, OpenBSD,
  • DOS в 32 битном режиме, используя DJGPP или EMX,
  • MS-Windows 9x/NT, используя Cygwin или MinGW или MSYS,
  • OS/2, используя EMX,
  • Mac OS X,
  • MIPS-SGI-IRIX,
  • Alpha-DEC-OSF,
  • Sparc-Sun-Solaris,
  • HP/UX,

Может служить кросс-компилятором, перенося код между этими системами. Генерирует код очень высокого качества для всех этих систем. Является свободным ПО в соответствии с GNU. Совместим с другими средствами отладки и разработки, такими как GNU C, gdb и т. п.

Поддержка языковых конструкций

  • Из стандартного Pascal: Многие компиляторы расширяют синтаксис стандартного Pascal, реализуя, правда, исходный не полностью, упуская очень важные моменты:
    • Поддержка массивов в качестве параметров процедуры/функции в виде
      Arr: array[a..b] of Integer;
      где a и b показывают начало и конец массива Arr.
    • Возможность передачи локальных процедур в качестве параметров с полным доступом ко всем переменным родительской процедуры.
    • Автоматические file, расширяющие возможность процедур Put и Get.
    • Восемь булевых элементов, упакованных в массив или структуру, занимают ровно 1 байт.
    • Поддержка временных файлов: вам не нужно думать об имени файла и его удалении потом.
    • Глобальное goto: Вы можете переходить когда угодно и куда угодно, не ограничиваясь текущей процедурой.
    • Автоматическая настройка параметров и вариантов записей в New.
    • Set без ограничений на размер.
  • Из Extended Pascal:
    • Строки неограниченной длины.
    • ReadStr, WriteStr — запись и чтение в строку, как WriteLn, ReadLn.
    • Системонезависимые time/date-подпрограммы.
    • Итерации по множеству:
      for Ch in ['A' .. 'Z', 'a' .. 'z'] do …
    • Расширенная поддержка множеств.
    • Создание Succ и Pred-функций: Foo := Succ (Bar, 5);
    • Комплексные числа
    • Операторы для возведения в степень с поддержкой комплексных чисел
    • Начальная инициализация переменных
    • Функции могут возвращать массивы и структуры
    • Поддержка модулей
    • Поддержка не-десятичных чисел в стиле: основание#число
    • MinReal, MaxReal, EpsReal, MaxChar — константы
    • Поддержка динамических массивов без грязных трюков
    • Локальные параметры могут иметь задаваемый только при входе в процедуру размер (динамический размер)
    • Доступ лишь к части массива в левой части присваивания
      Arr1(3..5) := Arr(4..6);
  • Из Borland Pascal:
    • Поддержка units, objects и т. п. Даже трюки в стиле absolute сделаны портируемыми.
    • Поддержка полного набора стандартных units
    • Поддержка сетевого CRT: программа может выполняться на одном компьютере, а результат её работы быть виден на другом, здесь есть так же поддержка перекрывающихся окон
    • Процедура Random производит даже такую же последовательность случайных чисел, как и BP Random()
    • Поддержка процедурных переменных в стиле BP
    • Поддержка массивов и процедур, позволяющих вести доступ к I/O портам процессора
    • Распространяется с binobj программой, работающей как на BP
  • Из Delphi
    • Абстрактные типы и методы
    • Комментарии в стиле //
    • Пустой список параметров: ()
    • Поддержка утверждений (assertions)
    • Initialize и Finalize для управления переменными на низком уровне
    • Секции Initialize и Finalize для модулей
  • Из Pascal-SC
    • Определяемые пользователем операторы. Например, сложение векторов простым оператором «+».
  • GNU расширения:
    • 64-битные знаковые и беззнаковые целочисленные типы
    • Поддержка выполнения кода других языков программирования
    • Вставка Pascal-кода в другие языки программирования
    • Поддержка процедур BitSizeOf(), ConvertFromBigEndian() и т. п. для повышения портируемости программ на другие платформы
    • Поддержка DirSeparator, PathSeparator, GetTempDirectory сделают программу более портабельной
    • PExecute — портабельный запуск программ для многозадачных систем
    • Функции FSplit, FSearch, FExpand — знают об особенностях ОС
    • FormatTime — выдаёт время по определённым правилам

См. также

Ссылки

  • Сайт GNU Pascal
  • Standard Pascal — Сопутствующие материалы и история исходного, стандартного языка Pascal
  • Pascal User’s Group Newsletters — Ресурс, посвящённый ранней истории языка, содержащий много писем Вирта и других разработчиков, касающихся языка Pascal
  • Pascal and its Successors — Статья Никлауса Вирта о разработке языков Pascal, Modula-2 и Oberon

Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "GNU Pascal" в других словарях:

  • GNU-Pascal — Entwickler: Free Software Foundation Betriebssystem: UNIX, Linux, Windows, Mac OS X, u. a. Kategorie: Compiler …   Deutsch Wikipedia

  • Gnu-Pascal — Entwickler: Free Software Foundation Betriebssystem: UNIX, Linux, Windows, Mac OS X, u. a. Kategorie: Compiler …   Deutsch Wikipedia

  • Gnu Pascal — Entwickler: Free Software Foundation Betriebssystem: UNIX, Linux, Windows, Mac OS X, u. a. Kategorie: Compiler …   Deutsch Wikipedia

  • GNU Pascal — Desarrollador GNU Pascal development team[1] …   Wikipedia Español

  • GNU Pascal — Entwickler Free Software Foundation Betriebssystem UNIX, Linux, Windows, Mac OS X, u. a. Kategorie Compiler Lizenz GPL …   Deutsch Wikipedia

  • GNU Pascal — (GPC) is a Pascal compiler comprised of a frontend to GCC, similar to the way Fortran and other languages were added to GCC. GNU Pascal is ISO 7185 compatible, and it implements most of the ISO 10206 Extended Pascal standard (according to the… …   Wikipedia

  • GNU Pascal — Pour les articles homonymes, voir Pascal. GNU Pascal Développeurs …   Wikipédia en Français

  • PASCAL — Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Niklaus Wirth Dialekte: UCSD Pascal …   Deutsch Wikipedia

  • Pascal (programming language) — Pascal Paradigm(s) imperative, structured Appeared in 1970 Designed by Niklaus Wirth Typing discipline static, strong, safe …   Wikipedia

  • Pascal (Programmiersprache) — Pascal Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Niklaus Wirth Typisierung: stark, statisch …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»