странное спрошу
От: Alexey Voytsehovich Украина  
Дата: 24.09.10 03:49
Оценка:
Подумалось тут. Есть ли такой язык\технология, который мог бы в рантайме, пользуясь шаблоном кода (один) и правилами обработки данных (много разных), получать код для обработки именно необходимых данных? потом в рантайме запустить полученный код, отработать и выдать результат?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Я не умею быть злым, и не хочу быть добрым.
Re: странное спрошу
От: FR  
Дата: 24.09.10 04:31
Оценка: 4 (1)
Здравствуйте, Alexey Voytsehovich, Вы писали:

AV>Подумалось тут. Есть ли такой язык\технология, который мог бы в рантайме, пользуясь шаблоном кода (один) и правилами обработки данных (много разных), получать код для обработки именно необходимых данных? потом в рантайме запустить полученный код, отработать и выдать результат?


Наверно подойдет любой язык с мощным метапрограммированием например лисп.

Ну и другой подход Суперкомпиляция когда все это делается автоматом, гуглить рефал.
Re[2]: странное спрошу
От: Alexey Voytsehovich Украина  
Дата: 24.09.10 04:54
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, Alexey Voytsehovich, Вы писали:


AV>>Подумалось тут. Есть ли такой язык\технология, который мог бы в рантайме, пользуясь шаблоном кода (один) и правилами обработки данных (много разных), получать код для обработки именно необходимых данных? потом в рантайме запустить полученный код, отработать и выдать результат?


FR>Наверно подойдет любой язык с мощным метапрограммированием например лисп.


а .Net или Embacadero Prism? Или даже так — по каким ключевым словам надо гуглить и проверять возможность такого в языке?

FR>Ну и другой подход Суперкомпиляция когда все это делается автоматом, гуглить рефал.


спасибо. почитаю
Я не умею быть злым, и не хочу быть добрым.
Re[3]: странное спрошу
От: An arbitrary organic compound  
Дата: 24.09.10 05:41
Оценка: 5 (2)
Здравствуйте, Alexey Voytsehovich, Вы писали:

AV>а .Net или Embacadero Prism? Или даже так — по каким ключевым словам надо гуглить и проверять возможность такого в языке?


По наличию функции eval (в .Net можно компилировать и выполнять сгенерированный в рантайме исходный код, пользуясь System.CodeDom.Compiler и рефлексией). В Lisp и Clojure eval принимает код не в виде строки, а в виде данных, поэтому, для генерации исполняемого в рантайме кода можно использовать все возможности Лиспа для обработки данных.
Re[3]: странное спрошу
От: WolfHound  
Дата: 24.09.10 06:00
Оценка: 4 (1) +1
Здравствуйте, Alexey Voytsehovich, Вы писали:

AV>а .Net или Embacadero Prism? Или даже так — по каким ключевым словам надо гуглить и проверять возможность такого в языке?

Nemerle. http://rsdn.ru/forum/nemerle/
Есть мощьное метапрограммирование.
Компилятор можно запускать в рантайме.
Плюс статическая типизация, вывод типов и много других плюшек.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re: странное спрошу
От: BulatZiganshin  
Дата: 24.09.10 10:57
Оценка: 1 (1)
Здравствуйте, Alexey Voytsehovich, Вы писали:

AV>Подумалось тут. Есть ли такой язык\технология, который мог бы в рантайме, пользуясь шаблоном кода (один) и правилами обработки данных (много разных), получать код для обработки именно необходимых данных? потом в рантайме запустить полученный код, отработать и выдать результат?


это странное называется higher-order functions и является ключевой частью ФП
Люди, я люблю вас! Будьте бдительны!!!
Re[2]: странное спрошу
От: Alexey Voytsehovich Украина  
Дата: 24.09.10 15:19
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>Здравствуйте, Alexey Voytsehovich, Вы писали:


AV>>Подумалось тут. Есть ли такой язык\технология, который мог бы в рантайме, пользуясь шаблоном кода (один) и правилами обработки данных (много разных), получать код для обработки именно необходимых данных? потом в рантайме запустить полученный код, отработать и выдать результат?


BZ>это странное называется higher-order functions и является ключевой частью ФП


ну радует хоть не чтото ненормальное в голову пришло
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Я не умею быть злым, и не хочу быть добрым.
Re[2]: странное спрошу
От: Lloyd Россия  
Дата: 24.09.10 15:22
Оценка: :))) :))) :)
Здравствуйте, BulatZiganshin, Вы писали:

BZ>это странное называется higher-order functions


Высоко-порядочные функции.
Re[3]: странное спрошу
От: BulatZiganshin  
Дата: 24.09.10 17:28
Оценка:
Здравствуйте, Lloyd, Вы писали:

BZ>>это странное называется higher-order functions


L>Высоко-порядочные функции.


но в других культурах это считается изысканным извращением!
Люди, я люблю вас! Будьте бдительны!!!
Re[2]: странное спрошу
От: Aleх  
Дата: 26.09.10 20:44
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>Здравствуйте, Alexey Voytsehovich, Вы писали:


AV>>Подумалось тут. Есть ли такой язык\технология, который мог бы в рантайме, пользуясь шаблоном кода (один) и правилами обработки данных (много разных), получать код для обработки именно необходимых данных? потом в рантайме запустить полученный код, отработать и выдать результат?


BZ>это странное называется higher-order functions и является ключевой частью ФП


Это есть почти во всех языках программирования. Я думаю, автор имел ввиду метапрограммирование в рантайме, что уже не является ключевой особенностью ФП.
Re[2]: странное спрошу
От: MasterZiv СССР  
Дата: 27.09.10 08:21
Оценка:
BulatZiganshin wrote:

> это странное называется higher-order functions и является ключевой частью ФП


Нет, это не совсем оно, возможно это более частный случай, либо вообще
никак не связано с higher-order functions. Если конечно автор действительно
хочет в рантайме генерировать код и потом его исполнять.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: странное спрошу
От: Alexey Voytsehovich Украина  
Дата: 27.09.10 13:17
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>BulatZiganshin wrote:


>> это странное называется higher-order functions и является ключевой частью ФП


MZ>Нет, это не совсем оно, возможно это более частный случай, либо вообще

MZ>никак не связано с higher-order functions. Если конечно автор действительно
MZ>хочет в рантайме генерировать код и потом его исполнять.

да. именно в рантайме сгенерировать и потом выполнить
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Я не умею быть злым, и не хочу быть добрым.
Re[4]: странное спрошу
От: BulatZiganshin  
Дата: 02.10.10 12:49
Оценка:
Здравствуйте, Alexey Voytsehovich, Вы писали:

>>> это странное называется higher-order functions и является ключевой частью ФП


MZ>>Нет, это не совсем оно, возможно это более частный случай, либо вообще

MZ>>никак не связано с higher-order functions. Если конечно автор действительно
MZ>>хочет в рантайме генерировать код и потом его исполнять.

AV>да. именно в рантайме сгенерировать и потом выполнить


ну а HOF создают в рантайме не код, а функции
Люди, я люблю вас! Будьте бдительны!!!
Re[5]: странное спрошу
От: Alexey Voytsehovich Украина  
Дата: 02.10.10 16:41
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>Здравствуйте, Alexey Voytsehovich, Вы писали:


>>>> это странное называется higher-order functions и является ключевой частью ФП


MZ>>>Нет, это не совсем оно, возможно это более частный случай, либо вообще

MZ>>>никак не связано с higher-order functions. Если конечно автор действительно
MZ>>>хочет в рантайме генерировать код и потом его исполнять.

AV>>да. именно в рантайме сгенерировать и потом выполнить


BZ>ну а HOF создают в рантайме не код, а функции


а чем тогда можно именно код генерировать? к примеру для .net есть чтото такое?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Я не умею быть злым, и не хочу быть добрым.
Re[5]: странное спрошу
От: MasterZiv СССР  
Дата: 02.10.10 18:59
Оценка:
BulatZiganshin wrote:
> ну а HOF создают в рантайме не код, а функции

Я бы так не сказал.
Posted via RSDN NNTP Server 2.1 beta
Re[6]: странное спрошу
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 04.10.10 10:54
Оценка:
Здравствуйте, MasterZiv, Вы писали:

>> ну а HOF создают в рантайме не код, а функции

MZ>Я бы так не сказал.

Почему?
Re[7]: странное спрошу
От: BulatZiganshin  
Дата: 04.10.10 19:58
Оценка:
Здравствуйте, lomeo, Вы писали:

>>> ну а HOF создают в рантайме не код, а функции

MZ>>Я бы так не сказал.

L>Почему?


он не верит в существование first-class functions
Люди, я люблю вас! Будьте бдительны!!!
Re[6]: странное спрошу
От: BulatZiganshin  
Дата: 04.10.10 19:59
Оценка:
Здравствуйте, Alexey Voytsehovich, Вы писали:

AV>а чем тогда можно именно код генерировать? к примеру для .net есть чтото такое?


а для тебя имеет значение — код создаётся или функции? проблема в скорости?
Люди, я люблю вас! Будьте бдительны!!!
Re[7]: странное спрошу
От: Alexey Voytsehovich Украина  
Дата: 05.10.10 03:53
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>Здравствуйте, Alexey Voytsehovich, Вы писали:


AV>>а чем тогда можно именно код генерировать? к примеру для .net есть чтото такое?


BZ>а для тебя имеет значение — код создаётся или функции? проблема в скорости?


проблема в том что эта область мне совершенно не известна и каждое слово нет сбивает с толку

вы не могли бы ткнуть в инете на любой пример на дотнет который генерирует код\метод на лету и его выполняет?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Я не умею быть злым, и не хочу быть добрым.
Re[8]: странное спрошу
От: Jack128  
Дата: 06.10.10 11:51
Оценка: 4 (1)
Здравствуйте, Alexey Voytsehovich, Вы писали:


AV>вы не могли бы ткнуть в инете на любой пример на дотнет который генерирует код\метод на лету и его выполняет?



var p = Expression.Parameter(typeof(int), "i");
var x = Expression.Lambda<Func<int, int>>(Expression.Multiply(Expression.Constant(2), p), new[] { p });

var mul2 = x.Compile(); // компилируем

return mul2(10); // результат - 20
Re[4]: странное спрошу
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.10.10 20:22
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Nemerle. http://rsdn.ru/forum/nemerle/

WH>Есть мощьное метапрограммирование.
WH>Компилятор можно запускать в рантайме.
WH>Плюс статическая типизация, вывод типов и много других плюшек.

Плюс реально работает под дотнетом, а не сделан и забыт как большая часть диалектов лиспа адаптированных к дотнету.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: странное спрошу
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.10.10 20:24
Оценка:
Здравствуйте, Aleх, Вы писали:

AV>>>Подумалось тут. Есть ли такой язык\технология, который мог бы в рантайме, пользуясь шаблоном кода (один) и правилами обработки данных (много разных), получать код для обработки именно необходимых данных? потом в рантайме запустить полученный код, отработать и выдать результат?


A>Это есть почти во всех языках программирования. Я думаю, автор имел ввиду метапрограммирование в рантайме, что уже не является ключевой особенностью ФП.


Кстати, почему в рантайме? Автор вопроса сказал "потом в рантайме запустить полученный код". Это как раз отлично проходит под метопрограммирование во время компиляции и запуск результата в рантайме.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: странное спрошу
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.10.10 20:27
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>он не верит в существование first-class functions


Я вот тоже не верю. Я знаю что они существуют, но так же знаю что они не способны решить всех проблем при программировании.

Автор вопроса выражается сумбурно, но похоже ему нужно метапрограммирование, а не функции высшего порядка, которые к слову, есть и в C#.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: странное спрошу
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 25.10.10 04:15
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Я вот тоже не верю. Я знаю что они существуют, но так же знаю что они не способны решить всех проблем при программировании.

VD>Автор вопроса выражается сумбурно, но похоже ему нужно метапрограммирование, а не функции высшего порядка, которые к слову, есть и в C#.

Там кривые.

Вообще, надо смотреть конкретную задачу, решат её HOF или нужна тяжёлая артиллерия в лице МП.
Re[10]: странное спрошу
От: Klapaucius  
Дата: 25.10.10 09:03
Оценка: +1
Здравствуйте, lomeo, Вы писали:

L>Там кривые.


Они там обычные. Вот функциональные типы там кривые, ну или как минимум странные — именованные.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[11]: странное спрошу
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 25.10.10 11:51
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Они там обычные. Вот функциональные типы там кривые, ну или как минимум странные — именованные.


"Кривые" неверное слово, каюсь. Неудобные.
Re[10]: странное спрошу
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.10 14:12
Оценка:
Здравствуйте, lomeo, Вы писали:

VD>>Автор вопроса выражается сумбурно, но похоже ему нужно метапрограммирование, а не функции высшего порядка, которые к слову, есть и в C#.


L>Там кривые.


Да ладно.

L>Вообще, надо смотреть конкретную задачу, решат её HOF или нужна тяжёлая артиллерия в лице МП.


+1 Но я надеюсь автор понимает что ему нужно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: странное спрошу
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.10.10 20:10
Оценка:
Здравствуйте, lomeo, Вы писали:

L>"Кривые" неверное слово, каюсь. Неудобные.


Да обычные они. Не хуже чем в других языках. Там сам язык плохо приспособлен для функционального программировния, так как есть деление на expressions и statments, плюс сахара маловато конечно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: странное спрошу
От: Кодёнок  
Дата: 28.10.10 06:12
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

>>>> ну а HOF создают в рантайме не код, а функции

MZ>>>Я бы так не сказал.
L>>Почему?
BZ>он не верит в существование first-class functions

Элементарный пример: пользователь вводит код с клавиатуры. Или сами данные являются произвольным кодом для исполнения. hof не помогут, нужен полноценный интерптетатор.

И hof далеко не обязательно что-либо вообще “создают в рантайме”, это просто абстракция такая.
Re[9]: странное спрошу
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 28.10.10 06:58
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Элементарный пример: пользователь вводит код с клавиатуры. Или сами данные являются произвольным кодом для исполнения. hof не помогут, нужен полноценный интерптетатор.


Как тут МП поможет? Этот пример по-моему вообще из другой оперы.
Re[5]: странное спрошу
От: lovesan  
Дата: 06.11.10 15:51
Оценка: 46 (1)
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, WolfHound, Вы писали:


WH>>Nemerle. http://rsdn.ru/forum/nemerle/

WH>>Есть мощьное метапрограммирование.
WH>>Компилятор можно запускать в рантайме.
WH>>Плюс статическая типизация, вывод типов и много других плюшек.

VD>Плюс реально работает под дотнетом, а не сделан и забыт как большая часть диалектов лиспа адаптированных к дотнету.


Вменяемые люди не пользуются лиспами под дотнетом. Они берут современные реализации CL, работающие непосредственно на операционной системе, и компилирующие непосредственно в машинные коды, и потом берут библиотеку RDNZL и дергают дотнет прямо из лиспа.
Re: странное спрошу
От: lovesan  
Дата: 06.11.10 15:57
Оценка:
Здравствуйте, Alexey Voytsehovich, Вы писали:

AV>Подумалось тут. Есть ли такой язык\технология, который мог бы в рантайме, пользуясь шаблоном кода (один) и правилами обработки данных (много разных), получать код для обработки именно необходимых данных? потом в рантайме запустить полученный код, отработать и выдать результат?


Common Lisp. Например, я недавно написал библиотеку Virgil, которая по спецификациям си-подобных типов(описанных в S-выражениях) автоматически генерирует код для маршалинга лисповских данных в "неуправляемую память" и обратно. Хотя основной упор там делается на кодогенерацию(ради эффективности маршалинга), спецификации типов могут также и интерпретироваться в рантайме(например в случае, когда спецификация типа в некоем конкретном случае при компиляции не известна).
Re[2]: странное спрошу
От: lovesan  
Дата: 06.11.10 16:08
Оценка:
Посмотреть как она используется можно в другой моей библиотеке, Doors.
Например: https://github.com/Lovesan/doors/blob/master/system/console.lisp
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.