add notes for executor

This commit is contained in:
nganhkhoa 2024-03-29 17:05:59 +07:00
parent 2689fd9d1b
commit a0fcf3a3e8

View File

@ -19,5 +19,30 @@ pub fn run_program(module: Module) -> Result<()> {
};
println!("main {:?}", main);
// loop through all variables and check if
// runtime computation should be executed
// actually a big problem and should be done later
// this requires dependency tree (DAG) of lazy variables
// in the mean time, we can use the logic of lazy evaluation
// (Haskell). By only execute the variable when a computation
// requires. However, we might not cache the result.
// type checks, everything should be checked because this is
// a statically typed language. We do not tolerate any type errors.
// this will be implemented in another package "type"
// the whole context will be intialized and passed through each
// computation.
// We allow for callable objects, these include closure, partial
// application. This will be reflected in the runtime by replacing
// variable values into the Expression and when fully apply,
// the Expression is evaluated to get the result.
// Advanced features will be designed and implemented at a later
// stage into development.
Ok(())
}