×
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

Instruction selection by tree-rewriting

Instruction selection involves choosing target-language instructions for each IR statement. In this article we discuss how it can be done by a tree-rewriting process whereby tree patterns that correspond to machine instructions are used to tile a syntax tree.

Erick Lumunge
Compiler Design

Activation trees and records

An activation tree is a tree structure that represents function calls made by a program during execution. When a function is called the a new activation record is pushed to the stack and popped from the stack when the function returns.

Erick Lumunge
Compiler Design

Dynamic programming for Code generation

Dynamic programming not only applies to a broad class of register machines but its application results in the generation of optimal code that runs in linear time.

Erick Lumunge
Compiler Design

Attribute Dependence Graph and Evaluation in Semantic Analysis

In this article we discuss attribute dependency graphs and attribute evaluation during semantic analysis phase in compiler design.

Erick Lumunge
Compiler Design

Machine independent Optimizations

Code written in high-level programming languages has a lot of overhead, in this article we discuss low-level techniques used to optimize this code for efficiency.

Erick Lumunge
Compiler Design

Backpatching

During the code generation phase, the compiler has to make jumps, however, the values needed for these jumps may not be known in a single pass therefore it improvises by filling up values which are replaced when the real values are known, a process known as backpatching.

Erick Lumunge
Compiler Design

Types of compilers

A compiler is a program that translates source code into machine code that can be executed by a computer. In this article we explore various types of compilers.

Erick Lumunge
Compiler Design

Pumping Lemma For Context Free Languages

The pumping lemma is used as a way to prove if a language is context-free or not. In this article we have discussed this lemma for CFLs.

Erick Lumunge
Compiler Design

Basics of YACC and Bison

In this article we discuss YACC and Bison, both tools used to generate parsers for context free languages that are LALR(1).

Erick Lumunge
Theory of Computation

Chomsky Normal Form in Theory of Computation

It is much easier to work with context-free grammars if the given Context Free Grammar is in a normal form. In this article we discuss the Chomsky Normal Form.

Erick Lumunge
Theory of Computation

Regular Expression in Theory of Computation

Regular expressions are a means to describe languages, in this article, we proved that every regular expression describes a regular language and that every DFA can be converted to a regular expression that describes a language.

Erick Lumunge
Theory of Computation

Regular Operations in Theory of Computation

In this article we have discussed three languages operations namely, union, concatenation and kleen closure.

Erick Lumunge
Theory of Computation

Finite Automata in Theory of Computation

In this article, we discuss finite automata, a state machine that takes a regular expression and changes its state accordingly for each literal and when the transitions reach the final state, the string is accepted and thus it is said to be a valid token of a language.

Erick Lumunge
Theory of Computation

Basics of Theory of Computation: Mathematical foundation and proofs

In this article we introduce the theory of computation and lay the foundation for articles to come by going over mathematical concepts and how to prove theorems which will deem useful in understanding the domain of compiler design.

Erick Lumunge
Compiler Design

Types of Programming Languages

In this article, we discuss the different major types of programming languages, how they are used, and their pros and cons.

Erick Lumunge
Compiler Design

Introduction to Compiler Design

A compiler is responsible for translating high-level source code into low-level code. In this article, we go over a brief overview of the compiler design domain, a very successful field in computer science.

Erick Lumunge
Linux

Interprocess Communication: Sockets

In this article we have discussed both local and internet sockets and how the aid in inter processes communication between systems' processes.

Erick Lumunge
Linux

stat command in Linux

In this article we have discussed the stat command in Linux which is used to display information regarding files and file systems in Linux.

Erick Lumunge
Linux

Interprocess Communication: Mapped memory

Mapped memory as a type of interprocess communication uses a shared file in the file system to enable communication between different processes. In this article we discuss how this works.

Erick Lumunge
Linux

Interprocess Communication: Pipes

In this article we have discussed Linux pipes and how they enable communication between related or unrelated processes on different systems.

Erick Lumunge
Linux

Interprocess communication: Semaphores

In this article we discuss semaphores and how they are used in interprocess communication in Linux.

Erick Lumunge
Linux

Interprocess communication: Shared memory

In this article we give an introduction to interprocess communication in Linux and discuss how processes use shared memory to communicate with each other.

Erick Lumunge
Linux

last, lastb, lastlog command in Linux

In this article we have discussed the last command which displays information about logged in users, the lastb command which lists all failed login attempts and the lastlog command which displays information regarding the last login.

Erick Lumunge
Linux

script and scriptreplay commands in Linux

In this article we discuss how to use the script command to record all terminal activities and scriptreplay to playback the recorded activities.

Erick Lumunge
Linux

ulimit command in Linux

In this article we discuss the ulimit Linux command which is used to display and control the allocation of system resources such as RAM, disk space, processing power etc.

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