Livejournal
Log in
Post
Friends
My journal
thesz
Пошел за старыми статьями Вадлера...
Oct 18, 2007 22:24
...наткнулся на новые.
Очень интересно про линейную логику (которая Linear logic):
Two different operational interpretations of intuitionistic linear logic have been proposed in the literature. The simplest interpretation recomputes non-linear values every time they are required. It has good memory-management properties, but is often dismissed as
(
Read more...
)
Вадлер
,
реализации ФЯ
,
линейная логика
Leave a comment
Comments 9
deni_ok
October 18 2007, 18:46:58 UTC
Название одной из статей понравилось:
Once upon a type.
:)
Reply
thesz
October 18 2007, 19:39:35 UTC
Да, Вадлер славен названиями статей. ;)
Reply
nealar
October 18 2007, 18:57:17 UTC
Не догоняю. Логика - это такая система вывода. Причём тут recomputation?
Reply
thesz
October 18 2007, 19:39:17 UTC
Логика - это такая система отслеживания инвариантов над вычислениями.
Помнишь про Curry-Howard isomorphism? ;)
Reply
nealar
October 19 2007, 06:53:36 UTC
Вообще-то, неплохо бы для конкретной пары (система вычислений, выбранная логика) этот изоморфизм сначала доказать.
Reply
thesz
October 19 2007, 06:58:57 UTC
Это к автору статьи, пожалуй.
Reply
Похоже не Uniqueness
vag_vagoff
October 19 2007, 01:19:51 UTC
Система сильно напоминает Клиновский Uniqueness.
Например, программа с ошибкой уникальности
testf :: *{Int} -> (Int,*{Int})
testf a
# x = size a
y = a.[0]
= (x + y, a)
заработает, если добавить стриктнесса:
testf :: *{Int} -> (Int,*{Int})
testf a
#! x = size a
y = a.[0]
= (x + y, a)
Reply
Re: Похоже не Uniqueness
nponeccop
October 19 2007, 02:36:20 UTC
Странно не видеть при этом ссылок на работы Клиновской школы (Plasmeijer
et al)
Reply
Re: Похоже не Uniqueness
thesz
October 19 2007, 06:56:18 UTC
Так линейная логика и дала точку опоры уникальным типам Clean.
См. по той же ссылке статью Linear types can change the world.
Reply
Leave a comment
Up
Comments 9
Once upon a type.
:)
Reply
Reply
Reply
Помнишь про Curry-Howard isomorphism? ;)
Reply
Reply
Reply
Например, программа с ошибкой уникальности
testf :: *{Int} -> (Int,*{Int})
testf a
# x = size a
y = a.[0]
= (x + y, a)
заработает, если добавить стриктнесса:
testf :: *{Int} -> (Int,*{Int})
testf a
#! x = size a
y = a.[0]
= (x + y, a)
Reply
et al)
Reply
См. по той же ссылке статью Linear types can change the world.
Reply
Leave a comment