Про языки программирования.

Oct 11, 2007 18:53

Рефал-суперкомпиляция.

Это язык программирования Рефал и некоторая идея под названием суперкомпиляция. Последняя была выше моего понимания и таковой и остается.

Вот здесь пытались ее коммерчески проэксплуатировать.

От работающего у нас Аркадия Климова сегодня узнал, что этот суперкомпилятор был написан на Moscow ML ( Read more... )

суперкомпилятор, динамическая типизация, Рефал, статическая типизация, ml

Leave a comment

Суперкомпиляция nponeccop October 11 2007, 22:29:41 UTC
С суперкомпиляцией всё ясно - выполняют сначала оптимизации на уровне source code, а затем скармливают код обычному компилятору. Че тут неясного?

Reply

Re: Суперкомпиляция thesz October 11 2007, 22:31:27 UTC
выполняют сначала оптимизации на уровне source code

А как?

Reply

Re: Суперкомпиляция nponeccop October 11 2007, 22:57:17 UTC
Я свечки не держал и конечно не знаю как именно сделали supercompiler.com, но в принципе как делать - понятно.

Очень приближенно - входной язык парсят в AST (abstract syntax tree), оптимизируют AST, и преобразуют AST обратно в текстовую форму.

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

Что именно Вам непонятно?

Reply

Re: Суперкомпиляция nealar October 12 2007, 06:33:07 UTC
Вроде бы, Рефал делал не оптимизацию, а логическое программирование: http://www.refal.net/~korlukov/scpj/fish/

Reply

Re: Суперкомпиляция thesz October 12 2007, 09:26:31 UTC
Это один из вариантов применения Рефала.

Reply

Re: Суперкомпиляция nponeccop October 12 2007, 11:41:45 UTC
Cсылка только подтверждает мою гипотезу. Суперкомпиляция - это супероптимизация. Они вычисляют все что можно на этапе компиляции ( ... )

Reply

Re: Суперкомпиляция thesz October 12 2007, 13:12:15 UTC
Ноу-хау изобретателей суперкомпиляции заключается в том, что они научились "сворачивать в константы" очень сложные участки кода.

"Value evolution graph" - тоже примерно 2003-2005 годов.

Через это дело умеют сворачивать константы, протаскиваемые через элементы массивов (и не только).

Reply

Re: Суперкомпиляция nealar October 12 2007, 18:28:35 UTC
В чём это know-how заключается?

Reply

Re: Суперкомпиляция nponeccop October 12 2007, 18:32:17 UTC
Ахез... Если б я знал, я бы ответил на вопрос thesz о примере кода.

Согласно моему текущему представлению, они знают, какие именно правила peephole optimization писать.

Reply

Re: Суперкомпиляция thesz October 12 2007, 19:26:21 UTC
Peephole optimization здесь не обойтись. Здесь нужна информация из анализа всей программы. ;)

Reply

Re: Суперкомпиляция thesz October 12 2007, 09:12:52 UTC
Мне непонятно, что он с этим AST делает.

Reply

Re: Суперкомпиляция nponeccop October 12 2007, 11:44:51 UTC
Вам непонятна концепция peephole optimization?

Reply

Re: Суперкомпиляция thesz October 12 2007, 13:13:28 UTC
Вот именно этот метод оптимизации менее всего применим в суперкомпиляторе.

Я спрошу прямее: приведите пример текста программы минимального суперкомпилятора, способного решать задачи, подобные Эйнштейновской.

Reply


Leave a comment

Up