<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Language on Shivanand Velmurugan — Product leader. Systems thinker.</title>
		<link>https://shiv.me/tags/language/</link>
		<description>Recent content in Language on Shivanand Velmurugan — Product leader. Systems thinker.</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
			<copyright>© Shivanand Velmurugan</copyright>
		
		
			<lastBuildDate>Sun, 05 Jan 2025 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://shiv.me/tags/language/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Structed Object Definition Language (SODL)</title>
				<link>https://shiv.me/projects/sodl/</link>
				<pubDate>Sun, 05 Jan 2025 00:00:00 +0000</pubDate>
				<guid>https://shiv.me/projects/sodl/</guid>
				<description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;The Structured Object Definition Language (SODL) is a domain-specific language designed for defining data structures, relationships, and constraints in a clear and organized manner. Files written in SODL use the &lt;code&gt;.sodl&lt;/code&gt; extension, reflecting the language&amp;rsquo;s focus on structured object definitions. SODL provides a rich set of constructs that allow developers to model complex data relationships while maintaining type safety and data integrity.&lt;/p&gt;&#xA;&lt;p&gt;The name &amp;ldquo;Structured Object Definition Language&amp;rdquo; reflects the language&amp;rsquo;s core purpose: it provides a structured way to define objects and their relationships in a data model. The &amp;ldquo;Structured&amp;rdquo; aspect emphasizes its systematic approach to organizing data definitions, while &amp;ldquo;Object Definition&amp;rdquo; highlights its primary focus on defining data objects and their properties.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Working with large C codebases</title>
				<link>https://shiv.me/posts/2016/working-with-large-c-codebases/</link>
				<pubDate>Thu, 29 Dec 2016 00:00:00 +0000</pubDate>
				<guid>https://shiv.me/posts/2016/working-with-large-c-codebases/</guid>
				<description>&lt;h3 id=&#34;searching-for-symbols&#34;&gt;Searching for symbols&lt;/h3&gt;&#xA;&lt;p&gt;The product that I work on, has over 22 million lines of source &amp;ndash; most of it a nightmare. I use vim as my editor of choice &lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. Both cscope and ctags (integrated into vim), allow me to quickly move between files and lookup definitions of symbols, and help in understanding the challenge-du-jour.&lt;/p&gt;&#xA;&lt;p&gt;Throw in fuzzy find capabilities of the most awesome &lt;a href=&#34;https://github.com/kien/ctrlp.vim&#34;&gt;Ctrl+p plugin&lt;/a&gt;, and vim becomes the best &amp;lsquo;IDE&amp;rsquo; out there!&lt;/p&gt;</description>
			</item>
			<item>
				<title>Elixir - A crash course</title>
				<link>https://shiv.me/posts/2016/elixir-crash-course/</link>
				<pubDate>Sun, 06 Nov 2016 00:00:00 +0000</pubDate>
				<guid>https://shiv.me/posts/2016/elixir-crash-course/</guid>
				<description>&lt;p&gt;These are notes from the &lt;a href=&#34;http://elixir-lang.org/getting-started/&#34;&gt;official Elixir documentation&lt;/a&gt;. It a quick walk-through of the unique features in Elixir for someone coming from years of C &amp;mdash; a way for me to remember and use as a reference.&lt;/p&gt;&#xA;&lt;h2 id=&#34;summary&#34;&gt;Summary&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#types&#34;&gt;Types&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#operators&#34;&gt;Operators&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#control-structures&#34;&gt;Control Structures&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;types&#34;&gt;Types&lt;/h2&gt;&#xA;&lt;h3 id=&#34;atoms&#34;&gt;Atoms&lt;/h3&gt;&#xA;&lt;p&gt;Named contants with a value. &lt;code&gt;true&lt;/code&gt; and &lt;code&gt;false&lt;/code&gt; are atoms.&lt;/p&gt;&#xA;&lt;h3 id=&#34;strings&#34;&gt;Strings&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Supports unicode string natively! It&amp;rsquo;s about time. &lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;&#xA;&lt;li&gt;You can concatenate strings using &lt;code&gt;&amp;lt;&amp;gt;&lt;/code&gt;. &lt;code&gt;&amp;quot;hello&amp;quot; &amp;lt;&amp;gt; &amp;quot; world&amp;quot;&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;anonymous-functions&#34;&gt;Anonymous functions&lt;/h3&gt;&#xA;&lt;p&gt;Native support for closures &amp;ndash; called anonymous functions. Also, functions are first-class, i.e. can be passed as arguments into other functions. Special syntax is required to invoke ananymous functions.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
