---
title: "Compiled Types"
language: "en"
type: "Guide"
summary: "The Wolfram Compiler provides advanced compilation capabilities to process an increasingly wide range of Wolfram Language code into native machine code. A key part of this process is type inferencing. This uses minimal type annotations to determine types for entire functions and groups of functions."
sections: 
  - 
    title: "Core Atomic Types"
    link: "null"
  - 
    title: "Integral Types"
    link: "null"
  - 
    title: "Real Types"
    link: "null"
  - 
    title: "Complex Types"
    link: "null"
  - 
    title: "Container Types"
    link: "null"
  - 
    title: "Utility Types"
    link: "null"
  - 
    title: "Function Types"
    link: "null"
  - 
    title: "C Types"
    link: "null"
  - 
    title: "Declaring Compiled Types"
    link: "null"
  - 
    title: "Using Compiled Types"
    link: "null"
keywords: 
- list of compiled types
canonical_url: "https://reference.wolfram.com/language/guide/CompiledTypes.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Code Compilation"
    link: "https://reference.wolfram.com/language/guide/CodeCompilation.en.md"
related_functions: 
  - 
    title: "CompiledExpressionDeclaration"
    link: "https://reference.wolfram.com/language/ref/CompiledExpressionDeclaration.en.md"
  - 
    title: "CompilerInformation"
    link: "https://reference.wolfram.com/language/ref/CompilerInformation.en.md"
  - 
    title: "CreateTypeInstance"
    link: "https://reference.wolfram.com/language/ref/CreateTypeInstance.en.md"
  - 
    title: "FunctionCompile"
    link: "https://reference.wolfram.com/language/ref/FunctionCompile.en.md"
  - 
    title: "Typed"
    link: "https://reference.wolfram.com/language/ref/Typed.en.md"
  - 
    title: "TypeDeclaration"
    link: "https://reference.wolfram.com/language/ref/TypeDeclaration.en.md"
  - 
    title: "TypeHint"
    link: "https://reference.wolfram.com/language/ref/TypeHint.en.md"
  - 
    title: "TypeSpecifier"
    link: "https://reference.wolfram.com/language/ref/TypeSpecifier.en.md"
related_tutorials: 
  - 
    title: "Wolfram Compiler Manual"
    link: "https://reference.wolfram.com/language/CompilerManual/tutorial/Overview.en.md"
---
# Compiled Types

The Wolfram Compiler provides advanced compilation capabilities to process an increasingly wide range of Wolfram Language code into native machine code. A key part of this process is type inferencing. This uses minimal type annotations to determine types for entire functions and groups of functions.

---

### Core Atomic Types

[`"Boolean"`](https://reference.wolfram.com/language/ref/compiledtype/Boolean.en.md) — a Boolean atomic type specifier

[`"String"`](https://reference.wolfram.com/language/ref/compiledtype/String.en.md) — a string type specifier

[`"InertExpression"`](https://reference.wolfram.com/language/ref/compiledtype/InertExpression.en.md) — an inert expression type specifier

### Integral Types

[`"Integer8"`](https://reference.wolfram.com/language/ref/compiledtype/Integer8.en.md) — an 8-bit machine integer type specifier

[`"UnsignedInteger8"`](https://reference.wolfram.com/language/ref/compiledtype/UnsignedInteger8.en.md) — an unsigned 8-bit machine integer type specifier

[`"Integer16"`](https://reference.wolfram.com/language/ref/compiledtype/Integer16.en.md) — a 16-bit machine integer type specifier

[`"UnsignedInteger16"`](https://reference.wolfram.com/language/ref/compiledtype/UnsignedInteger16.en.md) — an unsigned 16-bit machine integer type specifier

[`"Integer32"`](https://reference.wolfram.com/language/ref/compiledtype/Integer32.en.md) — a 32-bit machine integer type specifier

[`"UnsignedInteger32"`](https://reference.wolfram.com/language/ref/compiledtype/UnsignedInteger32.en.md) — an unsigned 32-bit machine integer type specifier

[`"Integer64"`](https://reference.wolfram.com/language/ref/compiledtype/Integer64.en.md) — a 64-bit machine integer type specifier

[`"UnsignedInteger64"`](https://reference.wolfram.com/language/ref/compiledtype/UnsignedInteger64.en.md) — an unsigned 64-bit machine integer type specifier

[`"Integer128"`](https://reference.wolfram.com/language/ref/compiledtype/Integer128.en.md) — a 128-bit machine integer type specifier

[`"UnsignedInteger128"`](https://reference.wolfram.com/language/ref/compiledtype/UnsignedInteger128.en.md) — an unsigned 128-bit machine integer type specifier

[`"MachineInteger"`](https://reference.wolfram.com/language/ref/compiledtype/MachineInteger.en.md) — a machine-sized signed integer type specifier

[`"UnsignedMachineInteger"`](https://reference.wolfram.com/language/ref/compiledtype/UnsignedMachineInteger.en.md) — a machine-sized unsigned integer type specifier

### Real Types

[`"Real32"`](https://reference.wolfram.com/language/ref/compiledtype/Real32.en.md) — an IEEE single-precision real type specifier

[`"Real64"`](https://reference.wolfram.com/language/ref/compiledtype/Real64.en.md) — an IEEE double-precision real type specifier

### Complex Types

[`"ComplexReal64"`](https://reference.wolfram.com/language/ref/compiledtype/ComplexReal64.en.md) — a complex number with IEEE double-precision real and imaginary parts type specifier

### Container Types

[`"PackedArray"`](https://reference.wolfram.com/language/ref/compiledtype/PackedArray.en.md) — a packed array type specifier

[`"NumericArray"`](https://reference.wolfram.com/language/ref/compiledtype/NumericArray.en.md) — a numeric array type specifier

[`"ByteArray"`](https://reference.wolfram.com/language/ref/compiledtype/ByteArray.en.md) — a byte array type specifier

[`"SparseArray"`](https://reference.wolfram.com/language/ref/compiledtype/SparseArray.en.md) — a sparse array type specifier

[`"ListVector"`](https://reference.wolfram.com/language/ref/compiledtype/ListVector.en.md) — a list of uniform elements type specifier

### Utility Types

[`"Rule"`](https://reference.wolfram.com/language/ref/compiledtype/Rule.en.md) — a type to represent a rule

[`"RawPointer"`](https://reference.wolfram.com/language/ref/compiledtype/RawPointer.en.md) — a pointer type specifier

[`"OpaqueRawPointer"`](https://reference.wolfram.com/language/ref/compiledtype/OpaqueRawPointer.en.md) — an opaque pointer type specifier

[`"Managed"`](https://reference.wolfram.com/language/ref/compiledtype/Managed.en.md) — a type that adds memory management to otherwise unmanaged types

[`"TypeSpecifier"`](https://reference.wolfram.com/language/ref/compiledtype/TypeSpecifier.en.md) — a type to hold other types

[`"CompiledFunctionData"`](https://reference.wolfram.com/language/ref/compiledtype/CompiledFunctionData.en.md) — data about compiled functions

[`"Null"`](https://reference.wolfram.com/language/ref/compiledtype/Null.en.md) — a type to indicate the absence of a result

### Function Types

[{Subscript[type, 1], Subscript[type, 2], …} -> returnType](https://reference.wolfram.com/language/ref/compiledtype/FunctionType.en.md) — a function type with specified argument and result types

[`"IncrementalFunction"`](https://reference.wolfram.com/language/ref/compiledtype/IncrementalFunction.en.md) — a function that can be paused and resumed

### C Types

[`"CChar"`](https://reference.wolfram.com/language/ref/compiledtype/CChar.en.md) — a C char type specifier

[`"CShort"`](https://reference.wolfram.com/language/ref/compiledtype/CShort.en.md) — a C short type specifier

[`"CUnsignedShort"`](https://reference.wolfram.com/language/ref/compiledtype/CUnsignedShort.en.md) — a C unsigned short type specifier

[`"CInt"`](https://reference.wolfram.com/language/ref/compiledtype/CInt.en.md) — a C int type specifier

[`"CUnsignedInt"`](https://reference.wolfram.com/language/ref/compiledtype/CUnsignedInt.en.md) — a C unsigned int type specifier

[`"CLong"`](https://reference.wolfram.com/language/ref/compiledtype/CLong.en.md) — a C long type specifier

[`"CUnsignedLong"`](https://reference.wolfram.com/language/ref/compiledtype/CUnsignedLong.en.md) — a C unsigned long type specifier

[`"CLongLong"`](https://reference.wolfram.com/language/ref/compiledtype/CLongLong.en.md) — a C long long type specifier

[`"CSizeT"`](https://reference.wolfram.com/language/ref/compiledtype/CSizeT.en.md) — a C size\_t type specifier

[`"CSSizeT"`](https://reference.wolfram.com/language/ref/compiledtype/CSSizeT.en.md) — a C ssize\_t type specifier

[`"CFloat"`](https://reference.wolfram.com/language/ref/compiledtype/CFloat.en.md) — a C float type specifier

[`"CDouble"`](https://reference.wolfram.com/language/ref/compiledtype/CDouble.en.md) — a C double type specifier

[`"CArray"`](https://reference.wolfram.com/language/ref/compiledtype/CArray.en.md) — a C array type specifier

[`"CString"`](https://reference.wolfram.com/language/ref/compiledtype/CString.en.md) — a C string type specifier

---

### Declaring Compiled Types

[`TypeDeclaration`](https://reference.wolfram.com/language/ref/TypeDeclaration.en.md) — a declaration of a product, abstract, macro or alias type

[`CompiledExpressionDeclaration`](https://reference.wolfram.com/language/ref/CompiledExpressionDeclaration.en.md) — a declaration of type representing an expression

### Using Compiled Types

[`Typed`](https://reference.wolfram.com/language/ref/Typed.en.md) — specify a type for a program element such as a function argument

[`TypeHint`](https://reference.wolfram.com/language/ref/TypeHint.en.md) — specify a type for a program element inside the body of a function

[`TypeSpecifier`](https://reference.wolfram.com/language/ref/TypeSpecifier.en.md) — create a compound type such as a packed array

[`FunctionCompile`](https://reference.wolfram.com/language/ref/FunctionCompile.en.md) — compile Wolfram Language code into optimized machine code

[`FunctionCompile`](https://reference.wolfram.com/language/ref/FunctionCompile.en.md) — compile Wolfram Language code into optimized machine code

[`CompilerInformation`](https://reference.wolfram.com/language/ref/CompilerInformation.en.md) — information about a type

[`CreateTypeInstance`](https://reference.wolfram.com/language/ref/CreateTypeInstance.en.md) — create an instance of a type in compiled code

## Tech Notes

* [Wolfram Compiler Manual](https://reference.wolfram.com/language/CompilerManual/tutorial/Overview.en.md)

## Related Guides

* [Code Compilation](https://reference.wolfram.com/language/guide/CodeCompilation.en.md)