Рейтинг@Mail.ru

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

Топунов Владимир Леонидович, Давыдов Олег Валерьевич

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

задать вопрос автору

Современный компьютер перерос значение инструмента, пусть даже интеллектуального, и с ним более подходит разговаривать не в повелительном наклонении, а в изъявительном. С другой стороны, основной единицей естественного языка является высказывание, а не приказ. Отсюда вытекает крайняя желательность знакомства учащихся и студентов с функциональными языками и, в целом, с принципами функционального программирования. Примером языка, отвечающего всем необходимым в этом случае требованиям, по нашему мнению, является Рефал – алгоритмический язык рекурсивных функций ([1, 2]).

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

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

Преимущества Рефала в качестве обучающего средства позволяют предложить его как базовый язык для введения в функциональное программирование.

Современная ориентация программирования (и обучения программированию) на Интернет также позволяет с выгодой использовать в этих областях функциональное программирование и, в том числе, возможности Рефала. Практически повсеместное использование языка Java для написания сценариев, при котором передается на клиентскую машину исполняемая программа, приводит к значительным потерям, прежде всего, из–за значительной величины пересылаемого кода. Здесь имеются огромные резервы для повышения эффективности соответствующих программ. В связи с этим полезно упомянуть о ведущихся в этой области разработках суперкомпиляторов (см. [1]), связанных с применением Рефала.

Литература:

  1. Содружество РЕФАЛ — суперкомпиляция. Home Page. http://www.refal.net/

  2. Топунов В.Л. Язык Рефал как объект и средство обучения // ИТО–99. Сборник трудов IX Международной конференции "Информационные технологии в образовании". Ч. II, С. 131–133 — Москва, 1999.