<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>TrustLang</title>
		<link>https://trust-lang.net/en/</link>
		<description>Recent content on TrustLang</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<atom:link href="https://trust-lang.net/en/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Naming Objects</title>
				<link>https://trust-lang.net/en/docs/syntax/naming/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/syntax/naming/</guid>
				<description>&lt;p&gt;Objects and data types can be named using letters, numbers, and underscores in any combination, provided that the first character of the name is not a digit.&lt;/p&gt;&#xA;&lt;p&gt;All identifiers must be unique, and to avoid collisions, you can use &lt;a href=&#34;https://trust-lang.net/en/docs/syntax/namespace/&#34;&gt;namespaces&lt;/a&gt; and a &lt;a href=&#34;https://trust-lang.net/en/docs/syntax/modules/&#34;&gt;modular code structure&lt;/a&gt; supported simultaneously by &lt;em&gt;TrustLang&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Overloading &lt;a href=&#34;https://trust-lang.net/en/docs/types/funcs/&#34;&gt;functions&lt;/a&gt; based on argument types is absent in &lt;em&gt;TrustLang&lt;/em&gt;, so defining multiple functions with the same name but different arguments is not possible, but you can &lt;a href=&#34;https://trust-lang.net/en/docs/types/funcs/&#34;&gt;override a function&lt;/a&gt;, including extending the types of accepted arguments or increasing their number.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Numbers</title>
				<link>https://trust-lang.net/en/docs/types/numbers/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/types/numbers/</guid>
				<description>&lt;p&gt;&lt;em&gt;TrustLang&lt;/em&gt; is a language with dynamic typing, and explicit type declaration does not affect the memory size occupied by a variable.&#xA;Type information is used when checking their compatibility, when assigning a value of a different type to an existing object.&#xA;This operation is possible only when the types are compatible and allow for automatic conversion.&#xA;This is true both during parsing/compilation of the source text and during execution in interpreter and/or compiled file modes.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Создание объектов</title>
				<link>https://trust-lang.net/en/docs/ops/create/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/ops/create/</guid>
				<description>&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;&#xA;&lt;h5 id=&#34;область-видимости-объекта--время-жизни-объекта&#34;&gt;Область видимости объекта =/= время жизни объекта&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d1%8c-%d0%b2%d0%b8%d0%b4%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%be%d0%b1%d1%8a%d0%b5%d0%ba%d1%82%d0%b0--%d0%b2%d1%80%d0%b5%d0%bc%d1%8f-%d0%b6%d0%b8%d0%b7%d0%bd%d0%b8-%d0%be%d0%b1%d1%8a%d0%b5%d0%ba%d1%82%d0%b0&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;Область видимости объекта определяется его расположением в программном коде (блоки кода, пространство имен, модели и т.д.)&#xA;Объект может существовать, но может быть не доступен из текущей области видимости.&lt;/p&gt;&#xA;&lt;h5 id=&#34;имя-объекта-создание-объекта-и-его-расположение&#34;&gt;Имя объекта, создание объекта и его расположение&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d0%b8%d0%bc%d1%8f-%d0%be%d0%b1%d1%8a%d0%b5%d0%ba%d1%82%d0%b0-%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5-%d0%be%d0%b1%d1%8a%d0%b5%d0%ba%d1%82%d0%b0-%d0%b8-%d0%b5%d0%b3%d0%be-%d1%80%d0%b0%d1%81%d0%bf%d0%be%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b5&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;Имя объекта - его уникальный идентификатор, который однозначно определяется местом его расположения (нахождение сильной ссылки на объект).&#xA;Имя у объекта может быть всегда, даже тогда, когда сам объект физически еще не создан (например при предварительном объявлении).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Блоки кода</title>
				<link>https://trust-lang.net/en/docs/ops/block/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/ops/block/</guid>
				<description>&lt;p&gt;Блок кода, это сгруппированный набор идущих подряд инструкций, которые выполняются как единое целое&#xA;с возвращением результата выполнения последней из них.&#xA;Блок кода, как и любая синтаксическая конструкция языка, должен завершаться точкой с запятой &amp;ldquo;&lt;strong&gt;;&lt;/strong&gt;&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;Блоки кода используются для ограничения области видимости переменных.&#xA;С их помощью определяется иерархия области имен и реализуется система именования свойств и методов для классов.&#xA;Именованные блоки кода могут выступать в качестве локальных меток для передачи потока выполнения.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Character Strings</title>
				<link>https://trust-lang.net/en/docs/types/strings/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/types/strings/</guid>
				<description>&lt;p&gt;&lt;em&gt;TrustLang&lt;/em&gt; supports two types of strings:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;:StrChar&lt;/em&gt; - universal byte UTF-8 strings&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;:StrWide&lt;/em&gt; - system character (wide characters)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The single element of a universal UTF-8 string is one byte,&#xA;while the single element of a system character string is a wide character &lt;em&gt;wchar_t&lt;/em&gt;.&#xA;And although the strings differ in the types of single string elements, the internal representation of both types of strings is the same.&#xA;All data of character strings is stored as a universal byte UTF-8 sequence.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Namespaces</title>
				<link>https://trust-lang.net/en/docs/syntax/namespace/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/syntax/namespace/</guid>
				<description>&lt;p&gt;&lt;em&gt;TrustLang&lt;/em&gt; supports namespaces, where the separator, like in C++, is a double colon &amp;ldquo;&lt;strong&gt;::&lt;/strong&gt;&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;A namespace can be specified for an individual identifier or for an entire &lt;a href=&#34;https://trust-lang.net/en/docs/ops/block/&#34;&gt;code block&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Unlike &lt;em&gt;namespace&lt;/em&gt; in C++, namespaces in &lt;em&gt;TrustLang&lt;/em&gt; are used not only to organize code into logical groups and avoid name conflicts,&#xA;but also to associate an identifier, explicitly specifying the namespace,&#xA;with static objects (memory allocated during the compilation stage of the program).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Внутреннее имя и манглинг имен</title>
				<link>https://trust-lang.net/en/docs/arch/mangling/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/arch/mangling/</guid>
				<description>&lt;p&gt;Именование объектов основано на &lt;a href=&#34;https://trust-lang.net/en/docs/syntax/naming/&#34;&gt;правилах&lt;/a&gt; и выбирается из расчёта удобства для программиста.&#xA;Название переменной или функции должно нести смысл, понятные параметры и тип возвращаемого значения,&#xA;которые упрощают понимание алгоритма при последующем чтении исходного текста программы.&lt;/p&gt;&#xA;&lt;p&gt;Но обычные имена мало о чём говорят компьютеру. Поэтому при компиляции программы,&#xA;имена объектов преобразуются для удобства машинной обработки и к ним добавляется служебная информация.&lt;/p&gt;&#xA;&lt;h2 id=&#34;internal&#34;&gt;Внутреннее имя объекта&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#internal&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Каждый объект имеет свое внутреннее имя, уникальное в рамках &lt;em&gt;текущего модуля&lt;/em&gt;,&#xA;с помощью которого комипилятор языка однозначно связывает объект с данными в памяти компьютера.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Математические операторы</title>
				<link>https://trust-lang.net/en/docs/ops/math/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/ops/math/</guid>
				<description>&lt;p&gt;Все математические операторы имеют парный аналог с присвоением значения:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;+&lt;/strong&gt; и &lt;strong&gt;+=&lt;/strong&gt; — сложение арифметических типов данных;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;-&lt;/strong&gt; и &lt;strong&gt;-=&lt;/strong&gt; — вычитание арифметических типов данных;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;/&lt;/strong&gt; и &lt;strong&gt;/=&lt;/strong&gt; — деление (результат число с плавающей точкой);&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;//&lt;/strong&gt; и &lt;strong&gt;//=&lt;/strong&gt; — целочисленное деление с округлением к меньшему числу (как в Python);&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;*&lt;/strong&gt; и &lt;strong&gt;*=&lt;/strong&gt; — умножение (он же используется и для повторения текстовых строк);&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;%&lt;/strong&gt; и &lt;strong&gt;%=&lt;/strong&gt; — остаток от целочисленного деления;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Отдельный оператор для возведения в степень отсуствует.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Модули и пакеты</title>
				<link>https://trust-lang.net/en/docs/syntax/modules/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/syntax/modules/</guid>
				<description>&lt;p&gt;В &lt;em&gt;TrustLang&lt;/em&gt; реализована концепция программных модулей и пакетов - которая повторяет идею иерархического расположения файлов&#xA;в каталогах файловой системы, примерно так же, как это сделано в языке Python, но разделителем имен выступает не точка,&#xA;а символ &amp;ldquo;&lt;strong&gt;\&lt;/strong&gt;&amp;rdquo; (как разделитель каталогов в Windows).&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Имя модуля может содержать только строчные английские буквы или цифры.&#xA;Данное ограничение связано с прямым отображением имен модулей на объекты в файловой системе,&#xA;так как у разных файловых систем могут быть различные возможности с поддержкой кодировок&#xA;и разные требования к преобразованию регистров символов.&lt;/em&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Операторы сравнения и типизация</title>
				<link>https://trust-lang.net/en/docs/ops/compare/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/ops/compare/</guid>
				<description>&lt;h3 id=&#34;арифметическое-сравнение&#34;&gt;Арифметическое сравнение&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d0%b0%d1%80%d0%b8%d1%84%d0%bc%d0%b5%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b5-%d1%81%d1%80%d0%b0%d0%b2%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Операторы арифметического сравнения представленными классическими &lt;strong&gt;&amp;lt;&lt;/strong&gt;, &lt;strong&gt;&amp;gt;&lt;/strong&gt;, &lt;strong&gt;&amp;lt;=&lt;/strong&gt;, &lt;strong&gt;&amp;gt;=&lt;/strong&gt;, &lt;strong&gt;==&lt;/strong&gt; и &lt;strong&gt;!=&lt;/strong&gt;.&#xA;Они использются для сравнения между собой скаляров и рациональных чисел, а операторы сранвения на равенство &lt;strong&gt;==&lt;/strong&gt; и &lt;strong&gt;!=&lt;/strong&gt;,&#xA;позвоялют сравнивать между собой в том числе и матрицы.&lt;/p&gt;&#xA;&lt;h3 id=&#34;операторы-сравнения&#34;&gt;Операторы сравнения&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d1%82%d0%be%d1%80%d1%8b-%d1%81%d1%80%d0%b0%d0%b2%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;==&lt;/strong&gt; и &lt;strong&gt;!=&lt;/strong&gt; — операторы сравнения с автоматическим приведением совместимых типов для любых объектов&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;==&lt;/strong&gt; и &lt;strong&gt;!=&lt;/strong&gt; — операторы сравнения с автоматическим приведением совместимых типов для любых объектов&lt;/p&gt;</description>
			</item>
			<item>
				<title>Реализация обработки ошибок и прерываний</title>
				<link>https://trust-lang.net/en/docs/arch/errors/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/arch/errors/</guid>
				<description>&lt;p&gt;Для обработки &lt;a href=&#34;https://trust-lang.net/en/docs/ops/throw/&#34;&gt;перываний потока выполения&lt;/a&gt;, а также для обработки ошибкок компилятора&#xA;используются С++ классы - наследники от std::exception, которые возвращают объект ошибки (значение).&lt;/p&gt;&#xA;&lt;p&gt;Ошибка компилятора возвращает не только тестовое описание, но и объект TermPtr, при обработке которого возникла ошибка,&#xA;тогда как перывание потока выполения возвращается объект ObjPtr.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;std::exception -+-&amp;gt; :ParserError&#xA;                |     (TermPtr)&#xA;                | &#xA;                +-&amp;gt; :RuntimeError ----&amp;gt; :IntAny --+-&amp;gt; :IntPlus&#xA;                       (ObjPtr)                   |&#xA;                                                  |&#xA;                                                  +-&amp;gt; :IntMinus&#xA;                &#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;При выполнении (генерации кода) именованные прерывания могут быть реализованы без использования исключений!&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Словари</title>
				<link>https://trust-lang.net/en/docs/types/dicts/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/types/dicts/</guid>
				<description>&lt;h2 id=&#34;объектно-ориентированное-программирование&#34;&gt;Объектно ориентированное программирование&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d0%be%d0%b1%d1%8a%d0%b5%d0%ba%d1%82%d0%bd%d0%be-%d0%be%d1%80%d0%b8%d0%b5%d0%bd%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%bd%d0%be%d0%b5-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;em&gt;TrustLang&lt;/em&gt; поддерживает следующую концепцию объектно-ориентированного программирования:&lt;/p&gt;&#xA;&lt;p&gt;Каждый объект представляет собой отдельный тип данных, который наследуется от другого типа или от одного из его наследников (что очень похоже на концепцию объектов в языке Java), а экземпляр конкретного класса создается путем вызова его типа.&lt;/p&gt;&#xA;&lt;p&gt;Наследование поддерживается для типов словарь (&lt;em&gt;:Dictionary&lt;/em&gt;) и класс (&lt;em&gt;:Class&lt;/em&gt;) и всех их потомков.&lt;/p&gt;&#xA;&lt;h3 id=&#34;словарь&#34;&gt;Словарь&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d1%81%d0%bb%d0%be%d0%b2%d0%b0%d1%80%d1%8c&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Словарь (&lt;em&gt;:Dictionary&lt;/em&gt;) — набор данных произвольного типа с доступом к отдельным элементам по целочисленному индексу или по имени элемента при его наличии (это похоже и на tuple и на структуру одновременно). Словари отличаются от &lt;a href=&#34;https://trust-lang.net/type_nor.html&#34;&gt;тензоров&lt;/a&gt; тем, что всегда имеют только одно измерение, но каждый элемент может содержать произвольное количество элементов любого типа, в том числе и другие словари.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Классы</title>
				<link>https://trust-lang.net/en/docs/types/class/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/types/class/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;Ответ прост: классы не строго необходимы для ООП. Знаю, это может шокировать.&lt;/p&gt;&#xA;&lt;p&gt;Разумеется, нам нужна возможность создания новых объектов,&#xA;и языки на основе классов, очевидно, распространены сильнее. Однако это не единственный способ достижения цели.&lt;/p&gt;&#xA;&lt;p&gt;В языках наподобие JavaScript (хотя ES6 добавил в язык классы6, 7)&#xA;и Lua используется концепция ООП на основе прототипов или прототипного ООП.&#xA;Вместо создания схемы для конструирования новых объектов мы используем существующий объект в качестве прототипа.&#xA;Такой подход даже может иметь реальные преимущества, поскольку снижает сложность языка8.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Управление памятью, ссылки и совместный доступ</title>
				<link>https://trust-lang.net/en/docs/syntax/memory/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/syntax/memory/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://habr.com/companies/otus/articles/763810/&#34;&gt;https://habr.com/companies/otus/articles/763810/&lt;/a&gt;&#xA;&lt;a href=&#34;https://habr.com/articles/764420/&#34;&gt;https://habr.com/articles/764420/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Последовательная согласованность отсутствует (отсутствуют атомарныти типы)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Любой язык программирования так или иначе вынужден управлять оперативной памятью.&#xA;В &lt;em&gt;TrustLang&lt;/em&gt; реализовано автоматическое управление памятью без сборщика мусора.&lt;/p&gt;&#xA;&lt;p&gt;За основу была взята модель &amp;ldquo;владения&amp;rdquo; из языка Rust, но она переработана под концепцию сильных&#xA;и слабых указателей (аналоги &lt;em&gt;shared_ptr&lt;/em&gt; и &lt;em&gt;weak_ptr&lt;/em&gt; из С++),&#xA;где каждое значение в памяти может иметь только одну переменную-владельца с &lt;em&gt;сильным&lt;/em&gt; указателем.&lt;/p&gt;&#xA;&lt;p&gt;И когда такая переменная-владелец уходит из области видимости, счетчик ссылок уменьшается и при достжении нуля память освобождается.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Функции</title>
				<link>https://trust-lang.net/en/docs/types/funcs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/types/funcs/</guid>
				<description>&lt;p&gt;Определение функции происходит с помощью операторов &lt;a href=&#34;https://trust-lang.net/en/docs/ops/create/&#34;&gt;создания объектов&lt;/a&gt;,&#xA;имя функции должно соответствовать &lt;a href=&#34;https://trust-lang.net/en/docs/syntax/naming/&#34;&gt;правилам именования&lt;/a&gt;,&#xA;после которого указываются круглые скобки. &lt;em&gt;В настоящий момент поддерживается создание функций только в качестве статических объектов&#xA;с однократной инициализацией с помощью оператора &amp;lsquo;&lt;strong&gt;::=&lt;/strong&gt;&amp;rsquo;&lt;/em&gt;;&lt;/p&gt;&#xA;&lt;p&gt;Телом функции должен быть &lt;a href=&#34;https://trust-lang.net/en/docs/ops/block/&#34;&gt;блок кода&lt;/a&gt;, который располагается в пространстве имен определения этой функции.&lt;/p&gt;&#xA;&lt;p&gt;Функции поддерживают аргументы по умолчанию, а сами аргументы указываются как в Python,&#xA;т.е. вначале идут обязательные, далее идут аргументы со значениями по умолчанию,&#xA;где его имя отделяется от дефолтного значения знаком равно &amp;ldquo;&lt;strong&gt;=&lt;/strong&gt;&amp;rdquo;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Macros</title>
				<link>https://trust-lang.net/en/docs/syntax/macros/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/syntax/macros/</guid>
				<description>&lt;p&gt;Macros are also used to transform the original code of &lt;em&gt;TrustLang&lt;/em&gt; into a more familiar syntax based on &lt;a href=&#34;https://trust-lang.net/en/docs/syntax/dsl/&#34;&gt;keywords&lt;/a&gt;,&#xA;as such text is much easier to understand when reading the original code later.&lt;/p&gt;&#xA;&lt;p&gt;In &lt;strong&gt;TrustLang&lt;/strong&gt;, macros are one or more consecutive terms that are replaced with another term or a whole syntactic construction (a sequence of lexemes).&lt;/p&gt;&#xA;&lt;p&gt;Macros are processed during the operation of the &lt;strong&gt;lexer&lt;/strong&gt;, i.e., before passing the sequence of lexemes to the parser,&#xA;allowing fragments of the language syntax to be modified using macros, for example, when implementing custom DSL dialects.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Итераторы</title>
				<link>https://trust-lang.net/en/docs/types/iter/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/types/iter/</guid>
				<description>&lt;p&gt;Итераторы в &lt;em&gt;TrustLang&lt;/em&gt;, как и в остальных языках программирования, предназначены для перебора элементов. Но, в отличии от итераторов в С++, итераторы &lt;em&gt;TrustLang&lt;/em&gt; являются самостоятельными объектами, а не указателями на отдельные элементы объекта-контейнера. Итераторы &lt;em&gt;TrustLang&lt;/em&gt; поддерживают фильтрацию элементов по имени за счет использования функций обратного вызова.&lt;/p&gt;&#xA;&lt;p&gt;Для работы с итераторами используется следующий синтаксис:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;?&lt;/strong&gt; или &lt;strong&gt;?(&lt;/strong&gt; текст &lt;strong&gt;)&lt;/strong&gt; - создание итератора без фильтра или с &lt;em&gt;regex&lt;/em&gt; фильтрацией по имени поля&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;?(&lt;/strong&gt; func, args&amp;hellip; &lt;strong&gt;)&lt;/strong&gt; - создание итератора с использованием &lt;a href=&#34;https://trust-lang.net/en/docs/types/funcs/&#34;&gt;лямбда функции или функции обратного вызова&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;!&lt;/strong&gt; или &lt;strong&gt;!(&lt;/strong&gt; количество возвращаемых элементов &lt;strong&gt;)&lt;/strong&gt; - перебор элементов итератора&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;?!&lt;/strong&gt; или &lt;strong&gt;!?&lt;/strong&gt; - получить текущий элемент без перемещение курсора&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;!!&lt;/strong&gt; - сбросить указатель итератора в начальное состояние (на первый элемент)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;??&lt;/strong&gt; - создать итератор и сразу его выполнить, возвращая все значения в виде элементов словаря максимально возможного размера.&#xA;Это своего рода синтаксический сахар для краткой записи последовательности команд &lt;code&gt;?; !(9223372036854775807);&lt;/code&gt;,&#xA;что удобно использовать при отладке для вывода значений переменных.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Для работы с итераторами можно использовании DSL операторы:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Другие типы данных</title>
				<link>https://trust-lang.net/en/docs/types/other/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/types/other/</guid>
				<description>&lt;h3 id=&#34;пусто-none&#34;&gt;Пусто (:None)&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d0%bf%d1%83%d1%81%d1%82%d0%be-none&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;em&gt;:None&lt;/em&gt; (пусто) — не содержит значения (точнее имеет одно значение &lt;em&gt;:None&lt;/em&gt;). Указывается в тексте программы как один подчерк «_». Значение &lt;em&gt;None&lt;/em&gt; имеют не инициализированные переменные и при попытке чтения из такой переменной возникает ошибка.&lt;/p&gt;&#xA;&lt;p&gt;Тип переменной может быть явно указан или выведен автоматически из присваиваемого значения. Присвоить новое значение уже инициализированной переменной можно только для совместимого типа, так как неявное преобразование типов не допускаются.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;$var&lt;/span&gt; :&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; _&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Создать не инициализированную переменную&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;$var2&lt;/span&gt; :&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; var&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Ошибка!!! Нельзя прочитать не инициализированную переменную var&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;$var&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; 1000&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# У переменной будет тип Short (минимальный размер для хранения значения)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;$var&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; 0,5&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Ошибка!!! Short ← Float не совместимы&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;$var&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; _&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Очистить значение переменной&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;$var&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; 0,5&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Теперь можно, т. к. None совместим с любым типом&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;диапазон-range&#34;&gt;Диапазон (:Range)&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d0%b4%d0%b8%d0%b0%d0%bf%d0%b0%d0%b7%d0%be%d0%bd-range&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Диапазон — специальный тип данных, являющейся приблизительным аналогом типа «генератор» в Python. К диапазону можно обращаться как к итератору и он будет поочередно выдавать элементы в указанном интервале с заданным шагом. Диапазон в тексте программы указывается как два или три элемента через две точки, например 1..5 — диапазон от единицы до пяти с шагом по умолчанию 1. В качестве параметров диапазона можно указывать не только литералы, но и имена переменных и даже рациональные числа. Например, 0,1..$stop..0,1 — диапазон от 0,1 до значения, указанного в переменной $stop с шагом 0,1 или 0..1\10 - диапазон рациональных числе от 0 до 10.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Native Data Types</title>
				<link>https://trust-lang.net/en/docs/types/native/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/types/native/</guid>
				<description>&lt;p&gt;Native (machine) data can be variables or functions, and the names of native objects start with the percent symbol &amp;ldquo;&lt;strong&gt;%&lt;/strong&gt;&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;In the case of variables, these are binary data located in a single continuous area of machine memory at a specific address and have a strictly defined format.&lt;/p&gt;&#xA;&lt;p&gt;To use existing libraries, you need to import the native object, thereby creating an object TrustLang,&#xA;but with an implementation in another language, for example, in C/C++.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Data type conversion</title>
				<link>https://trust-lang.net/en/docs/types/convert/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/types/convert/</guid>
				<description>&lt;p&gt;Despite the dynamic typing of the language, if the type of a variable is specified explicitly, then automatic type casting is not performed.&#xA;and to assign a value of an incompatible type to a variable, an explicit conversion is required.&lt;/p&gt;&#xA;&lt;p&gt;Since symbolic type names are implementation details, an explicit conversion to a specific data type is performed&#xA;by calling a function with a type name, i.e. :Bool(), :StrWide(), :Int64(), etc.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Системные свойства</title>
				<link>https://trust-lang.net/en/docs/syntax/sysprop/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/syntax/sysprop/</guid>
				<description>&lt;h3 id=&#34;системные-свойства&#34;&gt;Системные свойства&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d0%bd%d1%8b%d0%b5-%d1%81%d0%b2%d0%be%d0%b9%d1%81%d1%82%d0%b2%d0%b0&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Несмотря на то, что не все объекты &lt;em&gt;TrustLang&lt;/em&gt; являются классами с точки зрения &lt;a href=&#34;https://trust-lang.net/en/docs/types/class/&#34;&gt;реализованной концепции ООП&lt;/a&gt;,&#xA;тем не менее, каждый объект имеет системные свойства, которые можно считать во время выполнения как обычные свойства объекта:&lt;/p&gt;&#xA;&lt;h4 id=&#34;у-всех-переменных-объектов-есть-системные-свойства&#34;&gt;У всех переменных (объектов) есть системные свойства&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d1%83-%d0%b2%d1%81%d0%b5%d1%85-%d0%bf%d0%b5%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d0%bd%d1%8b%d1%85-%d0%be%d0%b1%d1%8a%d0%b5%d0%ba%d1%82%d0%be%d0%b2-%d0%b5%d1%81%d1%82%d1%8c-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d0%bd%d1%8b%d0%b5-%d1%81%d0%b2%d0%be%d0%b9%d1%81%d1%82%d0%b2%d0%b0&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;__name__ - краткое имя переменной (объекта)&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;__full_name__ - полное имя переменной, включая имя модуля и пространство имен&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;__type__ - текущий тип переменной. Может изменится при некоторых операциях&lt;/p&gt;</description>
			</item>
			<item>
				<title>Условный оператор</title>
				<link>https://trust-lang.net/en/docs/ops/if/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/ops/if/</guid>
				<description>&lt;p&gt;В качестве оператора проверки условия используется синтаксическая конструкция, которая соответствует по смыслу термину «следует»,&#xA;т.е. два тире и угловая скобка &lt;strong&gt;--&amp;gt;&lt;/strong&gt;. Такая запись условного оператора очень похожа на математическую и легко объединяется&#xA;в последовательности для проверки множественных условий вида «else if».&lt;/p&gt;&#xA;&lt;p&gt;В общем случае условный оператор имеет вид: &lt;strong&gt;[&lt;/strong&gt; условие &lt;strong&gt;] --&amp;gt; {&lt;/strong&gt; действие &lt;strong&gt;};&lt;/strong&gt; или&#xA;с условием иначе &lt;strong&gt;[&lt;/strong&gt; условие &lt;strong&gt;] --&amp;gt; {&lt;/strong&gt; действие &lt;strong&gt;}, [&amp;hellip;] --&amp;gt; {&lt;/strong&gt; действие иначе &lt;strong&gt;};&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Опции и настройки компилятора</title>
				<link>https://trust-lang.net/en/docs/syntax/pragmas/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/syntax/pragmas/</guid>
				<description>&lt;h2 id=&#34;прагмы&#34;&gt;Прагмы&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d0%bf%d1%80%d0%b0%d0%b3%d0%bc%d1%8b&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=&#34;предварительное-объевления-объектов&#34;&gt;Предварительное объевления объектов&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d0%bf%d1%80%d0%b5%d0%b4%d0%b2%d0%b0%d1%80%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%be%d0%b1%d1%8a%d0%b5%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d0%be%d0%b1%d1%8a%d0%b5%d0%ba%d1%82%d0%be%d0%b2&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;@__PRAGMA_DECLARE__&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;    @__PRAGMA_DECLARE__( func(arg) );&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;импорт-нативной-функции--переменной&#34;&gt;Импорт нативной функции / переменной&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d0%b8%d0%bc%d0%bf%d0%be%d1%80%d1%82-%d0%bd%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b9-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8--%d0%bf%d0%b5%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d0%bd%d0%be%d0%b9&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;@__PRAGMA_NATIVE__&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;    // import native int printf(char *format, ...)&#xA;    @__PRAGMA_NATIVE__( printf(format:FmtChar, ...):Int32 );&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;управление-диагностикой-компилятора&#34;&gt;Управление диагностикой компилятора&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b4%d0%b8%d0%b0%d0%b3%d0%bd%d0%be%d1%81%d1%82%d0%b8%d0%ba%d0%be%d0%b9-%d0%ba%d0%be%d0%bc%d0%bf%d0%b8%d0%bb%d1%8f%d1%82%d0%be%d1%80%d0%b0&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;@__PRAGMA_DIAG__ -&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;        @__PRAGMA_DIAG__(push)&#xA;        @__PRAGMA_DIAG__(ignored, &amp;#34;-Wundef&amp;#34;)&#xA;        @__PRAGMA_DIAG__(warning, &amp;#34;-Wformat&amp;#34; , &amp;#34;-Wundef&amp;#34;, &amp;#34;-Wuninitialized&amp;#34;)&#xA;        @__PRAGMA_DIAG__(error, &amp;#34;-Wuninitialized&amp;#34;)&#xA;        @__PRAGMA_DIAG__(pop)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;@__PRAGMA_MESSAGE__&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;    #pragma message &amp;#34;Compiling &amp;#34; __FILE__ &amp;#34;...&amp;#34;&#xA;    @__PRAGMA_MESSAGE__(&amp;#34;Compiling &amp;#34;, __FILE__, &amp;#34;...&amp;#34;)&#xA;&#xA;&#xA;    #define DO_PRAGMA(x) _Pragma (#x)&#xA;    #define TODO(x) DO_PRAGMA(message (&amp;#34;TODO - &amp;#34; #x))&#xA;&#xA;    @@TODO( ... )@@ := @__PRAGMA_MESSAGE__(&amp;#34;TODO - &amp;#34;, @#...)&#xA;&#xA;    @TODO(Remember to fix this)  # note: TODO - Remember to fix this&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;@__PRAGMA_WARNING__&#xA;@__PRAGMA_ERROR__&lt;/p&gt;</description>
			</item>
			<item>
				<title>Keyword syntax (DSL)</title>
				<link>https://trust-lang.net/en/docs/syntax/dsl/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/syntax/dsl/</guid>
				<description>&lt;h3 id=&#34;features-of-associative-memory&#34;&gt;Features of associative memory&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#features-of-associative-memory&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The syntax of the &lt;em&gt;TrustLang&lt;/em&gt; language is based on strict rules without the use of keywords,&#xA;and no matter how logical it may seem, association by keywords is much easier to remember, for example, &lt;strong&gt;if&lt;/strong&gt;,&#xA;than the combination &lt;em&gt;minus minus right angle bracket&lt;/em&gt; &lt;strong&gt;&amp;ndash;&amp;gt;&lt;/strong&gt;.&#xA;Because of this, it makes sense to use not a &amp;ldquo;pure&amp;rdquo; basic syntax, but a more familiar dialect with the use of keywords.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Оценка выражения</title>
				<link>https://trust-lang.net/en/docs/ops/match/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/ops/match/</guid>
				<description>&lt;p&gt;Синтаксическая конструкция с помощью которой реализуется примерный аналог оператора &lt;em&gt;switch&lt;/em&gt; или &lt;em&gt;match&lt;/em&gt; выглядит следующим образом:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt; &lt;span style=&#34;color:#a40000&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;==&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;--&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;code&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;};&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Выполнится проверка условия $var == 1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;--&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;code&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;};&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Выполнится проверка условия ($var == 1 || $var == 2)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;...&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;--&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;code&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;default&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;};&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Ветка условия иначе&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;};&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Или тоже самое, но с использованием &lt;a href=&#34;https://trust-lang.net/en/docs/syntax/dsl/&#34;&gt;макросов из модуля dsl&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#5c35cc;font-weight:bold&#34;&gt;@match&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt; &lt;span style=&#34;color:#a40000&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;==&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#5c35cc;font-weight:bold&#34;&gt;@case&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;code&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;};&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#5c35cc;font-weight:bold&#34;&gt;@case&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;code&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;};&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#5c35cc;font-weight:bold&#34;&gt;@default&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;code&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;default&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;};&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;};&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Этот оператор очень похож на &lt;em&gt;Pattern Matching&lt;/em&gt;, но все же не является сопоставлением с образцом,&#xA;а скорее более краткая запись множественного оператора сравнения,&#xA;так как в качестве оператора для оценки могут быть использован любые имеющиеся операторы сравнения на равенство:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Операторы циклов</title>
				<link>https://trust-lang.net/en/docs/ops/while/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/ops/while/</guid>
				<description>&lt;p&gt;Для записи циклов используются оператор &lt;strong&gt;&amp;lt;-&amp;gt;&lt;/strong&gt;, который ставится между условием цикла (проверкой логического выражения) и телом цикла.&#xA;Условие цикла записывается в квадратных скобках и в зависимости от взаимного расположения цикл может быть с предусловием (while)&#xA;или постусловием (dowhile):&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;[&lt;/span&gt;условие &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;while&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;]&lt;/span&gt; &amp;lt;-&amp;gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        тело цикла &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;while&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        тело цикла &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;do&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;while&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt; &amp;lt;-&amp;gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;[&lt;/span&gt;условие &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;do&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;while&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Цикл с предусловием (&lt;strong&gt;while&lt;/strong&gt;) поддерживает конструкцию &lt;strong&gt;else&lt;/strong&gt;, которая выполняется, если условие входа в цикл не было выполнено.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;em&gt;Внимание!&lt;/em&gt;&#xA;&lt;em&gt;Это поведение отличается от аналогичных конструкций в языке Python, у которого секция &lt;strong&gt;else&lt;/strong&gt; выполняется всегда, кроме прерывания цикла по break.&lt;/em&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Менеджер контекста</title>
				<link>https://trust-lang.net/en/docs/ops/with/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/ops/with/</guid>
				<description>&lt;p&gt;Одиночный оператор захвата &lt;a href=&#34;https://trust-lang.net/en/docs/syntax/memory/&#34;&gt;ссылки и синхронизации доступа&lt;/a&gt; к объекту &amp;lsquo;&lt;strong&gt;*&lt;/strong&gt;&amp;rsquo; или &amp;lsquo;&lt;strong&gt;*(&amp;hellip;)&lt;/strong&gt;&amp;rsquo;&#xA;выполняется только для одной переменной при использовании в одном действии.&#xA;Но захват ссылки и объекта синхронизации, это относительно медленная операция и выполнять её для каждого действия над переменной не рационально.&lt;/p&gt;&#xA;&lt;p&gt;Для того, чтобы захватить одновременно сразу несколько объектов синхронизации&#xA;для выполнения группы последовательных действий используется менеджер контекста.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;**&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;val1&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ref1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;val2&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ref2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;__timeout__&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10000&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;){&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;};&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;**&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;...&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;){&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;...&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Ветка else при ошибке захвата ссылки&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# Информация об ошибке в переменной $^&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;};&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Или таже самая запись с использованием &lt;a href=&#34;https://trust-lang.net/en/docs/syntax/dsl/&#34;&gt;макросов DSL&lt;/a&gt;:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Ввозврат, прерывания и обработка ошибок</title>
				<link>https://trust-lang.net/en/docs/ops/throw/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/ops/throw/</guid>
				<description>&lt;p&gt;Последовательность команд &lt;a href=&#34;https://trust-lang.net/en/docs/ops/block/&#34;&gt;(блок кода)&lt;/a&gt; можно прервать в любом месте с помощью специальных операторов.&lt;/p&gt;&#xA;&lt;p&gt;Для этого используются две разные команды, которые условно можно назвать &lt;em&gt;положительным&lt;/em&gt; и &lt;em&gt;отрицательным&lt;/em&gt; прерыванием потока выполнения,&#xA;что примерно соответствует семантике их записи.&#xA;&amp;ldquo;Отрицательное&amp;rdquo; прерывание записывается в виде двух минусов, а &amp;ldquo;положительное&amp;rdquo; прерывание в виде двух плюсов, т.е. &lt;strong&gt;--&lt;/strong&gt; или &lt;strong&gt;++&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Оператор прерывания не возвращает никакого значения (точнее, возвращает пустое значение).&#xA;Чтобы прерывание вернуло другое значение, возвращаемые данные нужно записать между парой соответствующих символов,&#xA;т.е. &lt;strong&gt;--&lt;/strong&gt; 100 &lt;strong&gt;--&lt;/strong&gt;, что является примерным аналогом оператора &lt;code&gt;return 100;&lt;/code&gt;&#xA;в других языках программирования, а &lt;strong&gt;++&lt;/strong&gt;&amp;lsquo;Строка&amp;rsquo;&lt;strong&gt;++&lt;/strong&gt; - аналогом &lt;code&gt;return &#39;Строка&#39;;&lt;/code&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>What&#39;s wrong with the term «Artificial Intelligence»?</title>
				<link>https://trust-lang.net/en/blog/wrong-term-ai/</link>
				<pubDate>Tue, 25 Jun 2024 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/wrong-term-ai/</guid>
				<description>&lt;p&gt;Recently, there has been a lot of talk about the success of artificial intelligence (AI), although this usually means another achievement in the field of generative neural networks.&lt;/p&gt;&#xA;&lt;p&gt;And few people, speaking about AI, try to explain what they themselves understand by the term “artificial intelligence.” After all, it’s one thing to write about “AI problems,” and quite another to endow an ordinary computer algorithm with at least the rudiments of intelligence.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Simple complex programming</title>
				<link>https://trust-lang.net/en/blog/simple-complex-programming/</link>
				<pubDate>Sat, 04 May 2024 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/simple-complex-programming/</guid>
				<description>&lt;p&gt;I always pay attention to assessing the complexity of programming in a particular language. Programming is indeed not an easy task and this is perceived as a fact and usually does not require any confirmation.&lt;/p&gt;&#xA;&lt;p&gt;But the concept of “complexity” is akin to the term “heap”. For some, five coconuts is not so much, but for someone who ate one and “didn’t want any more,” this means that even one coconut will be too much for him.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Possible solution to the problem of references in programming languages</title>
				<link>https://trust-lang.net/en/blog/reference-solution/</link>
				<pubDate>Tue, 23 Apr 2024 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/reference-solution/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://habrastorage.org/webt/xl/4d/uy/xl4duyyseltgpsqlhu09_vp-zvk.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Every programmer is familiar with the concept of &amp;ldquo;reference.&amp;rdquo; This term usually refers to a small object whose main task is to provide access to another object physically located elsewhere. Because of this, references are convenient to use, they are easily copied, and they make it very easy to access the object to which the reference points, allowing access to the same data from different parts of the program.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Building blocks in programming languages</title>
				<link>https://trust-lang.net/en/blog/building-blocks/</link>
				<pubDate>Fri, 12 Jan 2024 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/building-blocks/</guid>
				<description>&lt;p&gt;Practically all programming languages are built either on the principle of similarity (to make like this one, only with its own blackjack) or to realize some new concept (modularity, purity of functional calculations, etc.). Or both at the same time.&lt;/p&gt;&#xA;&lt;p&gt;But in any case, the creator of a new programming language doesn&amp;rsquo;t take his ideas randomly out of thin air. They are still based on his previous experience, obsession with the new concept and other initial settings and constraints.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Release of the programming language TrustLang 0.4</title>
				<link>https://trust-lang.net/en/blog/release-v0.4/</link>
				<pubDate>Tue, 06 Jun 2023 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/release-v0.4/</guid>
				<description>&lt;h2 id=&#34;new-features-and-changes-in-the-syntax-of-trustlang&#34;&gt;New features and changes in the syntax of TrustLang&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#new-features-and-changes-in-the-syntax-of-trustlang&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Reworked the definition of object types using &lt;a href=&#34;https://trust-lang.net/docs/syntax/naming/&#34;&gt;prefix naming (sigils)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Interrupting the execution flow and returning can now be done for &lt;a href=&#34;https://trust-lang.net/docs/ops/throw/&#34;&gt;named code blocks&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Simplified the syntax for importing &lt;a href=&#34;https://trust-lang.net/docs/types/native/&#34;&gt;native variables and functions (C/C++)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Stabilized the syntax for &lt;a href=&#34;https://trust-lang.net/docs/ops/create/#comprehensions&#34;&gt;initializing tensor, dictionary, and function argument values&lt;/a&gt; with initial data.&lt;/li&gt;&#xA;&lt;li&gt;Added built-in macros for writing code using keywords in a &lt;a href=&#34;https://trust-lang.net/docs/syntax/dsl/&#34;&gt;DSL style&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;new-compiler-features-nlc&#34;&gt;New compiler features (nlc)&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#new-compiler-features-nlc&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Completely redesigned the macroprocessor.&lt;/li&gt;&#xA;&lt;li&gt;Reworked the compiler architecture with division into parser, macroprocessor, syntax analyzer, interpreter, and code generator.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;miscellaneous&#34;&gt;Miscellaneous&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#miscellaneous&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;The documentation &lt;a href=&#34;http://trust-lang.net&#34;&gt;website&lt;/a&gt; has been translated to &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; and made bilingual.&lt;/li&gt;&#xA;&lt;li&gt;Instead of binary builds, a section &lt;a href=&#34;https://trust-lang.net/playground/&#34;&gt;Playground and example code&lt;/a&gt; has been added to the website for small experiments.&lt;/li&gt;&#xA;&lt;li&gt;Transition to clang-16 has been completed (transition to clang-17 and newer is planned after full implementation of coroutines and support for extended floating-point number formats).&lt;/li&gt;&#xA;&lt;li&gt;The number of project contributors has increased to more than one!&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>DSL (domain-specific language) implementation with macros</title>
				<link>https://trust-lang.net/en/blog/dsl-domain-specific-language-implementation-with-macros/</link>
				<pubDate>Wed, 01 Mar 2023 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/dsl-domain-specific-language-implementation-with-macros/</guid>
				<description>&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;&#xA;&lt;p&gt;Attention!!!&lt;/p&gt;&#xA;&lt;p&gt;This article contains a description of the NewLnag syntax of the previous version.&lt;/p&gt;&#xA;&lt;p&gt;Publication source &lt;a href=&#34;https://habr.com/articles/720416/&#34;&gt;https://habr.com/articles/720416/&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&#34;https://habrastorage.org/webt/r9/4d/tu/r94dtuimvtiiuntx5xpunndaetq.jpeg&#34; alt=&#34;image&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://habr.com/company/timeweb/blog/719332/&#34;&gt;This is a translation of my own article&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The release of &lt;strong&gt;&lt;a href=&#34;https://trust-lang.net/&#34;&gt;TrustLang&lt;/a&gt;&lt;/strong&gt; language with a brand new &amp;ldquo;feature&amp;rdquo; is coming, a remodeled version of the preprocessor that allows you to extend the language syntax to create different DSL dialects using macros.&lt;/p&gt;&#xA;&lt;h3 id=&#34;what-is-it-about&#34;&gt;What is it about?&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#what-is-it-about&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/Domain-specific_language&#34;&gt;DSL&lt;/a&gt; (Subject Oriented Language) is a programming language specialized for a specific application area. It is believed that the use of DSL significantly increases the level of abstractness of the code, and this allows to develop more quickly and efficiently and greatly simplifies the solution of many problems.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Search Results</title>
				<link>https://trust-lang.net/en/search/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/search/</guid>
				<description></description>
			</item>
			<item>
				<title>Иерархия типов и обобщения</title>
				<link>https://trust-lang.net/en/docs/types/generics/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/types/generics/</guid>
				<description>&lt;p&gt;&lt;em&gt;TrustLang&lt;/em&gt; имеет закрытую систему типов. т.е. любой новый тип данных, которые создает пользователь,&#xA;обязательно должен быть наследником одного из уже существующих, т.е. расширять один из них.&#xA;Такой поход напоминает создание классов в языке Java, в котором каждый новый класс имеет в своих родителях класс Object.&lt;/p&gt;&#xA;&lt;p&gt;С помощью обобщений (generics) можно писать код, который может работать с любым совместимым типом данных.&lt;/p&gt;&#xA;&lt;p&gt;Фрагмент иерархии типов данных (&lt;a href=&#34;https://trust-lang.net/en/docs/types/strings/&#34;&gt;строки&lt;/a&gt; и &lt;a href=&#34;https://trust-lang.net/en/docs/types/numbers/&#34;&gt;числа&lt;/a&gt;,&#xA;а в скобках указаны синонимы типов):&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
