Andrey Slepuhin (pooh@msu.ru)
Fri, 03 Dec 1999 18:45:14 +0300
Andrei Klimov wrote:
>
> > From: Andrey Slepuhin <pooh@msu.ru>
>
> > > Арк.: А что, разве в существующей б-ке для существующего runtim'а надо
> > > много менять?
> >
> > Ее надо просто переписывать с нуля - менять многие интерфейсы, вводить новые
> > возможности, которые необходимы в современной жизни. Естественно, старая
> > библиотека останется, чтобы не переделывать уже существующие программы.
> > Я готов проработать подробный проект библиотеки, но сначала хочу закончить
> > текущие преобразования в компиляторе.
> >
> > Андрей.
>
> Извините за занудство (;-) и повтор, но я по-прежнему придерживаюсь мнения,
> что никаких чисто рефальских библиотек (кроме уж совсем "ядреных", имеющих
> дело с понятиями самого Рефала, вроде арифметики) разрабатывать не следует,
Речь идет как раз о минимальном наборе необходимых функций (то есть
некий
аналог libc): ввод-вывод (текстовый и бинарный, файлы, сокеты и потоки
поверх
них), поддержка DNS, операции с файлами (создание, удаление,
переименование и т.д.),
многозадачность, может быть терминальный ввод-вывод (во всяком случае не
в первую очередь). В существующей библиотеке эти функции реализованы
далеко
не в полном объеме и порой очень криво.
> а нужно (просто-таки необходимо, чтобы Рефал не умер, а пошел в жизнь)
> пристыковать его в существующим распространенным библиотекам:
> Tcl/Tk (Tcl -- это название языка, Tk -- "toolkit" -- это название библиотеки)
> и другим.
Обертки для разных библиотек конечно _обязательно_ быть, но _только_
после того,
как будет обеспечена базовая функциональность.
> А это не зависит от вопроса, менять runtime или нет. Подключение чужих библиотек
> можно (и дОлжно) сделать для любого run-timе-а -- кроме тех, для которых это
> невозможно вообще. А а такие run-time-ы надо выкинуть и с ними больше не связываться.
> (Если нынешней реализации Рефала Плюс уже поставлен такой диагноз, то...;-).
Я могу в принципе подключить _любую_ C-шную библиотеку к Рефалу+, но:
для нового runtime'а это надо будет делать заново, поскольку нет
нормального отдельного интерфейса для написания таких оберток.
> Что нужно продумать -- это общий механизм вызова таких библиотек из Рефала.
> Сочинить такие вещи теоретически практически невозможно, поэтому надо взять
> несколько живых библиотек и с ними поработать. Я бы начал c Tcl/Tk, поскольку
> основной тип данных в Tcl -- это строка, аргументы функций -- списки строк.
Ну да, так оно выглядит на уровне языка. А на уровне библиотеки -
обычные
типы, структуры и т.д.
> Поэтому создается впечатление, что форматы вызова функций Tk из Рефала
> будет естественным отображением вызовов из Tcl, и можно будет даже
> даже не переписывать документацию по Tk.
Единственно, для чего может Tcl/Tk пригодиться Рефалу - это
платформно-независимый окошечный интерфейс (именно в _таком качестве_
Tcl/Tk прикручен, скажем, к
Haskell'у), и то на мой взгляд это не самый не лучший вариант.
А что нужно прикрутить к Рефалу в _первую очередь_ - это gmp
(GNU Multiple Precision Library).
> Дальше нужно разбираться, как связываться в объектно-ориентированными
> мирами: CORBA, DCOM, Visual Basic, Java RMI -- причем, мне кажется,
> надо брать за основу не IDL (interface definition language) как средство
> основанное на компиляции, а динамические механизмы вызова:
> т.н. "автоматизация" в DCOM, Java reflection и т.п.
Кто сказал, что в CORBA этого нет? А DII и DSI на что?
И потом, кроме CORBA больше ничего заточенного на многоплатформность/
многоязычность нету.
> Я убежден, что если это не будет сделано, то даже великий факт наличия
> суперкомпилятора
> для Рефала его не спасет. Мы сами вбиваем гвоздь...
Наоборот, мы пытаемся идти правильным путем. Это надо было сделать много
раньше, но лучше поздно, чем никогда.
Всего доброго,
Андрей.
This archive was generated by hypermail 2.0b3 on Fri Dec 03 1999 - 18:45:45 MSK