Турбо Кириллица

Опубликовано на KV.by (https://www.kv.by)

# Турбо Кириллица [1]

- ВКонтакте
- Facebook
- 0Одноклассники
- 0Google+
- Twitter
- Viber
- WhatsApp

Говорят, когда-то российские патриоты русского языка создали модуль для Forth'а, позволяющий писать программы с использованием русскоязычных ключевых слов. Этот проект стал знаменит фразой, которую можно скомпилировать: "Пока не никогда делать ни фига". Впрочем, в силу некоторого своеобразия языка программирования Forth, данное новшество не прижилось. И уж точно не нашло широкого распространения в среде программистов. Видимо, именно поэтому "братья-славяне" придумали новый язык, основанный уже на Паскале и Обероне. И назвали его "Глаголом".

Официальный сайт проекта находится по адресу glagol.nad.ru [2]. Честно говоря, оформление сайта, как и у большинства подобных "наколеночных" проектов, оставляет желать лучшего. Впрочем, разобраться и найти дистрибутив "Глагола", размер которого, кстати говоря, всего-то около 500 Кб, будет нетрудно. Дистрибутив фактически является самораспаковывающимся архивом, который при запуске автоматически распаковывается туда, откуда был запущен. Поэтому перед началом экспериментов с "Глаголом" сначала скопируйте Glagol1.exe в какое-нибудь тихое и укромное место, где он не будет мешать другим программам.

После распаковки в папке, куда установился "Глагол", вы увидите пять каталогов: "Заграница", "Код", "Отделы", "Руководства" и "Службы". В папке со странным названием "Заграница" несколько служебных ассемблерных файлов и bat-файлы для компиляции, ассемблирования и компоновки (т.е. получения exe-файла из исходного текста программы). К слову: exe-файлы, получаемые с помощью "Глагола", имеют достаточно малый объем и не зависят от дополнительных библиотек, в отличие от, например, программы, написанной в Microsoft Visual Basic 6. В папке "Код" можно найти объектные файлы стандартных библиотек "Глагола", которые потом компонуются в exe-файл вместе с основной программой (т.е. эти файлы тоже служебные, и лучше их без особой надобности не трогать). В папке "Отделы" находятся исходные тексты стандартных библиотек "Глагола" и небольшие (и немногочисленные) примеры использования этого языка. В папке "Руководства" найдется различная документация, а в "Службах" - ассемблер, компоновщик и, собственно, компилятор "Глагола", названный разработчиками почему-то "Преобразователем Глагола".

Вполне вероятно, я ошибаюсь, и на самом деле авторы "Глагола" ничего не знали об экспериментах над "Фортом". Появление же своего детища они объясняют следующим образом: "Основная задача "Глагола" - дать человеку возможность воплощать свои мысли на языке, близком к его родному. "Глагол" строится из небольшого числа ясных для человека и четких для машинного восприятия выражений. В свою очередь, краткость и простота языка позволяют создавать для различных машин надежные преобразователи языка в двоичный код. Круг задач, решаемых с помощью языка "Глагол", в основном, совпадает с задачами, решаемыми Турбо Паскалем. Это математические вычисления, обработка файлов с данными и, конечно же, обучение программированию. В сборнике разработок есть примеры вычислительных приложений, игра "Тетрис" и другие приложения. Графических примеров в сборнике разработок пока нет". Таким образом, как видно, жива еще идея создания русскоязычных языков программирования, столь популярная в далекие 80-е. Причем, что характерно, за основу языка взят Паскаль [3], компилятор которого писать намного проще, чем компиляторы Си-подобных языков. Впрочем, мне кажется, Паскаль [3] - хороший выбор: это очень четкий и логичный язык, в отличие от Си, хорошо приспособленный для прикладного программирования. Кроме того, Паскаль очень популярен в русскоязычных странах (куда, к великому моему сожалению, пока приходится относить и нашу синеокую Беларусь), во многом благодаря продуктам небезызвестной компании Borland.

Программы на "Глаголе" выглядят довольно необычно для привыкшего к английским сокращениям и аббревиатурам глаза, однако сохраняют понятность и простоту программ на Паскале. Чтобы это утверждение не выглядело голословным, приведу пример. Это расчет числа Пи по формуле Пи/4 = 1 - 1/3 + 1/5 - 1/7 + ... (с заданной точностью).

    ЗАДАЧА ЧислоПИ;
    (* Расчет по алгоритму и вывод ответа на экран *)
    ПЕР
     сумма,слагаемое:ВЕЩ;
     знаменатель,знак:ЦЕЛ;
    ПОСТ
     ТОЧНОСТЬ=1.E-6; (* приблизительно *)
    УКАЗ
     Вывод.Цепь("^Расчет суммы: 1 - 1/3 + 1/5 - 1/7 + ... ");
     сумма:=0;
     знаменатель:=1;
     знак:=1;
     ПОВТОРЯТЬ
     слагаемое:=знак/знаменатель;
     сумма:=сумма+слагаемое;
     УВЕЛИЧИТЬ(знаменатель,2);
     знак:=-знак
     ДО МОДУЛЬ(слагаемое) < ТОЧНОСТЬ;
     Вывод.ЧВещ("(%d слагаемых)^^ %g сумма*4^ %g ПИ^ %g arctg(1)*4^",
     знаменатель/2, сумма*4,Матем.ПИ,Матем.arctg(1)*4)
    КОН ЧислоПИ;

В приведенном примере, думаю, требует пояснения последняя конструкция перед "КОН ЧислоПИ". Это вывод на стандартное устройство вывода, аналогичный конструкции Writeln из "Турбо Паскаля" или передаче данных на стандартный поток cout из C++. Правда, здесь "Глагол" чуть больше похож на C++ в том плане, что, в отличие от Паскаля, использование ввода/вывода требует подключения отделов (структурная единица "Глагола" - аналог unit'а из Паскаля) "Вывод" и "Ввод". Приведенный пример можно отыскать целиком в папке "Отделы\Приложения\Разное". Среди примеров, кстати сказать, есть и более серьезные: например, "Тетрис" - на мой взгляд, ничуть не хуже того, что я когда-то вдохновенно и собственноручно изваял на неоднократно упоминаемом мною "Турбо Паскале". Получать из текста примеров готовые exe-файлы приложений очень легко: в каждой папке находится файл Примеры.bat, при запуске которого автоматически компилируются, ассемблируются и компонуются все программы.

Вообще говоря, стандартная библиотека "Глагола" не слишком поражает разнообразием. Имеются процедуры и функции (в "Глаголе" и то, и другое названо задачами) для работы со стандартными устройствами ввода и вывода, несложной работы с памятью; есть несколько функций для низкоуровневой работы с ОС Windows. Есть отделы для работы с псевдографическим интерфейсом (т.е. с текстовым, как в Norton Commander'е или Turbo Pascal'е). Впрочем, хочу сразу разочаровать тех, кто ожидает увидеть некий аналог легендарного Turbo Vision: элементов управления всего три - кнопка, надпись и поле для ввода. Причем примеров использования этой скромной библиотечки разработчики в состав дистрибутива почему-то не включили. Стоит отметить присутствие в библиотеке инструментария для работы с разнообразными математическими задачами: имеются отделы для работы с векторами, матрицами, комплексными числами (а также комплексными векторами и комплексными матрицами), а также некоторых дополнительных функций вроде преобразования чисел в текст или вычисления простых математических функций типа факториала. Имеются дополнительные отделы для отладки приложений, разработанных с помощью "Глагола". Там же находится диспетчер памяти для программ на "Глаголе". Из дополнительных отделов стоит отметить следующие: отдел для работы с различными кодировками текста; отдел для работы с параметрами командной строки, которые передаются приложению при запуске; отдел для работы со строками, заканчивающимися нулем, используемые в Си (строки в стиле Паскаля "Глаголом", к сожалению, не поддерживаются). Часть стандартной библиотеки "Глагола" написана на Ассемблере, а не на самом "Глаголе", видимо, для увеличения производительности критических операций.

Среди документации, прилагающейся к "Глаголу", - сравнение этого языка программирования с его англоязычными прототипами (Турбо Паскалем и Обероном-2), ответы на часто задаваемые вопросы и справочник по алфавиту, структуре и конструкциям языка.

Если вы читаете печатный, а не электронный вариант газеты, то, вероятно, заметили, что в статье нет скриншотов интегрированной среды разработки для "Глагола". Причина этого факта проста и банальна: таковая среда просто-напросто не существует. А если и существует, то сами авторы "Глагола" ничего о ней не знают, а то бы, думается мне, обязательно включили ее в пакет поставки своего продукта. Но на последнее уповать, боюсь, не приходится, потому будем считать, что собственной среды разработки у "Глагола" нет. Сами разработчики "Глагола" предлагают следующее решение данной проблемы: "В качестве среды для написания Глагол-приложений применяется файловый менеджер FAR (ФАР) в связке с подключаемыми к нему модулями. Для просмотра описаний файлов Глагола необходимо в "ФАР->Параметры->Описания файлов->Имена списков описаний" вставить имя файла-списка "Опись". Добавив модуль "Колорер", можно во встроенном редакторе ФАР включить цветовую раскраску для исходных текстов Глагол-приложений, а добавив модуль "ТруТпл", можно ускорить набор этих текстов. Если у вас еще не установлен "Колорер", то можно переписать с сайта "Глагола" архив с "Колорером", уже настроенным на "Глагол". В поставке модуля "ТруТпл" версии 1.24 уже содержится схема ввода для "Глагола". Более подробно эту информацию можно изучить, читая документ sreda.htm из папки "Руководства".

Ничего не могу сказать с уверенностью о применении "Глагола" русскоязычными программистами. Рискну предположить, что оно не слишком широко в силу достаточно слабого компилятора и неразвитой библиотеки стандартных функций. Не способствует популярности и отсутствие качественной интегрированной среды разработки - необходимого атрибута современного языка программирования. Сам бы я порекомендовал использовать "Глагол" для обучения программированию школьников (можно и студентов, но только гуманитарных специальностей). На более серьезные вещи "Глагол" вряд ли способен. Впрочем, я думаю, разработчики "Глагола" вряд ли откажутся от помощи волонтеров, так что если хотите - присоединяйтесь и развивайте "Глагол" в свое удовольствие.

Вадим СТАНКЕВИЧ

## Номер:

№21 за 2006 год

## Рубрика:

Software

- ВКонтакте
- Facebook
- 0Одноклассники
- 0Google+
- Twitter
- Viber
- WhatsApp

Источник: https://www.kv.by/node/34924

Ссылки
[1] https://www.kv.by/archive/index2006211106.htm
[2] http://glagol.nad.ru
[3] https://www.kv.by/index2009331108.htm