ЯЗЫК РЕФАЛ КАК ОБЪЕКТ И СРЕДСТВО ОБУЧЕНИЯ

Топунов Владимир Леонидович
Московский педагогический государственный университет (МПГУ), г. Москва

Развитие информационных технологий давно привело к пониманию того, что компьютеры являются не только средством вычисления, но могут выполнять гораздо более общие действия. Однако преподавание информатики базируется на средствах, прежде всего ориентированных именно на вычисления. Изучение в школах и вузах языков программирования ведется в основном с упором на реализацию численных алгоритмов, что вполне объяснимо спецификой исторического развития программирования. Без сомнения, осознание недостаточности такого подхода и привело к попытке внедрения в школьные программы информатики языка Пролог. Однако, помимо Пролога, можно указать и другие средства, не менее, а может быть, и более подходящие для изложения некоторых тем информатики в высшей и средней школе. В качестве такого средства можно предложить Рефал.

Алгоритмический язык Рефал (Recursive functions algorithmic language), созданный в конце 60-х начале 70-х годов В.Ф.Турчиным, является представителем класса функциональных языков, к которым относятся и известный Лисп, и ныне модный Пролог. В отличие от них Рефал, как алгоритмический язык, отличается простотой, высокой степенью модульности и имманентной структурностью программ. Простая семантика Рефала повышает надежность программирования на нем, значительно облегчает трассировку и отладку программ. Рефал доказал свою состоятельность в области трансляции машинных языков, доказательства теорем, компьютерной алгебры, создания баз данных.

Основоположник компьютерного образования в нашей стране академик Андрей Петрович Ершов в статье "алгоритмические языки" для Математической энциклопедии в конце 70-х годов к числу наиболее распространенных в СССР алгоритмических языков отнес и Рефал. И хотя это было далеко не так, слова корифея компьютерной науки следует расценивать как высокую оценку и признание им ценности языка Рефал и уверенность (увы, преждевременную!), что Рефал займет должное высокое место в отечественной информатике. В дальнейшем все обернулось как всегда под давлением властей В.Ф.Турчин из-за своей диссидентской деятельности вынужден был покинуть страну, созданная им группа по Рефалу занялась другими текущими делами … , и движение Рефала "в массы" приостановилось.

Тем не менее, достоинства Рефала обеспечили его удивительную выживаемость в 80-х годах, когда он у нас был под полузапретом. В каждый момент по стране насчитывалось около двух десятков достаточно известных групп и отдельных инициативных пользователей Рефала. Рефал получил распространение прежде всего в университетах и академических институтах: МГУ, ИПМ, ИПС, ИТПМ СО АН и ряде других. С помощью Рефала создавались трансляторы с различных языков программирования, реализовывались сложные нечисловые алгоритмы в области аналитических вычислений, строились системы искусственного интеллекта.

В конце 80-х годов В.Ф.Турчин в городском университете Нью-Йорка разработал новую, расширенную версию языка Рефал-5, которую можно считать базовой для использования в обучении.

В отличие от Лиспа, Рефал в качестве основного механизма работы использует сравнение с образцом. Благодаря этому тексты программ на Рефале в 2-3 раза короче, чем такие же программы, записанные на Лиспе, и при этом значительно "читабельнее".

В сравнении с Прологом Рефал концептуально проще. Анализ движения к цели в Рефале проводится в прямом направлении, а не в обратном (начиная от цели), как в Прологе. Такой подход к разработке и записи алгоритмов более естествен и приводит к программам, гораздо проще тестируемым и отлаживаемым.

Основными структурами данных Лиспа и Пролога являются односторонние списки. Рефал базируется на двусторонних списках, которые могут просматриваться (и строиться) как слева направо, так и справа налево. Именно так человек обычно изучает текст на бумаге. Более сложные (нелинейные) объекты очень легко реализуются с помощью аппарата структурных скобок. Все это предоставляет программисту условия для свободной и удобной работы, строящейся по существу только на двух механизмах управления сравнении с образцом и подстановке.

А именно эти механизмы играют особо большую (чуть ли не единственную) роль в человеческом мышлении. Тем самым проявляется методологическая ценность Рефала как инструмента познания, и, значит, обрисовываются его возможности в преподавании (и не только преподавании информатики).

Пока существует слишком мало литературы по Рефалу, но с описаниями и некоторыми программными системами Рефала можно ознакомиться на интернетовских сайтах http://botik.ru/pub/local/scp/refal5, http://shade.msu.ru/refal.msu.ru, http://inet.keldysh.ru/dpt_16/refal6. На первом из них Рефал выставлен в режиме Open Source. Сейчас готовится отдельный рефальский сайт в Интернете, и, видимо, к началу настоящей конференции он будет готов; о его координатах своевременно будет оповещено на этих же страницах.

Ввиду своих качеств Рефал представляет собой замечательное средство для использования его в обучении. В настоящее время накоплен определенный опыт в преподавании Рефала как в высшей школе, так и в средней. Автор приглашает заинтересованных лиц принять участие в общей работе.

Сервер поддерживается фирмой НПП "БИТ про"
Лучшие программы для образовательного процесса
Рейтинг@Mail.ru Rambler's Top100 AllBest.Ru Яндекс цитирования