# YUL

Yul es un lenguaje intermedio diseñado específicamente para el ecosistema de Ethereum, utilizado para crear contratos inteligentes altamente optimizados. Sirve como un puente entre lenguajes de alto nivel como Solidity y el lenguaje de máquina de la Ethereum Virtual Machine (EVM). Al ser más cercano al nivel del hardware, Yul permite a los desarrolladores escribir código que maximiza la eficiencia del contrato en términos de consumo de gas y rendimiento.

#### Principales características:

* **Optimización avanzada:** Permite escribir código optimizado utilizando operaciones de bajo nivel y estructuras más simples que las ofrecidas por Solidity.
* **Compatibilidad con múltiples plataformas:** Soporta tanto la EVM como eWASM, haciéndolo versátil para diferentes entornos de ejecución en blockchain.
* **Integración con Solidity:** Yul puede integrarse con contratos Solidity a través de Inline Assembly, lo que facilita el uso de secciones optimizadas dentro de un contrato más complejo.
* **Control preciso:** Ofrece un control granular sobre la memoria, el almacenamiento y el costo de gas mediante el uso de _Opcodes_ y _precompiles_.

{% stepper %}
{% step %}
### Assembly

[https://docs.soliditylang.org/en/latest/assembly.html](https://docs.soliditylang.org/en/latest/assembly.html)
{% endstep %}

{% step %}
### Opcodes

[https://www.evm.codes/](https://www.evm.codes/)
{% endstep %}

{% step %}
### Precompiles

[https://www.evm.codes/precompiled](https://www.evm.codes/precompiled)
{% endstep %}

{% step %}
### Dynamic Gas Costs and Memory Expansion

[https://github.com/wolflo/evm-opcodes/blob/main/gas.md](https://github.com/wolflo/evm-opcodes/blob/main/gas.md)
{% endstep %}
{% endstepper %}

