90 likes | 192 Views
MScheme. Advanced Programming 2009/2010 – Group 23 Rui Sebastião56939 José Duarte Lourenço 58515 Sofia Teixeira 58600. Agenda. Architecture Input Processing Algorithm Environment Notion Extensions Glossário. Architecture. Functional Programming Command pattern Recursion.
E N D
MScheme Advanced Programming 2009/2010 – Group 23 Rui Sebastião56939 José Duarte Lourenço 58515 Sofia Teixeira 58600
Agenda • Architecture • Input Processing • Algorithm • Environment Notion • Extensions • Glossário
Architecture • Functional Programming • Command pattern • Recursion
Input Processing • Main loop Expression Parser • If-else structure • String matching with the language glossary… • … Or Type Matching with Language Types
Input Processing – Algorithm 1/2 • Check the car of incoming cons • If it is a known command, execute it with our eval nodes • Inside each eval node: • Evaluate recursively with Expression Parser the car of the expression received until it is of a known type
Input Processing – Algorithm 2/2 • If it is of a known type, perform adequate evaluation • Self evaluating expressions • Cons expressions • Symbols that are Functions and must evaluate again on Expression Parser
EnvironmentNotion • At the beginning of the program, an initial environment is set with the known types • On each let, let* instruction & lambda a new internal environment is pushed into our List of Environments • At the end of its execution, the stack pointer returns to the global environment
Extensions • Exception handling