From c9eacbfdfc31e154ff6677cae4acff02c12ed7d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind?= Date: Sun, 10 Apr 2022 15:55:56 +0200 Subject: [PATCH] init ps6 --- exercises/06/.gitignore | 17 + exercises/06/PS6.pdf | Bin 0 -> 105155 bytes exercises/06/PS6_recitation.pdf | Bin 0 -> 220372 bytes exercises/06/ps6_skeleton.tar.gz | Bin 0 -> 16042 bytes exercises/06/vslc/Makefile | 12 + exercises/06/vslc/include/ir.h | 30 ++ exercises/06/vslc/include/nodetypes.h | 37 ++ exercises/06/vslc/include/tlhash.h | 28 ++ exercises/06/vslc/include/vslc.h | 50 ++ exercises/06/vslc/src/generator.c | 454 ++++++++++++++++++ exercises/06/vslc/src/ir.c | 336 +++++++++++++ exercises/06/vslc/src/nodetypes.c | 34 ++ exercises/06/vslc/src/parser.y | 181 +++++++ exercises/06/vslc/src/scanner.l | 30 ++ exercises/06/vslc/src/tlhash.c | 281 +++++++++++ exercises/06/vslc/src/tree.c | 232 +++++++++ exercises/06/vslc/src/vslc.c | 82 ++++ exercises/06/vslc/vsl_programs/Makefile | 45 ++ .../vsl_programs/ps2-parser/assignments.vsl | 14 + .../vsl_programs/ps2-parser/function_call.vsl | 8 + .../vsl_programs/ps2-parser/helloworld.vsl | 3 + .../vslc/vsl_programs/ps2-parser/if_else.vsl | 25 + .../vsl_programs/ps2-parser/variables.vsl | 19 + .../06/vslc/vsl_programs/ps2-parser/while.vsl | 10 + .../vsl_programs/ps3-simplify/constants.vsl | 9 + .../vslc/vsl_programs/ps3-simplify/lists.vsl | 16 + .../vslc/vsl_programs/ps4-symtab/globals.vsl | 11 + .../vslc/vsl_programs/ps4-symtab/shadow.vsl | 24 + .../ps5-codegen1/function_call.vsl | 9 + .../vsl_programs/ps5-codegen1/helloworld.vsl | 3 + .../06/vslc/vsl_programs/ps5-codegen1/ps5.vsl | 30 ++ .../vslc/vsl_programs/ps5-codegen1/shadow.vsl | 24 + .../vslc/vsl_programs/ps6-codegen2/euclid.vsl | 20 + .../vslc/vsl_programs/ps6-codegen2/newton.vsl | 21 + .../vsl_programs/ps6-codegen2/while_test.vsl | 23 + 35 files changed, 2118 insertions(+) create mode 100644 exercises/06/.gitignore create mode 100644 exercises/06/PS6.pdf create mode 100644 exercises/06/PS6_recitation.pdf create mode 100644 exercises/06/ps6_skeleton.tar.gz create mode 100644 exercises/06/vslc/Makefile create mode 100644 exercises/06/vslc/include/ir.h create mode 100644 exercises/06/vslc/include/nodetypes.h create mode 100644 exercises/06/vslc/include/tlhash.h create mode 100644 exercises/06/vslc/include/vslc.h create mode 100644 exercises/06/vslc/src/generator.c create mode 100644 exercises/06/vslc/src/ir.c create mode 100644 exercises/06/vslc/src/nodetypes.c create mode 100644 exercises/06/vslc/src/parser.y create mode 100644 exercises/06/vslc/src/scanner.l create mode 100644 exercises/06/vslc/src/tlhash.c create mode 100644 exercises/06/vslc/src/tree.c create mode 100644 exercises/06/vslc/src/vslc.c create mode 100644 exercises/06/vslc/vsl_programs/Makefile create mode 100644 exercises/06/vslc/vsl_programs/ps2-parser/assignments.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps2-parser/function_call.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps2-parser/helloworld.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps2-parser/if_else.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps2-parser/variables.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps2-parser/while.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps3-simplify/constants.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps3-simplify/lists.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps4-symtab/globals.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps4-symtab/shadow.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps5-codegen1/function_call.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps5-codegen1/helloworld.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps5-codegen1/ps5.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps5-codegen1/shadow.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps6-codegen2/euclid.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps6-codegen2/newton.vsl create mode 100644 exercises/06/vslc/vsl_programs/ps6-codegen2/while_test.vsl diff --git a/exercises/06/.gitignore b/exercises/06/.gitignore new file mode 100644 index 0000000..ea8acb0 --- /dev/null +++ b/exercises/06/.gitignore @@ -0,0 +1,17 @@ +# Buildfiles +*.o +vslc/src/vslc +parser.c +scanner.c +y.tab.h + +# Submission +*.tar.xz + +# VSL treefiles +*.ast +*.sast +*.sym +*.bin +*.s +*.S \ No newline at end of file diff --git a/exercises/06/PS6.pdf b/exercises/06/PS6.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a0127c80aa8ec63638ed801d0378c72e1f716b4f GIT binary patch literal 105155 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

#5i10#@-Tc(4F!$D1K> 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 Nijt2{RY#5Te*pWfv8Mn4 literal 0 HcmV?d00001 diff --git a/exercises/06/PS6_recitation.pdf b/exercises/06/PS6_recitation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..89da84abe205907ec8bb8a9564a75628577c64ef GIT binary patch literal 220372 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 literal 0 HcmV?d00001 diff --git a/exercises/06/ps6_skeleton.tar.gz b/exercises/06/ps6_skeleton.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..f3df61099732d6556f21893d33afab0add1964f3 GIT binary patch literal 16042 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 literal 0 HcmV?d00001 diff --git a/exercises/06/vslc/Makefile b/exercises/06/vslc/Makefile new file mode 100644 index 0000000..511e561 --- /dev/null +++ b/exercises/06/vslc/Makefile @@ -0,0 +1,12 @@ +LEX=flex +YACC=bison +YFLAGS+=--defines=src/y.tab.h -o y.tab.c +CFLAGS+=-std=c99 -g -Isrc -Iinclude -D_POSIX_C_SOURCE=200809L -DYYSTYPE="node_t *" + +src/vslc: src/vslc.c src/parser.o src/scanner.o src/nodetypes.o src/tree.o src/ir.o src/generator.o src/tlhash.c +src/y.tab.h: src/parser.c +src/scanner.c: src/y.tab.h src/scanner.l +clean: + -rm -f src/parser.c src/scanner.c src/*.tab.* src/*.o +purge: clean + -rm -f src/vslc diff --git a/exercises/06/vslc/include/ir.h b/exercises/06/vslc/include/ir.h new file mode 100644 index 0000000..78150e1 --- /dev/null +++ b/exercises/06/vslc/include/ir.h @@ -0,0 +1,30 @@ +#ifndef IR_H +#define IR_H + +/* This is the tree node structure */ +typedef struct n { + node_index_t type; + void *data; + struct s *entry; + uint64_t n_children; + struct n **children; +} node_t; + +// Export the initializer function, it is needed by the parser +void node_init ( + node_t *nd, node_index_t type, void *data, uint64_t n_children, ... +); + +typedef enum { + SYM_GLOBAL_VAR, SYM_FUNCTION, SYM_PARAMETER, SYM_LOCAL_VAR +} symtype_t; + +typedef struct s { + char *name; + symtype_t type; + node_t *node; + size_t seq; + size_t nparms; + tlhash_t *locals; +} symbol_t; +#endif diff --git a/exercises/06/vslc/include/nodetypes.h b/exercises/06/vslc/include/nodetypes.h new file mode 100644 index 0000000..5d302cc --- /dev/null +++ b/exercises/06/vslc/include/nodetypes.h @@ -0,0 +1,37 @@ +#ifndef NODETYPES_H +#define NODETYPES_H +typedef enum { + PROGRAM, + GLOBAL_LIST, + GLOBAL, + STATEMENT_LIST, + PRINT_LIST, + EXPRESSION_LIST, + VARIABLE_LIST, + ARGUMENT_LIST, + PARAMETER_LIST, + DECLARATION_LIST, + FUNCTION, + STATEMENT, + BLOCK, + ASSIGNMENT_STATEMENT, + ADD_STATEMENT, + SUBTRACT_STATEMENT, + MULTIPLY_STATEMENT, + DIVIDE_STATEMENT, + RETURN_STATEMENT, + PRINT_STATEMENT, + NULL_STATEMENT, + IF_STATEMENT, + WHILE_STATEMENT, + EXPRESSION, + RELATION, + DECLARATION, + PRINT_ITEM, + IDENTIFIER_DATA, + NUMBER_DATA, + STRING_DATA +} node_index_t; + +extern char *node_string[26]; +#endif diff --git a/exercises/06/vslc/include/tlhash.h b/exercises/06/vslc/include/tlhash.h new file mode 100644 index 0000000..889e535 --- /dev/null +++ b/exercises/06/vslc/include/tlhash.h @@ -0,0 +1,28 @@ +#ifndef TLHASH_H +#define TLHASH_H +#include +typedef struct el { + void *key, *value; + size_t key_length; + struct el *next; +} tlhash_element_t; + +typedef struct { + size_t n_buckets, size; + tlhash_element_t **buckets; +} tlhash_t; + +int tlhash_init ( tlhash_t *tab, size_t n_buckets ); +int tlhash_finalize ( tlhash_t *tab ); +int tlhash_insert ( tlhash_t *tab, void *key, size_t keylen, void *val ); +int tlhash_lookup ( tlhash_t *tab, void *key, size_t keylen, void **val ); +int tlhash_remove ( tlhash_t *tab, void *key, size_t key_length ); +size_t tlhash_size ( tlhash_t *tab ); +void tlhash_keys ( tlhash_t *tab, void **keys ); +void tlhash_values ( tlhash_t *tab, void **values ); + +#define TLHASH_SUCCESS 0 /* Success */ +#define TLHASH_ENOMEM 1 /* No memory available */ +#define TLHASH_ENOENT 2 /* No such table entry */ +#define TLHASH_EEXIST 3 /* Table entry already exists */ +#endif diff --git a/exercises/06/vslc/include/vslc.h b/exercises/06/vslc/include/vslc.h new file mode 100644 index 0000000..1e4d9aa --- /dev/null +++ b/exercises/06/vslc/include/vslc.h @@ -0,0 +1,50 @@ +#ifndef VSLC_H +#define VSLC_H +#include +#include +#include +#include +#include +#include + +// Prototypes for the hash table functions +#include "tlhash.h" + +// Numbers and names for the types of syntax tree nodes +#include "nodetypes.h" + +// Definition of the tree node type +#include "ir.h" + +// Token definitions and other things from bison, needs def. of node type +#include "y.tab.h" + +/* This is generated from the bison grammar, calls on the flex specification */ +int yyerror ( const char *error ); + +/* These are defined in the parser generated by bison */ +extern int yylineno; +extern int yylex ( void ); +extern char yytext[]; + +/* Global state */ +extern node_t *root; + +// Moving global defs to global header + +extern tlhash_t *global_names; // Defined in ir.c, used by generator.c +extern char **string_list; // Defined in ir.c, used by generator.c +extern size_t stringc; // Defined in ir.c, used by generator.c + +/* Global routines, called from main in vslc.c */ +void simplify_syntax_tree ( void ); +void print_syntax_tree ( void ); +void destroy_syntax_tree ( void ); + +void create_symbol_table ( void ); +void print_symbol_table ( void ); +void destroy_symbol_table ( void ); + +void generate_program ( void ); + +#endif diff --git a/exercises/06/vslc/src/generator.c b/exercises/06/vslc/src/generator.c new file mode 100644 index 0000000..ec87fb4 --- /dev/null +++ b/exercises/06/vslc/src/generator.c @@ -0,0 +1,454 @@ +#include + +void generate_stringtable ( void ); +void generate_global_variables ( void ); +void generate_function ( symbol_t *function ); + +static void generate_node ( node_t *node ); +void generate_main ( symbol_t *first ); +static void generate_function_call ( node_t *call ); + +#define MIN(a,b) (((a)<(b)) ? (a):(b)) + +static const char *record[6] = { + "%rdi", "%rsi", "%rdx", "%rcx", "%r8", "%r9" +}; + +static symbol_t *current_function = NULL; + + +void +generate_program ( void ) +{ + + size_t n_globals = tlhash_size(global_names); + symbol_t *global_list[n_globals]; + tlhash_values ( global_names, (void **)&global_list ); + + symbol_t *first_function; + for ( size_t i=0; itype == SYM_FUNCTION ) + { + // Allows the use of main as name to override entry point + if (!strcmp(global_list[i]->name, "main")) { + first_function = global_list[i]; + break; + } + else if (global_list[i]->seq == 0) { + first_function = global_list[i]; + } + } + + generate_stringtable(); + generate_global_variables(); + generate_main ( first_function ); + for ( size_t i=0; itype == SYM_FUNCTION ) + generate_function ( global_list[i] ); + +} + + +void +generate_stringtable ( void ) +{ + puts ( ".section .rodata" ); + puts ( ".intout: .string \"\%ld \"" ); + puts ( ".strout: .string \"\%s \"" ); + puts ( ".errout: .string \"Wrong number of arguments\"" ); + for ( size_t s=0; stype == SYM_GLOBAL_VAR ) + printf ( "._%s: .zero 8\n", syms[n]->name ); + } +} + + +void +generate_main ( symbol_t *first ) +{ + puts ( ".globl main" ); + puts ( ".section .text" ); + puts ( "main:" ); + puts ( "\tpushq %rbp" ); + puts ( "\tmovq %rsp, %rbp" ); + + printf ( "\tsubq\t$1,%%rdi\n" ); + printf ( "\tcmpq\t$%zu,%%rdi\n", first->nparms ); + printf ( "\tjne\tABORT\n" ); + printf ( "\tcmpq\t$0,%%rdi\n" ); + printf ( "\tjz\tSKIP_ARGS\n" ); + + printf ( "\tmovq\t%%rdi,%%rcx\n" ); + printf ( "\taddq $%zu, %%rsi\n", 8*first->nparms ); + printf ( "PARSE_ARGV:\n" ); + printf ( "\tpushq %%rcx\n" ); + printf ( "\tpushq %%rsi\n" ); + + printf ( "\tmovq\t(%%rsi),%%rdi\n" ); + printf ( "\tmovq\t$0,%%rsi\n" ); + printf ( "\tmovq\t$10,%%rdx\n" ); + printf ( "\tcall\tstrtol\n" ); + + /* Now a new argument is an integer in rax */ + + printf ( "\tpopq %%rsi\n" ); + printf ( "\tpopq %%rcx\n" ); + printf ( "\tpushq %%rax\n" ); + printf ( "\tsubq $8, %%rsi\n" ); + printf ( "\tloop PARSE_ARGV\n" ); + + /* Now the arguments are in order on stack */ + for ( int arg=0; argnparms); arg++ ) + printf ( "\tpopq\t%s\n", record[arg] ); + + printf ( "SKIP_ARGS:\n" ); + printf ( "\tcall\t_%s\n", first->name ); + printf ( "\tjmp\tEND\n" ); + printf ( "ABORT:\n" ); + printf ( "\tmovq\t$.errout, %%rdi\n" ); + printf ( "\tcall puts\n" ); + + printf ( "END:\n" ); + puts ( "\tmovq %rax, %rdi" ); + puts ( "\tcall exit" ); + +} + + +static void +generate_identifier ( node_t *ident ) +{ + symbol_t *symbol = ident->entry; + int64_t argument_offset; + switch ( symbol->type ) + { + case SYM_GLOBAL_VAR: + /* Global variables called by name */ + printf ( "._%s", symbol->name ); + break; + case SYM_PARAMETER: + if ( symbol->seq > 5 ) + /* Extra parameters pushed in decreasing order */ + printf ( "%ld(%%rbp)", 8+8*(symbol->seq-5) ); + else + /* First six parameters directly after base poiter */ + printf ( "%ld(%%rbp)", -8*(symbol->seq+1) ); + break; + case SYM_LOCAL_VAR: + /* Local variables places after parameters in stack */ + argument_offset = -8*MIN(6,current_function->nparms); + printf ( "%ld(%%rbp)", -8*(symbol->seq+1) + argument_offset ); + break; + } +} + + +static void +generate_expression ( node_t *expr ) +{ + if ( expr->type == IDENTIFIER_DATA ) + { + printf ( "\tmovq\t" ); + generate_identifier ( expr ); + printf ( ", %%rax\n" ); + } + else if ( expr->type == NUMBER_DATA ) + { + printf ( "\tmovq\t$%ld, %%rax\n", *(int64_t *)expr->data ); + } + else if ( expr->n_children == 1 ) + { + switch ( *((char*)(expr->data)) ) + { + case '-': + generate_expression ( expr->children[0] ); + printf ( "\tnegq\t%%rax\n" ); + break; + case '~': + generate_expression ( expr->children[0] ); + printf ( "\tnotq\t%%rax\n" ); + break; + } + } + else if ( expr->n_children == 2 ) + { + if ( expr->data != NULL ) + { + switch ( *((char *)expr->data) ) + { + case '+': + generate_expression ( expr->children[0] ); + printf ( "\tpushq\t%%rax\n" ); + generate_expression ( expr->children[1] ); + printf ( "\taddq\t%%rax, (%%rsp)\n" ); + printf ( "\tpopq\t%%rax\n" ); + break; + case '-': + generate_expression ( expr->children[0] ); + printf ( "\tpushq\t%%rax\n" ); + generate_expression ( expr->children[1] ); + printf ( "\tsubq\t%%rax, (%%rsp)\n" ); + printf ( "\tpopq\t%%rax\n" ); + break; + case '*': + printf ( "\tpushq\t%%rdx\n" ); + generate_expression ( expr->children[1] ); + printf ( "\tpushq\t%%rax\n" ); + generate_expression ( expr->children[0] ); + printf ( "\tmulq\t(%%rsp)\n" ); + printf ( "\tpopq\t%%rdx\n" ); + printf ( "\tpopq\t%%rdx\n" ); + break; + case '/': + printf ( "\tpushq\t%%rdx\n" ); + generate_expression ( expr->children[1] ); + printf ( "\tpushq\t%%rax\n" ); + generate_expression ( expr->children[0] ); + printf ( "\tcqo\n" ); + printf ( "\tidivq\t(%%rsp)\n" ); + printf ( "\tpopq\t%%rdx\n" ); + printf ( "\tpopq\t%%rdx\n" ); + break; + case '|': + generate_expression ( expr->children[0] ); + printf ( "\tpushq\t%%rax\n" ); + generate_expression ( expr->children[1] ); + printf ( "\torq\t%%rax, (%%rsp)\n" ); + printf ( "\tpopq\t%%rax\n" ); + break; + case '^': + generate_expression ( expr->children[0] ); + printf ( "\tpushq\t%%rax\n" ); + generate_expression ( expr->children[1] ); + printf ( "\txorq\t%%rax, (%%rsp)\n" ); + printf ( "\tpopq\t%%rax\n" ); + break; + case '&': + generate_expression ( expr->children[0] ); + printf ( "\tpushq\t%%rax\n" ); + generate_expression ( expr->children[1] ); + printf ( "\tandq\t%%rax, (%%rsp)\n" ); + printf ( "\tpopq\t%%rax\n" ); + break; + } + } else { + generate_function_call ( expr ); + } + } +} + + +static void +generate_function_call ( node_t *call ) +{ + /* Check function call */ + size_t n_arguments = 0; + if ( call->children[1] != NULL ) + n_arguments = call->children[1]->n_children; + symbol_t *function = call->children[0]->entry; + if ( n_arguments != function->nparms ) + { + fprintf ( stderr, + "Function %s has %zu parameters, called with %zu arguments\n", + (char *) call->children[0]->data, + (size_t) call->children[0]->entry->nparms, + n_arguments + ); + exit ( EXIT_FAILURE ); + } + + /* Generate function call: */ + + /* Push all the arguments */ + node_t *arglist = call->children[1]; + if ( arglist != NULL ) + { + for ( size_t p=arglist->n_children; p>0; p-- ) + { + generate_expression ( arglist->children[(p-1)] ); + if ( (p-1)>5 ) + printf ( "\tpushq\t%%rax\n" ); + else + printf ( "\tmovq\t%%rax, %s\n", record[(p-1)] ); + } + } + /* Call the function */ + printf ( "\tcall _%s\n", (char *)call->children[0]->data ); +} + + +static void +generate_assignment_statement ( node_t *statement ) +{ + switch ( statement->type ) + { + case ASSIGNMENT_STATEMENT: + generate_expression ( statement->children[1] ); + printf ( "\tmovq\t%%rax, " ); + generate_identifier ( statement->children[0] ); + printf ( "\n" ); + break; + case ADD_STATEMENT: + generate_expression ( statement->children[1] ); + printf ( "\taddq\t%%rax, " ); + generate_identifier ( statement->children[0] ); + printf ( "\n" ); + break; + case SUBTRACT_STATEMENT: + generate_expression ( statement->children[1] ); + printf ( "\tsubq\t%%rax, " ); + generate_identifier ( statement->children[0] ); + printf ( "\n" ); + break; + case MULTIPLY_STATEMENT: + generate_expression ( statement->children[1] ); + printf ( "\tmulq\t " ); + generate_identifier ( statement->children[0] ); + printf ( "\n" ); + printf ( "\tmovq\t%%rax, " ); + generate_identifier ( statement->children[0] ); + printf ( "\n" ); + break; + case DIVIDE_STATEMENT: + generate_expression ( statement->children[1] ); + printf ( "\txchgq\t%%rax, " ); + generate_identifier ( statement->children[0] ); + printf ( "\n" ); + printf ( "\tcqo\n" ); + printf ( "\tidivq\t" ); + generate_identifier ( statement->children[0] ); + printf ( "\n" ); + printf ( "\txchgq\t%%rax, " ); + generate_identifier ( statement->children[0] ); + printf ( "\n" ); + break; + } +} + + +static void +generate_print_statement ( node_t *statement ) +{ + for ( size_t i=0; in_children; i++ ) + { + node_t *item = statement->children[i]; + switch ( item->type ) + { + case STRING_DATA: + printf ( "\tmovq\t$.STR%zu, %%rsi\n", *((size_t *)item->data) ); + printf ( "\tmovq\t$.strout, %%rdi\n" ); + break; + case NUMBER_DATA: + printf ("\tmovq\t$%ld, %%rsi\n", *((int64_t *)item->data) ); + printf ( "\tmovq\t$.intout, %%rdi\n" ); + break; + case IDENTIFIER_DATA: + printf ( "\tmovq\t" ); + generate_identifier ( item ); + printf ( ", %%rsi\n" ); + printf ( "\tmovq\t$.intout, %%rdi\n" ); + break; + case EXPRESSION: + generate_expression ( item ); + printf ( "\tmovq\t%%rax, %%rsi\n" ); + printf ( "\tmovq\t$.intout, %%rdi\n" ); + break; + } + puts ( "\tmovq\t$0, %rax\n" // Clear rax to indicate not to use SSE instructions + "\tcall\tprintf" ); + } + printf ( "\tmovq\t$0x0A, %%rdi\n" ); // Finish statement by inserting a newline + puts ( "\tcall\tputchar" ); +} + + +static void +generate_if_statement ( node_t *statement ) +{ + // TODO: Handle if statement + // statement->nodetype = IF_STATEMENT +} + + +static void +generate_while_statement ( node_t *statement ) +{ + // TODO: Handle while statement + // statement->nodetype = WHILE_STATEMENT +} + + +static void +generate_node ( node_t *node ) +{ + switch (node->type) + { + case PRINT_STATEMENT: + generate_print_statement ( node ); + break; + case ASSIGNMENT_STATEMENT: + case ADD_STATEMENT: + case SUBTRACT_STATEMENT: + case MULTIPLY_STATEMENT: + case DIVIDE_STATEMENT: + generate_assignment_statement ( node ); + break; + case RETURN_STATEMENT: + generate_expression ( node->children[0] ); + printf ( "\tleave\n" ); + printf ( "\tret\n" ); + break; + case IF_STATEMENT: + // TODO: Implement + break; + case WHILE_STATEMENT: + // TODO: Implement + break; + case NULL_STATEMENT: + // TODO: Implement + break; + default: + for ( size_t i=0; in_children; i++ ) + generate_node ( node->children[i] ); + break; + } +} + + +void +generate_function ( symbol_t *function ) +{ + current_function = function; + printf ( "_%s:\n", function->name ); + puts ( "\tpushq %rbp" ); + puts ( "\tmovq %rsp, %rbp" ); + + /* Save arguments in local stack frame */ + for ( size_t arg=1; arg<=MIN(6,function->nparms); arg++ ) + printf ( "\tpushq\t%s\n", record[arg-1] ); + /* Make space for locals in local stack frame */ + size_t local_vars = tlhash_size(function->locals) - function->nparms; + if ( local_vars > 0 ) + printf ( "\tsubq $%zu, %%rsp\n", 8*local_vars ); + if ( (tlhash_size(function->locals)&1) == 1 ) + puts ( "\tpushq\t$0 /* Stack padding for 16-byte alignment */" ); + generate_node ( function->node ); + printf( "\tmovq\t%%rbp, %%rsp\n" // movq %rbp, %rsp // restore stack pointer + "\tmovq\t$0, %%rax\n" // movq $0, %rax // return 0 if nothing else + "\tpopq\t%%rbp\n" // popq %rbp // restore base pointer + "\tret\n"); // ret + current_function = NULL; +} diff --git a/exercises/06/vslc/src/ir.c b/exercises/06/vslc/src/ir.c new file mode 100644 index 0000000..ae5ea61 --- /dev/null +++ b/exercises/06/vslc/src/ir.c @@ -0,0 +1,336 @@ +#include + +// Externally visible, for the generator +extern tlhash_t *global_names; +extern char **string_list; +extern size_t n_string_list, stringc; + + +// Implementation choices, only relevant internally +static void find_globals ( void ); +static void bind_names ( symbol_t *function, node_t *root ); +static void print_symbols ( tlhash_t *table ); +static void destroy_symtab ( void ); + +// Internal details of name resolution +static size_t n_scopes = 1, scope_depth = 0; +static tlhash_t **scopes = NULL; + +/* External interface */ + +void +create_symbol_table ( void ) +{ + find_globals(); + size_t n_globals = tlhash_size ( global_names ); + symbol_t *global_list[n_globals]; + tlhash_values ( global_names, (void **)&global_list ); + for ( size_t i=0; itype == SYM_FUNCTION ) + bind_names ( global_list[i], global_list[i]->node ); +} + + +void +print_symbol_table ( void ) +{ + print_symbols ( global_names ); +} + + +void +destroy_symbol_table ( void ) +{ + destroy_symtab(); +} + +/* Internal matters */ + + +static void +print_symbols ( tlhash_t *table ) +{ + if ( table == NULL ) + return; + size_t n_entries = tlhash_size(table); + symbol_t *entry_list[n_entries]; + tlhash_values ( table, (void **)&entry_list ); + for ( size_t e=0; etype ) + { + case SYM_FUNCTION: + fprintf ( stderr, "function: %s\n", entry_list[e]->name ); + if ( entry_list[e]->type == SYM_FUNCTION ) + print_symbols ( entry_list[e]->locals ); + break; + case SYM_GLOBAL_VAR: + fprintf ( stderr, "global var: %s\n", entry_list[e]->name ); + break; + case SYM_PARAMETER: + fprintf ( stderr, "parameter: %s\n", entry_list[e]->name ); + break; + case SYM_LOCAL_VAR: + fprintf ( stderr, "local var: %s\n", entry_list[e]->name ); + break; + default: + /* This should never happen if all symbols have correct type */ + fprintf ( stderr, + "** Unknown symbol: %s\n", entry_list[e]->name + ); + break; + } + } +} + + +static void +add_global ( symbol_t *symbol ) +{ + tlhash_insert ( + global_names, symbol->name, strlen(symbol->name), symbol + ); +} + + +static void +find_globals ( void ) +{ + global_names = malloc ( sizeof(tlhash_t) ); + tlhash_init ( global_names, 32 ); + string_list = malloc ( n_string_list * sizeof(char * ) ); + size_t n_functions = 0; + + node_t *global_list = root->children[0]; + for ( uint64_t g=0; gn_children; g++ ) + { + node_t *global = global_list->children[g], *namelist; + symbol_t *symbol; + switch ( global->type ) + { + case FUNCTION: + symbol = malloc ( sizeof(symbol_t) ); + *symbol = (symbol_t) { + .type = SYM_FUNCTION, + .name = global->children[0]->data, + .node = global->children[2], + .seq = n_functions, + .nparms = 0, + .locals = malloc ( sizeof(tlhash_t) ) + }; + n_functions++; + + tlhash_init ( symbol->locals, 32 ); + if ( global->children[1] != NULL ) + { + symbol->nparms = global->children[1]->n_children; + for ( int p=0; pnparms; p++ ) + { + node_t *param = global->children[1]->children[p]; + symbol_t *psym = malloc ( sizeof(symbol_t) ); + *psym = (symbol_t) { + .type = SYM_PARAMETER, + .name = param->data, + .node = NULL, + .seq = p, + .nparms = 0, + .locals = NULL + }; + tlhash_insert ( + symbol->locals, psym->name, strlen(psym->name), psym + ); + } + } + add_global ( symbol ); + break; + case DECLARATION: + namelist = global->children[0]; + for ( uint64_t d=0; dn_children; d++ ) + { + symbol = malloc ( sizeof(symbol_t) ); + *symbol = (symbol_t) { + .type = SYM_GLOBAL_VAR, + .name = namelist->children[d]->data, + .node = NULL, + .seq = 0, + .nparms = 0, + .locals = NULL + }; + add_global(symbol); + } + break; + } + } +} + + +static void +push_scope ( void ) +{ + if ( scopes == NULL ) + scopes = malloc ( n_scopes * sizeof(tlhash_t *) ); + tlhash_t *new_scope = malloc ( sizeof(tlhash_t) ); + tlhash_init ( new_scope, 32 ); + scopes[scope_depth] = new_scope; + + scope_depth += 1; + if ( scope_depth >= n_scopes ) + { + n_scopes *= 2; + scopes = realloc ( scopes, n_scopes*sizeof(tlhash_t **) ); + } + +} + + +static void +add_local ( symbol_t *local ) +{ + tlhash_insert ( + scopes[scope_depth-1],local->name,strlen(local->name),local + ); +} + + +static symbol_t * +lookup_local ( char *name ) +{ + symbol_t *result = NULL; + size_t depth = scope_depth; + while ( result == NULL && depth > 0 ) + { + depth -= 1; + tlhash_lookup ( scopes[depth], name, strlen(name), (void **)&result ); + } + return result; +} + + +static void +pop_scope ( void ) +{ + scope_depth -= 1; + tlhash_finalize ( scopes[scope_depth] ); + free ( scopes[scope_depth] ); + scopes[scope_depth] = NULL; +} + + +static void +add_string ( node_t *string ) +{ + string_list[stringc] = string->data; + string->data = malloc ( sizeof(size_t) ); + *((size_t *)string->data) = stringc; + stringc++; + if ( stringc >= n_string_list ) + { + n_string_list *= 2; + string_list = realloc ( string_list, n_string_list * sizeof(char *) ); + } + +} + + +static void +bind_names ( symbol_t *function, node_t *root ) +{ + if ( root == NULL ) + return; + else switch ( root->type ) + { + node_t *namelist; + symbol_t *entry; + + case BLOCK: + push_scope(); + for ( size_t c=0; cn_children; c++ ) + bind_names ( function, root->children[c] ); + pop_scope(); + break; + + case DECLARATION: + namelist = root->children[0]; + for ( uint64_t d=0; dn_children; d++ ) + { + node_t *varname = namelist->children[d]; + size_t local_num = + tlhash_size(function->locals) - function->nparms; + symbol_t *symbol = malloc ( sizeof(symbol_t) ); + *symbol = (symbol_t) { + .type = SYM_LOCAL_VAR, + .name = varname->data, + .node = NULL, + .seq = local_num, + .nparms = 0, + .locals = NULL + }; + tlhash_insert ( + function->locals, &local_num, sizeof(size_t), symbol + ); + add_local ( symbol ); + } + break; + + case IDENTIFIER_DATA: + entry = lookup_local ( root->data ); + if ( entry == NULL ) + tlhash_lookup ( + function->locals, root->data, + strlen(root->data), (void**)&entry + ); + if ( entry == NULL ) + tlhash_lookup ( + global_names,root->data,strlen(root->data),(void**)&entry + ); + if ( entry == NULL ) + { + fprintf ( stderr, "Identifier '%s' does not exist in scope\n", + (char *)root->data + ); + exit ( EXIT_FAILURE ); + } + root->entry = entry; + break; + + case STRING_DATA: + add_string ( root ); + break; + + default: + for ( size_t c=0; cn_children; c++ ) + bind_names ( function, root->children[c] ); + break; + } +} + + +void +destroy_symtab ( void ) +{ + for ( size_t i=0; ilocals != NULL ) + { + size_t n_locals = tlhash_size ( glob->locals ); + symbol_t *locals[n_locals]; + tlhash_values ( glob->locals, (void **)&locals ); + for ( size_t l=0; llocals ); + free ( glob->locals ); + } + free ( glob ); + } + tlhash_finalize ( global_names ); + free ( global_names ); + free ( scopes ); +} diff --git a/exercises/06/vslc/src/nodetypes.c b/exercises/06/vslc/src/nodetypes.c new file mode 100644 index 0000000..dd90315 --- /dev/null +++ b/exercises/06/vslc/src/nodetypes.c @@ -0,0 +1,34 @@ +#define STRING(x) #x +char *node_string[30] = { + STRING(PROGRAM), + STRING(GLOBAL_LIST), + STRING(GLOBAL), + STRING(STATEMENT_LIST), + STRING(PRINT_LIST), + STRING(EXPRESSION_LIST), + STRING(VARIABLE_LIST), + STRING(ARGUMENT_LIST), + STRING(PARAMETER_LIST), + STRING(DECLARATION_LIST), + STRING(FUNCTION), + STRING(STATEMENT), + STRING(BLOCK), + STRING(ASSIGNMENT_STATEMENT), + STRING(ADD_STATEMENT), + STRING(SUBTRACT_STATEMENT), + STRING(MULTIPLY_STATEMENT), + STRING(DIVIDE_STATEMENT), + STRING(RETURN_STATEMENT), + STRING(PRINT_STATEMENT), + STRING(NULL_STATEMENT), + STRING(IF_STATEMENT), + STRING(WHILE_STATEMENT), + STRING(EXPRESSION), + STRING(RELATION), + STRING(DECLARATION), + STRING(PRINT_ITEM), + STRING(IDENTIFIER_DATA), + STRING(NUMBER_DATA), + STRING(STRING_DATA) +}; +#undef STRING diff --git a/exercises/06/vslc/src/parser.y b/exercises/06/vslc/src/parser.y new file mode 100644 index 0000000..f1abcc8 --- /dev/null +++ b/exercises/06/vslc/src/parser.y @@ -0,0 +1,181 @@ +%{ +#include + +#define N0C(n,t,d) do { \ + node_init ( n = malloc(sizeof(node_t)), t, d, 0 ); \ +} while ( false ) +#define N1C(n,t,d,a) do { \ + node_init ( n = malloc(sizeof(node_t)), t, d, 1, a ); \ +} while ( false ) +#define N2C(n,t,d,a,b) do { \ + node_init ( n = malloc(sizeof(node_t)), t, d, 2, a, b ); \ +} while ( false ) +#define N3C(n,t,d,a,b,c) do { \ + node_init ( n = malloc(sizeof(node_t)), t, d, 3, a, b, c ); \ +} while ( false ) + +%} + +%left '|' +%left '^' +%left '&' +%left '+' '-' +%left '*' '/' +%nonassoc UMINUS +%right '~' +%expect 1 + +%token FUNC PRINT RETURN CONTINUE IF THEN ELSE WHILE DO OPENBLOCK CLOSEBLOCK +%token VAR NUMBER IDENTIFIER STRING + +%% +program : + global_list { N1C ( root, PROGRAM, NULL, $1 ); } + ; +global_list : + global { N1C ( $$, GLOBAL_LIST, NULL, $1 ); } + | global_list global { N2C ( $$, GLOBAL_LIST, NULL, $1, $2 ); } + ; +global: + function { N1C ( $$, GLOBAL, NULL, $1 ); } + | declaration { N1C ( $$, GLOBAL, NULL, $1 ); } + ; +statement_list : + statement { N1C ( $$, STATEMENT_LIST, NULL, $1 ); } + | statement_list statement { N2C ( $$, STATEMENT_LIST, NULL, $1, $2 ); } + ; +print_list : + print_item { N1C ( $$, PRINT_LIST, NULL, $1 ); } + | print_list ',' print_item { N2C ( $$, PRINT_LIST, NULL, $1, $3 ); } + ; +expression_list : + expression { N1C ( $$, EXPRESSION_LIST, NULL, $1 ); } + | expression_list ',' expression { N2C($$, EXPRESSION_LIST, NULL, $1, $3); } + ; +variable_list : + identifier { N1C ( $$, VARIABLE_LIST, NULL, $1 ); } + | variable_list ',' identifier { N2C ( $$, VARIABLE_LIST, NULL, $1, $3 ); } + ; +argument_list : + expression_list { N1C ( $$, ARGUMENT_LIST, NULL, $1 ); } + | /* epsilon */ { $$ = NULL; } + ; +parameter_list : + variable_list { N1C ( $$, PARAMETER_LIST, NULL, $1 ); } + | /* epsilon */ { $$ = NULL; } + ; +declaration_list : + declaration { N1C ( $$, DECLARATION_LIST, NULL, $1 ); } + | declaration_list declaration { N2C ($$, DECLARATION_LIST, NULL, $1, $2); } + ; +function : + FUNC identifier '(' parameter_list ')' statement + { N3C ( $$, FUNCTION, NULL, $2, $4, $6 ); } + ; +statement : + assignment_statement { N1C ( $$, STATEMENT, NULL, $1 ); } + | return_statement { N1C ( $$, STATEMENT, NULL, $1 ); } + | print_statement { N1C ( $$, STATEMENT, NULL, $1 ); } + | if_statement { N1C ( $$, STATEMENT, NULL, $1 ); } + | while_statement { N1C ( $$, STATEMENT, NULL, $1 ); } + | null_statement { N1C ( $$, STATEMENT, NULL, $1 ); } + | block { N1C ( $$, STATEMENT, NULL, $1 ); } + ; +block : + OPENBLOCK declaration_list statement_list CLOSEBLOCK + { N2C ($$, BLOCK, NULL, $2, $3); } + | OPENBLOCK statement_list CLOSEBLOCK { N1C ($$, BLOCK, NULL, $2 ); } + ; +assignment_statement : + identifier ':' '=' expression + { N2C ( $$, ASSIGNMENT_STATEMENT, NULL, $1, $4 ); } + | identifier '+' '=' expression + { N2C ( $$, ADD_STATEMENT, NULL, $1, $4 ); } + | identifier '-' '=' expression + { N2C ( $$, SUBTRACT_STATEMENT, NULL, $1, $4 ); } + | identifier '*' '=' expression + { N2C ( $$, MULTIPLY_STATEMENT, NULL, $1, $4 ); } + | identifier '/' '=' expression + { N2C ( $$, DIVIDE_STATEMENT, NULL, $1, $4 ); } + ; +return_statement : + RETURN expression + { N1C ( $$, RETURN_STATEMENT, NULL, $2 ); } + ; +print_statement : + PRINT print_list + { N1C ( $$, PRINT_STATEMENT, NULL, $2 ); } + ; +null_statement : + CONTINUE + { N0C ( $$, NULL_STATEMENT, NULL ); } + ; +if_statement : + IF relation THEN statement + { N2C ( $$, IF_STATEMENT, NULL, $2, $4 ); } + | IF relation THEN statement ELSE statement + { N3C ( $$, IF_STATEMENT, NULL, $2, $4, $6 ); } + ; +while_statement : + WHILE relation DO statement + { N2C ( $$, WHILE_STATEMENT, NULL, $2, $4 ); } + ; +relation: + expression '=' expression + { N2C ( $$, RELATION, strdup("="), $1, $3 ); } + | expression '<' expression + { N2C ( $$, RELATION, strdup("<"), $1, $3 ); } + | expression '>' expression + { N2C ( $$, RELATION, strdup(">"), $1, $3 ); } + ; +expression : + expression '|' expression + { N2C ( $$, EXPRESSION, strdup("|"), $1, $3 ); } + | expression '^' expression + { N2C ( $$, EXPRESSION, strdup("^"), $1, $3 ); } + | expression '&' expression + { N2C ( $$, EXPRESSION, strdup("&"), $1, $3 ); } + | expression '+' expression + { N2C ( $$, EXPRESSION, strdup("+"), $1, $3 ); } + | expression '-' expression + { N2C ( $$, EXPRESSION, strdup("-"), $1, $3 ); } + | expression '*' expression + { N2C ( $$, EXPRESSION, strdup("*"), $1, $3 ); } + | expression '/' expression + { N2C ( $$, EXPRESSION, strdup("/"), $1, $3 ); } + | '-' expression %prec UMINUS + { N1C ( $$, EXPRESSION, strdup("-"), $2 ); } + | '~' expression %prec UMINUS + { N1C ( $$, EXPRESSION, strdup("~"), $2 ); } + | '(' expression ')' { $$ = $2; } + | number { N1C ( $$, EXPRESSION, NULL, $1 ); } + | identifier + { N1C ( $$, EXPRESSION, NULL, $1 ); } + | identifier '(' argument_list ')' + { N2C ( $$, EXPRESSION, NULL, $1, $3 ); } + ; +declaration : + VAR variable_list { N1C ( $$, DECLARATION, NULL, $2 ); } + ; +print_item : + expression + { N1C ( $$, PRINT_ITEM, NULL, $1 ); } + | string + { N1C ( $$, PRINT_ITEM, NULL, $1 ); } + ; +identifier: IDENTIFIER { N0C($$, IDENTIFIER_DATA, strdup(yytext) ); } +number: NUMBER + { + int64_t *value = malloc ( sizeof(int64_t) ); + *value = strtol ( yytext, NULL, 10 ); + N0C($$, NUMBER_DATA, value ); + } +string: STRING { N0C($$, STRING_DATA, strdup(yytext) ); } +%% + +int +yyerror ( const char *error ) +{ + fprintf ( stderr, "%s on line %d\n", error, yylineno ); + exit ( EXIT_FAILURE ); +} diff --git a/exercises/06/vslc/src/scanner.l b/exercises/06/vslc/src/scanner.l new file mode 100644 index 0000000..ffa93ff --- /dev/null +++ b/exercises/06/vslc/src/scanner.l @@ -0,0 +1,30 @@ +%{ +#include +%} +%option noyywrap +%option array +%option yylineno + +WHITESPACE [\ \t\v\r\n] +COMMENT \/\/[^\n]+ +QUOTED \"([^\"\n]|\\\")*\" +%% +{WHITESPACE}+ { /* Eliminate whitespace */ } +{COMMENT} { /* Eliminate comments */ } +func { return FUNC; } +print { return PRINT; } +return { return RETURN; } +continue { return CONTINUE; } +if { return IF; } +then { return THEN; } +else { return ELSE; } +while { return WHILE; } +do { return DO; } +begin { return OPENBLOCK; } +end { return CLOSEBLOCK; } +var { return VAR; } +[0-9]+ { return NUMBER; } +[A-Za-z_][0-9A-Za-z_]* { return IDENTIFIER; } +{QUOTED} { return STRING; } +. { return yytext[0]; } +%% diff --git a/exercises/06/vslc/src/tlhash.c b/exercises/06/vslc/src/tlhash.c new file mode 100644 index 0000000..7936ece --- /dev/null +++ b/exercises/06/vslc/src/tlhash.c @@ -0,0 +1,281 @@ +#include +#include +#include + +#include + +/********************************************************************* + * Declarations of the utility functions for obtaining hashes, found * + * at the bottom of this file. * + *********************************************************************/ + +/* Little-endian, for x86-s */ +#define CRC32_IEEE802_3 (0xedb88320) +static const uint32_t crc32_ieee802_3[256]; +static const uint32_t *crc_table = (uint32_t *)crc32_ieee802_3; + +static uint32_t crc32 ( void *input, size_t length ); + + +/******************************** + * External interface functions * + ********************************/ + + +/* Initializer + * Returns + * ENOMEM - if allocation of table entries fails. + */ +int +tlhash_init ( tlhash_t *tab, size_t n_buckets ) +{ + size_t i; + tab->n_buckets = n_buckets; + tab->size = 0; + tab->buckets = (tlhash_element_t **) calloc ( + n_buckets, sizeof(tlhash_element_t *) + ); + if ( tab->buckets == NULL ) + return TLHASH_ENOMEM; + for ( i=0; ibuckets[i] = NULL; + return TLHASH_SUCCESS; +} + + +/* Finalizer + * Returns + * ENOENT - if there is no table to free. + */ +int +tlhash_finalize ( tlhash_t *tab ) +{ + size_t i; + if ( tab == NULL ) + return TLHASH_ENOENT; + for ( i=0; in_buckets; i++ ) + { + tlhash_element_t *element = tab->buckets[i], *next; + while ( element != NULL ) + { + next = element->next; + free ( element->key ); + free ( element ); + tab->size -= 1; + element = next; + } + } + + free ( tab->buckets ); + return TLHASH_SUCCESS; +} + + +/* Insert - find hash value, modulate over buckets, append to linked list + * Returns + * EEXIST - if an element is already indexed by this key + * ENOMEM - if allocation of element or key copy fails + */ +int +tlhash_insert ( + tlhash_t *tab, void *key, size_t key_length, void *value +) +{ + void *test_entry; + int test = tlhash_lookup ( tab, key, key_length, &test_entry ); + if ( test != TLHASH_ENOENT ) + return TLHASH_EEXIST; + uint32_t hash = crc32 ( key, key_length ); + size_t bucket = hash % tab->n_buckets; + tlhash_element_t *element = malloc ( sizeof(tlhash_element_t) ); + if ( element == NULL ) + return TLHASH_ENOMEM; + void *key_copy = malloc ( key_length ); + if ( key_copy == NULL ) + { + free ( element ); + return TLHASH_ENOMEM; + } + memcpy ( key_copy, key, key_length ); + element->key = key_copy; + element->key_length = key_length; + element->value = value; + element->next = tab->buckets[bucket]; + tab->buckets[bucket] = element; + tab->size += 1; + return TLHASH_SUCCESS; +} + + +/* Lookup - find hash value, modulate over buckets, search linked list + * Returns + * ENOENT - if no element is indexed by this key + */ +int +tlhash_lookup ( + tlhash_t *tab, void *key, size_t key_length, void **value +) +{ + uint32_t hash = crc32 ( key, key_length ); + size_t bucket = hash % tab->n_buckets; + tlhash_element_t *el = tab->buckets[bucket]; + + *value = NULL; + while ( el != NULL ) + { + if ( el->key_length == key_length && ! memcmp(el->key,key,key_length) ) + { + *value = el->value; + break; + } + el = el->next; + } + if ( el != NULL ) + return TLHASH_SUCCESS; + else + return TLHASH_ENOENT; +} + + +/* Removal - find hash value, modulate over buckets, delete entry + * Returns + * ENOENT - no such element to remove was found. + */ +int +tlhash_remove ( tlhash_t *tab, void *key, size_t key_length ) +{ + uint32_t hash = crc32 ( key, key_length ); + size_t bucket = hash % tab->n_buckets; + tlhash_element_t *el = tab->buckets[bucket], *prev = NULL; + + while ( el != NULL ) + { + if ( el->key_length == key_length && ! memcmp(el->key,key,key_length) ) + { + /* We have a match. */ + if ( prev != NULL ) /* Remove from list if it's not the head */ + prev->next = (void *)el->next; + else /* Substitute it if it IS the head */ + tab->buckets[bucket] = el->next; + /* Free the container and key copy allocated by this lib */ + free ( el->key ); + free ( el ); + break; + } + prev = el; + el = el->next; + } + if ( el == NULL ) + return TLHASH_ENOENT; + else + { + tab->size -= 1; + return TLHASH_SUCCESS; + } +} + + +size_t +tlhash_size ( tlhash_t *tab ) +{ + return tab->size; +} + + +void +tlhash_keys ( tlhash_t *tab, void **keys ) +{ + size_t b, i = 0; + for ( b=0; bn_buckets; b++ ) + { + tlhash_element_t *el = tab->buckets[b]; + while ( el != NULL ) + { + keys[i] = el->key; + i += 1; + el = el->next; + } + } +} + + +void +tlhash_values ( tlhash_t *tab, void **values ) +{ + size_t b, i = 0; + for ( b=0; bn_buckets; b++ ) + { + tlhash_element_t *el = tab->buckets[b]; + while ( el != NULL ) + { + values[i] = el->value; + i += 1; + el = el->next; + } + } +} + + +/*************************************** + * Hashing function and IEEE data blob * + ***************************************/ + + +static uint32_t +crc32 ( void *input, size_t length ) +{ + const uint8_t *data = (uint8_t *)input; + size_t i = 0; + uint32_t hash = 0xFFFFFFFF; + for ( i = 0; i>8) ^ crc_table [ data[i] ^ (uint8_t)hash ]; + return (hash^0xFFFFFFFF); +} + + +static const uint32_t +crc32_ieee802_3[256] = { + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, + 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, + 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, + 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, + 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, + 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, + 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, + 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, + 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, + 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, + 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, + 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, + 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, + 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, + 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, + 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, + 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, + 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, + 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, + 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, + 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, + 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, + 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, + 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, + 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, + 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, + 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, + 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, + 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, + 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, + 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, + 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, + 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, + 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, + 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d +}; diff --git a/exercises/06/vslc/src/tree.c b/exercises/06/vslc/src/tree.c new file mode 100644 index 0000000..ef7658c --- /dev/null +++ b/exercises/06/vslc/src/tree.c @@ -0,0 +1,232 @@ +#include + +static void node_print ( node_t *root, int nesting ); +static void simplify_tree ( node_t **simplified, node_t *root ); +static void node_finalize ( node_t *discard ); + +typedef struct stem_t *stem; +struct stem_t { const char *str; stem next; }; +static void +tree_print(node_t* root, stem head); + + +static void destroy_subtree ( node_t *discard ); + + +/* External interface */ +void +destroy_syntax_tree ( void ) +{ + destroy_subtree ( root ); +} + + +void +simplify_syntax_tree ( void ) +{ + simplify_tree ( &root, root ); +} + + +extern bool new_print_style; +void +print_syntax_tree ( void ) +{ + if (new_print_style) + tree_print ( root, 0 ); + // Old tree printing + else + node_print ( root, 0 ); +} + + +void +node_init (node_t *nd, node_index_t type, void *data, uint64_t n_children, ...) +{ + va_list child_list; + *nd = (node_t) { + .type = type, + .data = data, + .entry = NULL, + .n_children = n_children, + .children = (node_t **) malloc ( n_children * sizeof(node_t *) ) + }; + va_start ( child_list, n_children ); + for ( uint64_t i=0; ichildren[i] = va_arg ( child_list, node_t * ); + va_end ( child_list ); +} + + +static void +tree_print(node_t* root, stem head) +{ + static const char *sdown = " │", *slast = " └", *snone = " "; + struct stem_t col = {0, 0}, *tail; + + // Print stems of branches coming further down + for (tail = head; tail; tail = tail->next) { + if (!tail->next) { + if (!strcmp(sdown, tail->str)) + printf(" ├"); + else + printf("%s", tail->str); + break; + } + printf("%s", tail->str); + } + + if (root == NULL) { + // Secure against null pointers sent as root + printf("─(nil)\n"); + return; + } + printf("─%s", node_string[root->type]); + if ( root->type == IDENTIFIER_DATA || + root->type == STRING_DATA || + root->type == EXPRESSION ) + printf("(%s)", (char *) root->data); + else if (root->type == NUMBER_DATA) + printf("(%ld)", *((int64_t *)root->data)); + putchar('\n'); + + if (!root->n_children) return; + + if (tail && tail->str == slast) + tail->str = snone; + + if (!tail) tail = head = &col; + else tail->next = &col; + + for ( int64_t i=0; i < root->n_children; i++ ) { + col.str = root->n_children - i - 1 ? sdown : slast; + tree_print(root->children[i], head); + } + tail->next = 0; +} + +/* Internal choices */ +static void +node_print ( node_t *root, int nesting ) +{ + if ( root != NULL ) + { + printf ( "%*c%s", nesting, ' ', node_string[root->type] ); + if ( root->type == IDENTIFIER_DATA || + root->type == STRING_DATA || + root->type == EXPRESSION ) + printf ( "(%s)", (char *) root->data ); + else if ( root->type == NUMBER_DATA ) + printf ( "(%ld)", *((int64_t *)root->data) ); + putchar ( '\n' ); + for ( int64_t i=0; in_children; i++ ) + node_print ( root->children[i], nesting+1 ); + } + else + printf ( "%*c%p\n", nesting, ' ', root ); +} + + +static void +node_finalize ( node_t *discard ) +{ + if ( discard != NULL ) + { + free ( discard->data ); + free ( discard->children ); + free ( discard ); + } +} + + +static void +destroy_subtree ( node_t *discard ) +{ + if ( discard != NULL ) + { + for ( uint64_t i=0; in_children; i++ ) + destroy_subtree ( discard->children[i] ); + node_finalize ( discard ); + } +} + + +static void +simplify_tree ( node_t **simplified, node_t *root ) +{ + if ( root == NULL ) + return; + + /* Simplify subtrees before examining this node */ + for ( uint64_t i=0; in_children; i++ ) + simplify_tree ( &root->children[i], root->children[i] ); + + node_t *discard, *result = root; + switch ( root->type ) + { + /* Structures of purely syntactic function */ + case PARAMETER_LIST: case ARGUMENT_LIST: + case STATEMENT: case PRINT_ITEM: case GLOBAL: + result = root->children[0]; + node_finalize ( root ); + break; + case PRINT_STATEMENT: + result = root->children[0]; + result->type = PRINT_STATEMENT; + node_finalize(root); + /* Flatten lists: + * Take left child, append right child, substitute left for root. + */ + case STATEMENT_LIST: case DECLARATION_LIST: case GLOBAL_LIST: + case PRINT_LIST: case EXPRESSION_LIST: case VARIABLE_LIST: + if ( root->n_children >= 2 ) + { + result = root->children[0]; + result->n_children += 1; + result->children = realloc ( + result->children, result->n_children * sizeof(node_t *) + ); + result->children[result->n_children-1] = root->children[1]; + node_finalize ( root ); + } + break; + case EXPRESSION: + switch ( root->n_children ) + { + case 1: + if ( root->children[0]->type == NUMBER_DATA ) + { + result = root->children[0]; + if ( root->data != NULL ) + *((int64_t *)result->data) *= -1; + node_finalize (root); + } + else if ( root->data == NULL ) + { + result = root->children[0]; + node_finalize (root); + } + break; + case 2: + if ( root->children[0]->type == NUMBER_DATA && + root->children[1]->type == NUMBER_DATA + ) { + result = root->children[0]; + int64_t + *x = result->data, + *y = root->children[1]->data; + switch ( *((char *)root->data) ) + { + case '+': *x += *y; break; + case '-': *x -= *y; break; + case '*': *x *= *y; break; + case '/': *x /= *y; break; + } + node_finalize ( root->children[1] ); + node_finalize ( root ); + } + break; + } + } + *simplified = result; +} diff --git a/exercises/06/vslc/src/vslc.c b/exercises/06/vslc/src/vslc.c new file mode 100644 index 0000000..3d239a4 --- /dev/null +++ b/exercises/06/vslc/src/vslc.c @@ -0,0 +1,82 @@ +#include +#include +#include +#include + + +/* Global state */ + +node_t *root; // Syntax tree +tlhash_t *global_names; // Symbol table +char **string_list; // List of strings in the source +size_t n_string_list = 8; // Initial string list capacity (grow on demand) +size_t stringc = 0; // Initial string count + +/* Command line option parsing for the main function */ +static void options ( int argc, char **argv ); +bool + print_full_tree = false, + print_simplified_tree = false, + print_symbol_table_contents = false, + print_generated_program = true, + new_print_style = true; + + +/* Entry point */ +int +main ( int argc, char **argv ) +{ + options ( argc, argv ); + + yyparse(); // Generated from grammar/bison, constructs syntax tree + + if ( print_full_tree ) + print_syntax_tree (); + simplify_syntax_tree (); // In tree.c + if ( print_simplified_tree ) + print_syntax_tree (); + + create_symbol_table (); // In ir.c + if ( print_symbol_table_contents ) + print_symbol_table(); + + if ( print_generated_program ) + generate_program (); // In generator.c + + + destroy_syntax_tree (); // In tree.c + destroy_symbol_table (); // In ir.c +} + + +static const char *usage = +"Command line options\n" +"\t-h\tOutput this text and halt\n" +"\t-t\tOutput the full syntax tree\n" +"\t-T\tOutput the simplified syntax tree\n" +"\t-s\tOutput the symbol table contents\n" +"\t-q\tQuiet: suppress output from the code generator\n" +"\t-u\tDo not use print style more like the tree command\n"; + + +static void +options ( int argc, char **argv ) +{ + int o; + while ( (o=getopt(argc,argv,"htTsqu")) != -1 ) + { + switch ( o ) + { + case 'h': + printf ( "%s:\n%s", argv[0], usage ); + exit ( EXIT_FAILURE ); + break; + case 't': print_full_tree = true; break; + case 'T': print_simplified_tree = true; break; + case 's': print_symbol_table_contents = true; break; + case 'q': print_generated_program = false; break; + case 'u': new_print_style = false; break; + } + } +} + diff --git a/exercises/06/vslc/vsl_programs/Makefile b/exercises/06/vslc/vsl_programs/Makefile new file mode 100644 index 0000000..57f099e --- /dev/null +++ b/exercises/06/vslc/vsl_programs/Makefile @@ -0,0 +1,45 @@ +VSLC := ../src/vslc +AS := gcc + +# This updated makefile calls the relevant print for each assignment +# The added target compile will attempt to compile all vsl source files, +# for ps5 and ps6. Other programs are mostly not interesting after the their +# targeted assignment. + +# Call `vslc -h` to see the available flags, and call `vslc [flags] < file.vsl` +# to compile a single file. + +PS2_EXAMPLES := $(patsubst ps2-parser/%.vsl, ps2-parser/%.ast, $(wildcard ps2-parser/*.vsl)) +PS3_EXAMPLES := $(patsubst ps3-simplify/%.vsl, ps3-simplify/%.sast, $(wildcard ps3-simplify/*.vsl)) +PS4_EXAMPLES := $(patsubst ps4-symtab/%.vsl, ps4-symtab/%.sym, $(wildcard ps4-symtab/*.vsl)) +PS5_EXAMPLES := $(patsubst ps5-codegen1/%.vsl, ps5-codegen1/%.S, $(wildcard ps5-codegen1/*.vsl)) +PS6_EXAMPLES := $(patsubst ps6-codegen2/%.vsl, ps6-codegen2/%.S, $(wildcard ps6-codegen2/*.vsl)) + +PS5_OBJECTS := $(PS5_EXAMPLES:.S=.bin) +PS6_OBJECTS := $(PS6_EXAMPLES:.S=.bin) +# OBJECTS := $(PS5_OBJECTS) $(PS4_EXAMPLES:.sym=.bin) $(PS3_EXAMPLES:.sast=.bin) $(PS2_EXAMPLES:.ast=.bin) +OBJECTS := $(PS5_OBJECTS) $(PS6_OBJECTS) +all: $(PS2_EXAMPLES) $(PS3_EXAMPLES) $(PS4_EXAMPLES) $(PS5_EXAMPLES) $(PS6_EXAMPLES) +ps2: $(PS2_EXAMPLES) +ps3: $(PS3_EXAMPLES) +ps4: $(PS4_EXAMPLES) +ps5: $(PS5_EXAMPLES) + +%.ast: %.vsl + $(VSLC) -t -q < $^ > $@ 2> $@ +%.sast: %.vsl + $(VSLC) -T -q < $^ > $@ 2> $@ +%.sym: %.vsl + $(VSLC) -s -q < $^ > $@ 2> $@ +%.S: %.vsl + $(VSLC) < $^ > $@ +# This target is only tested on x86-linux +%.bin: %.S + $(AS) -no-pie -o $@ $^ + +ps5-compile: $(PS5_OBJECTS) +ps6-compile: $(PS6_OBJECTS) +compile: $(OBJECTS) + +clean: + -rm -r */*.ast */*.sast */*.sym */*.bin */*.S \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps2-parser/assignments.vsl b/exercises/06/vslc/vsl_programs/ps2-parser/assignments.vsl new file mode 100644 index 0000000..b2f9227 --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps2-parser/assignments.vsl @@ -0,0 +1,14 @@ +// checking that comments are ignored + +// This program checks the assignment operators + +func main() +begin + var a + a := 3 + a += 1 + a /= 2 + a *= 32 + a -= 2 + print a +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps2-parser/function_call.vsl b/exercises/06/vslc/vsl_programs/ps2-parser/function_call.vsl new file mode 100644 index 0000000..d5c75a5 --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps2-parser/function_call.vsl @@ -0,0 +1,8 @@ +func add(a, b) begin + return a + b +end + +func main() +begin + print add(40, 2) +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps2-parser/helloworld.vsl b/exercises/06/vslc/vsl_programs/ps2-parser/helloworld.vsl new file mode 100644 index 0000000..49219f8 --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps2-parser/helloworld.vsl @@ -0,0 +1,3 @@ +func main() begin + print "Hello, World!" +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps2-parser/if_else.vsl b/exercises/06/vslc/vsl_programs/ps2-parser/if_else.vsl new file mode 100644 index 0000000..7d4fbe3 --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps2-parser/if_else.vsl @@ -0,0 +1,25 @@ +func main() +begin + var a, b, c, d + c := 1 + a := 3 + b := a + c // 4 + d := a * 100 + 50 + print "a", a + print "b", b + print "c", c + print "d", d + if a = 14 then + print 1, "N", d / 5 + a, "RPR", a, "TERS " + else + print "COMP", c, "L", "ERS " + + print b, "R", a, " " + + if a < b then + if d > 42 then + print b, "W", d, "ME" + else + print "L", b, "M", c + // A dangling else, what could go wrong? +end diff --git a/exercises/06/vslc/vsl_programs/ps2-parser/variables.vsl b/exercises/06/vslc/vsl_programs/ps2-parser/variables.vsl new file mode 100644 index 0000000..abd12ec --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps2-parser/variables.vsl @@ -0,0 +1,19 @@ + +var global_var + +func my_func(param) +begin + var local_var, local_var2 + local_var := 1 +end + +var glob1, glob2 + +func main() +begin + var main_local_var + begin + var main_local_nested_var + main_local_nested_var := main_local_var + end +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps2-parser/while.vsl b/exercises/06/vslc/vsl_programs/ps2-parser/while.vsl new file mode 100644 index 0000000..8d6b024 --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps2-parser/while.vsl @@ -0,0 +1,10 @@ +// check parsing of do-while loop + +func main() +begin + var i + i := 2 + while i < 9000 do + i := i * i + print i +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps3-simplify/constants.vsl b/exercises/06/vslc/vsl_programs/ps3-simplify/constants.vsl new file mode 100644 index 0000000..8843eb6 --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps3-simplify/constants.vsl @@ -0,0 +1,9 @@ + +func main() begin + var a, b + a := 1 + 2 + 4 + 5 + 6 + 7 + 8 + 9 + b := (10 + 10 * 4) * (2 + 2 * (1 + 1)) / 10 + 2 * 5 + 6 / 3 + + if a = b then + print "The answer is", b +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps3-simplify/lists.vsl b/exercises/06/vslc/vsl_programs/ps3-simplify/lists.vsl new file mode 100644 index 0000000..d18d54d --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps3-simplify/lists.vsl @@ -0,0 +1,16 @@ + +func my_func(a, b, c, d, e, f, g, h) begin + var i, j, k, l, m + + i := a + b + d + + if i = f then begin + print "hmmm" + end +end + +func main() begin + var n, o, p, q, r, s, t, u, v, w + n := 5 + n += my_func(1, 2, 3, 5, 8, 13, 21, 34) +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps4-symtab/globals.vsl b/exercises/06/vslc/vsl_programs/ps4-symtab/globals.vsl new file mode 100644 index 0000000..b6f6be5 --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps4-symtab/globals.vsl @@ -0,0 +1,11 @@ +var global_var0, global_var1 + +func my_func(param0, param1) begin + var a + return 0 +end + +func main() begin + var a + print "a string" +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps4-symtab/shadow.vsl b/exercises/06/vslc/vsl_programs/ps4-symtab/shadow.vsl new file mode 100644 index 0000000..7995200 --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps4-symtab/shadow.vsl @@ -0,0 +1,24 @@ + +func main() begin + var a, b + a := 1 + begin + var a + a := 2 + b := 40 + begin + var a + a := b + 2 + print a, b + end + print a + begin + var b + b := 38 + a := b + 3 + print a, b + end + print a + end + print b +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps5-codegen1/function_call.vsl b/exercises/06/vslc/vsl_programs/ps5-codegen1/function_call.vsl new file mode 100644 index 0000000..5bd29ec --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps5-codegen1/function_call.vsl @@ -0,0 +1,9 @@ +func add(a, b) begin + print "adding", a, "and", b + return a + b +end + +func main() +begin + print 2 + add(40, 2) + 2 +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps5-codegen1/helloworld.vsl b/exercises/06/vslc/vsl_programs/ps5-codegen1/helloworld.vsl new file mode 100644 index 0000000..49219f8 --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps5-codegen1/helloworld.vsl @@ -0,0 +1,3 @@ +func main() begin + print "Hello, World!" +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps5-codegen1/ps5.vsl b/exercises/06/vslc/vsl_programs/ps5-codegen1/ps5.vsl new file mode 100644 index 0000000..55d33aa --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps5-codegen1/ps5.vsl @@ -0,0 +1,30 @@ +// This program tests activation records, function call and return +func funcall () +begin + var x,y,z + x := 5 + y := 10 + print "Calling my_function with parameters", x, y + z := my_function ( x, y ) + print "The returned result is", z + z := my_other_function () + print "The other returned result is", z + return 0 +end + +func my_function ( s, t ) +begin + var u + u := s*s + t*t + print "Parameter s is", s + print "Parameter t is", t + print "The sum of their squares is", u + return u +end + +func my_other_function () +begin + var x + x := 42 + return x +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps5-codegen1/shadow.vsl b/exercises/06/vslc/vsl_programs/ps5-codegen1/shadow.vsl new file mode 100644 index 0000000..7995200 --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps5-codegen1/shadow.vsl @@ -0,0 +1,24 @@ + +func main() begin + var a, b + a := 1 + begin + var a + a := 2 + b := 40 + begin + var a + a := b + 2 + print a, b + end + print a + begin + var b + b := 38 + a := b + 3 + print a, b + end + print a + end + print b +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps6-codegen2/euclid.vsl b/exercises/06/vslc/vsl_programs/ps6-codegen2/euclid.vsl new file mode 100644 index 0000000..e7cc91d --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps6-codegen2/euclid.vsl @@ -0,0 +1,20 @@ +func euclid ( a, b ) +begin + if a < 0 then a := -a + if b < 0 then b := -b + if gcd ( a, b ) > 1 then + print "Greatest common divisor of", a, "and", b, "is", gcd ( a, b ) + else + print a, "and", b, "are relative primes" + return 0 +end + +func gcd( a, b ) +begin + var g + if b > 0 then + g := gcd ( b, a - ((a/b)*b) ) + else + g := a + return g +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps6-codegen2/newton.vsl b/exercises/06/vslc/vsl_programs/ps6-codegen2/newton.vsl new file mode 100644 index 0000000..2554332 --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps6-codegen2/newton.vsl @@ -0,0 +1,21 @@ +// Approximate square root by the Newton/Raphson method for f(x) = x^2 - n +// f(x) = x^2 - n = 0 +// f'(x) = 2x +// x{n+1} = x{n} - (x^2-n) / 2x + +func newton ( n ) +begin + print "The square root of", n, "is", improve ( n, 1 ) + return 0 +end + +func improve ( n, estimate ) +begin + var next + next := estimate - ( (estimate * estimate - n) / ( 2 * estimate ) ) + if next - estimate = 0 then + // Integer precision converges at smallest int greater than the square + return next-1 + else + return improve ( n, next ) +end \ No newline at end of file diff --git a/exercises/06/vslc/vsl_programs/ps6-codegen2/while_test.vsl b/exercises/06/vslc/vsl_programs/ps6-codegen2/while_test.vsl new file mode 100644 index 0000000..6b1c322 --- /dev/null +++ b/exercises/06/vslc/vsl_programs/ps6-codegen2/while_test.vsl @@ -0,0 +1,23 @@ +// This program is a simple test of while loops, counting down from 19 to 0 +// and skipping 10 (if continue is implemented) + +func while_test () +begin + var a + a := 20 + print a + if a > 0 then print "foobar" + while a > 0 do + begin + if a = 10 then + begin + a -= 1 + print "Skip..." + continue + end + else + a -= 1 + print a + end + return 0 +end \ No newline at end of file