Posted to tcl by Zarutian at Fri Apr 13 16:30:03 GMT 2007view pretty

# The below text by Zarutian is here by put in the international public domain.
#
#Backaus-Noir Form:
# task_quanta := input_queue, output_queue, address_book, state, run_quota
# run_quota := how many commands to be run until next task switching (the size of the slice so to speak)
# input_queue := message*
# output_queue := message*
# message := address_handle*, data
# address_book := address_book_entry*
# address_book_entry := address_handle, real address of an other task_quanta or an entity that can recive messages
# state := return_stack, data_stack, definitions
# return_stack := stack_frame+
# stack_frame := code, code_index
#
# when a message is recived for an task_quanta
#  all addresses in the message are substituted to address_handles
#  makeing new address_handles for previously unknown addresses
# when a message is sent from an task_quanta
# all address_handles are substituted to real addresses
#
# a task_quanta can only be suspended because of one of these conditions has occured:
#   a) run_quota for current scheduling round has been used up
#   b) the task_quanta requested the next message from its input queue
#      and the input queue is empty

Comments

Posted by Zarutian at Fri Apr 13 16:49:28 GMT 2007 [text] [code]

# continued: # # definitions := definition+ # definition := name, code