<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Memory on TrustLang</title>
		<link>https://trust-lang.net/ru/tags/memory/</link>
		<description>Recent content in Memory on TrustLang</description>
		<generator>Hugo</generator>
		<language>ru</language>
		
		
		
		
			<atom:link href="https://trust-lang.net/ru/tags/memory/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Гарантии и безопасность</title>
				<link>https://trust-lang.net/ru/docs/safety/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/docs/safety/</guid>
				<description>&lt;p&gt;Раздел объединяет возможности &lt;em&gt;TrustLang&lt;/em&gt;, которые отвечают за &lt;strong&gt;безопасность и качество&lt;/strong&gt;&#xA;программ: безопасное управление памятью, защиту от гонок данных, контроль корректности на этапе&#xA;компиляции и формальную верификацию.&lt;/p&gt;&#xA;&lt;p&gt;Каждая возможность описана подробно &lt;strong&gt;ровно в одном месте&lt;/strong&gt; (страница-источник) и лишь&#xA;упоминается здесь с выжимкой и ссылкой. Подробные перечни опций/диагностик не дублируются —&#xA;их источник в справке инструмента (&lt;code&gt;trust --help&lt;/code&gt;, &lt;code&gt;trust -Whelp&lt;/code&gt;, LSP-ховеры).&lt;/p&gt;&#xA;&lt;h2 id=&#34;возможности-раздела&#34;&gt;Возможности раздела&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d0%b2%d0%be%d0%b7%d0%bc%d0%be%d0%b6%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d1%80%d0%b0%d0%b7%d0%b4%d0%b5%d0%bb%d0%b0&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Возможность&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Кратко&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Подробно (источник)&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Безопасное управление памятью без GC&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;RAII, сильные/слабые ссылки, запрет сильных циклических ссылок, защита стека от переполнения&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://trust-lang.net/ru/docs/safety/memory/&#34;&gt;Память&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Защита от гонок и синхронизация доступа&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Автоматическая межпотоковая синхронизация при обращении к разделяемым данным&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://trust-lang.net/ru/docs/safety/memory/&#34;&gt;Память&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Контрактное программирование&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Пред-/пост-условия и утверждения (&lt;code&gt;trust_pre&lt;/code&gt;/&lt;code&gt;trust_post&lt;/code&gt;/&lt;code&gt;trust_assert&lt;/code&gt;)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;verification/&#34;&gt;Верификация&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Формальная верификация (SMT)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Авто-выполнение Z3 по контрактам, инварианты циклов, кванторы&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;verification/&#34;&gt;Верификация&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Статическая типизация и контроль приведения&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Номинальная проверка типов на этапе компиляции; сужение с контролем диапазона&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;../types/type_system/&#34;&gt;Система типов&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Диапазонные проверки чисел&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Ошибка при выходе за диапазон типа, а не молчаливое переполнение&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://trust-lang.net/ru/docs/types/numbers/&#34;&gt;Числа&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Контроль целочисленного переполнения&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Встроен и &lt;strong&gt;включён по умолчанию&lt;/strong&gt;: переполнение знаковой арифметики (UB в C++) → перехватываемое &lt;code&gt;IntMinus&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://trust-lang.net/ru/docs/types/numbers/#overflow&#34;&gt;Числа&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Защита стека от переполнения (stack check)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Переполнение стека → перехватываемое исключение &lt;code&gt;stack_overflow&lt;/code&gt;, а не segfault&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;https://trust-lang.net/ru/docs/safety/stack_check/&#34;&gt;stack_check&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Контроль инвалидации ссылок (borrowed)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Запрет использования зависимых ссылок после мутации источника (висячие ссылки)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;a href=&#34;invalidation/&#34;&gt;invalidation&lt;/a&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Модель безопасной памяти портирована на C++ в отдельный проект&#xA;&lt;a href=&#34;https://github.com/rsashka/memsafe&#34;&gt;memsafe&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
