Skip to content

Latest commit

 

History

History
96 lines (77 loc) · 3.53 KB

Changelog.md

File metadata and controls

96 lines (77 loc) · 3.53 KB

Changelog

This changelog lists semantic versions and related changes.

1.0.0: 2024-03-03 (#9)

  • ✨ implement liveness-analysis per function
    • determine unused arguments per function
    • determine unused variable declarations per function
    • determine unused variable values per function
    • show register count per function
  • ♻️ improve CLI
    • improve options and add descriptions
    • improve outputs and the verbosity flag
    • improve overall readability and maintainability
  • ➕ add dependency to commons-cli
  • ✅ extend and update tests
  • 📝 improve documentation

0.6.0: 2024-01-31 (#8)

  • ✨ add functions
  • ✅ extend and update tests
  • 📝 update description of functions
  • ♻️ improve readability

0.5.1: 2024-01-02 (#7)

  • 🐛 improve stack depth evaluation for string concatenations
  • 📝 add changelog instead of roadmap
  • 📝 improve description of functions

0.5.0: 2023-12-31 (#6)

  • ✨ add string literals and variables
  • ✨ add == and != support for strings
  • ✨ implement string concatenations (including type casts for other types) using §
  • ✅ extend tests
  • ♻️ improve readability and apply minor improvements
  • 📝 improve documentation of types

0.4.1: 2023-12-29 (#5)

  • ✨ add dev-container for VSCode users, add checkstyle
  • ♻️ improve gradle setup, generate executable jar for Easy compiler
  • 🔥 remove gradlew
  • ✅ test and document comments
  • 📝 improve documentation

0.4.0: 2020-04-22 (#3)

  • ✨ add float variables and literals
  • ✅ add tests
  • 🏗️ save type information for expressions inside AST-nodes and remove ExpressionTypeCache
  • ♻️ apply minor improvements for better testability
  • 📝 improve documentation

0.3.0: 2020-04-13 (#2)

  • ➕ setup the Jasmin assembler
  • ✨ implement generation of Jasmin assembly code
    • main function
    • declarations, initializations and assignments
    • expressions: unary, arithmetic, comparison, logical
    • statements: if-else, while, print, println
  • ✨ implement liveness analysis for
  • ✅ add tests for functionality of compiled correct programs

0.2.0: 2020-04-09 (#1)

  • ✨ add type-checker
    • detect missing declaration before first assignment
    • detect repeated declarations
    • evaluate type of expressions
    • detect assignments of incompatible types
    • check conditions of control structures (while and if need boolean expressions)
    • check content of print/println statements
  • ✨ add symbol table
  • ✨ add line-evaluator
  • ✨ add error-handler for type-errors
  • ✅ add tests for type checking

0.1.0: 2020-04-08

  • 🎉 setup git-repository and create gradle-project
  • ✨ create EasyCompiler class and CLI
  • ✨ implement reader for Easy source files
  • ✅ setup testing
  • 📝 create language description of Easy
  • ➕ setup SableCC
  • ✨ add SableCC grammar, generate abstract syntax tree
    • define main function, code blocks and comments
    • define literals, operators and expressions including precedence: unary, arithmetic, comparison and logical
    • define declarations and assignments
    • define control structures (without Dangling-Else!): if-else, while
    • define print and println