Front-end Analysis/Compilation

Stages There are four stages of front-end analysis. They are lexical analysis, syntax analysis, semantic analysis and intermediate code generation. Frequent access to a symbol table is required during front-end analysis. A symbol table is a data structure that stores the name and attributes, such as the data type and the scope, of every identifier….

Introduction to Encryption III – Overview of TLS/SSL Handshake

TLS and SSL Transport Layer Security (TLS) protocol is the successor to the Secure Sockets Layer (SSL) protocol which has been prohibited from use by the Internet Engineering Task Force (IETF) due to its vulnerabilities to attacks. They are both protocol suites that have been implemented to function as an additional layer of security between…

Introduction to Encryption II: Digital Signature and Digital Certificate

Key terms Hashing: uses a mathematical algorithm that takes a string as input and outputs a universally unique hash Data Integrity: data is not modified or corrupted Key idea A public key and private key’s function can be reversed: a public key can be used to decrypt a message encrypted by its corresponding private key….

Introduction to Encryption I: Symmetric vs Asymmetric cryptography

Key terms Plaintext: original data before encryption Cyphertext: data after applying encryption algorithms Key: a string that is used to encrypt or decrypt data Public key: the key of the asymmetric key pair that is shared with the public Private key: the key of the asymmetric key pair that is kept by the receiver Symmetric…

Basic Sorting Algorithms: Bubble vs Insertion

Explanation Bubble Sort: Repeatedly loops through the list, comparing each pair of adjacent items and swapping them if needed, until it is sorted Insertion Sort: Builds a sorted list by comparing the next unsorted item with each item of the sorted list and inserting it at the appropriate place (initially, the sorted list consists of…

Basic Search Algorithms: Linear vs Binary

Explanation Linear Search: checking each element of an array in turn for a required value Binary Search: checking the middle of a sorted array and discarding the half that does not contain the required value Type Requirement Performance Linear Search no requirement O(n); Time proportional to array length Binary Search must be sorted O(log n);…