Skip to main content

Конференции

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

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

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


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

 Среда мая 15 19 16:04 Anatoliy Sablin писал к Gennadij Pastuhov:

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

Значит, это дохрена кто юзал. Я бы сюда ещё декларативщину записал.

... Jonny wanna live

--- GoldED+/W32 1.1.5-041013 xenofont.chat.ru skype pastuhovgena
Origin: Кто хочет быть счастлив - тот и будь! (с) Лоренцо Медичи (2:5036/26)

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

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