cobol-interpreter-lab/lab-2/README.md

100 lines
3.1 KiB
Markdown

# Language Proposal
In this class we will have a series of labs focus developing and implementing an interpreter for a known language.
In this lab you will start the process by researching the language definition for your language.
You will gather code examples and language definitions for specific features.
## Language Choices
Please select one of the following languages (that has not been selected by someone else) for your language interpreter lab project:
ADA 80
Algol 68
COBOL
Dartmouth BASIC
Dart
F#
Fortran 77
MUMPS
Perl
Rust
Smalltalk
Swift
The following are also options, but carry a 5% penalty since they are more familiar:
C++
JavaScript
Ruby
## Code Example
To help guide the features needed in our interpreter, please find the code to implement these tasks.
* Hello World!
* Use the quadratic function to solve an equation
* Sort a list of integers (using any algorithm; keep it simple)
These code snippets will be used as a test case in your interpreter.
If you did not write this code, please cite the source.
Please create files in the `lab-2` folder to hold the snippets of code.
Use the `lab-2/LANGUAGE.md` to describe the input and output for these code snippets.
## Review The Code Snippets
What features are needed to implement this code?
Identifiers
Special words
Literal
Math Operators
Relational Operators
Delimiters
Lists
Loops
Branching
For each feature write down the definition for that feature. For example, create a list of special words (or reserved words) used by your code.
For something like Identifiers, what are the naming rules for an identifier? Please cite sources for language definition.
A Partial Example
An partial example report has been posted for the Python language.
See the example report: <https://gitlab.cs.wallawalla.edu/cptr354/language-interpreter-lab-python>
## Criteria
The following things will be looked for when grading your report:
* Code Snippet — Hello World code, input, and resulting output
* Code Snippet — Quadratic equation code, input, and resulting output
* Code Snippet — Integer sorting code, input, and resulting output
* Language Features — List of required language features
* Language Definitions — For each feature, define the syntax and rules to implement the feature
* Report skills — Easy to follow and writing quality
Your report and code should be in a forked project from <https://gitlab.cs.wallawalla.edu/cptr354/language-interpreter-lab>. Follow the `README.md` to configure your project.
## Grading Rubric
The grading will be over the following categories.
Points Description
----------- ------------------------------------
20 points Code Snippet — Quadratic equation
20 points Code Snippet — Integer sorting
10 points Language Features
40 points Language Definitions
10 points Report formatting and readability
## Turn In
Please submit the URL of your gitlab project to D2L's Brightspace with your report.
On gitlab update the `lab-2` folder to have your report and code snippets before the due date.