×
Home Discussions Write at Opengenus IQ
×
  • DSA Cheatsheet
  • HOME
  • Track your progress
  • Deep Learning (FREE)
  • Join our Internship 🎓
  • RANDOM
  • One Liner

Erick Lumunge

Erick is a passionate programmer with a computer science background who loves to learn about and use code to impact lives positively.

Nairobi •
241 posts •
Compiler Design

Type checking in Compiler Design

A compiler performs checks to ensure certain types of errors during programming are detected and reported, type checking will ensure the compiler follows the semantic and syntactic conversions of the source language.

Erick Lumunge
Compiler Design

Assembly language: ARM Architecture

Assembly language enables programmers to write human readable code that is close to machine language hence providing full control over the tasks the computer performs. In this article we discuss the ARM processor architecture assembly language

Erick Lumunge
Compiler Design

Assembly language: X86 Architecture

Assembly language enables programmers to write human readable code that is close to machine language hence providing full control over the tasks the computer performs. In this article we discuss the x86 processor architecture assembly language.

Erick Lumunge
Compiler Design

Memory management: deallocation (Garbage Collection)

In this article we discuss garbage collection, a mechanism that is performed by the garbage collector which reclaims memory that it can prove is not used.

Erick Lumunge
Compiler Design

Memory management: allocation

Memory management is the process responsible for handing out blocks of memory to a program and reclaiming unused blocks. In this article we discuss the basics of memory allocation, optimizing memory allocation and applications in a compiler.

Erick Lumunge
Compiler Design

Lexical analyzer generator (lex)

Int this article we discuss the lex, a tool responsible for translating a sequence of regular expressions given as input into a C implementation corresponding to a finite state machine.

Erick Lumunge
Compiler Design

Language processing system

A combination of per-processors, compilers, assemblers, loader and linker work together to transform high level code in machine code for execution. In this article we discuss the function of each part of this system.

Erick Lumunge
Compiler Design

Semantic analysis in Compiler Design

During the 3rd phase of compiler design, the semantic analysis phase, the semantic analyzer uses information stored in a syntax tree and symbol table to check source code semantic consistency according to the provided language definition.

Erick Lumunge
Compiler Design

Design of a Lexical Analyzer

During the first phase of a compiler, a lexical analyzer is used to scan the input and identify tokens. We can either hand code a lexical analyzer or use a lex program to automatically generate one. In this article we discuss how the lexical analyzer is designed to perform its function.

Erick Lumunge
Compiler Design

Constant Folding and Constant Propagation in Compiler Design

In this article, we discuss two compiler optimizations (Constant Folding and Constant Propagation) which enable the compiler to produce high performance and efficient assembly code.

Erick Lumunge
Compiler Design

Syntax Analysis in Compiler Design

In this article, we discuss the second phase in compiler design where written code is evaluated for correctness.

Erick Lumunge
Compiler Design

Different phases of Compiler

In this article, we discuss the different phases of a Complier such as Lexical Analysis, Syntax Analysis, Intermediate Code Generation and others.

Erick Lumunge
Compiler Design

Lexical Analysis in Compiler Design

In this article, we discuss the first phase in compiler designing where the high level input program is converted into a sequence of tokens. This phase is known as Lexical Analysis in Compiler Design.

Erick Lumunge
Compiler Design

Parsing in Compiler Design

In this article, we discuss the different types of Parsing done by compilers such as Top-down parsing, Non-recursive predictive parsing and much more.

Erick Lumunge
Data Structures

Li Chao Segment Tree

In this article, we discuss the Li Chao tree, a segment tree which can be persistent and is faster in practice compared to the convex hull trick.

Erick Lumunge
Data Structures

Persistent Trie

In this article, we discuss the Trie data structure and how to make it persistent to solve various problems optimally.

Erick Lumunge
Algorithms

Delete middle element of Queue

In this article, we discuss how to delete the middle element of a queue without using other data structures. We have explained both iterative and recursive approach.

Erick Lumunge
Algorithms

Delete middle element of Stack

In this article, we discuss an iterative and recursive approach to delete the middle element of a stack.

Erick Lumunge
Algorithms

Average Height of Random Binary Search Tree

In this post, we discuss the average height of a Random Binary Search Tree (BST) (that is 4.31107 ln(N) - 1.9531 lnln(N) + O(1)) by discussing various lemmas and their proofs. We omit full proofs and discuss the essential key points for easier understanding.

Erick Lumunge
Algorithms

Delaunay Triangulation

In this article, we discuss Delaunay Triangulation, its relation to Voronoi diagrams and algorithms to compute Delaunay Triangulation. This is an important topic in Computational Geometry.

Erick Lumunge
Algorithms

Create a Heap from Array of N integers

In this post, we discuss the heap data structure and how to create a min and max heap from N given integers in form of an Array. Similarly, inserting elements one by one take O(N logN) time but the optimal approach takes O(N) time.

Erick Lumunge
Algorithms

Voronoi Diagram

In this article, we discuss the voronoi diagram in depth and how to use Fortunes Sweep Line algorithm to compute it. This is an important topic in Computational Geometry.

Erick Lumunge
Algorithms

Oriented area of a triangle

In this article, we discuss how to find the area of an oriented Polygon using the shoelace algorithm and as an example we find the area of an oriented triangle.

Erick Lumunge
Algorithms

Check if given point is inside a convex polygon

In this post, we discuss how to check if a given point is inside a convex polygon using the Graham scan algorithm and list application areas for the solution.

Erick Lumunge
Algorithms

Pick’s Theorem in Computational Geometry

In this post, we discuss Pick's theorem, its proof and example use cases where its application would be efficient to solve a problem. Using Pick's Theorem, we can compute the area of simple polygons.

Erick Lumunge
OpenGenus IQ © 2025 All rights reserved â„¢
Contact - Email: team@opengenus.org
Primary Address: JR Shinjuku Miraina Tower, Tokyo, Shinjuku 160-0022, JP
Office #2: Commercial Complex D4, Delhi, Delhi 110017, IN
Top Posts LinkedIn Twitter
Android App
Apply for Internship