Compiler Design Disassembly Disassembly involves recreating assembly code from binary machine code. In this article we discuss concepts surrounding disassembly and a basic algorithm used for disassembly.
Compiler Design Assembler, Linker and Loader An assembler is responsible for converting source code into target code. In this article we discuss the tasks of an assembler, linker and loader. We also discuss the design issues faced by both assemblers and linkers.
Compiler Design Three address code Three address code is generated by a compiler for code optimization, it uses a maximum of three addresses to represent any statement. In this article we discuss it.
computational geometry Map Overlay Problem In this article, we will be exploring the Map Overlay Problem which is a core problem in Computational Geometry. We have explored simple variants of Map Overlay Problem.
System Design Redundant arrays of independent disks (RAID) In this article, we have covered what are Redundant arrays of independent disks and the commonly used RAID levels. This is an important topic in Memory management / storage in System Design.
TensorFlow Initializing Tensors in TensorFlow In this article, we have explored the idea of Tensors in TensorFlow, different types of tensor and how to initialize and use them.
Data Structures Circular Doubly Linked List In this article, we have explored Circular Doubly Linked List and operations that can be performed on it. It is a combination to two Data Structures namely Circular Linked List and Doubly Linked List.
System Design Distributed Operating System In this article, we have explored the idea of Distributed Operating System in depth along with internal working details, different types and examples.
System Design Different types of File System In this article, we have explored the Different types of File Systems such as Distributed File System, Flash File System and much more with examples of each type and how they are used in real applications.
Linux Linux threads: Creation, Data passing, Waiting A thread is the basic unit of processor utilization that consists of a program counter, stack and registers. In this article we discuss how they are created, how data is passed between thread, waiting in threads, return values and attributes.
Linux Linux threads: cancellation, data and cleanup A thread is the basic unit of processor utilization that consists of a program counter, stack and registers. In this article we discuss how they are cancelled, how data is handled within threads and cleaning up to prevent memory leaks.
Compiler Design Compiler Architecture Compiler architecture differs based on the granularity of data passing through the compiler and the flow of control between compiler modules. In this article we discuss these two factors, properties of good compiler, portability and retargetability.
Compiler Design Interpreters (Recursive & Iterative) in Compiler Design Intermediate code can either be directly executed by an interpreter which involves little preprocessing or by a compiler which requires a lot of preprocessing followed by code generation. In this article we discuss interpretation and the types of interpreters.
Dynamic Programming (DP) Dynamic Programming on Trees In this article, we have explored the idea of Dynamic Programming on Trees in depth and presented some practice problems.
Data Structures Introduction to Tree Data Structure In this article, we have presented a detailed introduction to Tree Data Structure. This will quickly give you the idea of Tree, how it is implemented and the different types that are used.
Linux Linux processes: signals, termination, zombies, cleanup A process is a running instance of a program, it starts when a command is executed. In this article we discuss signals, process termination, wait system calls, zombies and their cleanup.
Linux Linux processes: listing, creation, scheduling A process is a running instance of a program, it starts when a command is executed. In this article we discuss various process manipulation functions and their implementation in the Linux system.
Linux Partitioning in Linux Partitioning a disk is the first step before installing a file system since creation of any files or directories is done in a file system. In this article we discuss partitioning and demonstrate how to partition a drive using parted utility.
Linux Linux piping and redirection In this article we discuss piping and redirection whereby we can alter the flow of input or output streams. This technique enables a user to create custom commands by combining multiple smaller commands.
Algorithms Find starting point of loop in linked list In this article, we have explored three different algorithmic techniques to find starting point of loop in linked list.
C++ Compiling a C program using GCC In this article, we have covered how to compile a C program using the GCC compiler along with the different stages such as Preprocessing, compiling, assembling and linking.
Linux Linux user management Linux is a multiuser operating system and thus can support several users working on a given system concurrently. User management entails adding, modification(editing, suspension) and removal of user accounts along with their permissions.
Linux Linux process management commands: top, ps, kill, jobs, fg, bg A process is a program in execution, it is created by any command executed by a user, In this article we discuss types of processes and the common commands used for process management.
TensorFlow Dropout operation in TensorFlow (tf.nn.dropout) This article discusses about a special kind of layer called the Dropout layer in TensorFlow (tf.nn.dropout) which is used in Deep Neural Networks as a measure for preventing or correcting the problem of over-fitting.
Software Engineering Rumbaugh, Booch and Jacobson Methodologies In this article, we have explored three object modeling techniques namely Rumbaugh, Booch and Jacobson Methodologies along with code examples.