Index

A

  1. Abstract machines

  2. Abstract syntax tree

  3. Accessing code

    1. header files

  4. Addressing

    1. base-indexed with scale and displacement

    2. direct

    3. immediate

    4. indirect addressing

  5. Address space

  6. Address space layout randomization (ASLR)

  7. Alignment

  8. Address translation process

    1. DEP and EXB

    2. page table entry

    3. PML4

    4. segmentation faults

    5. TLB

  9. Array

    1. defined

    2. initializers

    3. memory allocators

    4. summation functionality

      1. bug

      2. const qualifiers

  10. Assembly code

    1. dictionary implementation

    2. dynamic library

    3. GCC and NASM

  11. Assembly language

    1. constant precomputation

    2. endianness

    3. function calls

    4. instruction

      1. mov

      2. syscall

    5. label

    6. output register

      1. local labels

      2. rax value

      3. relative addressing

    7. pointer

    8. string length computation

    9. strings

  12. Assembly preprocessor

    1. conditionals

    2. %define

    3. macros with arguments

  13. Assertions

B

  1. Backus-Naur form (BNF)

  2. Binutils

  3. BitMaP (BMP) format

  4. BNF (Backus-Naur form)

  5. Booleans

  6. Branch prediction

  7. Breakpoint

C

  1. C

    1. C89

    2. compilation

    3. control flow

      1. fibonacci series

      2. for

      3. switch

      4. while

    4. dangling else

    5. data types

    6. Duff’s device

    7. expressions

    8. function

    9. main function

    10. preprocessor

      1. block

      2. #define

      3. #endif

      4. #ifndef

      5. #include

    11. program structure

    12. statements

      1. block

  2. C11

    1. alignment

  3. Caching

    1. binary search, prefetching

    2. cache-lines

    3. cache-miss

    4. LL-cache

    5. matrix initialization

    6. memory

    7. memory bypassing

    8. prefetching

    9. use case

  4. Calling convention

    1. variable arguments count

      1. ellipsis

  5. Calling function

  6. Chomsky hierarchy

  7. CISC

  8. C11 memory model

    1. atomics

    2. Intel 64

    3. memory ordering

    4. operations

  9. Code models

    1. kernel

    2. large

      1. PIC

      2. without PIC

    3. medium

      1. PIC

      2. without PIC

    4. small

      1. PIC

      2. without PIC

  10. Code reusability

  11. Coding style

    1. characteristics

    2. file structure

    3. functions

    4. integer types

    5. naming

    6. types

    7. variables

  12. Compilation process

    1. preprocessor

SeePreprocessor
  1. translation

  1. Compiler

  2. Condition variables

  3. const types

  4. Context-free grammars

  5. Context-sensitive grammars

D

  1. Data Execution Prevention (DEP)

  2. Data models

  3. Data streams

  4. Data structure padding

  5. Data types

    1. static weak typing

    2. strong typing

    3. weak typing

  6. Deadlocks

  7. Debugging

  8. Declarations

    1. forward declaration

    2. functions

    3. incomplete type

    4. structure

  9. Descriptor Privilege Level

  10. Directive

  11. Distributed factorization

  12. Dynamic array

    1. scanf function

  13. Dynamic library

    1. calling function

    2. .dynstr

    3. .dynsym

    4. .hash

    5. optimizations

  14. Dynamic linker

  15. Dynamic Memory Allocation

E

  1. ELF (Executable and Linkable Format)

    1. file type

    2. headers

      1. .dynstr

      2. .dynsym

      3. .hash

      4. execution view

      5. linking view

    3. Program Header Table

    4. section controls

    5. sections

      1. .bss

      2. .data

      3. .debug

      4. .dynstr

      5. .dynsym

      6. execution view

      7. .fini

      8. .hash

      9. .init

      10. .line

      11. linking view

      12. .rel.data

      13. .rel.text

      14. .rodata

      15. .strtab

      16. .symtab

      17. .text

    6. section table

    7. segments

    8. structure

  2. Encapsulation

  3. Enumerations

  4. Error handling

  5. Executable object file

  6. Execution unit

  7. External variable, access

F

  1. Fibonacci series

  2. File

  3. File descriptor

  4. Files and documentation

  5. File structure

  6. Finite state machines

    1. bits parity

    2. definition

    3. limitation

    4. regular expressions

    5. undefined behavior

    6. verification techniques

  7. Forbidden address

  8. Formal grammars

    1. arithmetics

    2. arithmetics with priorities

    3. Chomsky hierarchy

    4. imperative language

    5. natural numbers

    6. nonterminals

    7. recursive descent

    8. symbols

    9. terminals

  9. Forth machine

    1. architecture

    2. bootstrap

    3. compilation

    4. compiler

    5. conditional

    6. dictionary

    7. execution token,113–114

    8. immediate flag

    9. immediate words

    10. indirect threaded code

    11. inner interpreter

    12. native word

    13. outer interpreter

    14. PC

    15. PC register

    16. pseudocode

    17. quadratic equation manipulation

    18. static dictionary

    19. word list

    20. words implementation

    21. W register

  10. Forward declaration

  11. Function

  12. Functional types

  13. Function calling sequence

    1. callee-saved register

    2. caller-saved register

    3. calling convention

    4. red zone

    5. return address

    6. return a value

    7. system calls

    8. variable arguments count

    9. vprintf

    10. XMM registers

  14. Function prototypes

G

  1. gdb

    1. autocompletion

    2. breakpoint

    3. call stack

    4. commands

    5. FMT

    6. -ggdb

    7. Intel syntax

    8. rax register

    9. stack

  2. Global Descriptor Table (GDT)

  3. Global Offset Table

  4. Good code practices

H

  1. Header files

  2. Heap

  3. Higher-order functions

I, J

  1. Image rotation

    1. architecture

    2. BitMaP (BMP) format

  2. Immutability

  3. Implicit conversions

  4. Include guard

  5. Incomplete type

  6. Indirect threaded code

  7. Inline

  8. Input/output (I/O) ports

    1. tr register

  9. Instruction cache

  10. Instruction decoder

  11. Integer promotion

  12. Intel 64

    1. architecture

    2. bugs

    3. constraints

    4. main function

    5. reordering

  13. Interrupts

    1. #BP

    2. descriptor

    3. error code

    4. #GP

    5. IDTR register

    6. interrupt descriptor

    7. Interrupt Descriptor Table (IDT)

    8. interrupt handler

    9. interrupt stack table

    10. iretq instruction

    11. #PF

  14. Intermediate Representation (IR)

K

  1. Kernel code model

L

  1. Lazy Memory Allocation

  2. LD_PRELOAD

  3. Legacy processor modes

    1. long

    2. protected

    3. real mode

  4. Lexical analysis

  5. Library

  6. Linkage

  7. Linked list

  8. Linked objects

  9. Linker

    1. symbol

  10. Linking

    1. alignment

    2. libraries

SeeDynamic library
  1. Livelocks

  2. Loader

  3. Locality of reference

  4. Lock-free programming

  5. Logical address

  6. Long mode

    1. segmentation

  7. longjmp

    1. See alsosetjmp

  8. lvalue

    1. expression

    2. statement

M

  1. Machine word

  2. Macro expansion

  3. Macro instances

  4. Macros

  5. Main function

  6. Makefile

    1. automatic variables

  7. malloc implementation

  8. Map-reduce technique

  9. Memory allocation

    1. automatic

    2. dynamic

    3. static

  10. Memory Allocator

  11. Memory barrier

  12. Memory leak

  13. Memory Management Unit (MMU)

  14. Memory map/mapping

    1. null terminated string

  15. Memory model

    1. allocation, dynamic

    2. memory leak

    3. void* pointer

  16. Memory region

  17. Model of computation

  18. Model-Specific Registers (MSR)

  19. Module

  20. Multithreading

    1. execution order

    2. memory barrier

    3. POSIXthreads

SeePthreads
  1. process

  2. reordering

  3. strong and weak memory model

  4. thread

  5. use case

  6. volatile

  1. Mutexes

N

  1. Namespaces

  2. Naming convention

  3. Natural numbers

  4. Non-deterministic finite automaton (NFA)

  5. Numeric types

O

  1. Object file

  2. Operator sizeof

  3. Optimizations

    1. branch prediction

    2. compiler flags

    3. constant propagation

    4. execution unit

    5. grouping reads and writes

    6. low-level

    7. performance tests

    8. profiler

    9. return value

    10. stack frame pointer omission

    11. subexpressions elimination

    12. tail recursion

P, Q

  1. Parser combinators

  2. Parsing complex definition

  3. Physical address

  4. Pointer arithmetic

  5. Pointers

    1. array

    2. function

    3. NULL

    4. ptrdiff_t

    5. void*

  6. Polymorphism

    1. coercions

    2. definition

    3. inclusion

    4. overloading

    5. parametric

  7. Position independent code (PIC)

  8. Pragmatics

    1. alignment

    2. data structure padding

  9. Preloading

  10. Preprocessor

    1. condition

      1. argument type

      2. on definition

      3. text identity

    2. %define

    3. #define directive

    4. evaluation order

    5. #ifdef

    6. include guard

    7. labels inside macros

    8. pitfalls

    9. #pragma once

    10. repetition

    11. substitutions

      1. with arguments

      2. conditionals

      3. macros

    12. symbols

  11. Prime number

  12. Prime number checker

  13. Procedure

  14. Programming language

  15. Protected mode

    1. far jump

    2. GDT/LDT

    3. RPL

    4. segment descriptor

    5. segment selector

  16. Protection rings

    1. #BP

    2. #GP

    3. #PF

    4. #UD

  17. Pthreads

    1. condition variables

    2. deadlocks

    3. distributed factorization

    4. joinable thread

    5. livelocks

    6. multithreading, use case

    7. mutexes

    8. semaphore

    9. set attributes function

    10. spinlocks

    11. synchronization

    12. threads, creation

  18. ptrdiff_t

R

  1. Real mode

    1. segment

    2. segment registers

  2. Reduced Instruction Set Computer (RISC)

  3. Registers

    1. advantages

    2. callee-saved

    3. CISC and RISC

    4. instruction decoder

    5. locality of reference

    6. rax decomposition

    7. rflags

    8. rip

    9. rsi and rdi decomposition

    10. rsp and rbp decomposition

    11. segment

  4. Regular expressions

  5. Relocatable object files

  6. Relocations

  7. Relocation table

  8. Reenterable

  9. restrict

  10. rvalue

    1. See alsolvalue

S

  1. scanf

  2. Scalar product

  3. Security

    1. address space

    2. DEP

    3. format output functions

    4. return-to-libc

    5. stack buffer overrun

  4. Security cookie

  5. Segmentation faults

  6. Segment selector

  7. Semantics

    1. implementation-defined behavior

    2. sequence points

    3. undefined behavior

    4. unspecified behavior

  8. Semaphore

  9. setjmp

    1. See alsolongjmp

    2. longjmp

    3. volatile

  10. Shadow register

  11. Shared object file

    1. lookup scope

  12. Shellcode

  13. SIMD Instruction Class

  14. Signal

    1. SIGSEGV

  15. sizeof

  16. Source file structure

  17. Spatial locality

  18. Speedup

  19. Spinlocks

  20. SSE and AVX extensions

    1. addps and movdqa

    2. ALUs

    3. AVX

    4. movdqa and mulps

    5. packed

    6. sepia filter

  21. Standard library

  22. Statements

  23. Static

  24. Static keyword

  25. Static libraries

  26. stderr

  27. stdin

  28. stdout

  29. Strict aliasing rule

  30. String interning

  31. String length manipulation

  32. String literals

  33. Strings

    1. null-terminated

  34. Structures

  35. Symbol resolution

  36. Symbol table

  37. Syntax

    1. abstract

    2. concrete

  38. sysret

  39. System calls

    1. close

    2. exit

    3. mmap

    4. model-specific registers

    5. munmap

    6. open

    7. read

    8. write

T

  1. Task State Segment (TSS)

  2. Temporal locality

  3. Tokens

  4. Translation

  5. Translation Lookaside Buffer

  6. Type alias

  7. Type casting

  8. typedef

  9. Type system

    1. booleans

    2. implicit conversions

    3. numeric types

    4. pointers

    5. type casting

  10. Typing

    1. dynamic typing

    2. explicit typing

    3. implicit typing

    4. static typing

    5. weak typing

U

  1. Undefined behavior

  2. Unions

V, W

  1. Verification

  2. Virtual address

    1. canonical address

  3. Virtual memory

    1. address space

    2. address translation process

      1. PML4

    3. allocation

    4. bus error

    5. caching

    6. efficiency

    7. forbidden address access

    8. mapping

See(Memory mapping)
  1. memory map

  2. page

    1. anonymous pages

    2. frame

    3. sizes

  3. region

  4. replacement strategies

  5. swap file

  6. virtual address structure

  7. working set

  1. Volatile memory allocation

  2. Volatile variables

    1. GCC

    2. pointer

  3. von Neumann architecture

    1. advantages

    2. assembly language

    3. extensions

    4. hardware stack

    5. interrupts

    6. memory

    7. protection rings

    8. registers

    9. virtual memory

X, Y, Z

  1. XMM registers