Skip to content

Latest commit

 

History

History
 
 

move

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
id title custom_edit_url
move-language
Move Language

Move is a new programming language developed to provide a safe and programmable foundation for smart contract development.

Overview

The Move language directory consists of three distinct parts: the Move bytecode language, the Move intermediate representation (IR), and the Move source language.

  • The Move bytecode language defines programs published to the blockchain. It has a static type system that guarantees the absence of certain critical errors, including the prevention of duplicating certain values. Relevant crates include:

  • The Move IR is a low-level intermediate representation that closely mirrors Move bytecode. What mainly differentiates it from the bytecode is that names are used as opposed to indexes into pools/tables. Relevant crates include:

    • move-ir-types defines the IRs Rust types, notably the AST.
    • move-ir compiles the IR to the bytecode.
  • The Move source language is a high-level language that compiles to Move bytecode. It is designed to be a familiar and ergonomic language for developers that provides minimal abstractions over the Move bytecode. Relevant crates include:

    • move-compiler defines the source language and all compilation steps up to the Move IR.
    • move-analyzer provides the IDE integration for the source language.
    • move-package defines the package system used for organizing Move source code.
    • move-cli provides a standard implementation for command-line utilities, such as building Move binary files and running tests.