Страницы

Приклад програми на україномовному Обероні

Наштовхнувся на свій старий експеримент на тему того, як може виглядати код на україномовному варіанті Оберону. З особливостей можна відмітити:

  1. Адаптація граматики під потреби мови, а не лише переклад ключових слів та стандартних імен.
  2. Заміна прямокутних скобок на круглі [] -> () для зменшення потреби у переключенні розкладки клавіатури.
  3. Використання однослівних коментарів, що починаються зі знаку '. Це дозволяє сумістити зміст, важливий для комп'ютера з опціональною можливістю прикрас для людини, потреба в яких виникає через бажання наблизити формальний текст до рідної мови, яка у випадку слов'янських мов потребує відмінювання слів.
  4. Використання наказового способу для визначення дій, що виглядає більш природньо та вимагає менше букв, ніж більш традиційна невизначена форма. Враховуючи, що наказовий спосіб - це імператив, то використання його в імперативнах мовах набуває особливого змісту.

МОДУЛЬ СортуванняВставкою;

 ВКЛЮЧИ Ввід, Вивід;

 ДІЯ Читай(ряд: РЯД ЦІЛ'их);
 ЗМІННІ і: ЦІЛ'е;
 ПОЧНИ
   ВІД і := 0 ДО ДОВЖИН'и(ряд'у) - 1 ДІЙ
     Ввід.Ціл'ого(ряд(і))
   ВСЕ
 КІНЕЦЬ Читай;

 ДІЯ Пиши(ряд: РЯД ЦІЛ'их);
 ЗМІННІ і: ЦІЛ'е;
 ПОЧНИ
   ВІД і := 0 ДО ДОВЖИН'и(ряд'у) - 1 ДІЙ
     Вивід.Ціл'ого(ряд(і)); Вивід.Нр
   ВСЕ
 КІНЕЦЬ Пиши;

 ДІЯ Сортуй(ряд: РЯД ЦІЛ'их);
 ЗМІННІ і, к, а: ЦІЛ'і;
 ПОЧНИ
   ВІД і := 1 ДО ДОВЖИН'и(ряд'у) - 1 ДІЙ
     к := і;
     а := ряд(і);
     ДОКИ (0 < к) ТА (а < ряд(к - 1)) ДІЙ
       ряд(к) := ряд(к - 1);
       к := к - 1
     ВСЕ;
     ряд(к) := а
   ВСЕ
 КІНЕЦЬ Сортуй;

 ДІЯ Дій*;
 ЗМІННІ ряд: РЯД 15 ЦІЛ'их;
 ПОЧНИ
   Читай(ряд);
   Сортуй(ряд);
   Пиши(ряд)
 КІНЕЦЬ Дій;

КІНЕЦЬ СортуванняВставкою.

4 комментария:

  1. Я поглядую, размовляешь ти на мове, как гарний хлопиц!))
    Где публичные результаты? Давай уже, выкатывай свой Оберон!))

    ОтветитьУдалить
    Ответы
    1. Это и есть публичные результаты. Транслятора, который бы принимал такой код не было и нет. Мне всего лишь хотелось представить, как это может выглядеть.

      Удалить
    2. Вообще, добавить перевод ключевых слов на лету из ini-файла для множества языков -- это будет бомба))

      Удалить
    3. С моей точки зрения перевод только слов работает недостаточно хорошо. Переводить нужно конструкции.

      Удалить