Новый сайт "КВ" находится по адресу: new.kv.by
Свежий номер "КВ" - теперь в PDF! Книгу - знаний паровоз, ты найдешь на сайте OZ! На рынке облачного хостинга между компаниями Amazon и Rackspace идет просто жесточайшая конкуренция с практически полным паритетом по клиентской базе
Подробнее... Подробнее... Подробнее...
Компьютерные Вести On-line
Газета
Свежий номер
Архив
Поиск
Справочник фирм
Форум
Опросы
Почтовая рассылка
Частные объявления
Редакция
Сайт
Software, №21, 2006 год

Копия для печати

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

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

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

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

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

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

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

Обсуждение статьи (записей: 10)


Предыдущий материал номера Содержание номера Следующий материал номера
Предыдущий материал рубрики Архив рубрики Следующий материал рубрики
Наверх
"КВ" в PDF
№22 (9.11.2011)
№21 (2.11.2011)
Dev №2 (28.10.2011)
№20 (26.10.2011)
№19 (19.10.2011)
№18 (12.10.2011)
№17 (5.10.2011)
№16 (28.09.2011)
№15 (21.09.2011)
№14 (14.09.2011)
Dev №1 (13.09.2011)
№13 (7.09.2011)
№12 (31.08.2011)
№11 (24.08.2011)
№10 (17.08.2011)
№9 (10.08.2011)
№8 (2.08.2011)
№7 (19.07.2011)
№6 (12.07.2011)
№5 (5.07.2011)
№4 (28.06.2011)
№3 (21.06.2011)
№2 (14.06.2011)
№1 (7.06.2011)
Размещение рекламы
Поставка оборудования для беспроводных сетей передачи данных

(c) 1994-2011, "Компьютерные Вести"
(c) Дизайн и программирование, 1997-2011, Алекс Дробыш