Skip to content

Latest commit

 

History

History
187 lines (113 loc) · 3.69 KB

3-compiler-documentation.md

File metadata and controls

187 lines (113 loc) · 3.69 KB

Documentation

In total the documentation burden is (at most) 1000 words plus one diagram. Assesment of the documentation is not relative to compiler functionality, it just requires a description of the compiler as-is, and a realistic assessment of the compiler's strengths and weaknesses.

AST

Overview Diagram

Add a diagram of your AST, which is designed to usefully communicate the important properties of the AST.

  • Use whatever level of detail you feel is appropriate.

  • You do not need to include every part of the AST, and you don't need to include every class.

  • Zooming should not be necessary to understand it.

The file should be called my-ast.png. The software used to generate the png is up to you, or you can draw it by hand and scan it if you wish (though beware the eventual file-size).

my-ast.png

Description

Describe the structure and organisation of your AST in 200 words or fewer.

  • Feel free to refer to your diagram.

  • Try to capture the most important properties.

  • You can use code, but it is included in your budget.

Strengths

Give two strengths or capabilites of your AST, using 50 words or less for each one.

Strength 1

50 words or less

Strength 2

50 words or less

Limitations

Give two limitations of your AST, using 50 words or less for each one.

Limitation 1

50 words or less

Limitation 2

50 words or less

Variable binding

General approach

Describe your overall approach to mapping variable, parameters, etc. into registers or memory locations at exection time, using 200 words or less.

  • how did you manage registers?
  • did you use the stack?
  • is there a function or API for managing and looking up bindings?

200 words or less

Strengths

Give two strengths or capabilites of your binding approach, using 50 words or less for each one.

Strength 1

50 words or less

Strength 2

50 words or less

Limitations

Give two limitations of your binding approach, using 50 words or less for each one.

Limitation 1

50 words or less

Limitation 2

50 words or less

Reflection

Strengths

What two aspects of your compiler do you think work well (beyond those identified in the AST and binding parts)?

Strength 1

50 words or fewer

Strength 2

50 words or fewer

Scope for Improvment

What parts of your compiler do you think could be improved?

  • This is not looking for things like "It should support more C constructs". What would you need to do or change in order to support those things?

Improvement 1

50 words or fewer

Improvement 2

50 words or fewer

Functionality (not assessed)

Which of these features does your compiler support (insert an x to check a box):

1 - [ ] Local variables 2 - [ ] Integer arithmetic 3 - [ ] While 4 - [ ] IfElse 5 - [ ] For 6 - [ ] Function calls 7 - [ ] Arrays 8 - [ ] Pointers 9 - [ ] Strings 10 - [ ] Structures 11 - [ ] Floating-point

Note that all features will be tested, regardless of what appears here. This is documentation of what you expect to work, versus what doesn't work.

Feedback (not assessed)

What aspects of your compiler would you like feedback on. Be specific, as "what could I have done differently" is too general to answer.

Feedback 1

20 words or fewer

Feedback 2

20 words or fewer