Aditya Chatterjee's Blog, page 94
April 26, 2022
Segmentation fault in C and C++
In this article, we have explored the idea of Segmentation fault in C and C along with different possible reasons for Segmentation fault in C and C .
Table of contents:
Introduction to Segmentation faultDifferent Segmentation fault in C and C Introduction to Segmentation faultThere's no much difference between segmentation fault in C and C .
Let's first understand what is "Segmentation Fault"
Segmentation fault is also called as "access voilation" or in short segfault.This is a failur...
April 24, 2022
MCQs on Compiler Design
In this article, we list 50+ Multiple Choice Questions on Compiler design.
Questions.1. What types of programming languages do programmers and other users use to write code?Low-level languages.High-level languages.Machine Code.Mid-level languages. Normally programmers use high-level languages since they are easier to read, write, debug and maintain.2. Which of the programs takes high-level code and transforms it into assembly code readable by a machine?Assembler.Linker.Comp...Code Generation from AST to LLVM IR
In this article, we will learn how to transform an AST (Abstract Syntax Tree) into an LLVM IR (Intermediate Representation).
Table of contents.Introduction.Initial setup.Code generation for expressions.Code generation for functions.Summary.References.Prerequisites.Creating AST nodes using LLVMIntroduction.In the prerequisite article, we built a class hierarchy that represents different AST nodes in a programming language whereby the node type has a class where the name of the class...
Manifold Learning
In this article, we will explore manifold learning, which is extensively used in computer vision, data mining and natural language processing.
Table of contentsDimensionalityManifold learningDimensionality
Many datasets used in machine learning have a large number of features. Dimensionality refers to the number of attributes/features a dataset has. When the dimensions are high, calculations become difficult and makes training very slow. When we add more variables to a multivariate model, ...
Empirical Risk Minimization
In this article, we will explore Empirical Risk Minimization (ERM) technique used in machine learning.
Table of contentsWhat is risk?Empirical risk minimizationWhat is risk?
Before we get into empirical risk minimization, let us first get an understanding of what is risk.
In supervised learning, we use the dataset that is representative of all the classes for a given problem, to solve the problem. Let us consider an example of supervised learning problem - cancer diagnosis. Each input has ...
Introduction to Time Series Data
In this article, we will get an understanding of Time Series Data along with different types of time series, analysis and forecasting.
Table of contentsIntroductionTime series dataTypes of time seriesAnalysis and forecastingApplicationsIntroduction
To determine what type of data we are working with, we analyze what component we need to identify a unique record in our dataset. Based on this we can categorize our data as time series, cross-section and panel. If we need only a timestamp to...
Denoising Autoencoders (DAEs)
The aim of this article is to discuss the Denoising Autoencoder (DAE) in sufficient detail. Hopefully, by the end of the article, readers would have obtained an understanding of the denoising autoencoder.
Table of ContentsThe article is delineated into a set of sections. These are outlined below.
Justification for Autoencoders (AE)What are Autoencoders?DAEs as Autoencoders (i.e. the AE in DAE )Application of DAEsQuestionResourcesConclusionJustification for AutoencodersThe f...
April 23, 2022
Create AST nodes using LLVM
In this article, we learn how to build a class hierarchy that represents different AST nodes in a programming language whereby the node type has a class where the name of the class represents a syntax element of the programming language.
Table of contents.Introduction.The base class.Numeric literals.Variables.Binary operators.Function calls.Function prototypes.Function definitions.Summary.References.Introduction.LLVM is a library used for the construction, optimization, and product...
Machine dependent optimizations
Code optimization in compiler design is grouped into two major optimization techniques. These are machine-independent and machine-dependent. In this article, we learn about optimization involving the underlying machine.
Table of contents.Introduction.Peephole optimizations.Instruction selectionSummary.References.Introduction.Code optimization in compiler design is grouped into two major optimization techniques. These are machine-independent and machine-dependent. The former is applied t...
Algorithm to convert Hexadecimal to Binary
In this article, we have presented the basics of Hexadecimal and Binary representation and an algorithm to convert Hexadecimal to Binary.
Table of contentDefinitionsAlgorithmTime & Space ComplexityA way of implementation1. DefinitionsIn mathematics there are different numbers representations that belongs to a set, numerical, real, complex.
In informatics there are also different numbers representations: integers, float, double, char, user defined, and so on.
For all these ones, there mus...