about
2/21/2022
BasicBites Repo
BasicBites Code Repo

BasicBites  Repository

Short stories and code about Basics

Quick Status Short bites Discuss basic platform operations Demonstration code Demos in C++, Rust, and C# Documentation yes Test cases NA Static library NA Build requires Rust, C++, C# installed Planned design changes Add more bites and demo code
"Try to learn something about everything and everything about something."
- Thomas Huxley

Contents:

Code List, Bite List, First Bite Software development is a complex process. To be successful one needs to know something about:
  • Platforms: how the Windows, Linux, and MacOS platforms support code that runs there.
  • Programs: basics about execution, types, functions, and structure.
  • Object Models: how code uses objects to structure its operations.
This repository links to a "Basic story" composed of pages that address these topics. It also contains sample code used to illustrate topics where appropriate. Our purpose is to provide a "background check and tutorial" as an entry into stories about C++, Rust, and many other interesting topics related to software development.
Each Bite takes an important basic topic, provides a relatively consise overview, and for some pages provides sample code.

Bites:

Here are the currently planned Bites. I expect missing details will be completed some time in 2022. The ordering of some of these Bites may change. Ordering so that each Bite depends only on its predecessors doesn't necessary provide a good logical ordering. I'll be thinking about this as the list gets completed.

  1. Basics Track Summary Getting started with platform and code development

  2. Platforms Models illustrating how common platforms work

  3. Virtual Memory Basic ideas about paged memory

  4. Job Scheduling Model for OS scheduler

  5. I/O Synchronous and asynchronous I/O operations

  6. System Resources How are resources shared among processes

  7. Programming Models for execution, types, functions, safety, and program structures

  8. Execution Models of code execution for native and managed code

  9. Types Abstract models for Copy, Move, and Reference types

  10. Functions Functions, methods, and lambdas with parameter passing

  11. Safety Functions, methods, and lambdas with parameter passing

  12. Using Platform API Accessing and use of methods exposed by platforms

  13. Structure Structuring software with functions, methods, types, libraries, executables

  14. Object models lifetime, resource management, ownership

  15. Life time Construction to destruction flow

  16. Resource management Construction to destruction, resource management

  17. Ownership Single vs. Multiple ownership, mutation, sharing

  18. Native code models Execution, ownership, lifetime, resource management for native code

  19. Managed code models Execution, ownership, lifetime, resource management for managed code
Some of these bites present small simple demonstration codes, and a few that are larger. All of the code fragments shown in the Bites are included, as complete programs, below.

Bite Demonstration Code:

  1. functions, methods, and lambdas
    • functions
      Pass arguments by value and reference, pass and return functions, use static and dynamic dispatch.
    • methods
      Demonstrate non-generic and generic methods.
  2. closures
    Demonstrates closures with copy and with move capture.

Build:

Rust code was built with Cargo from Visual Studio Code terminal and tested on Windows 10. C++ and C# code was built with Visual Studio, 2019, Community Edition.

Status:

Just startiing.
  Next Prev Pages Sections About Keys