cobol-interpreter-lab/lab-2
Joshua Garbi 9b021dd36e Merge branch 'joshsetup' into 'main'
added hello world

See merge request lustje/language-interpreter-lab!3
2024-10-17 09:57:31 -07:00
..
LANGUAGE.md qe2 2024-10-15 10:47:00 -07:00
README.md Lab 2 2024-10-10 11:20:49 -07:00
hello-world.cbl added hello world 2024-10-15 22:27:44 -07:00
program.c Lab 2 2024-10-10 11:20:49 -07:00
quadratic-snippet.cbl qe2 2024-10-15 10:47:00 -07:00
sorting-snippet.cbl add bubble sort 2024-10-16 10:46:56 -07:00

README.md

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.