Skip to content

Language Spec Outline

Chris B edited this page Sep 17, 2024 · 2 revisions

Language Spec Outline

Introduction - In Progress

The introduction describes the scope of the document and provides background context including references, definitions of terms, and the basis of the program execution and memory models.

Lexical Conventions - In Progress

This chapter should fully describe the basic lexical constructs that form a program. And the fundamental basis for how a compiler processes source files.

Missing sections:

  • Identifiers
  • Keywords
  • Operators and punctuators

Basic Concepts - In Progress

This chapter defines basic terms and mechanisms that the language builds from. These concepts should cover foundational concepts like the definitions, names, variables and scope.

This section will also include a definition of the memory and execution models for the language.

Missing sections:

  • Scope
  • Name Lookup
  • Memory and object model
  • Execution Model

Standard Conversions - Mostly Complete

This chapter describes the standard set of conversions for how an object is converted from one type to another.

Expressions - In Progress

  • Primary Expressions - In Progress
  • Postfix Expressions - In Progress
  • Unary Expressions
  • Explicit Type Conversion
  • Arithmetic and Logical Operators
    • Addition and Subtraction Operators
    • Multiplication and Division Operators
    • Shift Operators
    • Equality and Relational Operators
    • Bitwise Operators
  • Conditional Operator
  • Assignment and Compound Assignment
  • Comma Operator
  • Constant Expressions

Statements - In Progress

  • Labeled Statements - Needs Revisiting
  • Expression Statement
  • Compound Statement
  • Selection Statement
  • Iteration Statement
  • Declaration Statement
  • Statement Attributes - In Progress

C++ Spec has a section [stmt.ambig] which we need to review as well.

Declarations - In Progress

Classes

Overloading - In Progress

Templates

Preprocessor

Library Introduction

Math Library

Thread Cooperative Library

Atomic Library

Resource Library

Clone this wiki locally