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...
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...
Portable Network Graphics (PNG) File Format
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...
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 ...
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...
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 ...
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...
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...
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 PythonA module in python is a file with group of statements and definitions.It can contain variables, classes and functions...
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 ProblemResultsIntroduction 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...