From 0eacbb86a0eefd72bd0fb6f990fbac876ab60ef8 Mon Sep 17 00:00:00 2001 From: Simon Kellet Date: Sat, 7 Mar 2026 16:33:52 +0000 Subject: [PATCH] fix --- cm | Bin 510304 -> 0 bytes test/.DS_Store | Bin 8196 -> 0 bytes test/website/.DS_Store | Bin 10244 -> 0 bytes test/website/HTML/.DS_Store | Bin 10244 -> 0 bytes test/website/HTML/A5Week1.html | 279 ---------------------- test/website/HTML/A5Week2.html | 228 ------------------ test/website/HTML/A5Week3.html | 155 ------------ test/website/HTML/A5Week4.html | 187 --------------- test/website/HTML/A5Week5.html | 4 - test/website/HTML/A5Week8.html | 1 - test/website/HTML/css/style.css | 52 ---- test/website/HTML/inner/inner_test.md | 3 - test/website/MARKDOWN/.DS_Store | Bin 8196 -> 0 bytes test/website/MARKDOWN/A5Week1.md | 332 -------------------------- test/website/MARKDOWN/A5Week2.md | 277 --------------------- test/website/MARKDOWN/A5Week3.md | 177 -------------- test/website/MARKDOWN/A5Week4.md | 229 ------------------ test/website/MARKDOWN/A5Week5.md | 7 - test/website/MARKDOWN/A5Week8.md | 1 - test/website/MARKDOWN/css/style.css | 52 ---- test/website/css/style.css | 52 ---- 21 files changed, 2036 deletions(-) delete mode 100755 cm delete mode 100644 test/.DS_Store delete mode 100644 test/website/.DS_Store delete mode 100644 test/website/HTML/.DS_Store delete mode 100644 test/website/HTML/A5Week1.html delete mode 100644 test/website/HTML/A5Week2.html delete mode 100644 test/website/HTML/A5Week3.html delete mode 100644 test/website/HTML/A5Week4.html delete mode 100644 test/website/HTML/A5Week5.html delete mode 100644 test/website/HTML/A5Week8.html delete mode 100755 test/website/HTML/css/style.css delete mode 100644 test/website/HTML/inner/inner_test.md delete mode 100644 test/website/MARKDOWN/.DS_Store delete mode 100644 test/website/MARKDOWN/A5Week1.md delete mode 100644 test/website/MARKDOWN/A5Week2.md delete mode 100644 test/website/MARKDOWN/A5Week3.md delete mode 100644 test/website/MARKDOWN/A5Week4.md delete mode 100644 test/website/MARKDOWN/A5Week5.md delete mode 100644 test/website/MARKDOWN/A5Week8.md delete mode 100755 test/website/MARKDOWN/css/style.css delete mode 100755 test/website/css/style.css diff --git a/cm b/cm deleted file mode 100755 index c1f44fdbe55a6dfb843353d9989d8b380776775a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510304 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⁡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�=h_=^PnRZz*d4}x@_gn*cVc!X` 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%0DBX(;s>Ndv3$~Z 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

CSCU9A5 Week 1

-

Read Chapters 1 and 2 of Clean Code

-
-

You get the drift. Indeed, the ratio of time spent reading vs. writing is well over 10:1. We are constantly reading old code as part of the effort to write new code. Because this ratio is so high, we want the reading of code to be easy, even if it makes the writing harder. Of course there’s no way to write code without reading it, so making it easy to read actually makes it easier to write.

-
-

Class names

-
-

Classes and objects should have noun or noun phrase names like Customer, WikiPage, Account, and AddressParser. Avoid words like Manager, Processor, Data, or Info in the name of a class. A class name should not be a verb.

-
-

Method names

-
-

Methods should have verb or verb phrase names like postPayment, deletePage, or save. Accessors, mutators, and predicates should be named for their value and prefixed with get, set, and is according to the javabean standard.

-
-
string name = employee.getName();
-customer.setName("mike");
-if (paycheck.isPosted())...
-
-
-

When constructors are overloaded, use static factory methods with names that describe the arguments. For example,

-
-
Complex fulcrumPoint = Complex.FromRealNumber(23.0);  
-
-
-

is generally better than

-
-
Complex fulcrumPoint = new Complex(23.0);  
-
-
-

Consider enforcing their use by making the corresponding constructors private.

-
-

Note: Listings 2-1 and his solution in 2-2 make me cringe

-

Its too long! Random methods with very long names makes it hard to read on screens like IDE's. You also end up jumping around the code, back and forth and trying to figure out what method returns what and where the next bit of code goes. There is also the issue of creating entire methods for one case of something happening. You could easily split the decision making within the one method with better coding. You can check if there is more and 0 counts and then handle what happens there. We already have access to all the variables we need passed as parameters, why split this off into many methods. I hate it.

-

Extended BNF (EBNF)

-
    -
  • We can use * to make things appear 0-to-many times by wrapping then in brackets
  • -
-
N ::== a | (b | c)*
-
-

This can be read as "N may consist of a or alternatively a series of characters comprising zero to many b or c". A valid syntax matching this rule would include:

-
    -
  • "a"
  • -
  • an empty string (the * helps with this as its 0 to many)
  • -
  • "b"
  • -
  • "c"
  • -
  • "bc"
  • -
  • "cb"
  • -
  • "cbcbcbc"
  • -
  • or "ccccccb"
  • -
-

Example

-

We have a simple programming language that allows the user to write arithmetic sums for some existing variables a, b, c, d, or e. We can use +, -, /, * and () on the variables too.

-
Expression              ::== primary-Expression (Operator primary-Expression)*
-primary-Expression      ::== Identifier
-                            | (Expression)
-Idenifier               ::== a | b | c | d | e
-Operator                ::== + | - | / | *
-
-

For example:

-
a + (b * c)
-
-

Here you can view the Java specifications as well as Pythons! Go has a very good break down of its grammar, with lots of documentation!

-

Triangle

-

Features of Triangle

-
    -
  • -

    Three primitive types of variables:

    -
      -
    • Boolean (i.e. true or false)
    • -
    • Char (a single character; same as the Java char type)
    • -
    • Integer (values between -32767 and 32767)
    • -
    -
  • -
  • -

    Two types of composite variable:

    -
      -
    • Records (a bit like dictionaries in python)
    • -
    • Arrays
    • -
    -
  • -
  • -

    There are no strings or floating point types built-in

    -
  • -
  • -

    Let blocks are used to declare local constants, variables, procedures and functions (see repl.tri and factorials.ri below)

    -
  • -
  • -

    The only conditional command is if and the only loop command is while

    -
  • -
  • -

    if commands look like this:

    -
      -
    • if x < y then dostuff else dootherstuff
    • -
    • the “else” is needed, but can just be followed by ; (do nothing)
    • -
    -
  • -
  • -

    while commands look like this:

    -
      -
    • while x < y do dostuff
    • -
    -
  • -
  • -

    begin and end signify a block of commands; the same as {} in Java or indentation in Python

    -
  • -
  • -

    Assignment of a value to a variable is done using the := operator like this

    -
      -
    • a := 10
    • -
    • -
    -
  • -
  • -

    We can also bind values within declarations by using ~

    -
  • -
  • -

    put() and get(), and similarly named functions, are used to write and read from the console

    -
  • -
-

Examples of Triangle (.tri)

-
#hi.tri
-begin
-    put('H'); put('i'); put('!')
-end
-
-

Output: Hi!

-
#while.tri
-let
-    var a : Integer
-in
-begin
-    a := 0;
-    while a < 5 do
-    begin
-        put('a');
-        a := a + 1;
-    end
-end
-
-

Output: aaaaa

-
#str.tri
-let
-    type Str ~ array 10 of Char;
-    
-    func replicate (c: Char): Str ~
-        [c,c,c,c,c,c,c,c,c,c];
-        
-  var s: Str
-in
-
-begin
-    s := replicate('*');
-    put (s[0]); put(s[9]); puteol()
-end
-
-

Output: **

-

AST Examples

-

See OneNote folder (Year\ 3/AST/) for the answers

-

Syntactic Analysis

-

Let's have a look at Java's syntax

-
int myNumber = 55;
-
-

Kindis the category (Identifier, Integer etc) -Spelling is the actual text used in the code

-

Let's break it down into tokens:

-
    -
  • int - of kind Identifier(name of type) (spelling "int")
  • -
  • myNumber - of kind Identifier(name of variable) (spelling "myNumber")
  • -
  • = - of kind Becomes (spelling "=")
  • -
  • 55 of kind Integer Literal (spelling "55")
  • -
  • ; of kind Semicolon (spelling ";")
  • -
-

Below is the same example in Triangle:

-
let
-    var myNumber : Integer
-in 
-    myNumber := 55
-
-

Let's break it down into tokens again:

-
    -
  • let, :, var, in of kind let, :, var, in (spelling "let, :, var, in ")
  • -
  • := of kind Becomes (spelling "Becomes")
  • -
  • myNumber of kind Identifier (spelling "myNumber")
  • -
  • Integer of kind Identifier (spelling "Integer")
  • -
  • 55 of kind Integer Literal (spelling "55")
  • -
-

Scanning a string into tokens

-

The basic ideas is that we have a loop implemented using recursion that gobbles up characters from the text until they match a known template for a token.

-
myNumber := 55+ 10
-^
-
-

Our starting point is char 'm', so we assume that we are working along a Identifier. We continue working our way through to the end of the word (until we hit a space). At this stage, it is impossible to know if we are working with either method names, string literals or anything of that nature.

-
myNumber := 55+ 10
-~~~~~~~~^
-
-

We now check that string with a list of reserved words (such as if, end, while). If it was, say for example, if, the kind of this token will be set to If. We don't match any known reserved words so this token is labelled as an Identifier with the spelling "myNumber".

-
myNumber := 55+ 10
-~~~~~~~~~^
-
-

We now keep moving along the spaces until we hit something other than a space. We've hit a colon. There are two types of colon in Triangle, one for separating a variable type from its name or a colon-equals (Becomes token). Let's take the next character as we will know what to do with it after this.

-
myNumber := 55+ 10
-~~~~~~~~~~^
-
-

It is an colon equals sign. That tells us that the token is Becomes with the spelling ":="

-
myNumber := 55+ 10
-~~~~~~~~~~~~^
-
-

We hit a 5. Triangle can only support Integer types (handy!) so we know that we can carry along this number until we hit something that isn't a number (to get the full context of the Integer). In this case, we move along until we hit a space!

-
myNumber := 55+ 10
-~~~~~~~~~~~~~~^
-
-

We've hit something that isn't a digit! This means that this token is of kind Integer Literal and has the spelling "55".

-
myNumber := 55+ 10
-~~~~~~~~~~~~~~^
-
-

The next character is a plus. Operators can start with this character so we keep taking characters until reaching something that's not an operator. The next character is a space

-
myNumber := 55+ 10
-~~~~~~~~~~~~~~~~~~^
-
-

We hit another Integer (10!) and reach the EOL (end of line). Most methods use recursion to keep reading until we reach the end of a line of a end of file.

-

Syntactic Analysis: Parsing into an AST

-

Let's create a theoretical language, Micro-English. Here is the EBNF:

-
Sentence    ::== Subject Verb Object .
-Subject     ::== I | a Noun | the Noun
-Object      ::== Me | a Noun | the Noun 
-Noun        ::== cat | mat | rat
-Verb        ::== like | is | see | sees
-(terminals are english lowercase words, e.g. like, the, etc)
-
-

Bottom Up

-
   Noun
-    |
-the cat sees a rat.
-
-
Subject
- ____
- | Noun
- |  |
-the cat sees a rat.
-
-
  S
- ____
- |  N   Verb
- |  |    |
-the cat sees a rat.
-
-
  S
- ____
- |  N    V      N
- |  |    |      |
-the cat sees a rat.
-
-
  S          Obj
- ____        ____
- |  N    V   |  N
- |  |    |   |  |
-the cat sees a rat.
-
-
     Sentence
-___________________
-  |      |    |   |
-  S      |   Obj  |
- ____    |   ____ |
- |  N    V   |  N |
- |  |    |   |  | |
-the cat sees a rat.
-
-
-

Key definitions for compilers

-
    -
  • -

    Syntactic analysis: scanning and parsing, which takes the text of the source code and transforms it into an abstract syntax tree

    -
  • -
  • -

    Contextual analysis: checks things like variable types and scope, and creates the connections within the AST so we can later look up declarations for named identifiers like variables, constants and function.

    -
  • -
  • -

    Code generation: generates the output code, which might be machine code, another high-level language, or an intermediate language (as it the case with Java bytecode). Might also include optimisations of the code.

    -
  • -
diff --git a/test/website/HTML/A5Week2.html b/test/website/HTML/A5Week2.html deleted file mode 100644 index 87c9949..0000000 --- a/test/website/HTML/A5Week2.html +++ /dev/null @@ -1,228 +0,0 @@ -

CSCU9A5 Week 2

-

TODO

-
-

Read Chapter 3 of Clean Code

-
-

Contextual Analysis

-
public class Example{
-    private int count;
-    
-    public int doStuff(int[] values){
-        int count = 0;
-        ...
-    }
-}
-
-

Here there is two variables with the name count. How does the compiler know which is which?

-

Identification Tables

-

We could walk back up the abstract syntax tree to figure out what needs to go where in memory (size, type etc.). That would work but, it's slow. (Think back to Tree Walks).

-

The ID table might contain a list of these attributes or just a pointer to the place as to where the identifier was declared.

-

Declarations are functions, class in Java or even int etc.

-

A block is any part of the program that limits the scope of the declaration in Java.

-

Each declaration has a scope.

-

Monolithic Block Structure

-

A programming language exhibits a monolithic block structure if there is only one block:

-
    -
  • All declarations are global in scope
  • -
  • No identifier may be declared more than once
  • -
  • For every reference to an identifier, i, there must be a corresponding declaration of i.
  • -
-
program
-    D
-begin
-    C
-end
-
-

One block for the whole program. The ID table may look like this:

-

| Identity | Attribute | -|----------|-----------| -| b | (1) | -| n | (2) | -| c | (3) |

-
program
-(1) integer b = 10
-(2) integer n
-(3) char c 
-begin
-...
-n = n * b
-...
-write c
-...
-end
-
-

Flat Block Structure

-

Several overlapping blocks, local and global scopes.

-

Nested Block Structure

-

Most programming languages fall into this structure (Java, C and Python).

-

Many scope levels, declarations can be global (scope level 1, outer most scope) in scope or local in scope.

-

Example:

-
let
-    (1) var a : Integer
-    (2) var b : Boolean
-in
-    begin
-        ....
-        let
-            (3) var b : Integer
-            (4) var c : Boolean 
-        in
-        begin
-            ....
-            let
-                (5) var d : Integer
-            in
-            ....
-        end
-    let
-        (6) var d : Boolean
-        (7) var e : Integer
-    in
-    ....
-end
-
-

| Level | Identity | Attribute | -|-------|----------|-----------| -| 1 | a | (1) | -| 1 | b | (2) | -| 2 | b | (3) | -| 2 | c | (4) | -| 3 | d | (5) | -| 2 | d | (6) | -| 2 | e | (7) |

-

What do we need to store instead of the identifiers?

-

Type Checking

-

This is a key feature in a statically typed language like Triangle or Java. This helps programmers not make mistakes (assigning a string to an int). This type checking happens at compile time.

-

The picture is much more complex for dynamically typed languages such as JavaScript or Go!

-

Runtime Organisation: Data Representation

-
-

Principles to follow with data representation:

-
-
-

(1) nonconfusion: different values of a given type should have different representations

-
-
-

(2) uniqueness: each value should always have the same representation.

-
-

All values of a given type should occupy the same amount of space, this being that an int will have a storage size of 8 bytes, a boolean value having only 1 byte and a char only having 1 byte too.

-

The compiler then can efficiently work out where to map the values in memory as it knows all the space needed.

-

Should values be represented directly or indirectly?

-

If a variable is directly represented, it simply maps to a binary representation of the variables value somewhere in heap memory.

-
| Address | Value |
-|---------|-------|  
-| 0       | ?     | int x = 130
-| 1       | ?     |    | (direct binary repr.)
-| 2       | 130   |<---|
-| 4       | ?     |
-| ...     | ...   |
-
-

If a value is indirectly, the variable maps to a handle, a pointer to a storage area where the binary representation of that variable exists (most likely in a heap memory area).

-
| Address | Value |
-|---------|-------|  
-| 0       | ?     | Object x = new Object()
-| 1       | ?     |    | (indirect binary repr.)
-| 2       | 160   |<---| (160 is an addr. in memory)
-| 4       | ?     |
-| ...     | ...   |
-| 160     |Object |
-| 161     |  data |
-| 162     |  here |
-| 163     |etc... |
-
-

Indirect representation is necessary for variable whose values vary in size by a large amount e.g. dynamic arrays or objects. (Think malloc() in C).

-

Primate Types

-

Primate types are stored directly, as this is more efficient than managing a pointer and the allocation of space in heap memory.

-

Integer, Boolean and Char types are supported directly by the target machine with corresponding operations like add, multiply etc.

-

Composite Types

-

Composite types are types which can be simplified into collections of primitive types.

-

Record

-

Record: A collection of variables of fields, each of which has an identifier.

-
    -
  • Records in Triangle
  • -
  • Structs in C, Go etc.
  • -
  • Java Class with only public variables (closest anyway...)
  • -
-

Simplest way to store this in memory is to store the variables consecutively in memory (like in a row).

-
type Date = record
-        y : Integer
-        m : Integer
-        d : Integer
-        end;
-
-type Details = record
-        manager : Boolean
-        joined  : Date
-        dep     : Char
-        end;
-
-

This could be stored in memory like so:

-
var person : Details
-
-| Address | Value |
-|---------|-------|
-| 1       | ??    |
-| 2       | true  | <-- person.manager
-| 2       | 1992  | <---  person.joined.y ]
-| 4       | 3     | <---  person.joined.m ]> person.joined
-| 5       | 1     | <---  person.joined.d ]
-| 6       | 'c'   | <-- person.dep
-| 7       | ??    |
-
-
-

Array

-

Array: consists of several elements which are all of the same type. Each element is referenced by an index (often an integer), there is a one-to-one relationship between indexes and array elements. Arrays start at 0 (some terrible languages don't)

-

We are talking about static arrays (defined at compile time to a fixed size) but some languages support dynamic arrays whereby the length can vary at runtime.

-

For dynamic arrays, we need a handle for the array where it points to the beginning and the end addresses somewhere else in the memory.

-

Static arrays could look like this:

-
| Address | Value |
-|---------|-------|
-| 1       | ??    |
-| 2       | ??    |
-| 3       | ??    |
-| 4       | 'h'   |  a[0]
-| 5       | 'e'   |  a[1]
-| 6       | 'l'   |  a[2]
-| 7       | 'l'   |  a[3]
-| 8       | 'o'   |  a[4]
-| 9       | '!'   |  a[5]
-| 10      | ??    |
-| 11      | ??    |
-| ...     | ...   |
-
-

Accessing the elements of this array requires an extra computation at runtime compared to accessing a single variable or a record field.

-

Expression Evaluation

-

To summarise, broadly there are two approaches to storing temporary values: registers and stack. Registers are fixed locations that can be referenced directly, but this means a tricky process of choosing which registers to hold which values. Stacks grow and shrink to accommodate new values, but lead to simpler evaluation of expressions.

-
-

Summary of Key Concepts

-
    -
  • -

    Identification Table: associates identifiers with a list of attributes, or the original declaration

    -
  • -
  • -

    Declaration: something like a function declaration in python, class declaration in Java, or a variable declaration like “int a;” in Java

    -
  • -
  • -

    Scope: each declaration has a scope, which is the portion of the program that the declaration takes effect.

    -
  • -
  • -

    Block: any part of the program that limits the scope of a declaration (e.g. curly brackets in Java, indentation in Python) In Triangle, scope is determined by the let...in... Command.

    -
  • -
  • -

    Block structure: there are three types of block structure: monolithic, flat, and nested

    -
  • -
  • -

    Non-confusion: different values of a given type should have different representations

    -
  • -
  • -

    Uniqueness: each value should always have the same representation.

    -
  • -
-

Two issues to remember in practice:

-
    -
  • -

    All values of a given type should occupy the same amount of space

    -
  • -
  • -

    Should values be represented directly or indirectly? If all values of a given type occupy the same space (that is, the same number of bits or bytes), it is possible for the compiler to plan the allocation of space efficiently simply by knowing the type of each variable.

    -
  • -
diff --git a/test/website/HTML/A5Week3.html b/test/website/HTML/A5Week3.html deleted file mode 100644 index bfc7af2..0000000 --- a/test/website/HTML/A5Week3.html +++ /dev/null @@ -1,155 +0,0 @@ -

CSCU9A5 Week 3

-

By the end of this week you should have the ability to:

-
    -
  • Explain the differences between static, stack, and heap storage allocation
  • -
  • Describe the purpose of frames in a stack
  • -
  • Explain why garbage collection is needed and describe an approach to carrying it out
  • -
  • Describe what a template is in the context of code generation, and give simple examples
  • -
  • Implement simple additions to the visitor pattern within a compiler
  • -
  • Reflect on the value of where and when good commenting is needed
  • -
-

Runtime Organisation: Static Storage Allocation

-

Memory is basically like a very long list with each element having an address and a value.

-

If we have a variable that might change in size, and indirect representation is used - a pointer. This mean that the variable can occupy a fixed size space in memory because it just points to the address of where the data is really stored (usually in the heap).

-

Stack storage allocation

-
-

Stacks are last-in-first-out data structures: think of a stack of paper where you can only add or remove from the top. Stacks are an effective way to store local variables throughout the lifetime of a program.

-
-

Stack Storage Allocation:

-
    -
  • Variables are stored in frames; each frame contains the local variables for a routine
  • -
  • Global variables are stored at the base of the stack
  • -
  • Link data at the start of each frame contains: -
      -
    • Static link (reference to the start of the frame of the routine containing the current one)
    • -
    • Dynamic link (reference to the start of the frame for the previously active routine)
    • -
    • Return address (reference to the code instruction to jump back to when the routine is finished)
    • -
    -
  • -
  • When a routine is called, a new frame is pushed onto the stack; when it returns, the frame is removed
  • -
  • Arguments are placed on the stack immediately before a routine is called
  • -
  • When a routine returns, its arguments and frame are replaced by a return value on the stack
  • -
-

Example of Routines and returns

-
let
-    var g: Integer;
-    func F(m: Integer, n: Integer): Integer ~
-        m * n
-        
-in
-    begin
-        getint(var g)
-        putint(F(g, g+1))
-    end
-
-
PUSH    1
-LOADA   0[SB]
-CALL    getint
-LOAD    0[SB]
-LOAD    0[SB]
-PUSH    1
-CALL    add
-CALL(SB) F
-CALL    putint
-POP
-HALT
-
-F:
-    LOAD    -2[LB]
-    LOAD    -1[LB]
-    CALL    mult
-    RETURN(1) 2
-
-

Heap Storage Allocation and Garbage Collection

-
-

Heap storage allocation is another way to organise memory, and is good for indirect storage of variables.

-
-

A heap variable is allocated by a special command called an allocator in Java. This is whenever you use the keyword new and in C it is malloc(). These return a pointer to the variable in the heap. They exist in memory until it is unallocated (via free() in C or automatically in Java).

-

Heap is placed in opposite to the stack:

-
[   Stack   ] <-SB
-[   a       ]
-[   b       ]
-[   ......  ] <-ST
-[           ]
-[   8       ] <-HT
-[   H       ]
-[           ]
-[    Heap   ] <-HB
-
-

Heap Storage Allocation:

-
    -
  • Heaps can indirectly store more complex data structures
  • -
  • Heap variables are added to the heap when they are created
  • -
  • They are either removed by explicit deallocation, or automatically by a garbage collector
  • -
  • Gaps appear in the heap over time; these can be managed by: -
      -
    • Trying to match new variables to the closest size of available gap
    • -
    • Merging gaps when variables are deallocated
    • -
    • Compacting the heap periodically
    • -
    -
  • -
  • Garbage is when a variable is inaccessible, because no pointers to it remain in the program
  • -
  • Explicit deallocation can lead to garbage or dangling pointers
  • -
  • Automatic deallocation runs periodically, deallocating inaccessible variables
  • -
  • Instances variables for objects have a pointer to a class object that defines what methods are applicable to them
  • -
-

Code Generation: Code Selection

-

Code Selection is the process of choosing the specific machine code instructions that are needed to represent a high high-level code structure. Code Templates are used for this purpose, though it is complicated by dealing with special cases.

-

Storage Allocation is the process of deciding the addresses for each variable in the program. This is why we have spent some time discussing stack and heap memory.

-

We have parsed the program to an AST and applied contextual analysis to that AST to ensure that all the types are valid! We are now ready to generate the target code for our program.

-
n := n + 1
-
-
LOAD    n
-LOAD    1
-ADD     
-STORE   n
-
-

Adding one to a variable is very common thing to do. We can instead use this instruction

-
LOAD    n
-SUCC
-STORE   n
-
-

SUCC, means successor instruction to increase the value on the top of the stack by one. This uses 3 instructions instead of 4, meaning it is around 25% faster.

-

The Triangle Abstract Machine

-

The Triangle Abstract Machine (TAM) is a virtual machine designed as the target for our case study compiler. It is also implemented in Java, and you have a copy of it by virtue of cloning the Triangle-Tools project. TAM has the following features:

-
    -
  • -

    Its memory is organised to have a stack at the low-address end and a heap at the high address end. Low level operations are provided for adding and removing data in these

    -
  • -
  • -

    Call and return instructions for routines handle frames automatically; return automatically replaces the arguments in the stack with a result from the functions return.

    -
  • -
  • -

    The only registers are dedicated to specific purposes as we’ve described. SB, ST, HB and HT to locate the stack and heap; LB points to the topmost frame on the stack, and so on. These are updated automatically by the instructions that add or remove things from memory

    -
  • -
  • -

    Several routines such as ADD, MULT, and NOT are provided for basic arithmetic and logic operations. There are also routines for reading and writing text on the console.

    -
  • -
-

A full description of TAM is given in the extracts from Programming Language Processors in Java given in the Canvas Reading List. You don’t need to become familiar with this but the text is there to serve as reference material and you will likely want to refer to it when reading and extending the compiler.

-

From Programming Language Processors in Java: Compilers and Interpreters by Watt, D.A

-

Yarr link be here! -https://www.cin.ufpe.br/~jml/programming-language-processors-in-java-compilers-and-interpreters.9780130257864.25356.pdf

-
    -
  • Both stack and heap can expand and contrast. Storage exhaustion arises when ST and HT attempt to cross over.
  • -
-

Layout of a TAM frame

-
    -
  • A static link points to an underlying frame associated with teh routine that textually encloses R in the source program
  • -
  • The dynamic link points to the frame immediately underlying this one in the stack.
  • -
  • The return address is the address of the instruction immediately following the call instruction that activated R.
  • -
-

2023-09-28_42

-

TAM instruction format

-

All TAM instructions have a common format.

-
    -
  • op: the operation code [4bits]
  • -
  • r: a register number [4bits]
  • -
  • n: the size of the operand. [8bits]
  • -
  • d: address displacement (possibly negative) [16bit signed]
  • -
-
[  op  ][  r  ][    n    ][         d       ]
- 4 bits  4 bits   8 bits         16 bits 
-
-

TAM instructions

-

2023-09-28_55

diff --git a/test/website/HTML/A5Week4.html b/test/website/HTML/A5Week4.html deleted file mode 100644 index 23e1679..0000000 --- a/test/website/HTML/A5Week4.html +++ /dev/null @@ -1,187 +0,0 @@ -

CSCU9A5 Week 4

-

Read: Chapter 5 of Clean Code

-
-

Variable declarations: Martin suggests that declarations should be as close to the usage of the variables as possible. Others feel they should all be at the top, or at least together somewhere. What's your opinion?

-
-

When it comes to variables within a program - it's important to remember 'scope'. We need to make it clear what scope the variables are in.

-

If we are declaring variables at the top of the program (not in a main but the very top) - this is what I would consider global variables. These will be used throughout the entire program and therefore be rather important e.g. A Window object. This variable will be altered through the program.

-

We've talked about global variables - let's talk about local ones.

-

I would say there are two types of local variables. One's within a methods usages and ones within loops.

-

Method usage local are the ones you would declare at the start of a function. These could be used to calculate a sum and then be returned. There is no need to put the variable else where. Now I believe you should use the variable right after declaring it in this situation.

-

Sometimes it's helpful to declare all the variables at the start - this helps give context to what the function will be doing and possibly what it is returning without the need of comments. I find this helpful for functions that handle complex maths equations.

-

The variables used within loops should come before the loops start; this gives me as a programmer better control on the scope and also context. An example could be line number, character position and file name before a for loop. I know that these three variables will be used in this for loop for keeping track of where we are in the loop.

-
-

Do you have any of your own formatting rules you follow (even if only sometimes?)

-
-

I try and reduce the amount of nesting I do - this falls under refactoring. I also like to still use {} around one line if functions too.

-

Code Generation: Algorithm

-

The Visitor Pattern is used to generate the necessary low level instructions.

-

The algorithm we are using follows the visitor pattern. We can already see this in the visualisation of the AST.

-

We specifically write visitNode methods to view the tree.

-

The Visitor pattern walks the AST calling emit() methods to generate machine code instructions as it goes. Lookups into the AST are used to decide things like the value of literals or specific operators to use.

-

Backpatching is used when we need to make forward jumps when we need them (look at visitIf command).

-

Code Generation: Resource Allocation

-
let
-    const b ~ 10;
-    var i : Integer
-in
-    i := i * b
-
-

b is bound to 10 and i is bound to an address large enough to hold an integer.

-

When b is called in the program - it should be translated to a 10 by the compiler. Each time i is used, it should be translated to a memory address.

-

In this example, the address for i is 4. The machine code could look like this:

-
LOAD    4[SB]
-LOADL   10
-CALL    mult    
-STORE   4[SB]
-
-

In any declaration, identifiers can be bound to values or addresses, and these might be known or unknown at compile time. So at any declaration, there is one of four possible known values:

-
    -
  • -

    Known Value: This is a constant declaration, e.g. b in the above program. It was bound to a literal value of 10.

    -
  • -
  • -

    Unknown Value: This is a constant expression where the right-side needs to be evaluated at runtime e.g. const b ~ a + 5 or a parameter received by a routine.

    -
  • -
  • -

    Known Address: This is a known address that is allocated and bound to a variable declaration e.g. i in the example above.

    -
  • -
  • -

    Unknown Address: This is an address bound to a variable parameter in a routine.

    -
  • -
  • -

    The specific machine codes to read and write variables and constants are wrapped up in objects that are attached to the relevant declaration nodes in the AST

    -
  • -
  • -

    These codes include either the literal value (in the case of constants bound to literals) or the necessary steps to work out the right address

    -
  • -
  • -

    Each time we have a declaration, we need to generate the instructions to increase the size of the current frame; when that declaration drops out of scope, the frame is decreased in size again by “popping” elements off the stack

    -
  • -
-

Within the Triangle Compiler

-

Known Value

-
...
-public KnownValue(int size, int value){ ... }
-...
-public void encodeFetch(Emitter ...){
- emitter.emit(OpCode.LOADL, 0, value)
-}
-...
-
-

A Known value (KnownValue.java) is simple. Size is the amount of memory taken up by this value and Value is the value itself. encodeFetch loads the literal value onto the stack (0).

-

Unknown Value

-
...
-public UnknownValue(int size, int level, int displacement){ ... }
-...
-public void encodeFetch(Emitter ...){
- if (vname.indexed){
-  emitter.emit(OpCode.LOADA ...
-  emitter.emit(OpCode.CALL ...
-  emitter.emit(OpCode.LOADI ...
- } else {
-  emitter.emit(OpCode.LOAD ...
- }
-}
-...
-
-

An Unknown Value is made up of two parts - level and displacement. Level is how nested the routine that contained this declaration. Displacement is where the entity is located relative to the base of the frame (i.e. how many words is from the start if the frame it is).

-

We can use the frame as the displacement; that's the top of the stack.

-

Code Generation: Procedures and Functions

-

How do we handle procedures and functions? These both translate to low level routines. A routine is a series of instructions and the template might look something like this:

-
elaborate [proc I () ~ C] =
-    JUMP g
-e:  execute c
-    RETURN (0) 0
-h: 
-
-
    -
  • Routines are also treated as entities, and entities to track their addresses and generate necessary low level code to run them are stored in the AST much the same as for variables
  • -
-

Compiler Optimisations

-

Compiler optimisation can happen in a few places:

-
    -
  • -

    Having a step before the code generation whereby the AST is manipulated or manipulating intermediate code if that is being generated.

    -
  • -
  • -

    At the point where code is being generated - we can use processor specific instructions can be used/exploited.

    -
  • -
  • -

    Common Sub-expression Elimination: attempts to reduce calculations that are repeated. (This only works when the code is simple).

    -
  • -
  • -

    Constant Propagation: At some point in a program - a variable might always have the same value. An algorithm to trace the flow of constant variables through the programme can be run to determine where this is guaranteed to be the case. The reference to the variable can be replaced by a literal value - reducing the need for fetches from memory.

    -
  • -
  • -

    Hoisting: If part of a computation in a loop is independent of the values that change inside the loop, it can be moved outside the loop - meaning that it is only calculated once e.g:

    -
  • -
-
while(j < k) {
-    a[j] := b + c;
-    j++;
-}
-
-

In this example: b and c can be moved outside the loop so they are only computed once. We could turn the above code into this:

-
if (j < k){
-    tmp = b + c;
-    while (j < k){
-        a[j] := tmp;
-        j++;
-    }
-}
-
-
    -
  • Loop unrolling: Reducing the amount of checks a program's loop (such as a for loop) will need. We can use some methods to half the checks or even completely remove the checks - this will result in a larger compiled program with less overhead.
  • -
  • Function Inlining: Lifts the body of the code and places it directly to where the function was called.
  • -
-

Optional reading: More examples are mentioned in the book Introduction to Compiler Design (Mogensen) cited in the module home page; also here https://compileroptimizations.com

-

Interpreters and Native Code, JIT

-

Python is an interpreted language, meaning that the instructions called are done in real time - this creates more slow-down when running the program compared to a compiled language like C.

-

Java is in the middle. Javac generates bytecode which is targeted at a virtual machine. This is then interpreted, so there is still some overhead involved when running with Java.

-

Our toy language compiles into a Tam file. This is that intermediate language similar to bytecode in Java.

-
    -
  • Interpreters for high level languages still scan and parse to generate an AST, and then visit that tree’s nodes to execute the program
  • -
  • Interpreters for low level or intermediate languages iterate over the instructions one-by-one, matching the fetch-execute cycle
  • -
  • In order of performance (approximately!): compiled native code is fastest, then intermediate code, the interpreted high level code
  • -
-

Just-in-time compilation, HotSpot, and GI

-

JIT (Just-in-Time) compilation was introduced to help speed up Java's slow interpreted bytecode. Java's compiler doesn't do much optimisation itself, the idea of JIT is to offload certain expensive CPU executions into native machine code. Only parts of the program are complied in this way rather than the whole thing (most of it wont be ran often enough to make it worthwhile.).

-

The process of targeting this extra compilation step is where the HotSpot (Oracles implementation of Java gets it name) - the targeted code is where the program runs hot.

-

Simply put, there's a count of the number of times each method, loop and numerous other structures are executed. If that number would reach a particular threshold, that relevant block of code is compiled natively on the machine!

-

JIT will also monitor branches of code and do the heavy work of lifting the never executed blocks of code from the compilation process off.

- -

When and Where to Optimise Your Code

-

We must not prematurely optimise! We should write straight forward clean code. We don't want to write hard-to-read code; slows down development, introduce bugs that are hard to track and make maintenance so much harder.

-
log.log(Level.FINE, "..." + calcX() ... + calcY() ... );
-
-

This simple line has to be compiled and the method calls have to be computed i.e moving values on and off the stack and tracing ourselves around the program calls. If there is an error, log only reports levels higher than FINE so all that computation is wasted! We can rewrite this to:

-
if(log.isLoaggable(Level.FINE)){_
- log.log(Level.FINE, "..." + calcX() ... + calcY() ... );
-}
-
-

This is much more efficient.

-

Sometimes we want to swap values around. We could do it like this:

-
temp = a
-a = b
-b = temp
-
-

This can be done better though. Maybe we can remove the temp variable. Let's have a look at the XOR binary function.

-

XOR works like this:

-

| ----- | - | -| 0 + 0 | 0 | -| 0 + 1 | 1 | -| 1 + 0 | 1 | -| 1 + 0 | 0 |

-

Turns out, if we use XOR in a variable three times - it swaps!

-

2023-10-02_35

-

Unfortunately, it turns out that in practise, at best this will perform the same as using a temporary variable. On many modern CPU's, copies between registers are extremely fast. Some provide low-level instructions to swap variables anyway.

-

In summary:

-
    -
  • Write clear, logical code
  • -
  • Make good design choices by selecting the right data types, the appropriate data structures and algorithms for the task at hand
  • -
  • “clever” tricks can get in the way of the compiler doing its job, and make the code harder to read and debug
  • -
  • Save the fancy optimisations until you’ve profiled the code and identified bottlenecks
  • -
diff --git a/test/website/HTML/A5Week5.html b/test/website/HTML/A5Week5.html deleted file mode 100644 index bc24663..0000000 --- a/test/website/HTML/A5Week5.html +++ /dev/null @@ -1,4 +0,0 @@ -

CSCU9A5 Week 5

-

Debugging Code

-

Hello there

-

This is sync test!

diff --git a/test/website/HTML/A5Week8.html b/test/website/HTML/A5Week8.html deleted file mode 100644 index 6ff8db2..0000000 --- a/test/website/HTML/A5Week8.html +++ /dev/null @@ -1 +0,0 @@ -

CSCU9A5 Week 8

diff --git a/test/website/HTML/css/style.css b/test/website/HTML/css/style.css deleted file mode 100755 index a5b10e7..0000000 --- a/test/website/HTML/css/style.css +++ /dev/null @@ -1,52 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Roboto+Mono'); -@import url('https://fonts.googleapis.com/css?family=Roboto'); -@import url('https://fonts.googleapis.com/css?family=Anton'); - -body { - padding: 20px; - background-color: #1e1e2e; - color: #cdd6f4; - font-family: "Roboto Mono"; - font-size: 14px; - line-height: 22px; - margin: 0 auto; - max-width: 960px; -} - -pre { - color: #f9e2af; -} - -blockquote { - color: #f9e2af; -} - -a { - color: #f5e0dc; - text-decoration: none; -} - -a:hover { - color: #a6e3a1; -} - -h1 { - font-size: 20px; - color: #eba0ac; - margin-bottom: 0px; -} - -h2, h3, h4, h5, h6 { - font-size: 16px; - color: #51afef; - margin-bottom: 0px; -} - -li { - color: #a6e3a1; -} - -p { - padding: 0px; - margin: 0px; -} diff --git a/test/website/HTML/inner/inner_test.md b/test/website/HTML/inner/inner_test.md deleted file mode 100644 index 89ecf4e..0000000 --- a/test/website/HTML/inner/inner_test.md +++ /dev/null @@ -1,3 +0,0 @@ -# This should be in a dir - -if not, something has gone wrong diff --git a/test/website/MARKDOWN/.DS_Store b/test/website/MARKDOWN/.DS_Store deleted file mode 100644 index 6030e327bbef1e2571067fdb2157f19cca5be657..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHMU2GIp6uxI#V8)Izr7aYgr3))WO0lIBLM6bqU4C0Ac3Zmrp=EYwXvfaZtUI&2 z1#E15;75!P#zg#mQKK;iqXvAD1VqJ0LmCpo15sj(i6$mKC@<)_b7x7nb@fStI=7j7 z?mg$8d*^<0zPWp*gb--WsOt!+CWP>KQ7M&S^(Tee={2ixo<=|k=ub#Gp0iVN!-~%u z>nnT&d<1+1d<1+1d<51y6FA<>chag^5hCMmSr2Fc?%1r@K zmZI7%*v34-^$B`1?8!+cU00lwWe?!Ff|p_db4PoS4o4aG8LCi)i#FEF+UN(NdmJj6?&LyCRjk1>r7E+`+%0VQ3}G@`PIRds~=sz zX-mtFJ^Q+*r1Aw7VwJe4H>=xv+|YV*y6TMfDRx3LRoxuv$7f zq}z5e4uu<-p)zmxBt0B!NF#}m4swW$kqL5~oFQ+L_sJ#l8M#cZk{jd}`GNdG?vUSs zgA(AO92P?jtcF^sgSD^`wm}E%gHG5FeW1Z%7=aXIAP3`c1fGEta0;G<)9@m^0sE zb9=aUu7m60hPV;V;4*9vT%NE)g?r0yAbYfNo)TG_ z$3}<5l{~UXn!~z}h_yWOMw-jIYXkK>GF9T-uGko85|EEl3G1#6Y!Y}0SZA}iML=ds zrBgD7{C2_^>q5jYA@!2~=FCo%9(!*lRFyaZ?9Wq1|dg10gF--Y)u^v}V0 z_yjJ(CAbWqdnCAy6!;!~o)OmjW`y;O11D)kBHnj#zV8L+LjBn*Ero%fwA8;DksAH0 zLn|9in}%hM;H-J772eY9UI|lG)BJyX@$dh$9es_DfRDg`1_3CIL?f-ZonkKznrjE~ zI)oQ3blfD9t_xOfI*!s!$5Gz>hat9uIF$N?JvqrFYOvh%4*~b|x3_=(`{zH+tM9+_ F{|~X))BOMd diff --git a/test/website/MARKDOWN/A5Week1.md b/test/website/MARKDOWN/A5Week1.md deleted file mode 100644 index 1cb5f47..0000000 --- a/test/website/MARKDOWN/A5Week1.md +++ /dev/null @@ -1,332 +0,0 @@ -# CSCU9A5 Week 1 - -## Read Chapters 1 and 2 of Clean Code -> -> You get the drift. Indeed, the ratio of time spent reading vs. writing is well over 10:1. We are constantly reading old code as part of the effort to write new code. Because this ratio is so high, we want the reading of code to be easy, even if it makes the writing harder. Of course there’s no way to write code without reading it, so making it easy to read actually makes it easier to write. - -### Class names -> -> Classes and objects should have noun or noun phrase names like Customer, WikiPage, Account, and AddressParser. Avoid words like Manager, Processor, Data, or Info in the name of a class. A class name should not be a verb. - -### Method names -> -> Methods should have verb or verb phrase names like postPayment, deletePage, or save. Accessors, mutators, and predicates should be named for their value and prefixed with get, set, and is according to the javabean standard. - -```java -string name = employee.getName(); -customer.setName("mike"); -if (paycheck.isPosted())... -``` - -> When constructors are overloaded, use static factory methods with names that describe the arguments. For example, - -```java -Complex fulcrumPoint = Complex.FromRealNumber(23.0); -``` - -> is generally better than - -```java -Complex fulcrumPoint = new Complex(23.0); -``` - -> Consider enforcing their use by making the corresponding constructors private. - -### Note: Listings 2-1 and his solution in 2-2 make me cringe - -Its too long! Random methods with very long names makes it hard to read on screens like IDE's. You also end up jumping around the code, back and forth and trying to figure out what method returns what and where the next bit of code goes. There is also the issue of creating entire methods for one case of something happening. You could easily split the decision making within the one method with better coding. You can check if there is more and 0 counts and then handle what happens there. We already have access to all the variables we need passed as parameters, why split this off into many methods. I hate it. - -## Extended BNF (EBNF) - -* We can use * to make things **appear 0-to-many times** by wrapping then in brackets - -```text -N ::== a | (b | c)* -``` - -This can be read as **"N may consist of a or alternatively a series of characters comprising zero to many b or c"**. A valid syntax matching this rule would include: - -* "a" -* an empty string (the * helps with this as its 0 to many) -* "b" -* "c" -* "bc" -* "cb" -* "cbcbcbc" -* or "ccccccb" - -## Example - -We have a simple programming language that allows the user to write arithmetic sums for some existing variables **a, b, c, d, or e**. We can use +, -, /, * and () on the variables too. - -```text -Expression ::== primary-Expression (Operator primary-Expression)* -primary-Expression ::== Identifier - | (Expression) -Idenifier ::== a | b | c | d | e -Operator ::== + | - | / | * -``` - -For example: - -```text -a + (b * c) -``` - -Here you can view the [Java](https://docs.oracle.com/javase/specs/jls/se18/html/jls-19.html) specifications as well as [Pythons](https://docs.python.org/3/reference/grammar.html)! [Go](https://go.dev/ref/spec) has a very good break down of its grammar, with lots of documentation! - -## Triangle - -## Features of Triangle - -* Three primitive types of variables: - * Boolean (i.e. true or false) - * Char (a single character; same as the Java char type) - * Integer (values between -32767 and 32767) - -* Two types of composite variable: - * Records (a bit like dictionaries in python) - * Arrays - -* There are no strings or floating point types built-in - -* Let blocks are used to declare local constants, variables, procedures and functions (see repl.tri and factorials.ri below) - -* The only conditional command is **if** and the only loop command is **while** - -* **if** commands look like this: - * if x < y then *dostuff* else *dootherstuff* - * the “else” is needed, but can just be followed by ; (do nothing) - -* **while** commands look like this: - * while x < y do *dostuff* - -* **begin** and **end** signify a block of commands; the same as {} in Java or indentation in Python - -* Assignment of a value to a variable is done using the := operator like this - * a := 10 - * -* We can also bind values within declarations by using **~** - -* **put()** and **get()**, and similarly named functions, are used to write and read from the console - -### Examples of Triangle (.tri) - -``` -#hi.tri -begin - put('H'); put('i'); put('!') -end -``` - -Output: **Hi!** - -``` -#while.tri -let - var a : Integer -in -begin - a := 0; - while a < 5 do - begin - put('a'); - a := a + 1; - end -end -``` - -Output: **aaaaa** - -``` -#str.tri -let - type Str ~ array 10 of Char; - - func replicate (c: Char): Str ~ - [c,c,c,c,c,c,c,c,c,c]; - - var s: Str -in - -begin - s := replicate('*'); - put (s[0]); put(s[9]); puteol() -end -``` - -Output: ** - -## AST Examples - -***See OneNote folder (Year\ 3/AST/) for the answers*** - -## Syntactic Analysis - -Let's have a look at Java's syntax - -```java -int myNumber = 55; -``` - -**Kind***is the category (Identifier, Integer etc) -**Spelling*** is the actual text used in the code - -Let's break it down into tokens: - -* **int** - of kind Identifier(name of type) (spelling "int") -* **myNumber** - of kind Identifier(name of variable) (spelling "myNumber") -* **=** - of kind Becomes (spelling "=") -* **55** of kind Integer Literal (spelling "55") -* **;** of kind Semicolon (spelling ";") - -Below is the same example in Triangle: - -``` -let - var myNumber : Integer -in - myNumber := 55 -``` - -Let's break it down into tokens again: - -* **let, :, var, in** of kind let, :, var, in (spelling "let, :, var, in ") -* **:=** of kind Becomes (spelling "Becomes") -* **myNumber** of kind Identifier (spelling "myNumber") -* **Integer** of kind Identifier (spelling "Integer") -* **55** of kind Integer Literal (spelling "55") - -## Scanning a string into tokens - -The basic ideas is that we have a loop implemented using recursion that gobbles up characters from the text until they match a known template for a token. - -``` -myNumber := 55+ 10 -^ -``` - -Our starting point is char 'm', so we assume that we are working along a Identifier. We continue working our way through to the end of the word (until we hit a space). At this stage, it is impossible to know if we are working with either method names, string literals or anything of that nature. - -``` -myNumber := 55+ 10 -~~~~~~~~^ -``` - -We now check that string with a list of reserved words (such as *if*, *end*, *while*). If it was, say for example, **if**, the kind of this token will be set to If. We don't match any known reserved words so this token is labelled as an Identifier with the spelling "myNumber". - -``` -myNumber := 55+ 10 -~~~~~~~~~^ -``` - -We now keep moving along the spaces until we hit something other than a space. We've hit a colon. There are two types of colon in Triangle, one for separating a variable type from its name or a colon-equals (Becomes token). Let's take the next character as we will know what to do with it after this. - -``` -myNumber := 55+ 10 -~~~~~~~~~~^ -``` - -It is an colon equals sign. That tells us that the token is **Becomes** with the spelling ":=" - -``` -myNumber := 55+ 10 -~~~~~~~~~~~~^ -``` - -We hit a 5. Triangle can only support Integer types (handy!) so we know that we can carry along this number until we hit something that isn't a number (to get the full context of the Integer). In this case, we move along until we hit a space! - -``` -myNumber := 55+ 10 -~~~~~~~~~~~~~~^ -``` - -We've hit something that isn't a digit! This means that this token is of kind Integer Literal and has the spelling "55". - -``` -myNumber := 55+ 10 -~~~~~~~~~~~~~~^ -``` - -The next character is a plus. Operators can start with this character so we keep taking characters until reaching something that's not an operator. The next character is a space - -``` -myNumber := 55+ 10 -~~~~~~~~~~~~~~~~~~^ -``` - -We hit another Integer (10!) and reach the EOL (end of line). Most methods use recursion to keep reading until we reach the end of a line of a end of file. - -## Syntactic Analysis: Parsing into an AST - -Let's create a theoretical language, Micro-English. Here is the EBNF: - -``` -Sentence ::== Subject Verb Object . -Subject ::== I | a Noun | the Noun -Object ::== Me | a Noun | the Noun -Noun ::== cat | mat | rat -Verb ::== like | is | see | sees -(terminals are english lowercase words, e.g. like, the, etc) -``` - -### Bottom Up - -``` - Noun - | -the cat sees a rat. -``` - -``` -Subject - ____ - | Noun - | | -the cat sees a rat. -``` - -``` - S - ____ - | N Verb - | | | -the cat sees a rat. -``` - -``` - S - ____ - | N V N - | | | | -the cat sees a rat. -``` - -``` - S Obj - ____ ____ - | N V | N - | | | | | -the cat sees a rat. -``` - -``` - Sentence -___________________ - | | | | - S | Obj | - ____ | ____ | - | N V | N | - | | | | | | -the cat sees a rat. -``` - ---- - -### Key definitions for compilers - -* **Syntactic analysis**: scanning and parsing, which takes the text of the source code and transforms it into an abstract syntax tree - -* **Contextual analysis**: checks things like variable types and scope, and creates the connections within the AST so we can later look up declarations for named identifiers like variables, constants and function. - -* **Code generation**: generates the output code, which might be machine code, another high-level language, or an intermediate language (as it the case with Java bytecode). Might also include optimisations of the code. diff --git a/test/website/MARKDOWN/A5Week2.md b/test/website/MARKDOWN/A5Week2.md deleted file mode 100644 index 3f940c8..0000000 --- a/test/website/MARKDOWN/A5Week2.md +++ /dev/null @@ -1,277 +0,0 @@ -# CSCU9A5 Week 2 - -TODO -> Read Chapter 3 of Clean Code - -## Contextual Analysis - -```java -public class Example{ - private int count; - - public int doStuff(int[] values){ - int count = 0; - ... - } -} -``` - -Here there is two variables with the name **count**. How does the compiler know which is which? - -### Identification Tables - -We could walk back up the abstract syntax tree to figure out what needs to go where in memory (size, type etc.). That would work but, it's slow. (Think back to Tree Walks). - -The ID table might contain a list of these *attributes* or just a *pointer* to the place as to where the identifier was declared. - -Declarations are functions, class in Java or even int etc. - -A *block* is any part of the program that limits the scope of the declaration in Java. - -Each declaration has a **scope**. - -### Monolithic Block Structure - -A programming language exhibits a monolithic block structure if there is only one block: - -* All declarations are **global in scope** -* No identifier may be declared more than once -* For every reference to an identifier, *i*, there must be a corresponding declaration of *i*. - -```code -program - D -begin - C -end -``` - -One block for the **whole** program. The ID table may look like this: - -| Identity | Attribute | -|----------|-----------| -| b | (1) | -| n | (2) | -| c | (3) | - -```code -program -(1) integer b = 10 -(2) integer n -(3) char c -begin -... -n = n * b -... -write c -... -end -``` - -### Flat Block Structure - -Several overlapping blocks, local and global scopes. - -### Nested Block Structure - -Most programming languages fall into this structure (Java, C and Python). - -Many scope levels, declarations can be global (scope level 1, outer most scope) in scope or local in scope. - -Example: - -```code -let - (1) var a : Integer - (2) var b : Boolean -in - begin - .... - let - (3) var b : Integer - (4) var c : Boolean - in - begin - .... - let - (5) var d : Integer - in - .... - end - let - (6) var d : Boolean - (7) var e : Integer - in - .... -end -``` - -| Level | Identity | Attribute | -|-------|----------|-----------| -| 1 | a | (1) | -| 1 | b | (2) | -| 2 | b | (3) | -| 2 | c | (4) | -| 3 | d | (5) | -| 2 | d | (6) | -| 2 | e | (7) | - -What do we need to store instead of the identifiers? - -## Type Checking - -This is a key feature in a **statically** typed language like Triangle or Java. This helps programmers not make mistakes (assigning a string to an int). This type checking happens at compile time. - -The picture is much more complex for **dynamically** typed languages such as JavaScript or Go! - -## Runtime Organisation: Data Representation - -> Principles to follow with data representation: - -> (1) nonconfusion: different values of a given type should have different representations - -> (2) uniqueness: each value should always have the same representation. - -All values of a given type should occupy the same amount of space, this being that an int will have a storage size of 8 bytes, a boolean value having only 1 byte and a char only having 1 byte too. - -The compiler then can efficiently work out where to map the values in memory as it knows all the space needed. - -Should values be represented directly or indirectly? - -If a variable is directly represented, it simply maps to a binary representation of the variables value somewhere in heap memory. - -```text -| Address | Value | -|---------|-------| -| 0 | ? | int x = 130 -| 1 | ? | | (direct binary repr.) -| 2 | 130 |<---| -| 4 | ? | -| ... | ... | -``` - -If a value is indirectly, the variable maps to a **handle**, a pointer to a storage area where the binary representation of that variable exists (most likely in a heap memory area). - -```text -| Address | Value | -|---------|-------| -| 0 | ? | Object x = new Object() -| 1 | ? | | (indirect binary repr.) -| 2 | 160 |<---| (160 is an addr. in memory) -| 4 | ? | -| ... | ... | -| 160 |Object | -| 161 | data | -| 162 | here | -| 163 |etc... | -``` - -**Indirect representation** is necessary for variable whose values vary in size by a large amount e.g. dynamic arrays or objects. (Think malloc() in C). - -## Primate Types - -Primate types are stored directly, as this is more efficient than managing a pointer and the allocation of space in heap memory. - -Integer, Boolean and Char types are supported directly by the target machine with corresponding operations like *add*, *multiply* etc. - -## Composite Types - -Composite types are types which can be simplified into collections of primitive types. - -### Record - -**Record**: A collection of variables of fields, each of which has an identifier. - -* Records in Triangle -* Structs in C, Go etc. -* Java Class with only public variables (closest anyway...) - -Simplest way to store this in memory is to store the variables consecutively in memory (like in a row). - -```code -type Date = record - y : Integer - m : Integer - d : Integer - end; - -type Details = record - manager : Boolean - joined : Date - dep : Char - end; -``` - -This could be stored in memory like so: - -```text -var person : Details - -| Address | Value | -|---------|-------| -| 1 | ?? | -| 2 | true | <-- person.manager -| 2 | 1992 | <--- person.joined.y ] -| 4 | 3 | <--- person.joined.m ]> person.joined -| 5 | 1 | <--- person.joined.d ] -| 6 | 'c' | <-- person.dep -| 7 | ?? | - -``` - -### Array - -**Array**: consists of several elements which are all of the same type. Each element is referenced by an index (often an integer), there is a one-to-one relationship between indexes and array elements. Arrays start at 0 (some terrible languages don't) - -We are talking about static arrays (defined at compile time to a fixed size) but some languages support dynamic arrays whereby the length can vary at runtime. - -For dynamic arrays, we need a handle for the array where it points to the beginning and the end addresses somewhere else in the memory. - -Static arrays could look like this: - -```text -| Address | Value | -|---------|-------| -| 1 | ?? | -| 2 | ?? | -| 3 | ?? | -| 4 | 'h' | a[0] -| 5 | 'e' | a[1] -| 6 | 'l' | a[2] -| 7 | 'l' | a[3] -| 8 | 'o' | a[4] -| 9 | '!' | a[5] -| 10 | ?? | -| 11 | ?? | -| ... | ... | -``` - -Accessing the elements of this array requires an extra computation at runtime compared to accessing a single variable or a record field. - -## Expression Evaluation - -To summarise, broadly there are two approaches to storing temporary values: registers and stack. Registers are fixed locations that can be referenced directly, but this means a tricky process of choosing which registers to hold which values. Stacks grow and shrink to accommodate new values, but lead to simpler evaluation of expressions. - ---- - -## Summary of Key Concepts - -* Identification Table: associates identifiers with a list of attributes, or the original declaration - -* Declaration: something like a function declaration in python, class declaration in Java, or a variable declaration like “int a;” in Java - -* Scope: each declaration has a scope, which is the portion of the program that the declaration takes effect. - -* Block: any part of the program that limits the scope of a declaration (e.g. curly brackets in Java, indentation in Python) In Triangle, scope is determined by the let...in... Command. - -* Block structure: there are three types of block structure: monolithic, flat, and nested - -* Non-confusion: different values of a given type should have different representations - -* Uniqueness: each value should always have the same representation. - -Two issues to remember in practice: - -* All values of a given type should occupy the same amount of space - -* Should values be represented directly or indirectly? If all values of a given type occupy the same space (that is, the same number of bits or bytes), it is possible for the compiler to plan the allocation of space efficiently simply by knowing the type of each variable. diff --git a/test/website/MARKDOWN/A5Week3.md b/test/website/MARKDOWN/A5Week3.md deleted file mode 100644 index 95b4af4..0000000 --- a/test/website/MARKDOWN/A5Week3.md +++ /dev/null @@ -1,177 +0,0 @@ -# CSCU9A5 Week 3 - -By the end of this week you should have the ability to: - -* **Explain** the differences between static, stack, and heap storage allocation -* **Describe** the purpose of frames in a stack -* **Explain** why garbage collection is needed and describe an approach to carrying it out -* **Describe** what a template is in the context of code generation, and give simple examples -* **Implement** simple additions to the visitor pattern within a compiler -* **Reflect** on the value of where and when good commenting is needed - -## Runtime Organisation: Static Storage Allocation - -Memory is basically like a very long list with each element having an address and a value. - -If we have a variable that might change in size, and indirect representation is used - a pointer. This mean that the variable can occupy a fixed size space in memory because it just *points* to the address of where the data is really stored (usually in the **heap**). - -### Stack storage allocation - -> Stacks are last-in-first-out data structures: think of a stack of paper where you can only add or remove from the top. Stacks are an effective way to store local variables throughout the lifetime of a program. - -***Stack Storage Allocation:*** - -* Variables are stored in frames; each frame contains the local variables for a routine -* Global variables are stored at the base of the stack -* Link data at the start of each frame contains: - * Static link (reference to the start of the frame of the routine containing the current one) - * Dynamic link (reference to the start of the frame for the previously active routine) - * Return address (reference to the code instruction to jump back to when the routine is finished) -* When a routine is called, a new frame is pushed onto the stack; when it returns, the frame is removed -* Arguments are placed on the stack immediately before a routine is called -* When a routine returns, its arguments and frame are replaced by a return value on the stack - -Example of Routines and returns - -```text -let - var g: Integer; - func F(m: Integer, n: Integer): Integer ~ - m * n - -in - begin - getint(var g) - putint(F(g, g+1)) - end -``` - -```asm -PUSH 1 -LOADA 0[SB] -CALL getint -LOAD 0[SB] -LOAD 0[SB] -PUSH 1 -CALL add -CALL(SB) F -CALL putint -POP -HALT - -F: - LOAD -2[LB] - LOAD -1[LB] - CALL mult - RETURN(1) 2 -``` - -### Heap Storage Allocation and Garbage Collection - -> Heap storage allocation is another way to organise memory, and is good for indirect storage of variables. - -A heap variable is allocated by a special command called an allocator in Java. This is whenever you use the keyword *new* and in C it is *malloc()*. These return a pointer to the variable in the heap. They exist in memory until it is unallocated (via *free()* in C or automatically in Java). - -Heap is placed in opposite to the stack: - -```text -[ Stack ] <-SB -[ a ] -[ b ] -[ ...... ] <-ST -[ ] -[ 8 ] <-HT -[ H ] -[ ] -[ Heap ] <-HB -``` - -***Heap Storage Allocation:*** - -* Heaps can indirectly store more complex data structures -* Heap variables are added to the heap when they are created -* They are either removed by explicit deallocation, or automatically by a garbage collector -* Gaps appear in the heap over time; these can be managed by: - * Trying to match new variables to the closest size of available gap - * Merging gaps when variables are deallocated - * Compacting the heap periodically -* Garbage is when a variable is inaccessible, because no pointers to it remain in the program -* Explicit deallocation can lead to garbage or dangling pointers -* Automatic deallocation runs periodically, deallocating inaccessible variables -* Instances variables for objects have a pointer to a class object that defines what methods are applicable to them - -## Code Generation: Code Selection - -**Code Selection** is the process of choosing the specific machine code instructions that are needed to represent a high high-level code structure. Code Templates are used for this purpose, though it is complicated by dealing with special cases. - -**Storage Allocation** is the process of deciding the addresses for each variable in the program. This is why we have spent some time discussing stack and heap memory. - -We have parsed the program to an AST and applied contextual analysis to that AST to ensure that all the types are valid! We are now ready to generate the target code for our program. - -```go -n := n + 1 -``` - -```asm -LOAD n -LOAD 1 -ADD -STORE n -``` - -Adding one to a variable is very common thing to do. We can instead use this instruction - -```asm -LOAD n -SUCC -STORE n -``` - -SUCC, means successor instruction to increase the value on the top of the stack by one. This uses 3 instructions instead of 4, meaning it is around 25% faster. - -## The Triangle Abstract Machine - -The Triangle Abstract Machine (TAM) is a virtual machine designed as the target for our case study compiler. It is also implemented in Java, and you have a copy of it by virtue of cloning the Triangle-Tools project. TAM has the following features: - -* Its memory is organised to have a stack at the low-address end and a heap at the high address end. Low level operations are provided for adding and removing data in these - -* Call and return instructions for routines handle frames automatically; **return** automatically replaces the arguments in the stack with a result from the functions return. - -* The only registers are dedicated to specific purposes as we’ve described. SB, ST, HB and HT to locate the stack and heap; LB points to the topmost frame on the stack, and so on. These are updated automatically by the instructions that add or remove things from memory - -* Several routines such as ADD, MULT, and NOT are provided for basic arithmetic and logic operations. There are also routines for reading and writing text on the console. - -A full description of TAM is given in the extracts from Programming Language Processors in Java given in the Canvas Reading List. You don’t need to become familiar with this but the text is there to serve as reference material and you will likely want to refer to it when reading and extending the compiler. - -### From Programming Language Processors in Java: Compilers and Interpreters by Watt, D.A - -Yarr link be here! - - -* Both stack and heap can expand and contrast. Storage exhaustion arises when ST and HT attempt to cross over. - -#### Layout of a TAM frame - -* A *static link* points to an underlying frame associated with teh routine that textually encloses R in the source program -* The *dynamic link* points to the frame immediately underlying this one in the stack. -* The *return address* is the address of the instruction immediately following the call instruction that activated R. - -![2023-09-28_42](../media/2023-09-28_42.png) - -#### TAM instruction format - -All TAM instructions have a common format. - -* *op*: the operation code [4bits] -* *r*: a register number [4bits] -* *n*: the size of the operand. [8bits] -* *d*: address displacement (possibly negative) [16bit *signed*] - -```text -[ op ][ r ][ n ][ d ] - 4 bits 4 bits 8 bits 16 bits -``` - -#### TAM instructions - -![2023-09-28_55](../media/2023-09-28_55.png) diff --git a/test/website/MARKDOWN/A5Week4.md b/test/website/MARKDOWN/A5Week4.md deleted file mode 100644 index 966b332..0000000 --- a/test/website/MARKDOWN/A5Week4.md +++ /dev/null @@ -1,229 +0,0 @@ -# CSCU9A5 Week 4 - -## Read: Chapter 5 of Clean Code - -> Variable declarations: Martin suggests that declarations should be as close to the usage of the variables as possible. Others feel they should all be at the top, or at least together somewhere. What's your opinion? - -When it comes to variables within a program - it's important to remember 'scope'. We need to make it clear what scope the variables are in. - -If we are declaring variables at the top of the program (not in a *main* but the *very* top) - this is what I would consider **global** variables. These will be used throughout the entire program and therefore be rather important e.g. A Window object. This variable will be altered through the program. - -We've talked about **global** variables - let's talk about **local** ones. - -I would say there are two types of **local** variables. One's within a methods usages and ones within loops. - -Method usage **local** are the ones you would declare at the start of a function. These could be used to calculate a sum and then be returned. There is no need to put the variable else where. Now I believe you should use the variable right after declaring it in this situation. - -Sometimes it's helpful to declare all the variables at the start - this helps give context to what the function will be doing and possibly what it is returning without the need of comments. I find this helpful for functions that handle complex maths equations. - -The variables used within loops should come before the loops start; this gives me as a programmer better control on the scope and also context. An example could be line number, character position and file name before a for loop. I know that these three variables will be used in this for loop for keeping track of where we are in the loop. - -> Do you have any of your own formatting rules you follow (even if only sometimes?) - -***I try and reduce the amount of nesting I do - this falls under refactoring. I also like to still use {} around one line if functions too.*** - -## Code Generation: Algorithm - -The **Visitor Pattern** is used to generate the necessary low level instructions. - -The algorithm we are using follows the **visitor pattern**. We can already see this in the visualisation of the AST. - -We specifically write *visitNode* methods to view the tree. - -The Visitor pattern walks the AST calling **emit()** methods to generate machine code instructions as it goes. Lookups into the AST are used to decide things like the value of literals or specific operators to use. - -Backpatching is used when we need to make forward jumps when we need them (look at visitIf command). - -## Code Generation: Resource Allocation - -```code -let - const b ~ 10; - var i : Integer -in - i := i * b -``` - -**b** is bound to 10 and **i** is bound to an address large enough to hold an integer. - -When **b** is called in the program - it should be translated to a 10 by the compiler. Each time **i** is used, it should be translated to a memory address. - -In this example, the address for **i** is **4**. The machine code could look like this: - -```code -LOAD 4[SB] -LOADL 10 -CALL mult -STORE 4[SB] -``` - -In any declaration, identifiers can be bound to values or addresses, and these might be known or unknown at compile time. So at any declaration, there is one of four possible known values: - -* **Known Value**: This is a constant declaration, e.g. **b** in the above program. It was bound to a literal value of 10. -* **Unknown Value**: This is a constant expression where the right-side needs to be evaluated at runtime e.g. *const b ~ a + 5* or a parameter received by a routine. -* **Known Address**: This is a known address that is allocated and bound to a variable declaration e.g. **i** in the example above. -* **Unknown Address**: This is an address bound to a variable parameter in a routine. - -* The specific machine codes to read and write variables and constants are wrapped up in objects that are attached to the relevant declaration nodes in the AST -* These codes include either the literal value (in the case of constants bound to literals) or the necessary steps to work out the right address -* Each time we have a declaration, we need to generate the instructions to increase the size of the current frame; when that declaration drops out of scope, the frame is decreased in size again by “popping” elements off the stack - -### Within the Triangle Compiler - -#### Known Value - -```java -... -public KnownValue(int size, int value){ ... } -... -public void encodeFetch(Emitter ...){ - emitter.emit(OpCode.LOADL, 0, value) -} -... -``` - -A **Known value** (*KnownValue.java*) is simple. *Size* is the amount of memory taken up by this value and *Value* is the value itself. *encodeFetch* loads the literal value onto the stack *(0)*. - -#### Unknown Value - -```java -... -public UnknownValue(int size, int level, int displacement){ ... } -... -public void encodeFetch(Emitter ...){ - if (vname.indexed){ - emitter.emit(OpCode.LOADA ... - emitter.emit(OpCode.CALL ... - emitter.emit(OpCode.LOADI ... - } else { - emitter.emit(OpCode.LOAD ... - } -} -... -``` - -An **Unknown Value** is made up of two parts - level and displacement. Level is how nested the routine that contained this declaration. Displacement is where the entity is located relative to the base of the frame (i.e. how many words is from the start if the frame it is). - -We can use the *frame* as the displacement; that's the top of the stack. - -## Code Generation: Procedures and Functions - -How do we handle procedures and functions? These both translate to low level routines. A routine is a series of instructions and the template might look something like this: - -```code -elaborate [proc I () ~ C] = - JUMP g -e: execute c - RETURN (0) 0 -h: -``` - -* Routines are also treated as entities, and entities to track their addresses and generate necessary low level code to run them are stored in the AST much the same as for variables - -## Compiler Optimisations - -Compiler optimisation can happen in a few places: - -* Having a step before the code generation whereby the AST is manipulated or manipulating intermediate code if that is being generated. -* At the point where code is being generated - we can use processor specific instructions can be used/exploited. - -* **Common Sub-expression Elimination**: attempts to reduce calculations that are repeated. (This only works when the code is simple). -* **Constant Propagation**: At some point in a program - a variable might always have the same value. An algorithm to trace the flow of constant variables through the programme can be run to determine where this is guaranteed to be the case. The reference to the variable can be replaced by a literal value - reducing the need for fetches from memory. -* **Hoisting**: If part of a computation in a loop is independent of the values that change inside the loop, it can be moved *outside* the loop - meaning that it is only calculated **once** e.g: - -```code -while(j < k) { - a[j] := b + c; - j++; -} -``` - -In this example: **b** and **c** can be moved outside the loop so they are only computed once. We could turn the above code into this: - -```code -if (j < k){ - tmp = b + c; - while (j < k){ - a[j] := tmp; - j++; - } -} -``` - -* **Loop unrolling**: Reducing the amount of checks a program's loop (such as a *for* loop) will need. We can use some methods to half the checks or even completely remove the checks - this will result in a larger compiled program with less overhead. -* **Function Inlining**: Lifts the body of the code and places it directly to where the function was called. - -**Optional reading: More examples are mentioned in the book Introduction to Compiler Design (Mogensen) cited in the module home page; also here ** - -## Interpreters and Native Code, JIT - -Python is an interpreted language, meaning that the instructions called are done in real time - this creates more slow-down when running the program compared to a compiled language like C. - -Java is in the middle. Javac generates *bytecode* which is targeted at a *virtual machine*. This is then interpreted, so there is still some overhead involved when running with Java. - -Our toy language compiles into a Tam file. This is that intermediate language similar to *bytecode* in Java. - -* Interpreters for high level languages still scan and parse to generate an AST, and then visit that tree’s nodes to execute the program -* Interpreters for low level or intermediate languages iterate over the instructions one-by-one, matching the fetch-execute cycle -* In order of performance (approximately!): compiled native code is fastest, then intermediate code, the interpreted high level code - -## Just-in-time compilation, HotSpot, and GI - -JIT (Just-in-Time) compilation was introduced to help speed up Java's slow interpreted bytecode. Java's compiler doesn't do much optimisation itself, the idea of JIT is to offload certain expensive CPU executions into native machine code. Only parts of the program are complied in this way rather than the whole thing (most of it wont be ran often enough to make it worthwhile.). - -The process of targeting this extra compilation step is where the HotSpot (Oracles implementation of Java gets it name) - the targeted code is where the program runs hot. - -Simply put, there's a count of the number of times each method, loop and numerous other structures are executed. If that number would reach a particular threshold, that relevant block of code is compiled natively on the machine! - -JIT will also monitor branches of code and do the heavy work of lifting the *never executed* blocks of code from the compilation process off. - -* Search-based software engineering and genetic improvement of software is an active area of research that targets improvements to code that trades off possibly reduced functionality in return for greatly improved performance. Read more about it in this review paper: to an external site. or in these slides: - -## When and Where to Optimise Your Code - -We must not prematurely optimise! We should write straight forward clean code. We don't want to write hard-to-read code; slows down development, introduce bugs that are hard to track and make maintenance so much harder. - -```java -log.log(Level.FINE, "..." + calcX() ... + calcY() ... ); -``` - -This simple line has to be compiled and the method calls have to be computed i.e moving values on and off the stack and tracing ourselves around the program calls. If there is an error, *log* only reports levels higher than *FINE* so all that computation is wasted! We can rewrite this to: - -```java -if(log.isLoaggable(Level.FINE)){_ - log.log(Level.FINE, "..." + calcX() ... + calcY() ... ); -} -``` - -This is much more efficient. - -Sometimes we want to swap values around. We could do it like this: - -```java -temp = a -a = b -b = temp -``` - -This can be done better though. Maybe we can remove the *temp* variable. Let's have a look at the XOR binary function. - -XOR works like this: - -| ----- | - | -| 0 + 0 | 0 | -| 0 + 1 | 1 | -| 1 + 0 | 1 | -| 1 + 0 | 0 | - -Turns out, if we use XOR in a variable three times - it swaps! - -![2023-10-02_35](../media/2023-10-02_35.png) - -Unfortunately, it turns out that in practise, at best this will perform the same as using a temporary variable. On many modern CPU's, copies between registers are extremely fast. Some provide low-level instructions to swap variables anyway. - -In summary: - -* Write clear, logical code -* Make good design choices by selecting the right data types, the appropriate data structures and algorithms for the task at hand -* “clever” tricks can get in the way of the compiler doing its job, and make the code harder to read and debug -* Save the fancy optimisations until you’ve profiled the code and identified bottlenecks diff --git a/test/website/MARKDOWN/A5Week5.md b/test/website/MARKDOWN/A5Week5.md deleted file mode 100644 index b9f05e7..0000000 --- a/test/website/MARKDOWN/A5Week5.md +++ /dev/null @@ -1,7 +0,0 @@ -# CSCU9A5 Week 5 - -## Debugging Code - -Hello there - -This is sync test! diff --git a/test/website/MARKDOWN/A5Week8.md b/test/website/MARKDOWN/A5Week8.md deleted file mode 100644 index 71eaa07..0000000 --- a/test/website/MARKDOWN/A5Week8.md +++ /dev/null @@ -1 +0,0 @@ -# CSCU9A5 Week 8 diff --git a/test/website/MARKDOWN/css/style.css b/test/website/MARKDOWN/css/style.css deleted file mode 100755 index cfcb1bc..0000000 --- a/test/website/MARKDOWN/css/style.css +++ /dev/null @@ -1,52 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Roboto+Mono'); -@import url('https://fonts.googleapis.com/css?family=Roboto'); -@import url('https://fonts.googleapis.com/css?family=Anton'); - -body { - padding: 20px; - background-color: #1e1e2e; - color: #cdd6f4; - font-family: "Roboto Mono"; - font-size: 14px; - line-height: 22px; - margin: 0 auto; - max-width: 960px; -} - -pre { - color: #f9e2af; -} - -blockquote { - color: #f9e2af; -} - -a { - color: #f5e0dc; - text-decoration: none; -} - -a:hover { - color: #a6e3a1; -} - -h1 { - font-size: 20px; - color: #eba0ac; - margin-bottom: 0px; -} - -h2, h3, h4, h5, h6 { - font-size: 16px; - color: #51afef; - margin-bottom: 0px; -} - -li { - color: #a6e3a1; -} - -p { - padding: 0px; - margin: 0px; -} diff --git a/test/website/css/style.css b/test/website/css/style.css deleted file mode 100755 index cfcb1bc..0000000 --- a/test/website/css/style.css +++ /dev/null @@ -1,52 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Roboto+Mono'); -@import url('https://fonts.googleapis.com/css?family=Roboto'); -@import url('https://fonts.googleapis.com/css?family=Anton'); - -body { - padding: 20px; - background-color: #1e1e2e; - color: #cdd6f4; - font-family: "Roboto Mono"; - font-size: 14px; - line-height: 22px; - margin: 0 auto; - max-width: 960px; -} - -pre { - color: #f9e2af; -} - -blockquote { - color: #f9e2af; -} - -a { - color: #f5e0dc; - text-decoration: none; -} - -a:hover { - color: #a6e3a1; -} - -h1 { - font-size: 20px; - color: #eba0ac; - margin-bottom: 0px; -} - -h2, h3, h4, h5, h6 { - font-size: 16px; - color: #51afef; - margin-bottom: 0px; -} - -li { - color: #a6e3a1; -} - -p { - padding: 0px; - margin: 0px; -}

F+o*+E6t`U~Uz%OlvFzQ_o5_@UAIg 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�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 IanJw10ikPxCIA2c diff --git a/test/website/.DS_Store b/test/website/.DS_Store deleted file mode 100644 index e9f31436269756754e880d6044ae189107713a9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10244 zcmeHMd2Ae48GpZL$DV0+lW`oUadtP}*mdeUHg+8+)GC1`+dLn#*8tvW@0xp7G#WRbP8*D=(55g#>Khp;7-q4vLJsJjYpEn zxaiGyhFs%jz|DZ00XG9~2HXt1#xg*fEe=iSw|lr5a5La$AU6Y|J_P9$HsshjWo7B0 zi`)W`U0Cnay+KoiPtdU;$IdBBBXmHyl2xv7wirkwMFx88W+}L#PTzyS&_s*TOHNkUD4Rqhw)G#}%Yb6zR z&AsEN6R<+f;~ok!*-hI3a5Kb!$DIb^hUz z;nA_OP&66OOeScgC>oAOGc?(3 ziO2h_J4|~te5T(#lNR^FF`7!oT`eL&KwXGL>$V&mFetRq6p7#Or#d zgtI+prfjmhesTTgVC7A3*m=v|mV=!~d*_X!4aJ@k&-FvomTg7i=D>^Fv8Bnx_XbN|1?3uuyy6y zxXa@oh=(I)+=%JQt!a{0dvdzwAVo?|bv|9~S88j4VgGTek})Swo-u^-(yiXI%p z2u$3LQqGdP2@cn98tJMmuJg%9B#d;*`ur|<=Q1z*G0@eO<%Kfn+1Bm4qS;rI9h zp2nZ?FZ>(NbIv#N626I-@gU#Ecko7jh^> zc}{WR53Itxz~PR=on75WUJuNBe7)e>#*$6fZ{D_jNByp*eXR?aR3OgcHkS>O0*iTonxL^!sAgAqDmCJcu|_qkJk=Vp#wbwD+CZH~JTgLwKkp~t@89b27>rmde^Ptkphny>t|I6kV^6U^ zvcItB*^5{U10}eDfW8aOIDjq!yMTHx#&8@bFpeP2!g-Iq$l zlZjI_NAzo?qAjeKbrGF=*bqDVl8Rb*6%|!~6%}<^RJqE!Y%oV*+gIedcb#uwaARDyJZ91`YQE`wXzA|5>rsY-<jZ0MNl~s1-bPUnR6$Z* zZ}c{aqL8glsvj4RMIN8hqbanHnE_jmqbhi@6URq1N>wFieZaQ3AS2 z%f<-__B26VEFRyEcM{ys6W~9957P4S!}th3jnCk-67(1GRk?`#79PNN@LfENNAMH; z6hFhy@hb`b7o5*FSHQiJmM#PL5>3tK!?mv{19{3jD82z4SpEP1ujn1Fvzq}o1F!82 zAiuq@y_J4rcGJG}=Zc~or1K=5;t=!Zl$9=Yk#(J{{2WgW@j1SVPBGW{%pvbXPT!oe i(w*i=ce2;$p8;3r%iFbDtGN4rcmMx?d{JM#|Nk%g0HwPC diff --git a/test/website/HTML/.DS_Store b/test/website/HTML/.DS_Store deleted file mode 100644 index 609049f124409d353fcad65673fce0bb3b1f4a9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10244 zcmeHMU2GIp6uxI#=!_j@N?U$s?ZOIyQfw)OPzkVYm){nO-Ii{DXqnv^+Oe}U>(16G=mQW)=Wgyj z_nv#s+&O2zGiUA{LI^Zw)K!E82_ZaIN+l7STNFA^>rI98I1eKQ)F*Z-Zdh>~orT5?v1im~}y}qq~$Vi&j5qA6FJpu^5_xy4c2c9j4 zoo!-g5e4yhirI46vxOHPDi*~@9`cTz-+o)YlmWy*c zv%0Ov4Xq=mtIlATVkb0H)y;u!bgk*=`*kfXlt7ixZYoJ_Z2p3UrE);7m`aP6LVPR} z*PqVl&VjMglG)Ot#j@C|qOChEm0nGiPV#~~vvjd6_t2T9w1%z9^Det`g)Fw)=m|;j z1gmRAv3&^td&w44JsxqwQ2f(#@=nSV#Xe$V(S^o)3j98RA0Yzzdy;fA98PABVy;m3Rn)6Pz5Vt zEo_1o*afYy8@fP){V)J2$UqK;;Q%}b&%;r80gk~d@H)H+Z^7H}K70(Hz^CvTd;wp> zH*g-lgDda@{0LX!SNIeDf@>Vdm2u_V9Ik>3a*MbXTphQS+s^IanzzimBcNoY2#+`Qt$eo@d?gHDkZ`;w_vhzWRyGyfZq?MJ=nLBUM(iJsp>Nhst zKqQ0kIBN4_!3}^3VdDmX3y?|Rr6`mGkBY&mVzL7xM;qp85KBc&IwUUPF><6CY`9FU z1YQC*STAl6Fe;_OF&SaM=}}RX2*#*; zOOe199wSS-i;%xau8^O|Z{!-e4#glrIXs3iUjyr5Gc+UADbU-X2YR6o`ayxGUnnK-!bT*nc4a*!r4&}}uIx+F5k@Rg7X3J#T1Fz_cxsQ)368oXW7nv~Psr^@te3Yf`3dj7w8>hJ&4&oREmz6Yj}2cR$# zjWnXc^u_;Hg`TwsvF^i43zZvX)K$S|!iNAH(Bt@JSgEXcB;xkN9&eOUR~=