-
Notifications
You must be signed in to change notification settings - Fork 1
linkenneth/furry-bear
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
NAMES: ---------------------------------------------------------------------- Kenneth Lin cs61a-kn Michael Lin Yang cs61a-ia WORK SPLIT: ---------------------------------------------------------------------- We never explicitly determined Partner A and Partner B, nor did we explicitly split the work for any part. We also did a lot of cross-checking and helping each other write their parts, so we can't really determine where the work split comes. BUGS: ---------------------------------------------------------------------- Although our interpreter works for arbitrarily long tail recursions, it does not work for arbitrariliy long lists of arguments. This is because the structure of scm_read() lends itself to be recursive for every argument. Therefore, our interpreter cannot handle more than ~900 arguments, and fewer depending on the recursion limits. Therefore, the autograder testing will not pass with some of the stress tests we introduced in our tests.scm file. This is not necessarily a bug but more a flaw in design that would require major refactoring to fix. NOTES: ---------------------------------------------------------------------- * In our tests.scm, we introduced many stress tests that would not pass the autograder tests simply because of the number of arguments it requires that the reader must read. We have provided a tests_nostress.scm for running tests with higher recursion limits. Note that this does not mean that our interpreter does not handle tail recursion (see BUGS). * For efficiency, we refactored a lot of for loops using self.expr.nth() to use while loops. Some functions may look different as a result. * We defined three new utility functions to simply our code: make_single_body(), evaluate_expr_seq_and_set_expr_as_last(), and make_list(). The first two are defined in scheme.py, while the last is defined in scheme_primitives.py. * For easier testing, we altered our scheme_test.py to treat all memory locations such as 0x23fa6b etc. to be interpreted to same. * We customized our prompt a bit :)
About
Temporary repository for Project 4 for CS 61A
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published