<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Language-Design on TrustLang</title>
		<link>https://trust-lang.net/en/tags/language-design/</link>
		<description>Recent content in Language-Design on TrustLang</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<lastBuildDate>Wed, 09 Sep 2026 15:37:53 +0300</lastBuildDate>
		
			<atom:link href="https://trust-lang.net/en/tags/language-design/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>About the project</title>
				<link>https://trust-lang.net/en/docs/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/</guid>
				<description>&lt;p&gt;&lt;em&gt;TrustLang&lt;/em&gt; is a programming language that is transpiled to C++ and built by an external&#xA;compiler. The key properties of the model:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Rule-based grammar, not keyword-based&lt;/strong&gt; — a simple single-pass parser and&#xA;extensibility; the usual keyword-based notation is implemented by macros&#xA;(&lt;a href=&#34;https://trust-lang.net/en/docs/syntax/&#34;&gt;Syntax&lt;/a&gt;, &lt;a href=&#34;https://trust-lang.net/en/docs/syntax/macros/&#34;&gt;Macros&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Safe memory model without a garbage collector&lt;/strong&gt; — RAII, strong/weak references, prohibition of&#xA;strong cyclic references, stack protection (&lt;a href=&#34;https://trust-lang.net/en/docs/safety/&#34;&gt;Safety and quality&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;C/C++ — first-class integration&lt;/strong&gt; — native types/functions/classes and templates, embed&#xA;inserts, linking; taken into account in every context (&lt;a href=&#34;https://trust-lang.net/en/docs/types/native/&#34;&gt;Types&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Flexible typing and type inference&lt;/strong&gt; — static and dynamic, automatic inference&#xA;(&lt;a href=&#34;https://trust-lang.net/en/docs/types/&#34;&gt;Types&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Contracts and verification&lt;/strong&gt; — pre/postconditions and assertions are checked by an SMT solver (Z3)&#xA;(&lt;a href=&#34;safety/verification/&#34;&gt;Verification&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Script-like launch&lt;/strong&gt; — a file with the shebang &lt;code&gt;#!.../trust --run&lt;/code&gt; runs directly, like a&#xA;Python script, but with full compilation: transpilation to C++, build and launch of the binary happen&#xA;automatically, no interpreter is needed.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Concept</title>
				<link>https://trust-lang.net/en/docs/syntax/concept/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/syntax/concept/</guid>
				<description>&lt;h2 id=&#34;fundamental-notions&#34;&gt;Fundamental notions&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#fundamental-notions&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The &lt;em&gt;TrustLang&lt;/em&gt; syntax has several rules common to the whole language:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The language is built on &lt;strong&gt;grammar rules&lt;/strong&gt;, not on keywords. The lexer and parser&#xA;are single-pass, simple and fast, while the usual keyword notation&#xA;(&lt;code&gt;@if&lt;/code&gt;, &lt;code&gt;@while&lt;/code&gt;, &lt;code&gt;@func&lt;/code&gt;, &amp;hellip;) is implemented on top of the base syntax through&#xA;&lt;a href=&#34;https://trust-lang.net/en/docs/syntax/macros/&#34;&gt;macros&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Terms of the source text are first recognized by the lexer and processed by the &lt;strong&gt;macro processor&lt;/strong&gt;,&#xA;and only then reach the parser. This makes it possible to modify even basic syntax constructs with macros.&lt;/li&gt;&#xA;&lt;li&gt;Statements (operators) are separated by a semicolon &lt;code&gt;;&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Code blocks are written in curly braces &lt;code&gt;{ ... }&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Any construct (including a code block) is an expression and&#xA;&lt;a href=&#34;https://trust-lang.net/en/blog/language-design/expression-statement/&#34;&gt;returns a value&lt;/a&gt;, so it can be nested&#xA;inside other expressions.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The &lt;em&gt;TrustLang&lt;/em&gt; syntax can be conventionally divided into several layers, each responsible&#xA;for its own area:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Syntax</title>
				<link>https://trust-lang.net/en/docs/syntax/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/syntax/</guid>
				<description></description>
			</item>
			<item>
				<title>Programming language design</title>
				<link>https://trust-lang.net/en/blog/language-design/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/language-design/</guid>
				<description></description>
			</item>
			<item>
				<title>Building blocks of programming languages</title>
				<link>https://trust-lang.net/en/blog/language-design/building-blocks/</link>
				<pubDate>Fri, 03 May 2024 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/language-design/building-blocks/</guid>
				<description>&lt;p&gt;As a result of the feedback on the article with &lt;a href=&#34;https://trust-lang.net/en/blog/theory/structured-programming/&#34;&gt;reflections on structured programming&lt;/a&gt;, there were many comments and disputes in the comments, for which I want to say a big thank you to everyone.&lt;/p&gt;&#xA;&lt;p&gt;And under the impression of the discussion of the previous article, I asked myself whether there exists a minimal set of lexemes, operators or syntactic constructs with the help of which one can build an arbitrary grammar for a modern general-purpose programming language?&lt;/p&gt;</description>
			</item>
			<item>
				<title>A possible solution to the problem of references in programming languages</title>
				<link>https://trust-lang.net/en/blog/language-design/reference-solution/</link>
				<pubDate>Tue, 23 Apr 2024 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/language-design/reference-solution/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://trust-lang.net/en/blog/language-design/reference-solution.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Any programmer is familiar with the notion of a &amp;ldquo;reference&amp;rdquo;. This term usually means 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 with their help it is very easy to gain access to the object that the reference refers to, and one can gain access to the same data from different places in the program.&lt;/p&gt;</description>
			</item>
			<item>
				<title>DSL (domain-specific language) implementation with macros</title>
				<link>https://trust-lang.net/en/blog/implementation/dsl-with-macros/</link>
				<pubDate>Wed, 01 Mar 2023 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/implementation/dsl-with-macros/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://trust-lang.net/en/blog/implementation/dsl.jpeg&#34; alt=&#34;Featured image&#34;&gt;&lt;/p&gt;&#xA;&#xA;&#xA;&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 syntax of the previous version of NewLang.&lt;/p&gt;&#xA;&lt;p&gt;The current version of the language syntax can be viewed &lt;a href=&#34;https://trust-lang.net/en/docs/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;The release of the &lt;strong&gt;&lt;a href=&#34;https://trust-lang.net/en/&#34;&gt;TrustLang&lt;/a&gt;&lt;/strong&gt; language is approaching with a fundamentally new &amp;ldquo;feature&amp;rdquo;, a reworked version of the preprocessor that makes it possible to extend the syntax of the language to create various DSL dialects through macros.&lt;/p&gt;&#xA;&lt;p&gt;And, as always, using the previously found lifehack Habr — a chamber of wisdom, I would like to get feedback from readers about the approach proposed below, which is planned to be implemented in the new &lt;strong&gt;TrustLang&lt;/strong&gt; preprocessor.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A new programming language</title>
				<link>https://trust-lang.net/en/blog/language-design/trust-lang/</link>
				<pubDate>Fri, 18 Feb 2022 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/language-design/trust-lang/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://trust-lang.net/en/blog/langs.jpeg&#34; alt=&#34;Featured image&#34;&gt;&lt;/p&gt;&#xA;&#xA;&#xA;&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 syntax of the previous version of NewLang.&lt;/p&gt;&#xA;&lt;p&gt;The current version of the language syntax can be viewed &lt;a href=&#34;https://trust-lang.net/en/docs/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;More than a year ago I began publishing articles describing the features of a new programming language.&#xA;Much water has flowed under the bridge since then, many ideas were tested, in the end everything changed radically several times,&#xA;and now I present to the readers a description of the pre-final version of the language and its features.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Can declarative and imperative styles of writing programs be used simultaneously?</title>
				<link>https://trust-lang.net/en/blog/programming/prog-styles-same-time/</link>
				<pubDate>Mon, 26 Jul 2021 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/programming/prog-styles-same-time/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://trust-lang.net/en/blog/programming/matrix.jpeg&#34; alt=&#34;Featured image&#34;&gt;&lt;/p&gt;&#xA;&#xA;&#xA;&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 syntax of the previous version of NewLang.&lt;/p&gt;&#xA;&lt;p&gt;The current version of the language syntax can be viewed &lt;a href=&#34;https://trust-lang.net/en/docs/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;When developing his own programming language, the author must decide what properties his language should have,&#xA;because in the end it is precisely this that will determine the purpose of the language and the features of its use.&#xA;Moreover, some properties influence the final concept of the language and its syntax so strongly&#xA;that subsequently their change is impossible in principle, or the new syntax turns out to be very tangled and incomprehensible.&#xA;Probably because of this many properties of programming languages are considered and studied as mutually exclusive.&lt;/p&gt;</description>
			</item>
			<item>
				<title>An unusual concept of the syntax of a programming language</title>
				<link>https://trust-lang.net/en/blog/language-design/unusual-prog/</link>
				<pubDate>Mon, 24 May 2021 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/language-design/unusual-prog/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://trust-lang.net/en/blog/langs.jpeg&#34; alt=&#34;Featured image&#34;&gt;&lt;/p&gt;&#xA;&#xA;&#xA;&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 syntax of the previous version of NewLang.&lt;/p&gt;&#xA;&lt;p&gt;The current version of the language syntax can be viewed &lt;a href=&#34;https://trust-lang.net/en/docs/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;I want to present to the readers&amp;rsquo; discussion a somewhat unusual concept of a programming language, which lacks the problem&#xA;inherent in almost all industrial languages — the constant increase in the complexity of the language syntax due to its natural development as new versions are released and new features are added.&#xA;This problem is described in the article &lt;a href=&#34;https://trust-lang.net/en/blog/programming/complex-prog/&#34;&gt;&amp;ldquo;Simple complex programming&amp;rdquo;&lt;/a&gt; and &lt;a href=&#34;https://trust-lang.net/en/blog/language-design/lang-final/&#34;&gt;What is the &amp;ldquo;ideal&amp;rdquo; goal of the development of programming languages?&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Simple complex programming</title>
				<link>https://trust-lang.net/en/blog/programming/complex-prog/</link>
				<pubDate>Thu, 15 Apr 2021 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/programming/complex-prog/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://trust-lang.net/en/blog/programming/complex-prog/complex-prog.jpeg&#34; alt=&#34;Featured image&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Once again I saw an article on Habr about the complicated business called &amp;ldquo;programming&amp;rdquo;.&#xA;And the fact that programming really is not a simple business is perceived as a fact and usually does not require any confirmation.&lt;/p&gt;&#xA;&lt;p&gt;But the notion of &amp;ldquo;complexity&amp;rdquo; is akin to the term &amp;ldquo;heap&amp;rdquo;.&#xA;For someone, five coconuts is not a heap, and someone ate one and &amp;ldquo;does not want any more&amp;rdquo; — so for him even a single coconut will be a lot.&lt;/p&gt;</description>
			</item>
			<item>
				<title>What is the &#34;ideal&#34; goal of the development of programming languages?</title>
				<link>https://trust-lang.net/en/blog/language-design/lang-final/</link>
				<pubDate>Wed, 07 Apr 2021 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/language-design/lang-final/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://trust-lang.net/en/blog/language-design/lang-final/lang-final.jpeg&#34; alt=&#34;Featured image&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Information about the release of a new version of one or another programming language appears with constant regularity.&#xA;And with each new version its capabilities expand, new syntactic constructs or other improvements are added.&lt;/p&gt;&#xA;&lt;p&gt;And this very much resembles the development of technology, as in any other field of engineering.&#xA;When, with each successive stage, the creations being made are perfected.&#xA;Faster, higher, stronger … and at the same time significantly more complex.&lt;/p&gt;</description>
			</item>
			<item>
				<title>International programming in natural languages</title>
				<link>https://trust-lang.net/en/blog/language-design/inter-prog/</link>
				<pubDate>Sat, 05 Dec 2020 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/language-design/inter-prog/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://trust-lang.net/en/blog/langs.jpeg&#34; alt=&#34;Featured image&#34;&gt;&lt;/p&gt;&#xA;&#xA;&#xA;&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 syntax of the previous version of NewLang.&lt;/p&gt;&#xA;&lt;p&gt;The current version of the language syntax can be viewed &lt;a href=&#34;https://trust-lang.net/en/docs/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Lately I often come across articles about new programming languages,&#xA;as well as various ratings and forecasts related to the popularity of computer languages.&lt;/p&gt;&#xA;&lt;p&gt;New tooling also announces itself,&#xA;which in its work uses its own formats for describing configuration files or sequences of executed commands,&#xA;which also brings them very close to the notion of a &amp;ldquo;programming language&amp;rdquo;.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
