A brief excursion into Monadic Parsing
π May 25, 2021 | βοΈ10 minutes readIn this blog post, I will present a few cool ideas I learned from reading the Monadic Parsing in Haskell written by E.Meijer and G.Hutton in 1998.
Read β
Hiπ! I am a final year Advanced Computer Science MSc student at πUniversity of Oxford. This is a place where I (will hopefully) write about topics I find interesting. I plan to write about my personal projects and learning experiences, as well as some random tech topics.
π»github | βοΈcontact me | πmy reading list | π¨βπ»my projects
In this blog post, I will present a few cool ideas I learned from reading the Monadic Parsing in Haskell written by E.Meijer and G.Hutton in 1998.
Read β
In this blog post, I will expand the theory developed in the Theory of the Minimum Spanning Tree Problem [Part 1]. I will focus mostly on the relationships between cuts and cycles which turns out to be a powerful way to analyse and even develop MST algorithms. We will analyse a perhaps (in)famous minimum spanning tree algorithm using the theory developed in the post. The last section is about the analysis of the oldest known minimum spanning tree algorithm.
Read β
In this blog post, I will discuss the inner structure and some theoretical results behind the minimum spanning tree problem in the context of undirected graphs. Firstly, we define a spanning subgraph and a minimum spanning subgraph. After proving some results regarding the structure of the minimum spanning tree problem, we develop two famous algorithms - Prim's algorithm and Kruskal's algorithm using the inner structure of the problem discussed in results proved before.
Read β
During the revision for one of the exams, I have encountered an extremely elegant proof of the statement above
Read β
In this blog post, I am going to develop a basic formalism of one of my favourite computer science problems - the problem of maximum flow in a flow network. We will state and prove one of my favourite theorems and use it to solve the maximum flow problem with a proof of correctness and complexity analysis.
Read β
A few weeks ago, I have completed a Stanford Compilers MOOC. After almost two months of learning, I have managed to complete all coursework assignments which were implementing a 'real' compiler in several phases. In the end, it was relatively easy to assemble them into a complete compiler - a topic of this post.
Read β
Recently, I have been exploring the interesting world of compiling techniques and formal languages. During the last two months, I have encountered many classes of formal language grammars and I have decided to dedicate a bit of time to one of the classical examples of context-free grammars - arithmetic expression grammar.
Read β
Seam carving, known also as liquid rescaling, is an algorithm for 'content-aware' image resizing. Main idea is to resize an image (and thus reduce the image size) by removing only the least noticeable pixels and thus preserving the image context. I have seen this algorithm in the algorithms course at the University and I have decided to explore it to a greater extent.
Read β
I have decided to finally read the most relevant sections of a classic - CLRS. Along the way, I have decided to practice algorithm implementations in C and made a small repository of textbook pseudocode implementations.
Read β
Although it does not seem as something huge, I have felt a need to write about it. It is about consistently practicing algorithmic problems.
Read β
I have decided to start a blog, something I wanted to for a long time. In this post I will go through technical stuff related to it.
Read β