# The C²++ Programming Language **A Reconstructed Language Guide: Reference, Developer Notes & Educational Material** > #### A didactic all Paradigm Language > *Eine didaktische Programmiersprache für alle Paradigmen* > > --- > > #### Rethinking Programming from scratch > *Programmierung von Grund auf neu denken* > > --- > > #### Self-definition is the best way to reuse > *Eigen Definition ist der beste Weg zur Wiederverwendung* https://hackmd.io/KNK6ELGWQ0yJxvkQNCmDvQ > This Document isn't: > - a Reference Manual > - a Developer Guide > - a Design History Summary > It's all of them mixed. > Zur besseren Orientierung folgen alle Beispiele und Erklärungen einem einfachen System: - 🔷 **Beispiele** — echte Codebeispiele mit konkreter * C²++ core0 Syntax * *(z. B. `type`, `namespace`, `async<<T>>`, "`: pop _ 0x020 push : func()`" … )* * C²++ Syntax * *(z. B. `class`, `interface`, `feature`, `view` … )* - 🔶 **Erklärungen** — begleitende theoretische Abschnitte *(Hintergründe, Vergleiche, Motivation, semantische Unterschiede)* ## Concepts - [📋 C²++ Names: Keywords, Protected Words, Identifier](https://hackmd.io/@UPTOIP/ryzX1tAXWl) - [🏷️ C²++ Versions, Tags and Type-Accessor](https://hackmd.io/@UPTOIP/r1kIsiA7Wl) - [🔑 C²++ Types Concepts and Overview](https://hackmd.io/@UPTOIP/HyAGUD14Wx) - [🪄 C²++ Axis as Concept](https://hackmd.io/@UPTOIP/SyG4Ndv0lx) - [🪄 C²++ Axis Semantics and Syntax](https://hackmd.io/@UPTOIP/HywLvaH0le) - [🌱 C²++ Class Inheritance](/Bj7Bk8uATKqckCSy9RIP0w) - [🌱 C²++ Class Refinement](/DibvwtYISMygHM4FFv4cIw) - Composites - Mixin - Trait - Aspect - Feature - Template Part (Template/CRTP) - builder - class Generator - [📰 C²++ Structures in comparison & differentiation](https://hackmd.io/@UPTOIP/rJfRfoMXZl) - [📑 C²++ Trennung Objekt/Methoden und Datenrepräsentation](https://hackmd.io/@UPTOIP/r1jzqwH4-g) ## The Object-World - [⭐ C²++ Object Welten](https://hackmd.io/@UPTOIP/SJQ8MrXSZl) - [⭐ C²++ `subject`/`object`-Dualismus](/WXpdjWlyTjy3IdSOG3YaLw) - [🌱 C²++ Atomic Inheritance Axis](https://hackmd.io/@UPTOIP/SJN6ofeIWl) - [🌱 C²++ Class Inheritance](/Bj7Bk8uATKqckCSy9RIP0w) - [🌱 C²++ Class Refinement](/DibvwtYISMygHM4FFv4cIw) - [✔ C²++ `object` 1](https://hackmd.io/@UPTOIP/Skj3aYtbbx) - [✔ C²++ `object` 2](https://hackmd.io/@UPTOIP/HJSOcnK-bg) - [✔ C²++ `object` Model 1 - Smalltalk](https://hackmd.io/@UPTOIP/HkCeb-tbbg) - [✔ C²++ `object` Model 2 - Self](https://hackmd.io/@UPTOIP/S1lxa67rbl) - [✔ C²++ `object` Model 3 - Self](https://hackmd.io/@UPTOIP/Byc3gngfbe) - [✔ C²++ `object` Model 4 - JavaScript] - [✔ C²++ `object` Lexical Structural Typing](https://hackmd.io/@UPTOIP/Hk9Lo3IWWl) - [✔ C²++ `object` Bridge to `class`](https://hackmd.io/@UPTOIP/H18spHtbZe) - [🧩 C²++ Dispatch Object](https://hackmd.io/@UPTOIP/Sy0EYXTAeg) - Polymorphy: by Objects - Polymorphy: by DuckTyping - [📦 C²++ `class` 1] - [📦 C²++ `class` Model 1 - C++] - [📦 C²++ `class` Model 2 - Java] - [📦 C²++ `class` Model 3 - C#] - [📦 C²++ const Constructors](https://hackmd.io/@UPTOIP/BJ0jFBWkWl) - [📦 C²++ omission Constructors](https://hackmd.io/@UPTOIP/BykU6fHB-e) - [📦 C²++ Inline Direct Constructors](https://hackmd.io/@UPTOIP/r1Vw3iFagl) - [📦 C²++ Convention over Configuration](https://hackmd.io/@UPTOIP/H1fmlhYplx) - [C²++ `partial class` 2](https://hackmd.io/@UPTOIP/Sk0RcGSrZe) - [📦 C²++ Virtuelle Methoden Tabelle](https://hackmd.io/@UPTOIP/rJTtjtBrZl) - [📦 C²++ Dynamische Methoden Tabelle](https://hackmd.io/@UPTOIP/S1xCM3BBZl) - [🪟 C²++ Views 1](https://hackmd.io/@UPTOIP/ryuAqk02ex) - [C²++ Sealed Interfaces](https://hackmd.io/@UPTOIP/Hkg2y0Tz-e) - [⭐ C²++ `subject`](https://hackmd.io/@UPTOIP/r1Kis1HQZx) - ⭐ C²++ `subject` Model 1 - Haskell - [⭐ C²++ `subject` Model 2 - Haskell](https://hackmd.io/@UPTOIP/H1EvYHrQWx) - ⭐ C²++ `subject` Model 3 - Scala - ⭐ C²++ `subject` Model 4 - F# - [📑 C²++ `record`/`subject` Trennung Repräsentation/Implementation](https://hackmd.io/@UPTOIP/r1jzqwH4-g) - [📒 C²++ HowTo Define a Qualifier - example `volatile`](https://hackmd.io/@UPTOIP/HJTdb5FV-g) - Polymorphy: by restricted Ad-Hoc Lookup - Polymorphy: by cumulative Ad-Hoc Lookup ## General - [⬛ C²++ CompileTime vs RunTime](https://hackmd.io/@UPTOIP/BJ7XfblXZe) - [⬛ C²++ CompileTime Stages](https://hackmd.io/@UPTOIP/BkDqDMxmbx) - [🟨 C²++ — Modul Include 1](https://hackmd.io/@UPTOIP/B1lLOpfheg) - [🟨 C²++ — Modul Include 2 - Linkage](https://hackmd.io/@UPTOIP/ByokQUx7bg) - [🟨 C²++ — Modul Import 1](https://hackmd.io/@UPTOIP/rJOcLu6GZe) - [🟨 C²++ — Modul Import 2 - compare](https://hackmd.io/@UPTOIP/r1zQs1wM-l) - [🟨 Das Modul-System von C²++ core2](https://hackmd.io/@UPTOIP/Hks20AfMWe) - [⬜ C²++ Language Infrastructure: include](https://hackmd.io/@UPTOIP/BymzZOgQZl) - [✨ C²++ core0 vs core2](https://hackmd.io/@UPTOIP/BJGZFpEJWl) - [🕳️ C²++ Profiles 1](https://hackmd.io/@UPTOIP/S1nFuaqRlg) - [🕳️ C²++ Profiles 2](https://hackmd.io/@UPTOIP/SJ8Q18Nkbl) - [🕳️ C²++ Profiles 3](https://hackmd.io/@UPTOIP/B15DK9IyWe) - [🕳️ C²++ Profiles 4](https://hackmd.io/@UPTOIP/BkwH6qIJZe) - 🕳️ C²++ Profiles 3 - core0 - 🕳️ C²++ Profiles 4 - core2 - [&nbsp;**∷**&nbsp;&nbsp; C²++ Namespaces 1](https://hackmd.io/@UPTOIP/SysTtEV0ge) - [&nbsp;**∷**&nbsp;&nbsp; C²++ Namespaces 2](https://hackmd.io/@UPTOIP/BkS7kP56xl) - [&nbsp;**∷**&nbsp;&nbsp; C²++ Namespaces 3](https://hackmd.io/@UPTOIP/B1VfbPQJZg) - [C²++ Orphan Rule 1](https://hackmd.io/@UPTOIP/SyY8S0pG-l) - [C²++ Orphan Rule X](https://hackmd.io/@UPTOIP/B1ZCXAafbe) - [&nbsp;**∷**&nbsp;&nbsp; C²++ Namespaces 4 - Qualifier] - [C²++ Effect Domains 1](https://hackmd.io/@UPTOIP/rJwu92r7Wx) - [&nbsp;**∷**&nbsp;&nbsp; C²++ Namespaces 5 - anonymous](https://hackmd.io/@UPTOIP/r1RLzqhfZx) - [&nbsp;**∷**&nbsp;&nbsp; C²++ Namespaces 6 - overlays] - [&nbsp;**∷**&nbsp;&nbsp; C²++ Namespaces 7 - Versions & Tags] - [&nbsp;**∷**&nbsp;&nbsp; C²++ Namespace Axis **`: load`**](https://hackmd.io/@UPTOIP/ByveooH0xg) - `: genesis` -- abgesicherter Stapel aller Erweiterungen - `: load` -- wird beim erstmaligem laden des Namespaces ausgeführt - `: area` -- bestätigt einen ns area - `: token` -- sichert einen Namensraum vor unberechtigter Erweiterung - &nbsp;**∷**&nbsp;&nbsp; C²++ Namespaces - prefixes - &nbsp;**∷**&nbsp;&nbsp; C²++ Namespaces - delegation - &nbsp;**∷**&nbsp;&nbsp; C²++ Namespaces - sealed - [🟦 C²++ — Alias](https://hackmd.io/@UPTOIP/S1lmjddGZx) - [🔓 C²++ Function Aliases](https://hackmd.io/@UPTOIP/Bk5vmkkAex) - [🗝 C²++ Type Definitons 0](https://hackmd.io/@UPTOIP/S17n0RjTge) - [🗝 C²++ Type Axis **`: typedefs`**] - : alias -- nur alias auf Basistypen B - : extends -- neuer type auf Basistypen B - : meta -- bindet eine Meta Class an Basistypen B (nur mit : extends) - [🗝 C²++ Type Axis **`: subtypes`**] - : based -- Basistypen B - : limits -- Einschränkung des Wertebereichs des Basistypen B - : restricts -- Einschränkung des Basistypen B Ausdrucksbasiert - [🗝 C²++ Type Axis **`: constraints`**] - : implements -- T, B implementiert Class - : supports -- T, B unterstützt Interface - [🗝 C²++ Type Axis **`: selection`**] - : switch -- Pattern-Match Auswahl der Typbildung - [🗝 C²++ Type Axis **`: aspects`**] - : adapts -- feature or aspect - : binds -- to class or interface - [🔑 C²++ Type Definitons 1](https://hackmd.io/@UPTOIP/HkbyE0jael) - [🔑 C²++ Type Definitons 2](https://hackmd.io/@UPTOIP/SyxqgpJnagl) - [🔑 C²++ Type Constraint Definitons 1](https://hackmd.io/@UPTOIP/BykCk1rRgl) - [🔑 C²++ Type Definitons 3](https://hackmd.io/@UPTOIP/BJPQUynTll) - 🔑 C²++ Type Selection Definitons 1 - 🔑 C²++ Type Definitons 4 - [🔑 C²++ SubType Definitons 1](https://hackmd.io/@UPTOIP/S1RkoY1Rex) - 🔑 C²++ SubType Definitons 2 - 🔑 C²++ incomplete Type Definitons 1 - [💫 C²++ Type Access](https://hackmd.io/@UPTOIP/r1yJqTuRgl) - [💫 C²++ Type Functions / Type Accessors](https://hackmd.io/@UPTOIP/S1xa72uRgg) - C²++ Dependent Types - [🔐 C²++ Dependent Types 1](https://hackmd.io/@UPTOIP/BkI9YBgRex) - [🔐 C²++ Dependent Types 2](https://) - [🔰 C²++ Dependent Checks](https://hackmd.io/@UPTOIP/ByWIQLxAeg) - [&nbsp;**..**&nbsp;&nbsp; C²++ Range Definitons 0](https://hackmd.io/@UPTOIP/HyvgcFkCge) - [♎ C²++ Final] - [♎ C²++ Const] - [♎ C²++ Var Typeinference] - [♊ C²++ Variables] - [C²++ Object Initializer](https://hackmd.io/@UPTOIP/rJImaRbzZx) - [C²++ Anonymous Types vs. Objects](https://hackmd.io/@UPTOIP/B11ANi4fbg) - [💾 C²++ storage classes: auto, register, static & heap](https://hackmd.io/@UPTOIP/SyiNewragx) - [♻️ C²++ Memory Allocator & Collector 1](https://hackmd.io/@UPTOIP/HJVyIVuhgx) - [♻️ C²++ Memory Allocator & Collector 2](https://hackmd.io/@UPTOIP/ryLKRGWS-g) - [♻️ C²++ Memory Allocator & Collector 3](https://hackmd.io/@UPTOIP/By6i0z-B-e) - [♻️ C²++ Memory Allocator & Collector 4](https://hackmd.io/@UPTOIP/H1Ocl-zG-x) - ♻️ C²++ Allocatoren, Collectoren - ♻️ C²++ Memory Allocator 1 - ♻️ C²++ Memory Allocator 2 - ♻️ C²++ Memory Collector 1 - ♻️ C²++ Memory Collector 2 - ♻️ C²++ Memory Collector 3 - [♻️ C²++ Partielle Allocatoren](https://hackmd.io/@UPTOIP/SkfgB8rrZe) - ♻️ MemStorage - ♻️ MemPool - ♻️ MemResist - [🧩 C²++-Typsystem Memory Models 0](https://hackmd.io/@UPTOIP/H184mj0z-l) - [🧩 C²++-Typsystem Memory Models 1 - `T` `T~`](https://hackmd.io/@UPTOIP/ryKC6lAzbe) - 🔄 C²++ DMAC (...) - [🔹 C²++ RAII, DABI und DGCH – Speicher- und Ressourcenmanagement](https://hackmd.io/@UPTOIP/rJjA1wOrbg) - [🔄 C²++ RAII (Resource Acquisition Is Initialization) 1](https://hackmd.io/@UPTOIP/rJCGTTR2xe) - 🔄 C²++ RAII (Resource Acquisition Is Initialization) 2 - 🔄 C²++ DABI (Decay Acquisition by Ignorance) 1 - [🟩 Ephemeral - `T~` Imaginary Values](https://hackmd.io/@UPTOIP/H1mDfiCGWe) - [🧩 C²++-Typsystem Memory Models 2 - `T&` `T&&`](https://hackmd.io/@UPTOIP/Hy7Qlg0G-x) - [♓ C²++ R- und L-Values] - C²++ Reference - [🟩 C²++ safe_reference](https://hackmd.io/@UPTOIP/S1dg6Qu2xx) - [🧩 C²++-Typsystem Memory Models 3 - `T?` `T!`](https://hackmd.io/@UPTOIP/BJU9EclzZe) - ❓ C²++ Nullable - ❗ C²++ Checkable - ❕ C²++ Testable - [🧩 C²++-Typsystem Memory Models 4 - `T*` `T^`](https://hackmd.io/@UPTOIP/Sk_1H_gGWx) - [🔯 C²++ Pointer 1] - [🔯 C²++ Pointer 2] - [🅾️ C²++ null: void* definition](https://hackmd.io/@UPTOIP/Skx8BX7dnxg) - [☀&nbsp; C²++ Function Pointer](https://hackmd.io/@UPTOIP/ByBoio5nge) - ▲ C²++ Handles - [🧩 C²++-Typsystem Memory Models 5 - `T$` `T#`](https://hackmd.io/@UPTOIP/rk8_0v1GWg) - [C²++ Owner-Mutable-Borrow-Modell](https://hackmd.io/@UPTOIP/BkGqjweCgg) - [C²++ Owner-Borrow-Modell](https://hackmd.io/@UPTOIP/SyVJHgFMZl) - [C²++ Exclusiv-Coupled Lending](https://hackmd.io/@UPTOIP/S1W2ixYMWl) - [C²++ Exclusive Cascade Lending](https://hackmd.io/@UPTOIP/S1W2ixYMWl) - [C²++ Exclusive Window Pending](https://hackmd.io/@UPTOIP/ry_zUeYM-l) - [C²++ Exclusive Window Pending - Window Definitions](https://hackmd.io/@UPTOIP/rkR_lQNMbl) - [⭕ C²++ Exclusive Spatial Cycling X - `T@`](https://hackmd.io/@UPTOIP/HkArjIx8Zx) - [🧩 C²++-Typsystem Memory Models 6 - `T%`](https://hackmd.io/@UPTOIP/rkx77AVGWg) - [🚫 C²++ Peers Objects](https://hackmd.io/@UPTOIP/B1Nmzv0Tll) - [{&nbsp;}&nbsp; C²++ Block, break & return](https://hackmd.io/@UPTOIP/By-9HZl6xl) - [🧷 C²++ typed control flows and returns](https://hackmd.io/@UPTOIP/S1nWNgYTee) - [C²++ Types] - C²++ Types 1 - C²++ Types 2 - [〰️ C²++ Fuzzy Types](https://hackmd.io/@UPTOIP/ByyQ0gsAgg) - C²++ Main StartObject - General Operators - General Operators 1 - General Operators 2 - ◯ C²++ Meta Programming - [🏁 C²++ FSM](https://hackmd.io/@UPTOIP/S1nyiuxzbe) - [⚪ C²++ Meta Procedures 1](https://hackmd.io/@UPTOIP/SyBaPB9Alg) - ⚪ C²++ Meta Procedures 2 - ⚪ C²++ Meta Procedures 3 - ⬜ C²++ Meta Types - ⬜ C²++ Meta Types 1 - ⬜ C²++ Meta Types 2 - [📚 core0 - CTL core type library](https://hackmd.io/@UPTOIP/Bk7PLQ9Cel) ## Fundamental Types - [🟢 C²++ sys:: Fundamental Numeric Types](https://hackmd.io/@UPTOIP/HynTYAiCeg) - Character types - `char8` - `char16` - `char32` - `char64` - Boolean type - `bool` - Void type - `void` ## Value Types - [🟩 C²++ std:: Numeric Value Types](https://hackmd.io/@UPTOIP/HkqNU0sAgx) - Character and Boolean Types - `char` - `ascii` - `utf8` - `boolean` - Structures - `struct` - predefined structs (`DateTime`, `TimeSpan`, `Guid`, ...) - Enumerations - `enum` - `flag` - Nullable Types - `Nullable<T>` / `T?` ## Reference Types - Classes - `class` - `object` - predefined classes (`Object`, `String`, ...) - Interfaces - `interface` - Delegates - `delegate` - Multicast delegates - Arrays - `T[]` - Multidimensional arrays (`T[,]`, `T[,,]`) - Jagged arrays (`T[][]`) - Strings - `string` - Dynamic Types - `dynamic` - `variant` - Pointer Types - `*` pointers (implicite unsafe context) - `^` handles ## Special Types - `var` (implicitly typed local variables) - `const` (constants) - `readonly` fields - `ref` / `out` / `in` parameters ## Type Combinations - Generic types (`List<T>`, `Dictionary<TKey, TValue>`, ...) - Nullable types (`T?`) - Nullable reference types (C# 8.0+) - Tuple types (`ValueTuple<T1,T2,...>`) ## Other relevant Types - `object` (base of all types) - `string` (special reference type) - `System.Enum` - `System.ValueType` ## Derived Types - Pointers (`T*`) - References (`T&`, `T&&`) - Arrays (`T[n]`, `T[]`) - Functions (`return_type(param_types)`) - Classes - Structures (`struct`) - Unions (`union`) - Enumerations (`enum` / `enum class`) ## Abstract and Misc Types - Class types - Enum types - Pointer to member types (`T C::*`) - Typedefs / using aliases - Auto type deduction (`auto`) - Decltype (`decltype(expr)`) - nullptr type (`std::nullptr_t`) ## Templates and Generics - Class templates - Function templates - Variadic templates - Template aliases ## Standard Library Types - Standard containers (`std::vector`, `std::array`, `std::list`, `std::map`, ...) - Smart pointers (`std::unique_ptr`, `std::shared_ptr`, `std::weak_ptr`) - Tuples (`std::tuple`) - Strings (`std::string`, `std::wstring`, `std::u16string`, `std::u32string`) ## Type Qualifiers - `const` - `volatile` - `mutable` - `static` - `thread_local` - `extern` ## Other Useful Types - `std::size_t` - `std::ptrdiff_t` - `std::nullptr_t` - Function pointers - Lambda expressions (closure types) ## c4 - 💣 The c4 Tool - 💣 The c4 MarcoProcessor - 💣 The c4 Programming-Language - 💣 The c4 TemplateEngine - 💣 The c4 as PreTemplateMacro System ## Core - [♉ C²++ core0 Fundamentals](https://hackmd.io/@UPTOIP/H1LZ-czTgx) - [♉ C²++ core0 IR/IL](https://hackmd.io/@UPTOIP/S1He2OSpgg) - [♉ C²++ core0 main()](https://hackmd.io/@UPTOIP/rJ2evNXple) - [♉ C²++ core0 Manifest](https://hackmd.io/@UPTOIP/BkZW5iGpxl) - [C²++ Context Cascade Calls/1996](https://hackmd.io/@UPTOIP/rk3otUkW-l) - [C²++ Context Cascade Calls/2001]() - [C²++ Context Cascade Calls 1 - Overview]() - [C²++ Context Cascade Calls 2 - Fundamentals](https://hackmd.io/@UPTOIP/BJQ0jNEVbe) - [C²++ Context Cascade Calls 3 - Basics](https://hackmd.io/@UPTOIP/H1UjAAr4bx) - [C²++ Context Cascade Calls 4 - Concept]() - [C²++ Context Cascade Calls 5 - Kinds](https://hackmd.io/@UPTOIP/B1VlhEVNZx) - [C²++ Context Cascade Calls 6 - Modern Build Monad](https://hackmd.io/@UPTOIP/HyCJNkUV-g) - [C²++ Context Cascade Calls 7 - xyz](https://hackmd.io/@UPTOIP/r1vPd5HNZl) - C²++ core0 Monads/1998 - [♉ C²++ core0 Monads 1](https://hackmd.io/@UPTOIP/Bke9nL4Vplx) - [♉ C²++ Core0 Monads 2](https://hackmd.io/@UPTOIP/B1zRT82Teg) - [♉ C²++ Core0 Monads 3](https://hackmd.io/@UPTOIP/SyAmF2UkWx) - [♉ C²++ Core0 Monads 4](https://hackmd.io/@UPTOIP/SJt8lcYTee) - [♉ C²++ Core0 Monads 5](https://hackmd.io/@UPTOIP/ryJZe551-l) - Monaden Polymorphy - [♉ C²++ core0 Object Oriented](https://hackmd.io/@UPTOIP/rJRiauHall) - [♉ C²++ core0 SysIO](https://hackmd.io/@UPTOIP/BJjXogJaxg) - [♉ C²++ core0 SysIO IOStreams](https://hackmd.io/@UPTOIP/HydNEWV6xg) - [ &nbsp;∷&nbsp;&nbsp; C²++ core0 Namespaces]() - [♊ Core SysTypes] - [♊ Core Variables] - [🕎 C²++ Core0 branch](https://hackmd.io/@UPTOIP/SJsvve1Tgx) - [🕎 C²++ core0 Register based](https://hackmd.io/@UPTOIP/B19BVOcpex) - [🕎 C²++ core0 Stack based](https://hackmd.io/@UPTOIP/HkNV9GDTgl) - [🕎 C²++ core0 Stack Programming 1 - Konzept](https://hackmd.io/@UPTOIP/SyDqZwC3ll) - [🕎 C²++ core0 Stack Programming 2 - ABI]() - [🕎 C²++ core0 Stack Programming 3 - Language]() - [🕎 C²++ core0 Stack Programming 4 - Beispiel]() - Core Operators - Core Operators 1 - Core Operators 2 - [🕎 C²++ Core0 Teach](https://hackmd.io/@UPTOIP/ryNcVUETxg) - [⚠ C²++ core0 Error Mechanism](https://hackmd.io/@UPTOIP/ry-XkSkWZl) - [🪞&nbsp; C²++ Core0 Mirror](https://hackmd.io/@UPTOIP/SJCfBx46gx) - [🔨 C²++ Build 1](https://hackmd.io/@UPTOIP/Symbho5Tle) ## Basics - [🟨 C²++ — Modul Include](https://hackmd.io/@UPTOIP/B1lLOpfheg) - [⏺️ C²++ StdIO] - [▶️ C²++ Types] - [▶️ C²++ Variables] - [⏹️ C²++ Var Typeinference] - [⏹️ C²++ Const] - [⏹️ C²++ Final] - [⏸️ C²++ R- und L-Values] - Typisierte Kontrollflüsse und Rückgaben in C²++ - ❔ C²++ Reflex - Reflection API - Polymorphy: by named values ## Language Levels - C²++ core0-IR - C²++ core0-IL - C²++ core0 - C²++ Manifest code - C²++ core1 - C²++ core2 - C²++ core3 - Language Profiles - Sandbox - Scheduler - SandboxVM - Hosting ## Language Types - Enums - Sets - Sequences - Fields - Arrays - Vectors - Deque - Lists - SingleLists - DoubleLists - Tree - Map - Assoziation - Hash - HashTable - HashTree - HashMap - Queue - PriorityQueue - Stack ## Language Types Builder - bunch -- LowLevel strict aligned nonpadding DataContainer - [🗝 C²++ Bunch Axis - Überblick]() - [🗝 C²++ Bunch Axis **`: offset(call)`**]() - [🗝 C²++ Bunch Axis **`: alignas`**]() - : alignas(n) -- erzwingt def. Speicher-Ausrichtung. - : padding(n) -- implementiert Schnittstelle - Records -- value base, value compared, recrusiv, variant, DataStructure - record - Structs -- mutable, value based, reference compared, DataClass - struct - [🗝 C²++ Struct Axis - Überblick]() - [🗝 C²++ Struct Axis **`: inheritance`**]() - : supports -- unterstützt struct mit configuration - : implements -- implementiert Schnittstelle - : extends -- erweitert Struktur - Entities -- immutable, reference based, value compared, DataPersitanceType - entity - [🗝 C²++ Entity Axis - Überblick]() - [🗝 C²++ Entity Axis **`: inheritance`**]() - : supports -- unterstützt record mit configuration - : implements -- implementiert Schnittstelle - : extends -- erweitert Struktur - [🗝 C²++ Entity Axis **`: marshall`**]() - : marshall -- kodiert einen StringStream mit den daten - : unmarshall -- dekodiert einen StringStream mit den daten - : chk -- kontrolliert ein package/string - XXX - : immutable - : findbyid - : serialize - : deserialize - Unions - Union 1 - Union 2 - Union 3 - Anonyme Unions - union 4 - constructor/destructor - Union 5 and Structs - [🗝 C²++ Unions Axis - Überblick]() - [🗝 C²++ Unions Axis **`: align`**]() - : alignas(n) -- erzwingt bestimmte Speicher-Ausrichtung. - : padding(n) -- implementiert Schnittstelle - : pack -- erzwingt, kein/minimales Padding - : ->sizeof - : ->alignof - Bitfields - [🗝 C²++ Bitfields Axis - Überblick]() - [🗝 C²++ Bitfields Axis **`: inheritance`**]() - : raw -- property get, set - Enums - Enum 1 - [🗝 C²++ Enum Axis - Überblick]() - [🗝 C²++ Enum Axis **`: enum`**]() - : based -- basiert auf ordinal type O - : realise -- realisiert die Implementierung mit I - : expands -- erweitert die symbolwerte von E - Enum FSM - Flags - [🗝 C²++ Enum Axis - Überblick]() - [🗝 C²++ Enum Axis **`: flag`**]() - : based -- basiert auf ordinal type O - : expands -- erweitert die symbolwerte von E - Sets - Sets ValueKinds - [🗝 C²++ Sets Axis - Überblick](https://hackmd.io/@UPTOIP/HyHeFo1All) - [🗝 C²++ Sets Axis **`: set`**]() - : based -- nur alias auf Basistypen B - : symbols -- neue Symbole - Bags - Bags ValueKinds - [🗝 C²++ Sets Axis - Überblick](https://hackmd.io/@UPTOIP/HyHeFo1All) - [🗝 C²++ Sets Axis **`: bag`**]() - : symbols -- neue Symbole ## Language Type System - Type based Literal Parsing - Type based Control Structures - Type defined Operators - Type defined Operators: binding - Type defined Operators: association - Polymorphy: by type aliases ## Functions - [📒 C²++ Functions 1](https://hackmd.io/@UPTOIP/S1yoFbV2el) - [📒 C²++ Functions 2](https://hackmd.io/@UPTOIP/HySnKN0JWe) - [📒 C²++ Functions 3] - [📒 C²++ Functions 4] - [📒 C²++ Functions 5] - [📒 C²++ Functions 6] - [📒 C²++ Extention Function] - Function Calls as LValues - [📒 C²++ Function Types](https://hackmd.io/@UPTOIP/HylWWAinlx) - [📒 C²++ Parameterpassing 1 - Call by](https://hackmd.io/@UPTOIP/BJSptE8WWe) - [📒 C²++ Call by Copy Value] - [📒 C²++ Call by Reference] - [📒 C²++ Call by Const Reference] - [📒 C²++ Call by Reference [const]] - [📒 C²++ Call by Reference [out]] - [📒 C²++ Call by Reference [inout]] - [📒 C²++ Call by Reference [trans]](https://hackmd.io/@UPTOIP/r1Z-Ryuybg) - [📒 C²++ Call by Reference [eval]](https://hackmd.io/@UPTOIP/Hy69skdkZe) - [📒 C²++ Call by Reference [consteval]] - [📒 C²++ Call by Alias] - [📒 C²++ Call by Temporary Owner] - [📒 C²++ Call by Borrow] - [📒 C²++ Parameterpassing 2 - params](https://hackmd.io/@UPTOIP/SJQXBedyZl) - 🌟 Rekrusion - 🌟 Continuation-Passing Style (CPS) - [📒 C²++ Runtime - Function Qualifier](https://hackmd.io/@UPTOIP/HJhzEvJNbe) - 📒 C²++ Function Qualifier `final` - [📒 C²++ Function Qualifier `pure` - isolation](https://hackmd.io/@UPTOIP/B1qNJjTWbx) - 📒 C²++ Function Qualifier `memoized` - 📒 C²++ Function Qualifier `stable` - [📒 C²++ Function Qualifier `volatile`](https://hackmd.io/@UPTOIP/ry6Fiqa-Wg) - 📒 C²++ Function Qualifier `safe` - [📒 C²++ Function Qualifier `nothrow`](https://hackmd.io/@UPTOIP/B1_Mnjp-Zx) - 📒 C²++ Function Qualifier `throws()` - [📒 C²++ Function Qualifier `noexcept`](https://hackmd.io/@UPTOIP/SkPjCop-Zg) - 📒 C²++ Function Qualifier `nosend` - 📒 C²++ Function Qualifier `sends()` - 📒 C²++ Function Qualifier `nosignal` - 📒 C²++ Member Qualifier `yield` - 📒 C²++ Member Qualifier `reentrant` - 📒 C²++ Member Qualifier `eager` - 📒 C²++ Member Qualifier `lazy` - 📒 C²++ Member Function Member Qualifier - class - 📒 C²++ Member Qualifier `const` - 📒 C²++ Member Qualifier `final` - [📒 C²++ Member Qualifier `volatile`](https://hackmd.io/@UPTOIP/HyNSfc6W-g) - 📒 C²++ Member Qualifier `valid`/`invalid` - 📒 C²++ Compiletime Function Qualifier - 📒 C²++ Function Qualifier `build` - 📒 C²++ Function Qualifier `artefact` - 📒 C²++ Function Qualifier `script` - [📒 C²++ HowTo Define a Qualifier - example `volatile`](https://hackmd.io/@UPTOIP/HJTdb5FV-g) - [📒 C²++ HowTo Define a Qualifier - example `valid`/`invalid`](https://hackmd.io/@UPTOIP/HJmF-v7EZg) - [📒 C²++ Function Overloading] - ✨ C²++ conversion models - ✨ C²++ strict conversions - ✨ C²++ clean conversions - [✨ C²++ narrowing conversions](https://hackmd.io/@UPTOIP/HJX--0OCgg) - [✨ C²++ Object Inheritance](https://hackmd.io/@UPTOIP/H1sSXtbaxg) - [✨ C²++ Covariant & Contravariant](https://hackmd.io/@UPTOIP/rkeRFcLZTlx) - [✨ C²++ In-, Co- und Contravariant 1](https://hackmd.io/@UPTOIP/Hy3aekJBbl) - [✨ C²++ Overload Resolution 1](https://hackmd.io/@UPTOIP/r1lOA_WTgl) - [✨ C²++ Overload Resolution 2](https://hackmd.io/@UPTOIP/HJS2Jg_1-x) - [✨ C²++ Calling Conventions](https://hackmd.io/@UPTOIP/BJe5ocMTlg) - Polymorphy: by function overloading - [✨ C²++ Currying & Uncurrying](https://hackmd.io/@UPTOIP/BkT1xwZpel) - [📒 C²++ Functions Axis](https://hackmd.io/@UPTOIP/HyHeFo1All) - [📒 C²++ Functions Axis **`: dispatch`**](https://hackmd.io/@UPTOIP/r1Ezr8pael) - : dispatch -- dynamischer Router, Dispatcher, oder ein Funktionsmultiplexer - [📒 C²++ Functions Axis **`: aspects`**](https://hackmd.io/@UPTOIP/Sk4-RNapgx) - : before -- Preparation, Logging, Pre-Aktionen - : start -- Initialisierungen, Timer starten, Zustände setzen - : skip -- Funktion nicht ausführen, z. B. wegen Cache-Hit, Zustand, Filter - : replace -- substituiert den Funktionskörper vollständig - : return -- Nachbearbeitung des Return-Wertes - : after -- Logging, Cleanup, Post-Aktionen - [📒 C²++ Functions Axis **`: invariants`**](https://hackmd.io/@UPTOIP/rkYikUp6gg) - : require -- Vorbedingung (Precondition) - : variant -- Variantenprüfung (Termination Proof) - : yield -- Schleifenprüfung (Iteration Proof) - : ensure -- Nachbedingung (Postcondition), Statusprüfung - [📒 C²++ Functions Axis **`: watch`**](https://hackmd.io/@UPTOIP/r1cBjbtpex) - : watchbeat -- Eskalationsstrategie: Exceptions bei Timeout ohne watch.ack() - : watchping -- hearth beat closure execution via async oder thread context - : watchdog -- closure die wärend async oder aus dem thread antworten kann, wenn ok - [📒 C²++ Functions Axis **`: timeout`**](https://hackmd.io/@UPTOIP/rk1mKt2Tee) - : timeout -- Maximalzeit, nach der eine Funktion abgebrochen wird (Zeitbeschränkung) - [📒 C²++ Functions Axis **`: cache`**](https://hackmd.io/@UPTOIP/SkDyUkTTlx) - : cache -- Memoisierung oder Zwischenspeicherung von Ergebnissen (Caching-Achse) - ------------------------------------------ - : authorise -- Ausführungsberechtigung execution `: skip` - : capability - : check - : when - : retry - : recover - : rescue - [ƒ C²++ Function Interface]() - [ƒ C²++ Function Inheritance](https://hackmd.io/@UPTOIP/SkgqkRl6ee) - [🚧 C²++ Program Main] - [🚧 C²++ Program LifeCycle: Start] - [🚧 C²++ Program LifeCycle: Exit & Abort](https://hackmd.io/@UPTOIP/HkvoOhL2gg) - [📗 C²++ Function Nested Types](https://hackmd.io/@UPTOIP/BJDZuIT6xx) - [📗 C²++ Sub Functions 1](https://hackmd.io/@UPTOIP/r15MB9-3lg) - [📗 C²++ Sub Functions 2](https://hackmd.io/@UPTOIP/rJh7Hq06le) - [📗 C²++ Nested Functions 1](https://hackmd.io/@UPTOIP/BJbcucWhlx) - [📗 C²++ Nested Functions 2] - [📗 C²++ Nested Functions 3](https://hackmd.io/@UPTOIP/r1LgHXTnxg) - [📗 C²++ Nested Member Functions 1](https://hackmd.io/@UPTOIP/rkw2LtFall) - Polymorphy: by function renesting - [📘 C²++ Method Calls 1](https://hackmd.io/@UPTOIP/ryfMIKZnxl?view) - [📘 C²++ Method Calls 2](https://hackmd.io/@UPTOIP/HytgfIB2lx) - 📘 C²++ Async Peers - 📘 C²++ Afork Peers 1 - 📘 C²++ Afork Peers 2 - [📕 C²++ Closures 1](https://hackmd.io/@UPTOIP/BkGgO5-nex) - [📕 C²++ Closures 2](https://hackmd.io/@UPTOIP/HJC99jnnll) - [📕 C²++ Closures 3](https://hackmd.io/@UPTOIP/H1cbW6A3xx) - [🐛 C²++ Larva & Papillon] - [🦋 C²++ Papillons] - Polymorphy: by closure mutli signatures - [📦 C²++ Function Objects: Einführung](https://hackmd.io/@UPTOIP/SJE_zl8yWe) - [📦 C²++ Function Objects 1](https://hackmd.io/@UPTOIP/H1R6lvZ2xx) - [📦 C²++ Function Objects 2](https://hackmd.io/@UPTOIP/SkX2eD-hlg) - [📦 C²++ Function Objects 3](https://hackmd.io/@UPTOIP/B1dyPyynee) - Polymorphy: by functionobject binding - [☀ C²++ Function Pointer](https://hackmd.io/@UPTOIP/ByBoio5nge) - [📙 C²++ Multi-Methods 1](https://hackmd.io/@UPTOIP/Hknj8Wpjex) - [📙 C²++ Multi-Methods 2](https://hackmd.io/@UPTOIP/rJIQiRColx) - [📙 C²++ Multi-Methods 3](https://hackmd.io/@UPTOIP/BJYfnYM3gl) - [🌈 C²++ Parameter Signature Inheritance (PSI) 1]() - [🌈 C²++ Parameter Signature Inheritance (PSI) 2](https://hackmd.io/@UPTOIP/r1IEtonsle) - [⛓️ C²++ Pipelining](https://hackmd.io/@UPTOIP/H1EqSOYnge) ## Context - Context what is it? - this (static) - base - that - cache (last, start, current) - call - error - except - exec - exit - meta - runtime - signal - watch - [✅ C²++ Context-Oriented Programming (COP)](https://hackmd.io/@UPTOIP/HkOXgWThee) - Polymorphy: by context ## Monads - Monaden 1 - Monaden 2 - Monaden 3 - Monadische Effekt-Programmierung (MEP) - SCLLC - Polymorphy: by monads ## The O-World - [⭐ C²++ Object Welten](https://hackmd.io/@UPTOIP/SJQ8MrXSZl) - [🌱 C²++ Class Inheritance](/Bj7Bk8uATKqckCSy9RIP0w) - [🌱 C²++ Class Refinement](/DibvwtYISMygHM4FFv4cIw) ## Objects - [✔ C²++ Objects 1](https://hackmd.io/@UPTOIP/Skj3aYtbbx) - [✔ C²++ Objects 2](https://hackmd.io/@UPTOIP/HJSOcnK-bg) - [✔ C²++ Object Model 1 - Smalltalk](https://hackmd.io/@UPTOIP/HkCeb-tbbg) - [✔ C²++ Object Model 2 - Self](https://hackmd.io/@UPTOIP/S1lxa67rbl) - C²++ Object Model 3 - JavaScript - [🗝 C²++ Object Axis] - [🗝 C²++ Object Axis **`: dispatch`**] - : dispatch -- dynamischer Dispatcher - [🗝 C²++ Object Axis **`: prototype`**] - : lookup -- lookup controller - : rai -- reallocation of prototype instances - [🗝 C²++ Object Axis **`: typedefs`**] - : clone -- kopiert - : class -- realisiert die Implementierung mit T - : mutable -- erweitert die symbolwerte von E - Creation - Creation by Object-Class - Creation by Cloning - Creation by Mutable - C²++ Objektmutability - Add Routines - Remove Routines - Add Attribute - Remove Attribute - [C²++ Lexical Structural Typing](https://hackmd.io/@UPTOIP/Hk9Lo3IWWl) - Polymorphy: by Semantic Structural Typing - [C²++ Object Bridge to Class](https://hackmd.io/@UPTOIP/H18spHtbZe) - Inheritance by Prototype - Prototype-Based Programming (PbP) - Polymorphy: by Objects - Dynamic - Polymorphy: by DuckTyping ## Entities - 🛢️ C²++ Entity - 🛢️ C²++ Member - 🛢️ C²++ Constructors - 🛢️ C²++ Brace-Initialization ## Structs - constructors - property axis - get - set - init - container manips - pop - push - events ## Classes - Class - Class - [🗝 C²++ Class Axis] - [📒 C²++ Class Axis **`: invariants`**](https://hackmd.io/@UPTOIP/rkYikUp6gg) - : require -- Vorbedingung (Precondition) - : variant -- Variantenprüfung (Termination Proof) - : ensure -- Nachbedingung (Postcondition), Statusprüfung - [🌱 C²++ Class Axis **`: inheritance`**](https://hackmd.io/@UPTOIP/HkbKr8pCll) - : inheritance-- ableiten von Basisklasse B <br/>`(non-virtual, new, single-inheritance, deep, invariant)` - : extends -- erweitere Basisklasse B <br/>`(non-virtual, override, multi-inheritance, deep, covariant)` - : virtual<=invariant|+covariant|-contravariant> -- erweitere Basisklasse B `(virtual, override, multi-inheritance, deep, variant)` - : derive -- ableiten Basisklasse B <br/> `(non-virtual, new, multi-inheritance, flat, invariant)` - : infer -- ableiten Basisklasse B <br/> `(non-virtual, new, single-inheritance, flat, invariant)` - : implements -- Implementiert Schnittstelle <br/> `(inter-poly, none, single-inheritance, none)` - [🗝 C²++ Class Axis **`: meta`**] - : meta -- verknüpft meta class - [🗝 C²++ Class Axis **`: aspects`**] - : adapts -- Adaptiert Feature, Apsects - [📒 C²++ Class Axis **`: dispatch`**] - : dispatch -- dynamischer Router, Dispatcher, oder ein Funktionsmultiplexer - [📒 C²++ Class Axis `: catch`] - : catch -- ... - [📒 C²++ Class Axis `: receive`] - : receive -- .... - Class Member - Constructors - Copy Constructor - Move Constructor / Value Constructor - [📦 C²++ const Constructors](https://hackmd.io/@UPTOIP/BJ0jFBWkWl) - [📦 C²++ omission default Constructors](https://hackmd.io/@UPTOIP/BykU6fHB-e) - [📦 C²++ Inline Direct Constructors](https://hackmd.io/@UPTOIP/r1Vw3iFagl) - [📦 C²++ Convention over Configuration](https://hackmd.io/@UPTOIP/H1fmlhYplx) - Destructor - Properties - Property - Property - Property - [📒 C²++ Property Axis](https://hackmd.io/@UPTOIP/HyHeFo1All) - [📒 C²++ Property Axis **`: getter/setter`**]() - : get -- dynamischer Router, Dispatcher, oder ein Funktionsmultiplexer - : set -- dynamischer Router, Dispatcher, oder ein Funktionsmultiplexer - [📒 C²++ Property Axis **`: init`**]() - : init -- initialisierung - [📒 C²++ Property Axis **`: container`**]() - : pop -- Initialisierungen, Timer starten, Zustände setzen - : push -- Funktion nicht ausführen, z. B. wegen Cache-Hit, Zustand, Filter - Methods - C²++ class - Method-Qualifier `const` - [📦 C²++ class - Method-Qualifier `volatile`](https://hackmd.io/@UPTOIP/HyNSfc6W-g) - C²++ class - Function-Qualifier `pure` - C²++ class - Function-Qualifier `final` - virtual Methods - C²++ Parzielle Klassen - C²++ `partial class` 1 - [C²++ `partial class` 2](https://hackmd.io/@UPTOIP/Sk0RcGSrZe) - abstract Class - anonymious Class - static Class - ClassLoaders - Class Constants - Class Variables - Class Properties - Class Functions - Friend Class & Class Friend - Meta Class - [🛑 C²++ Meta Class](https://hackmd.io/@UPTOIP/BJCxuTXAxg) - Extention Methods - sealed Class - Class Inheritance - override Methods - overlap Methods - Derived Constructors - Base Constructors - Destructor execution - Class Reflection - [📌 C²++ RTTI 1](https://hackmd.io/@UPTOIP/r1oMcaA2xl) - MCID - Reflex (Reflection API) - Class Extention - [🧬 C²++ Mixin](https://hackmd.io/@UPTOIP/BJJWuTC3ll) - Separation of Concern (SoC) - Aspects - Features - Cross-Cutting Concern (CCC) - Design by Contract (DbC) - [🍩 C²++ Class Invariants 1](https://hackmd.io/@UPTOIP/H1FM59S3ee) - [🍩 C²++ Class Invariants 2](https://hackmd.io/@UPTOIP/r1YHQbdTxe) - require - ensure - Public Invariant Policy (PIP) - Object-oriented Programming (OOP) - SOLID+D - GRASP - Polymorphy: by Classes - Polymorphy: by Class-Instances ## Interfaces - 🔍 C²++ Function Interfaces - 🔍 C²++ Class Interfaces - 🗝 C²++ Interfaces Axis - [🗝 C²++ Interface Axis **`: inheritance`**] - : supports -- unterstützt Basisschnittstelle I - 🔍 C²++ Class Interface 1 - 🔍 C²++ Class Interface 2 - 🔍 C²++ Class Interface 3 - named - 🔍 C²++ Class Interface 4 - inline - Polymorphy: by Interface - [C²++ Sealed Interfaces](https://hackmd.io/@UPTOIP/Hkg2y0Tz-e) - [C²++ Bodies](https://hackmd.io/@UPTOIP/SyQjCCTGbg) ## Views - [🪟 C²++ Views 1](https://hackmd.io/@UPTOIP/ryuAqk02ex) - 🪟 C²++ Views 2 - Polymorphy: by Display ## Design Patterns - [🔬 C²++ DesignPatterns - Observer](https://hackmd.io/@UPTOIP/B13O4tApel) ## Subjects - [🔎 C²++ Subject Oriented Programming (SOP)](https://hackmd.io/@UPTOIP/rJ-o7O1nel) - [🔎 C²++ Subject 1](https://hackmd.io/@UPTOIP/ryM4DSeCel) - 🔎 C²++ Subject 2 - [🔗 C²++ Type-Dependent Types]() - 🔗 C²++ Type-Dependent Types - Polymorphy: by Subject ## Composites * Composites ## Mixins - [🧬 C²++ Mixin - Overview](https://hackmd.io/@UPTOIP/BJJWuTC3ll) - [🧬 C²++ Mixins 1](https://hackmd.io/@UPTOIP/ry8t7N3rbe) - [🧬 C²++ Mixins 2](https://hackmd.io/@UPTOIP/Sy6BB7aB-e) - [🧬 C²++ Mixins 3](https://hackmd.io/@UPTOIP/ByHnGSpTxg) - [🧩 C²++ Dispatch Object](https://hackmd.io/@UPTOIP/Sy0EYXTAeg) ## Aspects - [📍 C²++ Aspects](https://hackmd.io/@UPTOIP/r1wQZr6pll) - 📍 C²++ Aspect 1 - 📍 C²++ Aspect 2 - 📍 C²++ Aspect 3 - 📌C²++ Aspect weaving - ✂ C²++ Aspect decomposition - [⚡ C²++ Cooperative Aspect Targets Systemsyntax (CATS)](https://hackmd.io/@UPTOIP/rkOjd6kAll) - [⚡ C²++ Model for Embedded Aspects](https://hackmd.io/@UPTOIP/H1-TBhkAgl) - Separation of concerns (SoC) - C²++ Aspect Oriented Programmng (AOP) ## Features - [🪶 C²++ Features](https://hackmd.io/@UPTOIP/By5NAGgTll) - 🪶 C²++ Feature 1 - 🪶 C²++ Feature 2 - 🪶 C²++ Feature 3 - 🪶 C²++ Feature Agreements - 📌 C²++ Feature binding - 📌 C²++ Feature layers - [C²++ Feature Oriented Programming (FOP)](https://hackmd.io/@UPTOIP/r17GfuhZ-x) ## Meta - [❌ C²++ meta-oriented](https://hackmd.io/@UPTOIP/r1_C8DF2lx) - ✔ C²++ CompileTime Programming - ✖ C²++ Meta Programming - [➖ C²++ Generics](https://hackmd.io/@UPTOIP/BJvxw8K2ex) - [➕ C²++ Templates](https://hackmd.io/@UPTOIP/B1yfglc2ex) - [➗ C²++ Templates & Generics](https://hackmd.io/@UPTOIP/B1jeVD3Ceg) - [➗ C²++ template vs generic](https://hackmd.io/@UPTOIP/ryUg_UKhge) - [💬 C²++ Annotations 1](https://hackmd.io/@UPTOIP/S16dIf2Rlx) - [💬 C²++ Annotations 2](https://) - [**⟦ ⟧** C²++ Code based Configuration (CbC)](https://hackmd.io/@UPTOIP/S1uKLWl3lg) - Template-Meta-Programming (TMP) - Polymorphy: by Templates ## Continuation - [C²++ Continuation](https://hackmd.io/@UPTOIP/B1GlLCWRxl) - [🕹️ C²++ Concurrency Controlled Continuation](https://) ## Concurrency - [🌀 C²++ Concurrency](https://hackmd.io/@UPTOIP/BkvwDX32el) - [⚙️ C²++ Async, Afork und Atask](https://hackmd.io/@UPTOIP/HyqbYhlCxg) - [⏳ C²++ async/afork/suspend 1] - [⏳ C²++ async/afork/suspend 2] - [🐛 C²++ SusPap] - [🛞 C²++ Runtime] - [🧵 C²++ Threads 1](https://hackmd.io/@UPTOIP/H1vUVpY2xl) - [🧵 C²++ Threads 2] - [🌿 C²++ GreenThreads 1] - [🌿 C²++ GreenThreads 2] - [🔴 C²++ RedThreads 1] - [🔴 C²++ RedThreads 2] - [🔴 C²++ RedThreads 3] - [⬛ C²++ Processes 1] - [⬛ C²++ Processes 2] - [⚫ C²++ BlackProcesses 1] - [⚫ C²++ BlackProcesses 2] - [⚙️ C²++ GreyTasks 1] - [⚙️ C²++ GreyTasks 2] ## Messaging - [🛟 C²++ Exceptions 1] - [🛟 C²++ Exceptions 2] - [🛟 C²++ Exceptions 3](https://hackmd.io/@UPTOIP/r1NB75Shll) - [🛟 C²++ Exceptions 4 - throws](https://hackmd.io/@UPTOIP/HyWJ5pwage) - [🛟 C²++ Exceptions 5 - Move-Optimierung](https://hackmd.io/@UPTOIP/SJ-aspwTel) - [🚦 C²++ Signals 1](https://hackmd.io/@UPTOIP/S1ysf2U2le) - [🚦 C²++ Signals 2](https://hackmd.io/@UPTOIP/SJzEz6Lhex) - [🚦 C²++ Signals 3](https://hackmd.io/@UPTOIP/BkCOHZvnge) - [⚡ C²++ Interrupt Handler](https://hackmd.io/@UPTOIP/BJ5fxYunee) ## Realtime - [⏱️ C²++ RealTime Programming](https://hackmd.io/@UPTOIP/rJzmmYd2xg) - C²++ RealTime 1 Fundamentals - C²++ RealTime 2 Preconditions - C²++ RealTime 3 Steps - C²++ RealTime 4 Embed - C²++ Embedded core0 - C²++ Embedded core0 as inplaced RealTime scope - C²++ Embedded core0 RealTime Examples - C²++ RealTime 5 in Dual-Main Setups - C²++ core0 main - C²++ core0 main RealTime - C²++ RealTime 6 as/in RedThread (POSIX-Like Thread) - C²++ core0 RedThread RealTime - C²++ RealTime 7 in GreenThread (shared pooled Thread) - C²++ core0 GreenThread RealTime - C²++ RealTime 8 in FOroutines ## Embedded - [🔌 H²++ coreH SCOP](https://hackmd.io/@UPTOIP/H10ohfI-Ze) - [🔌 H²++ coreH SROP](https://hackmd.io/@UPTOIP/Hy_7L7U-Wg) --- --- ## 📘 **C²++ Language Reference: core0** ### 1️⃣ `core0-overview.md` > *Einführende, erklärende Dokumentation mit Designmotiven und Philosophie.* Beinhaltet: * Konzept & Rolle von `core0` * Beziehung zu C²++ / IR / IL * Designprinzipien (Determinismus, Monaden, Branch) * Beispielprogramme (Hello World, Interrupts, UI-Fluent) * Unterschiede zu C / C++ / LLVM IR ➡ Zielgruppe: Entwickler, Forscher, Sprach- und Compilerarchitekten. --- ### 2️⃣ `core0-specification.md` > *Formale Sprachdefinition mit Syntax, Semantik und Verhalten.* Beinhaltet: * **Lexikalische Spezifikation** * Token-Arten, Literale, Labels, Branches * **Syntax** * Statements, Branches, Goto, Labels * Contexts (`context<<T@>>`), Monadenbindung * Structs, Functions, Includes, Namespaces * **Semantik** * RAII-Lifetime-System, Ownership, Borrowing * Grouped Returns (`||`, `&&`) * Error Handling & Signals * Interrupts & Determinismus * Sandbox-Semantik * **Type-System** * Builtins (`int`, `real`, `bool`, `bcd`, etc.) * `sys::*` Typenbibliothek * Template-Mechanik ohne Generics * Compile-Time-Kontextualisierung * **Execution Model** * `branch(int) goto label` * Block/Label Semantik * Stack Frames, Ownership Transfer, Return Rules * **Core Runtime** * `sys::io`, `sys::types`, `sys::error`, `sys::sched` * Interrupt handling (`interrupt(TIMER0)`) ➡ Zielgruppe: Compiler- und VM-Implementierer. --- ### 3️⃣ `core0-reference.md` > *Formaler API/Library-Level: alles, was unter `sys::*` als Standardbibliothek verfügbar ist.* Beinhaltet: * `sys::types::*` * `sys::io::console` * `sys::error` * `sys::sched` * `sys::memory` * `sys::data::*` * `sys::ui::*` ➡ Zielgruppe: Entwickler, die direkt in `core0` programmieren (z. B. für Embedded, Sandbox, VM). --- --- ## 📘 Inhaltsverzeichnis – C++ Tutorial ### **Teil 1: Einführung in C++** 1. Was ist C++? 2. Geschichte & Merkmale von C++ 3. Installation von Compiler und Entwicklungsumgebung (g++, MSVC, Clang, IDEs wie VS Code, CLion) 4. Erstes C++-Programm – Hello World 5. Aufbau eines C++-Programms 6. Kompilieren und Ausführen --- ### **Teil 2: Grundlagen der Sprache** 7. Datentypen und Variablen 8. Operatoren (arithmetisch, logisch, Vergleich) 9. Ein- und Ausgabe (`cin`, `cout`) 10. Kontrollstrukturen (if, else, switch) 11. Schleifen (for, while, do-while) 12. Funktionen – Deklaration, Definition, Aufruf 13. Gültigkeitsbereiche und Speicherklassen (`static`, `extern`, `register`) 14. Referenzen und Zeiger 15. Arrays und Strings 16. Enums und `typedef` --- ### **Teil 3: Objektorientierte Programmierung** 17. Klassen und Objekte 18. Konstruktoren und Destruktoren 19. Memberfunktionen und Datenkapselung 20. Vererbung und Polymorphismus 21. Abstrakte Klassen und Interfaces (`virtual`, `pure virtual`) 22. Überladen von Operatoren 23. Statische Member 24. `this`-Zeiger --- ### **Teil 4: Fortgeschrittene C++-Konzepte** 25. Templates (Funktionen und Klassen) 26. Ausnahmebehandlung (`try`, `catch`, `throw`) 27. STL – Standard Template Library * Vektoren, Listen, Maps, Sets * Algorithmen (`sort`, `find`, etc.) * Iteratoren 28. Lambda-Ausdrücke 29. Funktoren und `std::function` 30. Smart Pointer (`unique_ptr`, `shared_ptr`, `weak_ptr`) 31. Namespaces und `using` 32. Präprozessor-Direktiven (`#define`, `#include`, `#ifdef`, etc.) --- ### **Teil 5: Speicher & Performance** 33. Dynamische Speicherverwaltung (`new`, `delete`) 34. Speicherlecks und RAII 35. Stack vs Heap 36. Move Semantik und Rvalue References 37. Copy/Move Constructor & Assignment Operator --- ### **Teil 6: Arbeiten mit Dateien & System** 38. Dateiein- und -ausgabe (`fstream`) 39. Fehlerbehandlung bei IO 40. Arbeiten mit Zeit und Datum 41. Kommandozeilenargumente 42. Multithreading (ab C++11: `std::thread`) 43. Mutexes, Locks, Synchronisation 44. C++ und das Betriebssystem (Basics) --- ### **Teil 7: C++ in der Praxis** 45. Projektstruktur und Header-Dateien 46. Makefiles und Build-Systeme (Make, CMake) 47. Unit-Testing (z.B. Google Test) 48. Debugging (gdb, Visual Studio Debugger) 49. Performance-Optimierung 50. C++ Coding Standards und Best Practices --- ### **Teil 8: Moderne C++ (C++11 bis C++23)** 51. Überblick über C++11, C++14, C++17, C++20, C++23 52. Neue Features: * `auto`, `nullptr`, `constexpr`, `decltype` * Range-based Loops, `std::optional`, `std::variant` * Concepts und `requires` (ab C++20) * Coroutines, Modules, Pattern Matching (ab C++23) --- ### **Teil 9: Anhang & Ressourcen** 53. Nützliche Bibliotheken (Boost, fmt, etc.) 54. C++ vs andere Sprachen 55. Interview-Fragen und Aufgaben 56. Weiterführende Literatur & Links 57. Glossar wichtiger Begriffe
{"description":"Die C²++ Programmiersprache","title":"The C²++ Programming Language","contributors":"[{\"id\":\"cc60bbd8-f949-40b4-ad04-04a2d8a27bcb\",\"add\":69737,\"del\":25289,\"latestUpdatedAt\":1769474630661}]"}
Expand menu