<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pavitra Golchha</title>
    <description>The latest articles on DEV Community by Pavitra Golchha (@pavi2410).</description>
    <link>https://dev.to/pavi2410</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F82526%2F56dfd350-20c4-4d69-82d0-17cf550bdd16.png</url>
      <title>DEV Community: Pavitra Golchha</title>
      <link>https://dev.to/pavi2410</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pavi2410"/>
    <language>en</language>
    <item>
      <title>Apple M1 Logo in CSS</title>
      <dc:creator>Pavitra Golchha</dc:creator>
      <pubDate>Mon, 14 Jun 2021 17:52:46 +0000</pubDate>
      <link>https://dev.to/pavi2410/apple-m1-logo-in-css-11i7</link>
      <guid>https://dev.to/pavi2410/apple-m1-logo-in-css-11i7</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Please set the scale to 0.5x for better display&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/pavi2410/embed/xxqQeGd?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
      <category>css</category>
      <category>webdev</category>
      <category>html</category>
    </item>
    <item>
      <title>My experience in building my own programming languages for fun and profit!</title>
      <dc:creator>Pavitra Golchha</dc:creator>
      <pubDate>Fri, 02 Oct 2020 11:17:45 +0000</pubDate>
      <link>https://dev.to/pavi2410/my-experience-in-building-my-own-programming-languages-for-fun-and-profit-55f2</link>
      <guid>https://dev.to/pavi2410/my-experience-in-building-my-own-programming-languages-for-fun-and-profit-55f2</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Moved to &lt;a href="https://pavi2410.me/blog/my-experience-in-building-my-own-programming-languages-for-fun-and-profit" rel="noopener noreferrer"&gt;https://pavi2410.me/blog/my-experience-in-building-my-own-programming-languages-for-fun-and-profit&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/pavi2410" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F82526%2F56dfd350-20c4-4d69-82d0-17cf550bdd16.png" alt="pavi2410"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/pavi2410/replisp-another-new-language-8l5" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;REPLisp: Another New Language!?&lt;/h2&gt;
      &lt;h3&gt;Pavitra Golchha ・ Nov 25 '18&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#repl&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#lisp&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#language&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#interpreter&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;It's going to be two years now since I created my own programming language called 'REPLisp' and posted about it here. It was my first of a kind experience with no prior knowledge in building one. &lt;a href="https://glitch.com/~the-super-tiny-compiler" rel="noopener noreferrer"&gt;The Super Tiny Compiler tutorial by Jamie&lt;/a&gt; was where I got started. This is an introduction to writing your own compiler in JavaScript from scratch. It taught me the different phases of compilation - tokenising, lexical analysis, parsing, evaluation; it taught me about AST (Abstract Syntax Tree); it also taught me about code generation which takes an AST and generates a valid JS code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Repl.it's PL JAM
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.repl.it%2Fimages%2Fjam.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.repl.it%2Fimages%2Fjam.png" alt="https://repl.it/jam"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We believe we need fresh ideas in programming! We're sponsoring a team with the most creative ideas and prototype to build their dream language.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/replit/status/1285634417176776710?s=20" rel="noopener noreferrer"&gt;https://twitter.com/replit/status/1285634417176776710?s=20&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;During the mid-late of August this year, @replit organised a programming language jam/hackathon, which gave me a brilliant opportunity to fulfil my dream of creating my own programming language from absolute scratch and is not a Lisp dialect 😅.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;del&gt;FateLang&lt;/del&gt; FloLang - Our Jam Submission
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fflolang.tech%2FFloLangLogo.png" class="article-body-image-wrapper"&gt;&lt;img title="FloLang logo" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fflolang.tech%2FFloLangLogo.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;center&gt;[flolang.tech](http://flolang.tech)&lt;/center&gt;

&lt;p&gt;As part of the jam, we (&lt;a href="https://repl.it/@matthewproskils" rel="noopener noreferrer"&gt;Matthew&lt;/a&gt;, &lt;a href="https://repl.it/@PowerCoder" rel="noopener noreferrer"&gt;Lukas&lt;/a&gt;, and I) began working on creating a language collaboratively using repl.it &amp;amp; Discord despite the day and night difference in our timezones. They are excellent in what they do and have a great knowledge of programming. This made it easier for me to collaborate and share my ideas with them. They are also very creative - they have created a Discord bot which runs our REPL, developed the FloShell for our lang's website, and most importantly, came up with the name of the lang (the toughest part 😅).&lt;/p&gt;

&lt;p&gt;So, coming to the language part, the language we created is called 'FloLang' (formerly, FateLang). It is an interpreted language written in pure JS. The language is inspired by mostly JS, Python and Koltin. We took the concise syntax of Kotlin and the dynamic typing of JS and merged them into our lang. We use &lt;a href="https://pegjs.org/" rel="noopener noreferrer"&gt;PegJS parser&lt;/a&gt; to parse the syntax using PEG (Parsing Expression Grammar) syntax (&lt;em&gt;Yeah! a language to define a language!&lt;/em&gt;). We used to write the parser by hand but that proved to be tedious and error-prone. Further, we plan to switch to using &lt;a href="https://ohmlang.github.io/" rel="noopener noreferrer"&gt;Ohm&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;FloLang was made with simplicity in mind. We didn’t want it to be overly complicated like other languages. We tried to add unique touches to it, one of which is "whitespace manipulators". It is an extension to strings which allows FloLang programmers to add n number of whitespaces easily. It is useful in managing long spaces, indenting texts and IDK :D&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;set socialDistancing = "hello\s(10)world"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This snippet will create a string in which "hello" and "world" are separated by 10 spaces, like so:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hello          world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You can even try our lang right here:&lt;/p&gt;


&lt;div class="ltag__replit"&gt;
  &lt;iframe height="550px" src="https://repl.it/@floLang/FloLang?lite=true"&gt;&lt;/iframe&gt;
&lt;/div&gt;



&lt;p&gt;Learn more about FloLang in the &lt;a href="https://repl.it/talk/challenge/FloLang/51627" rel="noopener noreferrer"&gt;replit's lang jam submission post&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ending notes
&lt;/h2&gt;

&lt;p&gt;To encourage anyone who is curious about making their own programming language, I am leaving links to some of the resources which I gathered during my journey (not exhaustive).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://astexplorer.net/" rel="noopener noreferrer"&gt;AST Explorer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cs.lmu.edu/~ray/notes/syntaxdesign/" rel="noopener noreferrer"&gt;Syntax Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.craftinginterpreters.com/" rel="noopener noreferrer"&gt;Crafting Interpreters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://kanaka.github.io/lambdaconf" rel="noopener noreferrer"&gt;Make Your Own Lisp Interpreter in 10 Incremental Steps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://buildyourownlisp.com" rel="noopener noreferrer"&gt;Build Your Own Lisp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://norvig.com/lispy.html" rel="noopener noreferrer"&gt;(How to Write a (Lisp) Interpreter (in Python))&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ruslanspivak.com/lsbasi-part1/" rel="noopener noreferrer"&gt;Let’s Build A Simple Interpreter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://lisperator.net/pltut/" rel="noopener noreferrer"&gt;How to implement a programming language in JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>replit</category>
      <category>programming</category>
      <category>language</category>
    </item>
    <item>
      <title>REPLisp: Another New Language!?</title>
      <dc:creator>Pavitra Golchha</dc:creator>
      <pubDate>Sun, 25 Nov 2018 22:05:39 +0000</pubDate>
      <link>https://dev.to/pavi2410/replisp-another-new-language-8l5</link>
      <guid>https://dev.to/pavi2410/replisp-another-new-language-8l5</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Moved to &lt;a href="https://pavi2410.me/blog/replisp-another-new-language" rel="noopener noreferrer"&gt;https://pavi2410.me/blog/replisp-another-new-language&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Hello 👋, I made a programming language called 'REPLisp'. It is a Lisp-like interpreted language, written in 100% pure JavaScript by my little fingers 🖖. I made it to just learn more about languages and how do they work.&lt;/p&gt;

&lt;p&gt;I started work on this after I encountered &lt;a href="https://glitch.com/~the-super-tiny-compiler" rel="noopener noreferrer"&gt;this project&lt;/a&gt; on Glitch. After going through everything over there, I felt &lt;strong&gt;"making a programming language is so easy!!!"&lt;/strong&gt;, and eventually, made the first version almost &lt;em&gt;in a day&lt;/em&gt;! I, gradually, learnt a lot about the basics of compilers and languages.&lt;/p&gt;

&lt;p&gt;It is currently incomplete but is in active development. I'd love if you help me in completing this project.&lt;/p&gt;




&lt;p&gt;Try it now: &lt;a href="https://replit.com/@pavi2410/REPLisp" rel="noopener noreferrer"&gt;https://replit.com/@pavi2410/REPLisp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source code: &lt;a href="https://github.com/pavi2410/REPLisp" rel="noopener noreferrer"&gt;https://github.com/pavi2410/REPLisp&lt;/a&gt;&lt;/p&gt;

</description>
      <category>repl</category>
      <category>lisp</category>
      <category>language</category>
      <category>interpreter</category>
    </item>
  </channel>
</rss>
