Интернет магазин китайских планшетных компьютеров



Компьютеры - GNU Pascal - Поддержка операционных систем

15 мая 2011


Оглавление:
1. GNU Pascal
2. Поддержка операционных систем



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


Просмотров: 1608


<<< CLISP
IPython >>>