See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
GNU Pascal — Википедия

GNU Pascal

Материал из Википедии — свободной энциклопедии

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

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

  • Совмещение чистоты Pascal с приёмами реального программирования
  • Поддержка стандартного и расширенного набора Pascal в соответствии с ISO, ANSI and IEEE (ISO 7185:1990, ISO/IEC 10206:1991, ANSI/IEEE 770X3.160—1989).
  • Поддержка других стандартов Pascal (UCSD Pascal, Borland Pascal, parts of 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
    • Абстрактные типы и методы
    • Комментарии в стиле //
    • Пустой список параметров: ()
    • Поддержка утверждений (asseritons)
    • 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
На других языках


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -