вопросы и заметки новичк


Subject: вопросы и заметки новичк
From: Boyko Bantchev (boykobb@gmail.com)
Date: Wed May 25 2005 - 19:43:47 MSD


Здравствуйте все!

Интересуюсь языками программирования. Про Рефал до
недавнего времени знал только, что это -- язык марковского
типа, т.е. с замещениями-переписываниями. Попав на
www.refal.org, был рад найти описания и работающие версии.
Поэкспериментировал немного и весьма понравилось.
Спасибо вам всем кто создавал и развивал этот элегантный
язык!

Мне хотелось бы задать некоторые вопросы, а также
поделиться наблюдениями по поводу как самого языка,
так и страницы refal.org.

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

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

По-моему, раздражает отсутствие (как мне кажется)
в Рефале средства чтения дробных чисел. Целые можно
вводить, а с плавающей точкой -- нет. Почему?

--------- отступление ----------------------------
На одной веб-странице я нашел коллекцию реализаций
калькулятора обратной польской записи на разных
языках программирования. Я сам взялся написать
некоторые, в том числе на Рефале -- результат здесь:

http://www.stacken.kth.se/~foo/rpn#Refal

Сначала я думал, получится очень короткая программа,
каких мне удалось сделать на Icon, Snobol и т.д.
Но оказалось, из-за самодельного ввода чисел, который
пришлось изобретать, программа почти удвоилась объемом,
а жаль. (Возможно, там другие неуклюжести тоже есть --
они, конечно, из-за моей неопытности.)

Пояснение. Поскольку формулировка задачи на упомянутой
странице несколько расплывчата, я для всех своих
реализаций принял уточняющие правила: в одной строке
должно распознаваться ровно одно о.п.з. выражение,
которое при вычислении выдает единственное число;
допускаются целые и реальные числа, операции + - * /
и только они; правильность выражений проверяется, и если
ошибка -- выдается сообщение; пустые строки пропускаются
без внимания.
--------- конец отступления ----------------------

Есть ли программные разработки на Рефале, помимо описанных
на refal.org?

Вопрос немного в сторону: работу по Java Supercompiler,
судя по странице www.supercompilers.com, изоставили, или
я ошибаюсь? Там все давности в несколько лет уже, и есть
умершие ссылки. Кстати, в основной статье (white paper):

http://www.supercompilers.com/white_paper.shtml

есть немало html-дефектов вроде слепленных слов, а самое
главное -- примеры (якобы на Джаве), изобилуют словами
then, которого в этом языке вовсе нет.

Мне кажется, для быстрого обретения некоторых общих знаний
по Рефалу хорошо бы иметь что-то вроде f.a.q., где будут
вкратце изложены все основные данные. Я понимаю, что вся
главная страница refal.org стремится служить в этом смысле,
но все же кое-что трудно найти, и удобно все самое важное,
заодно с ссылками, содержать в одном файле. Конечно, нужно
внимательно выбирать и взвесить чему место -- в f.a.q., а чему
нет.

К примеру, совсем не сразу ясно какие реализации имеются
и какие между ними различия. Что такое Рефал 2/5/+/6?
Чтобы понять это, нужно копаться в документацию отдельных
реализаций. А я так и не понял каким диалектом пользуется
В. Стеллецкий в программах, помещенных на его странице.

Пока все. Очень прошу вас, откликайтесь!

Ваш,
   Бойко Банчев
   (София, Болгария)



This archive was generated by hypermail 2b25 : Wed May 25 2005 - 19:44:13 MSD