Re: Refal -> Java? РефалАС-->АСАИЯ !


Subject: Re: Refal -> Java? РефалАС-->АСАИЯ !
From: Mikhail Kovtun (mkovtun@nortelnetworks.com)
Date: Fri Dec 10 1999 - 22:01:28 MSK


Привет всем!

Arkady Klimov wrote:

Сначала -- небольшое техническое замечание:

А не лучше ли в отображении использовать вместо массивов java.util.Collection и дальнейшие вариации? А какой вариант реализации Collection лучше в конкретных случаях, пусть братья Климовы думают.
 
 

Интересная мысль! Конечно, это будет сильно менее эффективно, но ведь это будет прекрасный тест на суперкомпиляцию Явы! Миша, ты на это намекал?
Разумеется.
Точнее я бы выразился так: надо сделать компиляцию рефала с использованием интерфейса java.util.Collection,
Пожалуй, java.util.List, а не java.util.Collection -- как я понимаю, упорядоченность нужна.
реализовать этот интерфейс через массивы,
А может быть, где как лучше? Явный тип тебе нужно указывать только тогда, когда ты строишь новый список, во всех остальных случаях пользуешься только интерфейсом. Например, если нужно построить список из одного элемента, почему бы не воспользоваться Collections.singletonList(Object)? И я бы не стеснялся порождать что-то вроде:

public List concat(final List e1, final List e2) {
    return e1.clone().addAll(e2.clone())
}

-- а потом пусть у суперкомпилятора голова болит, нужны ли clone(), и про все прочее...

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

Аркадий.
 
 

--
Best regards,

Mikhail
 




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