Overview

Background

After learning about building blocks, the missing piece is the knowledge of higher level specifications of the language implementations which allow combining everything into a complete program. Architecture part covers this. Knowledge of architecture part also helps in understanding and debugging programs.

  • Language specifications
    • Building blocks: specifications for elements and blocks of code
    • Architecture: specifications for writing programs
      • means and specifications to combine elements and blocks to build programs
      • management of execution of blocks (under the hood)
  • Design: knowledge of how to write good programs
  • Tools: needed to write, test, debug and run programs

Introduction

  • Environment = Namespace + Scope: how to isolate and identify (variable) names and objects
  • Scripts and packages: how to organize and use building blocks in scripts and folders
  • External packages: overview of external packages available for use
  • Language engine: overview of workings of Python interpreter
  • Debugging: investigating and troubleshooting errors while writing programs

Objectives

  • Understand the specifications related to architecture and do experiments in isolation
  • Tools: use editor and cli to manage installation, scripts and projects