Skip to main content

Конференции

Просмотр конференции fido7.pushkin.local:

Предыдущее Следующее

Дата: 15 May 2019, 13:42:14
От: Gennadij Pastuhov @ 2:5036/26.0
Кому: Anatoliy Sablin
Тема: win via usd


Рад всех приветствовать! А особенно - Anatoliy!

 Среда мая 15 19 13:18 Anatoliy Sablin писал к Andrew Lobanov:

 AS>>>>> В ЯП Rust есть такая штука как borrow checker, и там компилятор
 AS>>>>> отслеживает владение памятью.
 AL>>>> Хм. Как это работает? Hапример, при JIT-компиляции я могу себе
 AL>>>> такое представить, а вот при простой компиляции уже нет. Хотя,
 AL>>>> я не настоящий сварщик.
 AS>>> Hа уровне языка введены правила владения объектом, которые
 AS>>> проверяются на этапе компиляции. Hапример, по-умолчанию все
 AS>>> переменные иммутабельные, чтобы изменить переменную нужно явно
 AS>>> об этом сказать. И изменить переменную может только owner объекта.
 AS>>> Owner может передать владение другой переменной, но тогда через
 AS>>> него уже не получится добраться до объекта. Hапример, такой код:
 AS>>> let v = vec![...] // создали массив for i in v {  ... } for j in
 AS>>> v {  ... } завершится ошибкой компиляции, у тебя владелец
 AS>>> массива переменная v передала владение массивом в первом цикле,
 AS>>> поэтому после массива нельзя обратиться к массиву через v. Чтобы
 AS>>> такой скомпилировать, надо явно указать, что в первом цикле v не
 AS>>> передала владение, тогда внутри первого цикла будет read-only
 AS>>> доступ к элементам массива (конструкция i = ... приведён к
 AS>>> ошибке компиляции), и второй цикл сможет обойти переменную. Для
 AS>>> многопоточности свои правила (обычную переменную компилятор не
 AS>>> позволит передать в другой thread), потому что там уже так не
 AS>>> отследить владение переменной и надо объект заворачивать в
 AS>>> специальную обёртку. В итоге, на этапе компиляции можно сказать,
 AS>>> когда используется тот или иной объект и когда он уже не
 AS>>> доступен, чтобы освободить память. Это позволяет исключить gc, и
 AS>>> избежать огромного количества ошибок работы с памятью. Hу и надо
 AS>>> поломать себе "мозг", чтобы понять как с этим програмировать. Hо
 AS>>> надо признать, даже в такой системе бывают утечки ;)
 AL>> А ведь интересный подход =)

 AS> Ага, до этого мало кто так делал.

В чём тут отличия от функциональщины (за вычетом передачи владения)?

 AS>  Но тут есть ряд других проблем: очень высокий уровень вхождения,
 AS> очень низкая скорость разработки, очень маленькое количество
 AS> разработчиков. В итоге конечная цена разработки может быть выше. Ну и
 AS> всякие посторонние эффекты из серии "звёздная болезнь" и попыток
 AS> почувствовать себя "илитой".

... Jonny wanna live

--- GoldED+/W32 1.1.5-041013 xenofont.chat.ru skype pastuhovgena
Origin: Топ - топ - топ - топ. Чёрные лапки!!!! (2:5036/26)

Предыдущее Следующее

К списку сообщений
К списку конференций