<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Domain-Specific-Languages on ahmed şeref's blog</title><link>/tags/domain-specific-languages/</link><description>Recent content in Domain-Specific-Languages on ahmed şeref's blog</description><generator>Hugo</generator><language>tr</language><lastBuildDate>Sat, 11 Oct 2025 14:11:29 +0300</lastBuildDate><atom:link href="/tags/domain-specific-languages/index.xml" rel="self" type="application/rss+xml"/><item><title>Domain Specific Languages #3 | From Syntax to Structure: Generating Data Models</title><link>/post/dsl-part-3-from-syntax-to-structure/</link><pubDate>Sat, 11 Oct 2025 00:00:00 +0000</pubDate><guid>/post/dsl-part-3-from-syntax-to-structure/</guid><description>&lt;h2 id="intro--quick-recap">Intro &amp;amp; Quick Recap&lt;/h2>
&lt;p>In the previous posts:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="/post/dsl-part-1/">Part #1 | Introduction&lt;/a>&lt;/strong> → We defined the problem.&lt;/li>
&lt;li>&lt;strong>&lt;a href="/post/dsl-part-2/">Part #2 | Rapid DSL Design&lt;/a>&lt;/strong> → We designed a minimal DSL syntax.&lt;/li>
&lt;/ul>
&lt;p>Now that we have a working syntax, it’s time to represent it in code.&lt;/p>
&lt;h2 id="why-data-structures-matter">Why Data Structures Matter&lt;/h2>
&lt;p>The DSL syntax is just text — it needs structure before it becomes useful.
That’s where &lt;strong>data models&lt;/strong> come in. They serve as the backbone of the language, bridging the gap between the written syntax and the C# code we’ll eventually generate.&lt;/p></description></item><item><title>Domain Specific Languages #2 | From Blank Page to Syntax: Rapid DSL Design in Action</title><link>/post/dsl-part-2-from-blank-to-syntax/</link><pubDate>Mon, 11 Aug 2025 00:00:00 +0000</pubDate><guid>/post/dsl-part-2-from-blank-to-syntax/</guid><description>&lt;h2 id="the-minimal-type-syntax-core-concepts">The Minimal Type Syntax: Core Concepts&lt;/h2>
&lt;p>&lt;a href="/post/dsl-part-2-from-blank-to-syntax/img/ChatGPT-Image-Aug-12-2025-12_38_28-AM.png">&lt;figure> &lt;img src="img/ChatGPT-Image-Aug-12-2025-12_38_28-AM.jpg" width="100%" alt="Image credit: ChatGPT (OpenAI)." /> &lt;figcaption>&lt;/figcaption> &lt;/figure>&lt;/a>&lt;/p>
&lt;!-- ![ChatGPT Image Aug 12, 2025, 12_38_28 AM.png](img/ChatGPT-Image-Aug-12-2025-12_38_28-AM.png) -->
&lt;!--
[&lt;img src="img/ChatGPT-Image-Aug-12-2025-12_38_28-AM.png" width="250" alt="Image credit: ChatGPT (OpenAI)."/>](img/ChatGPT-Image-Aug-12-2025-12_38_28-AM.png) -->
&lt;p>We will design a minimal and clean type syntax heavily influenced by GoLang &lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">Book {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl"> Title text
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl"> Author text
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">4&lt;/span>&lt;span class="cl"> Pages number
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">5&lt;/span>&lt;span class="cl"> Lendable yn
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">6&lt;/span>&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Let&amp;rsquo;s split the text into TOKENS. A token is a group of characters. The lexer first reads and groups the character stream into semi-meaningful groups. Then the parser uses these to generate a syntax tree.&lt;/p></description></item><item><title>Domain Specific Languages #1 | Introduction</title><link>/post/dsl-part-1/</link><pubDate>Mon, 04 Aug 2025 00:00:00 +0000</pubDate><guid>/post/dsl-part-1/</guid><description>&lt;p>I don&amp;rsquo;t want to speak too soon, but I&amp;rsquo;ve addressed a similar issue in .NET and started developing a simple DSL to tackle it.
Currently, it offers the bare minimum for C# code generation with basic MSBuild integration.&lt;/p>
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/ilAXaPOWtP4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video">&lt;/iframe>
 &lt;/div>

&lt;p>The development is private for now, and the project is named &lt;strong>Typr&lt;/strong>. (I considered &lt;strong>Type-R&lt;/strong> as well, but opted for the shorter name.)&lt;/p></description></item></channel></rss>