Aditya Chatterjee's Blog, page 129

January 12, 2022

Function calls in Compiler Design

Functions are an important abstraction mechanism in many programming languages. In this article we discuss how functions are implemented in compilers.

Table of contents.Introduction.The call stack.Activation records.Prologues, epilogues and sequences.Caller-save vs callee-saves.Using registers and passing parameters.Interaction with the register allocator.Accessing non-local variables.Static links.Summary.References.Introduction.

Through out this article we assume that all variable...

 •  0 comments  •  flag
Share on Twitter
Published on January 12, 2022 02:36

January 11, 2022

Pointwise Convolution

In this article, we will cover Pointwise Convolution which is used in models like MobileNetV1 and compared it with other variants like Depthwise Convolution and Depthwise Seperable Convolution.

Table of Contents:

IntroductionPointwise Convolution.
2.1. Application of Pointwise Convolution.
2.2. Applying Pointwise Convolution.Gradient Backpropagation of pointwise ConvolutionPointwise A-trous convolutionRunning TimeDepthwise Convolution vs Depthwise Seperable Convolution vs Pointwise Convolu...
 •  0 comments  •  flag
Share on Twitter
Published on January 11, 2022 14:37

Portable Network Graphics (PNG) File Format

Screenshot--376-

This question came to our minds today. So, why sit still? Let us try to explore it.

Digital Images are the representation of a real image as a set of numbers that can be stored and handled by the digital computer.We categorize all digital images into two categories.

Raster images.Vector images.

A vector image is a 2D digital image that is often used in graphic design, and usually involves bold, striking colors like logos and printed graphics. Common file formats: .EPS,.SVG,.AI or .PDF

Almost...

 •  0 comments  •  flag
Share on Twitter
Published on January 11, 2022 13:13

Functional Programs in Compiler Design

In this article, we discuss how programs written in a functional programming paradigm are compiled.

Table of contents.Introduction.Compiling functional languages.Desugaring.Graph reduction.Code generation for functional cores.Optimizing the functional core.Advanced graph manipulation.Introduction.

Functional programming is a programming paradigm whereby building software relies heavily on the use of pure functions.

A pure function is a function whose results are dependent on the input ...

 •  0 comments  •  flag
Share on Twitter
Published on January 11, 2022 12:30

Intermediate representations (IR) in Compiler Design

In this article, we discuss intermediate representations and look at different approaches to IR while considering their properties.

Table of contentsIntroduction.Abstract Syntax Tree(AST).Directed Acyclic Graph(DAGs).Control flow graph.Static single assignment form.Linear IR.Static Machine IR.Summary.References.Introduction.

Intermediate representations lie between the abstract structure of the source language and the concrete structure of the target assembly language.
These represen...

 •  0 comments  •  flag
Share on Twitter
Published on January 11, 2022 11:53

YOLOv4 model architecture

This article discusses about the YOLOv4's architecture. It outperforms the other object detection models in terms of the inference speeds. It is the ideal choice for Real-time object detection, where the input is a video stream.

Table of contents:

Brief Introduction to Object DetectionWhat is YOLOv4?Algorithm OverviewBackbone NetworkNeckHeadYOLOv4 Additions (Bag of Freebies and Specials)ResultsBrief Introduction to Object Detection:

Before we proceed further, we'll understand the task ...

 •  0 comments  •  flag
Share on Twitter
Published on January 11, 2022 04:42

Parallel programming models in Compiler Design

In this article, we discuss 5 models for parallel programming and how they are expresses in parallel programming languages.

Table of contents.Introduction.Parallel programming models.Summary.References.Introduction.

Parallel and distributed systems have multiple processors that communicate with each other and therefore programming languages used in such systems express concurrency and communication.

Multiple processors give rise to new problems for the language interpreter.
A parallel sys...

 •  0 comments  •  flag
Share on Twitter
Published on January 11, 2022 02:29

Type checking in Compiler Design

In this article we discuss the process through which a compiler checks for correct syntactic and semantic conversions for a source language.

Table of contents.Introduction.Design spaces for types.Attributes.Environments for type checking.Type checking expressions.Type checking of function declarations.Type checking a program.Other type checking aspects.Summary.References.Introduction.

Type checking is the process of verifying and enforcing constraints of types in values.

Lexical ana...

 •  0 comments  •  flag
Share on Twitter
Published on January 11, 2022 01:54

January 10, 2022

Random module in Python

In this article, we have explored the Random module in Python in depth and explored the different functions like seed, getrandbits, randrange, choice and much more with Python code examples.

Table of contents:

Introduction to Random module in PythonseedgetrandbitsrandrangerandintchoicechoicesshufflesamplerandomuniformtriangularIntroduction to Random module in Python

A module in python is a file with group of statements and definitions.It can contain variables, classes and functions...

 •  0 comments  •  flag
Share on Twitter
Published on January 10, 2022 06:02

Art Gallery Problem

In this article, we have explored Art Gallery Problem in depth along with variants of Art Gallery Problem and important results.

Contents

Introduction to Art Gallery ProblemTypes of GuardsExploring a Few ExamplesSolution to the ProblemVariants of the Art Gallery ProblemResults
Introduction to Art Gallery Problem

Consider an art gallery which is shaped in the form of a polygon with n vertices. In the art gallery problem, the objective is to find the minimum number of guards that can be pl...

 •  0 comments  •  flag
Share on Twitter
Published on January 10, 2022 05:21