Semantics, Typing, and Paradigms in Programming Languages

Operational Semantics

Describes the meaning of a program in terms of its execution on an abstract machine or step-by-step behavior. It is concerned with how a program executes (correctness).

Denotational Semantics

Maps programs to mathematical objects (functions, sets, etc.) to describe their meaning. It focuses on what a program computes, abstracting away how it executes.

Axiomatic Semantics

Specifies the behavior of programs using logical assertions (preconditions and postconditions). It is used to

Read More

Operating Systems: Core Concepts and Mechanisms

Distributed and Parallel Operating Systems

Distributed Operating Systems:

  • Manages a group of independent computers and makes them appear as a single system to the user.
  • Focuses on resource sharing, fault tolerance, and transparency.
  • Examples: Network OS, Cloud OS.

Parallel Operating Systems:

  • Manages multiple processors in a single system to perform tasks simultaneously.
  • Aims to enhance computation speed and resource utilization.
  • Examples: Symmetric Multiprocessing (SMP), Cluster systems.

Critical Section

Read More

Key Network Protocols: IPv4, DHCP, SMTP, DNS, UDP, TCP, FTP, HTTP

Internet Protocol Version 4 (IPv4)

Internet Protocol version 4 (IPv4) is a network layer protocol in the TCP/IP suite used to uniquely identify devices and route packets across networks. It provides a logical addressing mechanism and ensures data delivery between devices on different networks.

Key Features of IPv4

  1. 32-bit Addressing: IPv4 uses 32-bit addresses, providing approximately 4.3 billion unique addresses. Example: 192.168.1.1.
  2. Packet-Based Communication: Data is broken into packets for transmission
Read More

System Reliability, Security, and Access Control in Computing

What is a System?

A system is a set of organized elements that interact.

System Failure Tolerance

What does it mean to be tolerant to system failure? It allows a system to continue operating properly in case of a failure. This is achieved by doubling every system component.

Reliability

Attributes:

  • Reliability: Continuity of service.
  • Availability: Percentage of time the service is operational.
  • Safety: Avoidance of catastrophic consequences.
  • Security: Prevention of unauthorized access or intrusion.

System Reliability

  • Fault
Read More

Network Security: Firewalls, Viruses, and Encryption

What is a Firewall?

A firewall is a network security device that monitors and controls incoming and outgoing network traffic based on predetermined security rules. It acts as a barrier between a trusted internal network and untrusted external networks (like the internet), helping to prevent unauthorized access.

Types of Firewalls

  1. Packet-Filtering Firewall:
    • It inspects each packet of data and checks the source, destination, port number, and protocol against a set of rules.
    • Simple and fast but not very
Read More

MongoDB Sharding and CAP Theorem in Microservices

Week 9: Setup a MongoDB Cluster

What is MongoDB Sharding?

Sharding is the process of distributing data across multiple machines. MongoDB uses sharding to handle deployments with large data volumes and high-performance demands. Horizontal scaling (scale-out) involves adding machines to manage data load, allowing nearly limitless scaling for big data.

Why Sharding?

Sharding is essential when a single server can’t handle high workloads. It allows horizontal scaling, reducing the strain on individual

Read More