Simple and efficient C/C++ *nix programming on Windows

Image for post
Image for post

System software development has always been my passion. It’s so much fun! But with languages like C/C++, it’s not always the easiest to work on Windows — especially when the OS you’re developing for isn’t Windows.

So, what do I do? Simple. I use VS Code and Virtual Machines! Aaand that’s the end of this article…

Just kidding. Let me elaborate.

The Host OS

Honestly, it’s been quite a long time since I last used Windows. However, I recently got myself a new PC (yay!), so I got back to using Windows. As much as I enjoy working on Linux, gaming isn’t its biggest strength. …

Extending the Feral programming language using C++

Image for post
Image for post
Build script for the module created in this article

In my last article, I introduced the Feral programming language. This time around, we’ll create C++ extensions for it! These extensions are building blocks for adding functionality and library support for the language. Usually, a generic task can be implemented in Feral itself, but writing it in C++ is especially useful when the task requires native performance.

For the purpose of this article, we’ll be implementing a C++ module, containing a Feral variable and function, to demonstrate how to properly utilize the available features to our advantage.

Any doubts, questions, etc. can be asked either on GitHub or on Feral’s discord server (links at bottom). …

Creating a Programming Language

My next step from the Ethereal programming language

Recently — a couple months ago in fact — I started working on the Feral programming language. Now, if you have read my previous articles, right now you’re probably like: “Dude! Another language?! What’s wrong with you!” And come to think of it, you’re probably right. I seem to be obsessed with programming languages, but that’s perhaps for another article. Right now, I can’t wait to share about the Feral Programing Language!

Image for post
Image for post
Sample Feral Code — Bubble Sort! (the best sorting algorithm!! (just kidding))

Some Background

I started working on Feral about 2-3 months ago. I really enjoy creating languages, so I thought why not! This time around though, I focused a lot more on the syntax of the language than the last time (Ethereal). I wanted to make a language that’s not just pleasant to use, but also minimalistic, could be picked up in like, a day, and didn’t sacrifice usability or readability while not being overly verbose (cough Java cough). …

No, I am not joking. It can be quite an interesting experience. Let me tell you why.


Personally, I really enjoy developing programming languages — that’s my hobby. Currently, I am developing my interpreted programming language: Ethereal. Do I think it will be the next big thing? Nope. A breakthrough? Nada. A juggernaut that causes the end of world? Well, I certainly hope not!

Then why? Why must I, or for that matter, anyone, spend so much time developing something that shall, most likely, not be used by anyone?

The same reason as to why we attempt implementation of data structures when we learn to code. …

Creating a Programming Language

My experience designing and writing a Lexical Analyzer

Image for post
Image for post
Image by Willi Heidelbach from Pixabay

In previous articles, I talked about my language (Ethereal) , my journey with it, and how I architected it. In this article, I want to share how I developed the first component of the language —the lexical analyzer.

If you have any interest in developing a programming language, you’ve probably looked at lexers and how to develop them. But even if you haven’t, there are more than enough examples and tutorials out there. So, I am going to focus on my experience writing a lexer. …

Creating a Programming Language

The decisions I made when I designed my own programming language

Image for post
Image for post
Adapted from Pixabay

Recently, I wrote an article with an overview of creating a programming language from my perspective. My language is Ethereal — an experimental work-in-progress that you can check out on GitHub.

What is it for? Well, my idea is to use it for building scripts. But since Ethereal is a general purpose language, it can be used for whatever you want. And even if I don’t write anything more than a test script, I’ve learned far more on this project about the internal details of how languages work than I would playing around with someone else’s mature platform.

How did I make the key design decisions about how Ethereal should work?Let’s dive deeper. …

Creating a Programming Language

Deep down, you know you want to make one too

Image for post
Image for post
Image by Free-Photos from Pixabay

It still feels weird (and awesome) to say that I actually created a programming language. Here’s a bit of my journey, and an overview of the language design for Ethereal.


Chirag Khandelwal

Enjoys developing programming languages, video games, and computer science in general.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store