MScheme

Post on 30-Dec-2015

21 views 0 download

Tags:

description

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. - PowerPoint PPT Presentation

Transcript of MScheme

Advanced Programming 2009/2010 – Group 23Rui Sebastião56939

José Duarte Lourenço 58515Sofia Teixeira 58600

Architecture

Input Processing◦ Algorithm

Environment Notion

Extensions

Glossário

Functional Programming

Command pattern

Recursion

Main loop Expression Parser

If-else structure

String matching with the language glossary…

… Or Type Matching with Language Types

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

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

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

Exception handling

define lambda

cond, if begin

let, let*, letreccar, cdr, cons, apply, map,

member

+, -, *, /jcall, jnew, jmethod, jconstructor, jtype

remainder, quotientJnull, jstring, jboolean, jchar,

jdouble, jfloat, jint, jlong, jbyte, jshort

<, >, >=, <= set!, set-car!, set-cdr!

not, eq?, =, null? ‘, quote, list

and, or function?, number?, pair?