Re: Refal-J: first release


Subject: Re: Refal-J: first release
From: Arkady Klimov (arklimov@keldysh.ru)
Date: Thu Apr 24 2003 - 00:28:19 MSD


Леня,
у меня остались еще вопросы насчет Рефал-PHP, спрашиваю через группу,
так как может это еще и другим интересно. См. ниже.

----- Original Message -----
From: "Leonid Belous" <belous@ilt.kharkov.ua>
To: <refal@botik.ru>
Sent: Wednesday, April 23, 2003 18:03
Subject: Re: Refal-J: first release

| Привет, всем!
|
| > Леня, я как-то об этом подзабыл, о чем приношу свои извинения.
| > Это действительно мое серьезное упущение. В ближайшее время исправлю.
| > Оправдаться могу лишь тем, и это как бы моя беда, что PHP я сам не знаю
| Алик, это легко исправимо.
| Если найдешь время :-), загляни сюда
| http://www.php.net/manual/ru/print/index.php
|
| > и не использую, а потому в каком-то смысле не ощутил ту реализацию как
| > выход во "внешний мир" для себя. С другой стороны, насколько я понимаю,
| > PHP - скриптовый язык, тоже (как и рефал), наверно, бестиповый и в этом
| > смысле он уровнем повыше и как бы поближе к рефалу, чем Java.
| Этот язык поддерживает 8 простых типов, но не требует их жесткого
| определения.
| Тип определяется по контексту в динамике. Фраза из manual по PHP:
|
| "PHP does not require (or support) explicit type definition in variable
| declaration; a variable's type is determined by the context in which that
| variable is used. That is to say, if you assign a string value to variable
| $var, $var becomes a string. If you then assign an integer value to $var, it
| becomes an integer."
|
| PHP гораздо ближе к Яве, чем к Рефалу, но реализован как интерпретатор, и в
| этом последнем аспекте хорошо стыкуется с Рефалом-5.
|
| Мне этот язык очень импонирует своей универсальностью, огромной библиотекой,
| и легкостью применения. Когда-то мы с Андреем Климовым восхищались языком
| REXX и его компактной реализацией (во времена машин ЕС ЭВМ). Это был (правда
| он и сейчас есть) хороший инструмент в дополнение к Рефалу. Сейчас я смело
| могу сказать, что PHP гораздо более удачная вещь. Именно эта причина и
| вдохновила меня на создание Refal-PHP.
|
| > То есть и тут и там имеем выход в "мир", но эти миры немного разные.
| Да, согласен.
|
| >
| > А еще может мы имеем в виду разные уровни интеграции. Вот например,
| > такой вопрос: может ли рефал передать PHP свое произвольное выражение
| > с тем, чтобы оно было на PHP полностью понято, переработано и, быть может,
| > передано обратно? Мне почему-то казалось, что нет, то есть что обмен идет
| только
| > на уровне строк, но буду рад ошибиться.
| Именно так, ошибаешься. Обмен возможен в обоих направлениях. Но здесь я не
| могу (пока) состязаться в уровне интеграции с тем, что делается у тебя, в
| смысле эффективности реализации. Однако эта задача и не стояла у меня на
| первом месте.
Дело не в состязании: все-таки делались разные вещи. Но хотелось бы лучше
понимать особенности каждой. Я хотел бы уточнить свое понимание
системы Рефал-PHP (мне же надо будет ее упомянуть, сказав в двух
словах об отличиях). Вот мои вопросы:
1. Верно ли, что связка Рефал-PHP выполнена на основе *реализации* Рефал-5?
Или там своя или значительно измененная (типа: подогнанная под структуры
данных PHP) реализация.
2. Возвращаюсь к вопросу об обмене выражениями. Мой вопрос был не столько
о возможности обмена "в обоих направлениях", сколько о структурах
передаваемых при этом данных. Так все-таки, можно вызвать
из рефала PHP-функцию и передать ей в качестве аргумента что-то вроде
        (A (B '*' 1) (()))
? И как это увидит функция на PHP? Как массив из трех элементов, где второй
и третий элементы - тоже массивы? Соответственно, может ли функция
на PHP вызвать функцию рефала с такого рода аргументом? (Из беглого взгляда
на описание PHP и его системы типов, мне показалось, что массив PHP - это
наверно самое близкое, из того, что там имеется, к рефальскому выражению).

Пока все.
Заранее спасибо.
С уважением,
 Аркадий

|
| Можно сказать что PHP произошел из мира UNIX+Internet как скриптовый язык
| для динамического создания вэб-страниц. Действительно, в этой роли он и
| завоевал популярность, став своего рода стандартным инструментом в
| популярной связке PHP+MySQL+Apache. (MySQL - система управления базами
| данных, а Apache - вэб-сервер). Однако сейчас PHP начинает активно
| применяться не только серверной стороне, но и на стороне клиента. Эта
| двойственность оказалась очень удобной в Refal-PHP. С одной стороны это
| позволило создать автономную компактную систему, а с другой - позволило
| сильно облегчить отладку при создании вэб страниц, проводя ее в режиме
| клиента.
|
| > Что касается Refal-Java, то здесь имеет
| > место возможность полной интерпретации на Java любого выражения Рефала
| > (без какой-либо перекодировки) и любой его переработки (причем в терминах
| > очень естественных для Java).
| Алик, из всего мною вышесказанного не следует извлекать критику твоего
| подхода.
| Это очень здорово что два "старых рефальщика" (я имею в виду тебя и Андрея),
| одновременно же и специалисты по Яве и ее суперкомпиляции, создали такой
| многообещающий инструмент.
|
| Я согласен с замечанием Николая Кондратьева о некотором разночтении понятия
| "внешний мир".
| Хочу пожелать ему (как соавтору Рефала-6) присоединиться к своим двоим
| коллегам, и усилить коллектив(соображение на двоих хуже соображения на троих
| :-) ).
|
| С уважением,
| --Леонид
|
| ----- Исходное сообщение -----
| От: "Arkady Klimov" <arklimov@keldysh.ru>
| Кому: <refal@botik.ru>
| Отправлено: 23 апреля 2003 г. 14:04
| Тема: Re: Refal-J: first release
|
|



This archive was generated by hypermail 2b25 : Mon Oct 25 2004 - 21:24:59 MSD