User Tools

Site Tools


cs330_f2016:laby

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
cs330_f2016:laby [2018/09/27 19:52]
morse
cs330_f2016:laby [2021/06/30 23:42] (current)
Line 1: Line 1:
-** 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 11: Line 9:
  
 You will need to download and install [[https://​julialang.org|Julia]] for this lab. You will need to download and install [[https://​julialang.org|Julia]] for this lab.
-Note: if you are using Ubuntu, be careful using the ''​apt''​ version of Julia (it may be too old!). ​ **You should use Julia 1.0 or later.**.+Note: if you are using Ubuntu, be careful using the ''​apt''​ version of Julia (it may be too old!). ​ **You should use Julia 1.0 or later.**
  
 Note that the code required for this lab is available on LearningSuite,​ in the "​Content"​ section, under the "​Interpreters"​ subsection, on the page titled "Base Interpreter"​. ​ You will need the following files: Note that the code required for this lab is available on LearningSuite,​ in the "​Content"​ section, under the "​Interpreters"​ subsection, on the page titled "Base Interpreter"​. ​ You will need the following files:
Line 39: Line 37:
 Remember that you will use multiple dispatch to implement different "​versions"​ of ''​parse''​ and ''​calc'',​ based on the input type. Remember that you will use multiple dispatch to implement different "​versions"​ of ''​parse''​ and ''​calc'',​ based on the input type.
  
-An important difference between the code that you will implement for this lab, and the code we went through in class, is that your code should properly abstract multiple binary AST nodes into a single class we'll call ''​BinOp''​.+An important difference between the code that you will implement for this lab, and the code we went through in class, is that your code should properly abstract multiple binary AST nodes into a single class we'll call ''​BinopNode''​.
  
-Please name your module RudInt.+Please name your module RudInt ​and submit just the one file.
  
 ===Operator Table === ===Operator Table ===
Line 53: Line 51:
 Dict(:+ => +) Dict(:+ => +)
 </​code>​ </​code>​
 +
 +For operations that do not require any further semantic checking, you should map to the corresponding built-in function.
  
 ===Parser=== ===Parser===
Line 169: Line 169:
   * Replaced "​type..."​ with "​struct..."​ in the abstract syntax definitions to be compatible with Julia 1.0   * 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.   * 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.+  * Tweaked the Hints to be compatible with Julia 1.0, especially changing .juliarc to startup.jl.
   * Changed the autograders accordingly.   * Changed the autograders accordingly.
cs330_f2016/laby.1538077962.txt.gz ยท Last modified: 2021/06/30 23:40 (external edit)