El lenguaje de programación Move se utilizó inicialmente para construir la cadena de bloques Diem. Fue creado por la Asociación Diem, que era un consorcio tecnológico respaldado por Meta. Aunque finalmente se descartó la cadena de bloques, Move todavía se utiliza en la actualidad.

El lenguaje de programación Move es un lenguaje de código de bytes ejecutable. Implementa contratos inteligentes y transacciones personalizadas. Move tiene como objetivo solucionar los problemas que surgen de otros lenguajes de programación blockchain, como Solidity. Sin embargo, los objetivos básicos de lograr la escasez digital y el control sobre los activos digitales siguen siendo los mismos. En particular, también tiene como objetivo evitar el doble gasto y permite a los titulares de activos digitales mantener la información de propiedad.

Al hacerlo, Move maximiza la seguridad al tiempo que mantiene un diseño optimizado y costos de gas significativamente más bajos que las cadenas de bloques que no se basan en Move.

¿Cómo funciona el lenguaje de programación Move?

Move utiliza lógica lineal, lo que significa que los recursos solo se pueden usar una vez y nunca se pueden copiar ni descartar implícitamente. Esto permite a los desarrolladores codificar tipos de recursos personalizados que no se pueden borrar ni duplicar y se tratan mejor que otros.

El sistema de tipos estáticos de Move es donde las variables deben definirse como un tipo (un número/palabra). Protege los recursos priorizados. Aún así, pueden usarse como elementos regulares y almacenarse en estructuras de datos o proporcionarse como valores en los cálculos. Los recursos también son transparentes en los módulos y están ocultos para que fuentes externas los soliciten.

Además, los módulos en Move son flexibles y seguros ya que la relación entre módulos, recursos y procedimientos es como la relación entre clases, objetos y métodos en la programación orientada a objetos.

Move también puede verificar todos los rasgos de seguridad en la cadena y admitir herramientas de verificación estática fuera de la cadena. Esto reduce en gran medida las complejidades en torno a la verificación en cadena. Su diseño se basa en tres decisiones centrales:

—> La falta de despacho dinámico evita la construcción del gráfico de llamadas y permite la determinación estática del sitio de la llamada. Esto permite a Move identificar los efectos de una llamada a un procedimiento más fácilmente y sin complejidades adicionales.

—> Gracias a su modularidad, los módulos se pueden aislar para la verificación funcional y ayudan a extraer datos y localizar operaciones críticas en los recursos. La seguridad se garantiza encapsulando el módulo junto con el sistema de tipos del lenguaje, lo que significa que el código fuera de un módulo no puede violar sus tipos. Además, al examinar módulos aislados, proporcionará una verificación funcional exhaustiva de invariantes de módulo importantes.

—> Finalmente, su mutabilidad limitada permite usar tipos de referencia similares a C++. Las referencias son vitales para mutar cada valor de Move y, normalmente, los valores temporales se crean y destruyen dentro de un script de transcripción. Al igual que Rust, el verificador de código de bytes de Move "toma prestados cheques" para confirmar al menos una referencia mutable.

—> Finalmente, Move rechaza programas que no siguen la seguridad de tipo, la seguridad de la memoria y la seguridad de los recursos. En su lugar, se puede utilizar un lenguaje de programación de alto nivel con un compilador, responsable de comprobar las propiedades. La alternativa es un conjunto sin tipo de bajo nivel con controles de seguridad.

#Write2Earn >#TrendingTopic #