<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Syntax on TrustLang</title>
		<link>https://trust-lang.net/ru/tags/syntax/</link>
		<description>Recent content in Syntax on TrustLang</description>
		<generator>Hugo</generator>
		<language>ru</language>
		
		
		
		
			<lastBuildDate>Wed, 09 Sep 2026 15:37:53 +0300</lastBuildDate>
		
			<atom:link href="https://trust-lang.net/ru/tags/syntax/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Концепция</title>
				<link>https://trust-lang.net/ru/docs/syntax/concept/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/docs/syntax/concept/</guid>
				<description>&lt;h2 id=&#34;фундаментальные-понятия&#34;&gt;Фундаментальные понятия&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d1%84%d1%83%d0%bd%d0%b4%d0%b0%d0%bc%d0%b5%d0%bd%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d0%bf%d0%be%d0%bd%d1%8f%d1%82%d0%b8%d1%8f&#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;ul&gt;&#xA;&lt;li&gt;Язык построен на &lt;strong&gt;грамматических правилах&lt;/strong&gt;, а не на ключевых словах. Лексер и парсер&#xA;получаются однопроходными, простыми и быстрыми, а привычная запись с ключевыми словами&#xA;(&lt;code&gt;@if&lt;/code&gt;, &lt;code&gt;@while&lt;/code&gt;, &lt;code&gt;@func&lt;/code&gt;, &amp;hellip;) реализуется поверх базового синтаксиса через&#xA;&lt;a href=&#34;https://trust-lang.net/ru/docs/syntax/macros/&#34;&gt;макросы&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Термины исходного текста сначала распознаются лексером и обрабатываются &lt;strong&gt;макропроцессором&lt;/strong&gt;,&#xA;и только затем попадают в парсер. Это позволяет с помощью макросов модифицировать даже базовые синтаксические конструкции.&lt;/li&gt;&#xA;&lt;li&gt;Инструкции (операторы) разделяются точкой с запятой &lt;code&gt;;&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Блоки кода записываются в фигурных скобках &lt;code&gt;{ ... }&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Любая конструкция (в том числе блок кода) является выражением и&#xA;&lt;a href=&#34;https://trust-lang.net/ru/blog/language-design/expression-statement/&#34;&gt;возвращает значение&lt;/a&gt;, поэтому её можно вкладывать&#xA;в другие выражения.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Синтаксис &lt;em&gt;TrustLang&lt;/em&gt; можно условно разделить на несколько слоёв, каждый из которых отвечает&#xA;за свою область:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Синтаксис</title>
				<link>https://trust-lang.net/ru/docs/syntax/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/docs/syntax/</guid>
				<description></description>
			</item>
			<item>
				<title>Именование объектов</title>
				<link>https://trust-lang.net/ru/docs/syntax/naming/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/docs/syntax/naming/</guid>
				<description>&lt;p&gt;В качестве имен объектов и названий типов данных можно использовать буквы, цифры и знаки подчеркивания в любых комбинациях, при условии, что первый символ имени не является цифрой.&lt;/p&gt;&#xA;&lt;p&gt;Имя не может состоять из единственного знака подчеркивания, так как это специальный термин, который используется в служебных целях.&lt;/p&gt;&#xA;&lt;p&gt;Для избежания коллизий имен можно использовать &lt;a href=&#34;https://trust-lang.net/ru/docs/syntax/hierarchy/&#34;&gt;пространство имен&lt;/a&gt;&#xA;и &lt;a href=&#34;https://trust-lang.net/ru/docs/syntax/hierarchy/&#34;&gt;модульную структуру кода&lt;/a&gt;, которые &lt;em&gt;TrustLang&lt;/em&gt; поддерживает одновременно.&#xA;Допускается &lt;a href=&#34;https://trust-lang.net/ru/docs/types/funcs/#overriding&#34;&gt;переопределение&lt;/a&gt; и &lt;a href=&#34;https://trust-lang.net/ru/docs/types/funcs/#overload&#34;&gt;перегрузка&lt;/a&gt; функций.&lt;/p&gt;&#xA;&lt;p&gt;При &lt;a href=&#34;https://trust-lang.net/ru/docs/operators/create/&#34;&gt;создании объектов&lt;/a&gt; имя идентификатора может содержать один или несколько специальных символов — квалификаторов&#xA;(или &lt;a href=&#34;https://en.wikipedia.org/wiki/Sigil_%28computer_programming%29&#34;&gt;сигилов&lt;/a&gt;), за которыми закреплено определённое значение.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Макросы и DSL</title>
				<link>https://trust-lang.net/ru/docs/syntax/macros/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/docs/syntax/macros/</guid>
				<description>&lt;p&gt;Макросы в &lt;strong&gt;TrustLang&lt;/strong&gt; являются элементами метапрограммирования.&lt;/p&gt;&#xA;&lt;p&gt;Макрос — это один или несколько последовательных терминов, которые заменяются на другой термин&#xA;или на целую синтаксическую конструкцию (последовательность лексем) и&#xA;выступают в роли специализированных регулярных выражений для поиска и замены последовательностей терминов.&lt;/p&gt;&#xA;&lt;p&gt;Макросы обрабатываются &lt;strong&gt;лексером&lt;/strong&gt; перед отправкой токенов в парсер для синтаксического анализа,&#xA;что позволяет изменять даже синтаксис языка, например, превратить синтаксис &lt;em&gt;TrustLang&lt;/em&gt; на основе грамматических правил&#xA;в более привычный синтаксис на основе ключевых слов,&#xA;так как такой текст легче воспринимается при последующем чтении исходного кода программы.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Иерархия кода</title>
				<link>https://trust-lang.net/ru/docs/syntax/hierarchy/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/docs/syntax/hierarchy/</guid>
				<description>&lt;h2 id=&#34;пространства-имён&#34;&gt;Пространства имён&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d0%bf%d1%80%d0%be%d1%81%d1%82%d1%80%d0%b0%d0%bd%d1%81%d1%82%d0%b2%d0%b0-%d0%b8%d0%bc%d1%91%d0%bd&#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; поддерживает пространства имён; разделитель, как и в C++, — двойное двоеточие &lt;code&gt;::&lt;/code&gt;.&#xA;Область имён может быть указана как для отдельного идентификатора, так и для целого&#xA;&lt;a href=&#34;https://trust-lang.net/ru/docs/operators/#block&#34;&gt;блока кода&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;В отличие от &lt;code&gt;namespace&lt;/code&gt; в C++, области имён в &lt;em&gt;TrustLang&lt;/em&gt; служат не только для организации кода&#xA;логическими группами и избежания конфликтов имён: имя, в котором явно указана область имён, относится&#xA;к &lt;strong&gt;статическим&lt;/strong&gt; объектам (память под которые выделяется на этапе компиляции).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Управление памятью и совместный доступ</title>
				<link>https://trust-lang.net/ru/docs/safety/memory/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/docs/safety/memory/</guid>
				<description>&lt;p&gt;Ни один способ управления памятью не является лучшим или универсальным: в разных условиях выигрывают разные подходы:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ручное управление памятью может делать всё, что угодно, кроме одного — гарантировать отсутствие ошибок.&lt;/li&gt;&#xA;&lt;li&gt;Анализ владения и заимствования на этапе компиляции позволяет доказать корректность кода без дополнительных&#xA;рантайм-проверок, но некоторые сценарии и алгоритмы не могут быть доказаны статически на этапе компиляции.&lt;/li&gt;&#xA;&lt;li&gt;Подсчёт сильных и слабых ссылок во время выполнения удобен для разделяемого владения, но имеет ненулевую&#xA;стоимость и не защищает от циклических и перекрёстных зависимостей.&lt;/li&gt;&#xA;&lt;li&gt;Сборка мусора упрощает работу со сложными циклическими структурами, но имеет самые дорогие накладные&#xA;расходы и недетерминированное выполнение.&lt;/li&gt;&#xA;&lt;li&gt;Ни один из перечисленных способов управления памятью не включает в себя вопросы межпотоковой&#xA;синхронизации доступа к памяти.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Поэтому выбирать только один способ управления памятью в языке программирования — это значит заранее ограничить его возможности и добавить лишние накладные расходы. Из этих соображений концепция управления памятью &lt;em&gt;TrustLang&lt;/em&gt; допускает расширение реализации модели управления памятью с минимальным влиянием на синтаксис языка и определяется требованиями (гарантиями) для работы с памятью.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Если вы думаете, что знаете, чем отличается «Expression» от «Statement», то, скорее всего, вы ошибаетесь</title>
				<link>https://trust-lang.net/ru/blog/language-design/expression-statement/</link>
				<pubDate>Sun, 02 Aug 2026 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/blog/language-design/expression-statement/</guid>
				<description>&lt;p&gt;Я занимаюсь изучением &lt;a href=&#34;https://trust-lang.net/ru/blog/comparison/cpp-rust-vs-python/&#34;&gt;синтаксиса языков программирования&lt;/a&gt; и пытаюсь отделить фундаментальные закономерности от исторических случайностей. Одна из таких случайностей - почти повсеместное использование терминов &lt;strong&gt;выражение&lt;/strong&gt; (expression) и &lt;strong&gt;инструкция&lt;/strong&gt; (statement) при описании и классификации синтаксиса языков программирования.&lt;/p&gt;&#xA;&lt;p&gt;Интуитивно кажется, что &lt;code&gt;2 + 2&lt;/code&gt; и &lt;code&gt;if (x) { foo(); }&lt;/code&gt; - это совершенно разные сущности, но при более глубоком анализе оказывается, что подобное разделение искусственное и возникло из-за архитектурных особенностей вычислительных машин почти полвека назад и с тех пор просто «переходит» из языка в язык.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Почему C&#43;&#43; или Rust никогда не смогут заменить Python</title>
				<link>https://trust-lang.net/ru/blog/comparison/cpp-rust-vs-python/</link>
				<pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/blog/comparison/cpp-rust-vs-python/</guid>
				<description>&lt;p&gt;На Хабре периодически появляются статьи с анализом феномена Python - как один из самых медленных языков программирования стал королём нейросетей, и ответ всегда один: за счёт простого синтаксиса и развитой экосистемы. Но экосистема у C++ значительно больше и богаче, значит, дело не в ней и остаётся только синтаксис. А если проблема действительно в синтаксисе, тогда должен быть ответ и на другой вопрос: почему C++ &lt;strong&gt;не&lt;/strong&gt; стал основой для исследований в этой (или любой другой) области?&lt;/p&gt;</description>
			</item>
			<item>
				<title>Строительные блоки языков программирования</title>
				<link>https://trust-lang.net/ru/blog/language-design/building-blocks/</link>
				<pubDate>Fri, 03 May 2024 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/blog/language-design/building-blocks/</guid>
				<description>&lt;p&gt;В результате обратной связи по статье с &lt;a href=&#34;https://trust-lang.net/ru/blog/theory/structured-programming/&#34;&gt;размышлениями о структурном программировании&lt;/a&gt;, было много отзывов и споров в комментариях, за которые я хочу сказать всем большое спасибо.&lt;/p&gt;&#xA;&lt;p&gt;И под впечатлениями от обсуждения предыдущей статьи я задался вопросом, а существует ли минимальный набор лексем, операторов или синтаксических конструкций, с помощью которых можно построить произвольную грамматику для современного языка программирования общего назначения?&lt;/p&gt;&#xA;&lt;h2 id=&#34;ведение&#34;&gt;Ведение&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#%d0%b2%d0%b5%d0%b4%d0%b5%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;/p&gt;</description>
			</item>
			<item>
				<title>Нюансы разработки парсера для своего языка программирования</title>
				<link>https://trust-lang.net/ru/blog/implementation/parser-nuances/</link>
				<pubDate>Wed, 29 Mar 2023 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/blog/implementation/parser-nuances/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://trust-lang.net/ru/blog/langs.jpeg&#34; alt=&#34;КДПВ&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Недавно прочитал на Хабре статью &lt;a href=&#34;https://habr.com/ru/post/723400/&#34;&gt;Свой язык, или как я устал от ассемблера и С&lt;/a&gt;, и невольно взглядом зацепился за один абзац:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Я решил не сильно париться, поэтому использовал библиотеку parglare. Она очень легкая и удобная, всем рекомендую. Для описания синтаксиса парсер принимает строку в соответствующем формате, использует регулярные выражения (не надо осуждать регулярки, они всесильны!).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;В результате решил опубликовать статью на основе своих старых записей еще с тех времен, когда идея &lt;a href=&#34;https://trust-lang.net/&#34;&gt;TrustLang&lt;/a&gt; до конца еще не выкристаллизовалась, но уже хотелось писать реальный код и тестировать разные концепции.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Вариант реализации DSL (domain-specific language) с помощью макросов</title>
				<link>https://trust-lang.net/ru/blog/implementation/dsl-with-macros/</link>
				<pubDate>Wed, 01 Mar 2023 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/blog/implementation/dsl-with-macros/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://trust-lang.net/ru/blog/implementation/dsl.jpeg&#34; alt=&#34;КДПВ&#34;&gt;&lt;/p&gt;&#xA;&#xA;&#xA;&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;&#xA;&lt;p&gt;Внимание!!!&lt;/p&gt;&#xA;&lt;p&gt;Данная статья содержит описание синтаксиса NewLang предыдущей версии.&lt;/p&gt;&#xA;&lt;p&gt;Актуальную версию синтаксиса языка можно посмотреть &lt;a href=&#34;https://trust-lang.net/ru/docs/&#34;&gt;тут&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Близится релиз языка &lt;strong&gt;&lt;a href=&#34;https://trust-lang.net/&#34;&gt;TrustLang&lt;/a&gt;&lt;/strong&gt; с принципиальной новой «фишкой», переделанным вариантом препроцессора, который позволяет расширять синтаксиса языка для создания различных диалектов DSL за счет макросов.&lt;/p&gt;&#xA;&lt;p&gt;И, как всегда, используя ранее найденный лайфхак &lt;a href=&#34;https://habr.com/ru/post/539674/&#34;&gt;Хабр - ума палата&lt;/a&gt;, хотелось бы получить от читателей обратную связь насчет предлагаемого ниже подхода, который планируется к реализации в новом препроцессоре &lt;strong&gt;TrustLang&lt;/strong&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Новый язык программирования</title>
				<link>https://trust-lang.net/ru/blog/language-design/trust-lang/</link>
				<pubDate>Fri, 18 Feb 2022 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/blog/language-design/trust-lang/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://trust-lang.net/ru/blog/langs.jpeg&#34; alt=&#34;КДПВ&#34;&gt;&lt;/p&gt;&#xA;&#xA;&#xA;&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;&#xA;&lt;p&gt;Внимание!!!&lt;/p&gt;&#xA;&lt;p&gt;Данная статья содержит описание синтаксиса NewLang предыдущей версии.&lt;/p&gt;&#xA;&lt;p&gt;Актуальную версию синтаксиса языка можно посмотреть &lt;a href=&#34;https://trust-lang.net/ru/docs/&#34;&gt;тут&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Более года назад я начал публикацию статей с описанием особенностей нового языка программирования.&#xA;С тех пор утекло много воды, было протестировано множество идей, в итоге несколько раз все поменялось кардинальным образом&#xA;и сейчас представляю на суд читателей описание предфинальной версии языка и его особенностей.&lt;/p&gt;&#xA;&lt;p&gt;Данная статья предназначена в первую очередь для проверки основных концепций нового языка программирования, а также для получения обратной связи от читателей Хабра.&#xA;Ведь согласно наблюдению &lt;a href=&#34;https://habr.com/ru/post/539674/&#34;&gt;Хабр-ума палата&lt;/a&gt;, не замыленный взгляд со стороны очень сильно помогает в проработке новых идей.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Необычная концепция синтаксиса языка программирования</title>
				<link>https://trust-lang.net/ru/blog/language-design/unusual-prog/</link>
				<pubDate>Mon, 24 May 2021 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/blog/language-design/unusual-prog/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://trust-lang.net/ru/blog/langs.jpeg&#34; alt=&#34;КДПВ&#34;&gt;&lt;/p&gt;&#xA;&#xA;&#xA;&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;&#xA;&lt;p&gt;Внимание!!!&lt;/p&gt;&#xA;&lt;p&gt;Данная статья содержит описание синтаксиса NewLang предыдущей версии.&lt;/p&gt;&#xA;&lt;p&gt;Актуальную версию синтаксиса языка можно посмотреть &lt;a href=&#34;https://trust-lang.net/ru/docs/&#34;&gt;тут&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Хочу представить на обсуждение читателей немного необычный концепт языка программирования, в котором отсутствует проблема,&#xA;присущая практически всем промышленным языкам -  постоянное увеличение сложности синтаксиса языка из-за его естественного развития по мере выхода новых версий и добавления новых фич.&#xA;Эта проблема описана в статье &lt;a href=&#34;https://trust-lang.net/ru/blog/programming/complex-prog/&#34;&gt;&amp;ldquo;Простое сложное программирование&amp;rdquo;&lt;/a&gt; и &lt;a href=&#34;https://trust-lang.net/ru/blog/language-design/lang-final/&#34;&gt;Какая &amp;ldquo;идеальная&amp;rdquo; цель развития у языков программирования?&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;После нескольких экспериментов с синтаксисом, хочется проверить выработанную идею на широкой аудитории &lt;a href=&#34;https://habr.com/ru/companies/timeweb/articles/558738/&#34;&gt;Хабра&lt;/a&gt;, которая как нельзя лучше подходит для этих целей.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Интернациональное программирование на естественных языках</title>
				<link>https://trust-lang.net/ru/blog/language-design/inter-prog/</link>
				<pubDate>Sat, 05 Dec 2020 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/ru/blog/language-design/inter-prog/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://trust-lang.net/ru/blog/langs.jpeg&#34; alt=&#34;КДПВ&#34;&gt;&lt;/p&gt;&#xA;&#xA;&#xA;&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;&#xA;&lt;p&gt;Внимание!!!&lt;/p&gt;&#xA;&lt;p&gt;Данная статья содержит описание синтаксиса NewLang предыдущей версии.&lt;/p&gt;&#xA;&lt;p&gt;Актуальную версию синтаксиса языка можно посмотреть &lt;a href=&#34;https://trust-lang.net/ru/docs/&#34;&gt;тут&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;В последнее время часто попадаются на глаза статьи о новых языках программирования,&#xA;а так же различные рейтинги и прогнозы, связанные с популярностью компьютерных языков.&lt;/p&gt;&#xA;&lt;p&gt;Заявляют о себе и новые &lt;a href=&#34;https://habr.com/ru/company/testo_lang/blog/521682/&#34;&gt;инструментальные средства&lt;/a&gt;,&#xA;которые в своей работе используют  собственные форматы описания конфигурационных файлов или последовательности выполняемых команд,&#xA;которые так же очень сильно приближает их к понятию «язык программирования».&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
