> For the complete documentation index, see [llms.txt](https://thryec.gitbook.io/dev-compedium/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://thryec.gitbook.io/dev-compedium/ethereum/yul/introduction.md).

# 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.
