This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
cs330_f2016:laby [2018/09/26 18:03] morse |
cs330_f2016:laby [2018/09/27 19:52] morse |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ** Temporarily under revision to fix errors -- don't use until completed and this message goes away. ** | + | ** Revised since first distributed -- please check for changes ** |
** Make sure you are working with the latest versions of the class code compatible with Julia 1.0. ** | ** Make sure you are working with the latest versions of the class code compatible with Julia 1.0. ** | ||
Line 45: | Line 45: | ||
===Operator Table === | ===Operator Table === | ||
- | Define a data-structure to contain a mapping from operator symbols to the functions that actually implement that symbol. | + | Define a data structure to contain a mapping from operator symbols to the functions that actually implement that symbol. |
+ | These functions can be either built-in ones or ones that you write, so long as you preserve the semantic meaning of the operation. | ||
For example: | For example: | ||
Line 159: | Line 161: | ||
In order for your code to work with the solo-grader you will need to do following: | In order for your code to work with the solo-grader you will need to do following: | ||
-Name your module ''RudInt''. | -Name your module ''RudInt''. | ||
- | -Make sure the function stored in your binop are native Julia functions. | ||
-Make sure the ''julia'' binary is in your executable path (like you did for ''racket'' previously) | -Make sure the ''julia'' binary is in your executable path (like you did for ''racket'' previously) | ||
-Make sure the path for the Error and Lexer files are on you Julia path. To do this you can add ''push!(LOAD_PATH,pwd())'' into your ''~/.julia/config/startup.jl'' file, then just make sure to run the autograder from the same directory in which you have RudInt, Lexer, and Error. | -Make sure the path for the Error and Lexer files are on you Julia path. To do this you can add ''push!(LOAD_PATH,pwd())'' into your ''~/.julia/config/startup.jl'' file, then just make sure to run the autograder from the same directory in which you have RudInt, Lexer, and Error. | ||
-Inside your module have the lines ''using Error'' and ''using Lexer''. (These should already be in the base code we give you to start with.) | -Inside your module have the lines ''using Error'' and ''using Lexer''. (These should already be in the base code we give you to start with.) | ||
+ | |||
+ | ====Change Log==== | ||
+ | Changes since first given this semester: | ||
+ | * Replaced "type..." with "struct..." in the abstract syntax definitions to be compatible with Julia 1.0 | ||
+ | * Changed "Num" to "NumNode" and "Binop" to "BinopNode" to be consistent with the in-class interpreters and the given base code in CI0. | ||
+ | * Tweaked the Hints to be compatible with Julia 1.0, especially changing .juliarc to .startup.jl. | ||
+ | * Changed the autograders accordingly. |