An embedded system is a computer system designed to perform dedicated functions within a larger mechanical or electrical system, often with real-time computing constraints. Embedded systems are found in many devices such as mobile phones, televisions, tablets and vehicles. They typically use microcontrollers or System on a Chip (SoC) technology. Key characteristics of embedded systems include limited memory and processing resources, real-time performance, low power consumption and fixed functions determined at design time. Common programming languages used in embedded systems include C, C++ and assembly language.