RSSAmplifier

Blog

Abhinav Pradeep's Blog

Recent content on Abhinav Pradeep's Blog

abhinavpradeep.comRSS feed ↗21 posts

Latest posts

Implementing a Maximal-Munch Lexical Analyzer

Extending the NFA generator Previously we implemented a regular expression matching algorithm that generated an NFA from an input regular expression, and simulated a string over the NFA to check for acceptance. The regular expression was required to be in postfix form and the algorithm only supported union $|$ , concatenation $.$ , Kleene star $*$ , one-or-more $+$ , and zero-or-one $?$…

Regular expression matching: Theory and Implementation

Introduction The first step in building a compiler would be to build a lexical analyzer, shortened to ’lexer’. To define what a lexer does we may understand it as a function: $$\text{Lexer :: string} \to [\text{token}]$$ Where a token can be thought of as the tuple $\text{token} = \langle \text{class, string} \rangle$. A token class, loosely speaking, corresponds to a set of strings.…

Learning Measure Theory 3: Measurable spaces and functions

Notes from learning measure theory. Covers measurable spaces and functions. These are notes and therefore liable to inaccuracies.

Building a DBMS on the Raspberry Pi Pico: Part 1, Programming flash memory

First in a series about building a DBMS on the Raspberry Pi Pico. This article covers the first step in this process: programming flash memory

Learning Measure Theory 2: Sigma algebras

Notes from learning measure theory. Establishes the need for sigma algebras. These are notes and therefore liable to inaccuracies.

Decision tree classifier

What are decision trees? Decision trees are a form of supervised machine learning. They are built on a binary tree data structure and generate predictions by percolating input features through a system of binary questions. All non-leaf nodes in the tree ask these questions and the leaf nodes contain predictions. The below illustration depicts a decision tree (specifically a classifier tree):…

Learning Measure Theory 1: Riemann integration

Notes from learning measure theory. Covers a review of Riemann integrals and integrability. These are notes and therefore liable to inaccuracies.

Tree data structure

This article covers the tree data structure. In particular: the unbalanced binary search tree and its implementations are investigated. Pitfalls of these implementations are discussed in terms of time and space efficiency. Mitigation of these through the AVL tree is presented and quantified by establishing an upper-bound on search time complexity.

Algorithm Archives - Shunting Yard Algorithm

Visual basic .NET was launched as a successor to Visual Basic in 2002. It runs on the .NET framework and is multi-paradigm and object-oriented. As far as I’m aware multi-paradigm refers to the language’s ability to support more than one programming paradigm or style, for example - to support OOP in combination with imperative and procedural styles. VB.NET is being deprecated as the…

Getting started with multi-threaded applications in .net core 3.1

Today, we take a break from my series on sorting algorithms and look at thread-safety. As a result, we will learn about threads and create a multi-threaded program. Then, we learn about thread safety and implement it in a C# console application. What are threads? Every program I have ever written has had a single sequential flow of control. Once the program begins executing, it systematically goes…

Bubble sort

This is the third post in my series on sorting algorithms. Previously, I talked about the selection sorting algorithm (Link Here). Today, we take a look at the bubble sort algorithm. Later, we implement this in a .net core console application. Bubble sort is considered to be one of the simplest sorting algorithms. This algorithm works from right to left. On each pass, it compares each array item…

Selection Sort

This is the second post in my series on sorting algorithms. Previously, I talked about the insertion sorting algorithm (Link Here). Today, we take a look at the selection sort algorithm. Later, we implement this in a .net core console application. Selection sort is one of the elementary sorting algorithms. It sorts the data by finding the smallest item and swapping it into the array in the first…

Insertion sort

Recently, I’ve been learning about different types of sorting algorithms. However, I am far from being an expert on this. So take everything I say with a grain of salt. In this blog post, I document my first look at insertion sort. Later, we implement this method of sorting in a .Net core console application. Insertion sort is one of the elementary sorting algorithms. It sorts each item in…

PHP - A Scholastic Endeavor

PHP is a popular serverside scripting language. You’ve probably heard that at least a hundred times. When I was told that we were doing PHP in school, I was rather skeptical. I had fallen into the misleading belief that PHP was a ‘Dead language’. Don’t get me wrong, PHP as a tool still does lack the finesse of something like ASP .NET. Its installation process on my Mac was…

What is an API?

Application Programming Interfaces ( API) have been around since the early days of IT. Today, API’s are almost always synonymous with server-side web development. Earlier, API’S were built using technologies such as CORBA, XML-RPC, and SOAP. The Web has radically transformed the way we produce and share information. It has democratized information sharing and has revolutionized…

Data structures - Linked Lists

My blog looks completely different. I know. That’s because we had to nuke the old one to self-host the blog. Besides, it turned out looking much better. I’m pretty happy with the changes. I did plan on publishing this post back in December. However, we lost the draft while making the changes. So now I have to do this all over again. Well, I can’t really do anything, can I?

MongoDB .Net driver

Today was a pretty boring day. My parents and I went to the plaza. There was a lot of shopping to do and it was nearly 2 o’clock by the time we finished. We then grabbed some food and headed home. I then got to work on preparing the material for today, so yeah :/ , not much to say about the day. In my Starting MongoDB – The basics post, I explained how to create a cluster, set up a MongoDB…

MongoDB-Basics(Part 2)

Yesterday was a pretty busy day for me. I wanted to get this blog up yesterday itself but hey ¯\_(ツ)_/¯, what can you do? Yesterday I had to go with my parents to the Plaza. We had to get some shopping done and I didn’t get much time to do what I wanted to. However, the one thing I was able to do yesterday was to keep all the research and material to do this today.

Serialization and Deserialization – An Introduction

Yesterday night was horrible. I could not get a good nights sleep at all. First, there was a lizard in the room. Then, chasing the lizard came a huntsman spider. I freaked out. I may or may not have also shrieked like a little girl – but that’s not the topic of discussion. After my dad caught the spider in a box and threw it out, I decided to go to sleep.

Starting MongoDB – The basics

Today I started out early. I woke up to the breath taking sight of the ocean from my window. I’m a pretty lazy guy. It’s impossibly hard for me to get out of bed. I felt DRAINED today morning. I’m pretty nocturnal. I usually have more energy at night than in the morning. I persevered and got out of bed with renewed energy. Either that or my dad practically pulled me out of bed and dumped me in the…

Hash table data structure

This article covers the hash table data structure. Covers probing and chaining techniques.