# Introduction

#### tl;dr&#x20;

* Yul is an intermediate representation of Solidity bytecode.
* It’s not exactly Assembly, since what is stored on the blockchain is bytecode; Yul is one level above assembly.
* Yul is designed such that the translation between Yul and the actual bytecode is as one-to-one as possible

#### Basic Characteristics

* Yul code has to be stored within an `assembly` block
* Assignment of variables has to be done with `:=`
* Yul doesn’t have semicolons
* Doesn’t have storage variables, doesn’t handle memory, doesn’t have arrays, and doesn’t parse function arguments.
