Jump to content

XPL0

XPL0 — это язык программирования который по сути представляет собой нечто среднее между Pascal и C. , Он чем-то похож на Паскаль, но работает больше как C. Он был создан в 1976 году Питером Дж. Р. Бойлом, который хотел использовать язык высокого уровня для своего микрокомпьютера и хотел чего-то более сложного, чем BASIC , который в то время был доминирующим языком для персональных компьютеров.

XPL0 основан на PL/0 , примере компилятора из книги «Алгоритмы + Структуры данных = Программы» Никлауса Вирта . Первый компилятор XPL0 был написан на языке ALGOL . Он генерировал инструкции для псевдомашины, которая была реализована в качестве интерпретатора на компьютере Digital Group на базе 6502 микропроцессора . Компилятор был преобразован из ALGOL в XPL0, после чего его можно было скомпилировать и запустить на микрокомпьютере.

XPL0 вскоре доказал свою ценность в различных продуктах на базе 6502. В противном случае код этих встроенных систем был бы написан на языке ассемблера , что гораздо более утомительно.

Бойл использовал XPL0 для написания дисковой операционной системы под названием Apex. Начиная с 1980 года он продавался вместе с XPL0 как альтернатива Apple DOS для компьютера Apple II, основанного на 6502.

С тех пор XPL0 был реализован на дюжине процессоров и было добавлено множество функций. Теперь существуют оптимизирующие компиляторы машинного кода с 32-битными целыми числами вместо исходных 16-битных версий. с открытым исходным кодом Компиляторы для Windows и MS-DOS на ПК и Linux на Raspberry Pi доступны по ссылке ниже.

Вот как на XPL0 закодирована традиционная программа Hello World:

      code Text=12;
      Text(0, "Hello World!")

Text — это встроенная процедура, которая выводит строку символов. Ноль (0) указывает, куда отправить строку. В этом случае он отправляется на экран дисплея, но его можно легко отправить на принтер, в файл или через последовательный порт, используя другой номер.

В XPL0 все имена должны быть объявлены до их использования. командного слова Код связывает имя Text со встроенной подпрограммой номер 12, которая выводит строки. Существует около сотни таких встроенных процедур, которые предоставляют такие возможности, как ввод и вывод, графика и триггерные функции.

32-битные версии компиляторов автоматически вставляют объявления кода, поэтому приведенную выше программу можно просто записать так:

      Text(0, "Hello World!")

Алгоритм TPK представляет собой пример, который можно сравнить с другими языками:

       func real F(T);
       real T;
       return sqrt(abs(T)) + 5.*Pow(T, 3.);
       
       int I;  real Y, A(11);
       [for I:= 0 to 10 do A(I):= RlIn(0);
       for I:= 10 downto 0 do
           [Y:= F(A(I));
           if Y > 400. then [IntOut(0, I);  Text(0, " TOO LARGE")]
                       else [IntOut(0, I);  RlOut(0, Y)];
           CrLf(0);
           ];
       ]

Графика была особенностью XPL0 с тех пор, как он появился на компьютере Apple II.

       int X, Y, Color;
       [SetVid($101); \set video mode to 640x480x8
       repeat  for Y:= 0 to 128-1 do
                   for X:= 0 to 128-1 do
                       Point(X, Y,  X or Y xor Color);
               Color:= Color+1;
               DelayUS(50_000); \0.05 seconds
       until   ChkKey;
       ]
  • Фиш, Ларри (февраль 1979 г.). «Блочно-структурированный язык для микрокомпьютеров». Килобод , с. 24.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: fea8f3eede7a29b34afc8a9def848f87__1629529740
URL1:https://arc.ask3.ru/arc/aa/fe/87/fea8f3eede7a29b34afc8a9def848f87.html
Заголовок, (Title) документа по адресу, URL1:
XPL0 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)