2018-03-15 16:03:38 +01:00
|
|
|
# The *essential* step from vool to risc, is the one from a language to a machine.
|
|
|
|
# From vools statements that hang in the air, to an instruction set.
|
2018-03-13 12:21:33 +01:00
|
|
|
#
|
2018-03-15 16:03:38 +01:00
|
|
|
# ### List based: Bit like Risc, just no registers
|
2017-04-10 10:47:18 +02:00
|
|
|
#
|
|
|
|
# ### Use object memory : object to object transfer + no registers
|
|
|
|
#
|
|
|
|
# ### Instruction based
|
|
|
|
#
|
2018-03-15 16:03:38 +01:00
|
|
|
# So a machine rather than a language. No control structures, but compare and jump instructions.
|
2017-04-10 10:47:18 +02:00
|
|
|
# No send or call, just objects and jump.
|
|
|
|
# Machine capabilities (instructions) for basic operations. Use of macros for higher level.
|
|
|
|
|
|
|
|
module Mom
|
2019-08-12 11:36:32 +02:00
|
|
|
# boot bubiltin function (subject to change)
|
2019-09-07 15:43:47 +02:00
|
|
|
def self.boot!(options = {})
|
|
|
|
Builtin.boot_functions(options)
|
2019-08-12 11:36:32 +02:00
|
|
|
end
|
2017-04-10 10:47:18 +02:00
|
|
|
end
|
|
|
|
|
2019-08-06 19:44:39 +02:00
|
|
|
require_relative "instruction.rb"
|
|
|
|
require_relative "mom_collection"
|
2019-07-22 14:21:16 +02:00
|
|
|
require_relative "callable_compiler"
|
2019-08-06 19:44:39 +02:00
|
|
|
require_relative "method_compiler"
|
|
|
|
require_relative "block_compiler"
|
2019-08-12 11:36:32 +02:00
|
|
|
require_relative "builtin"
|