Skip to content

Udpated code and compiled executable for the standard modeling language implementation of uscheme. The goal of this update is to remove the use of closures for the defenition and application of certain expressions.

Notifications You must be signed in to change notification settings

TheShanachie/editing-mosml-uscheme-interpreter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Edited SML uscheme interpreter

This directory includes the udpated code and compiled executable for the standard modeling language implementation of uscheme. The goal of this update is to remove the use of closures for the defenition and application of certain expressions. In addition, the test cases are provided as seperate scheme documents, which can be run by #> ./<uscheme executable> <uscheme code document>. There are three code documents provided, which can be usd to demonstrate the functionality of this update. Finally, a test script is given to run the code documents and view the output for each. The contents of this directory do not include the sml documentation, source, and binaries. If you need to re-compile the updated uscheme implementation, you will need to access the mosmlc (Moscow SML Compiler) seperately.

Advantages of Update

  • Simpler Function Representation: The new methodology avoids the need for complex closure logic, making the function's behavior purely dependent on its input arguments (args).
  • Increased Maintainability: Without the need to capture and manage the dynamic rho environment, the interpreter becomes easier to implement, debug, and reason about.
  • Uniform Treatment of Functions: Primitive functions and lambdas are now treated identically as FUNCTION values, streamlining the evaluation process.

Drawbacks of Update

  • Loss of Implicit Context: Free variables in the lambda's body (those not declared as parameters) are no longer resolved automatically against the rho environment. The programmer or the interpreter must ensure that all required variables are explicitly passed in.
  • Potential Verbosity: If a lambda relies on many free variables from rho, the new methodology requires these to be explicitly passed as arguments, potentially leading to more verbose code.

About

Udpated code and compiled executable for the standard modeling language implementation of uscheme. The goal of this update is to remove the use of closures for the defenition and application of certain expressions.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published