brainterpreter

Draft implementation of a toy programming language interpreter. For educational purposes.

Downloads
1.2K
Stars
2
Committers
2
brainterpreter - v0.1.1 Latest Release

Published by dimasmith over 1 year ago

The main focus of this release is to fix the most prominent performance issues and establish the CI process for the project.

Features

  • (cli) add verbose flag to interpreter cli - (e91dd59) - Dmytro Kovalchuk
  • (cli) add cli to run interpreter - (c1787c2) - Dmytro Kovalchuk

Performance Improvements

  • use shared references for arrays - (e47a3a7) - Dmytro Kovalchuk
brainterpreter - v0.1.0

Published by dimasmith over 1 year ago

Initial implementation of the Brainterpreter to show on the TechIn talk.

Features

  • (tracing) trace after instruction - (3f71716) - Dmytro Kovalchuk
  • reduce memory footprint of the example - (5f7a9f7) - Dmytro Kovalchuk
  • run brainfuck interpreter - (50ae03b) - Dmytro Kovalchuk
  • support arrays - (cc8097b) - Dmytro Kovalchuk
  • convert to string - (5afce2a) - Dmytro Kovalchuk
  • base support of native functions - (8b0e0a0) - Dmytro Kovalchuk
  • write string character by index - (38ea9a1) - Dmytro Kovalchuk
  • support function arguments - (cf00b75) - Dmytro Kovalchuk
  • access characters in array-like manner - (cb6bbcf) - Dmytro Kovalchuk
  • initial support of strings - (0812588) - Dmytro Kovalchuk
  • return values from functions - (27a953b) - Dmytro Kovalchuk
  • call global functions - (5cc18d6) - Dmytro Kovalchuk
  • declare global functions - (67c4c6b) - Dmytro Kovalchuk
  • support while loops - (7c29572) - Dmytro Kovalchuk
  • support if-else statements - (6993b73) - Dmytro Kovalchuk
  • support simple if statements - (75863d4) - Dmytro Kovalchuk
  • initialize local variables from upper scopes with shadowing - (c6a9e60) - Dmytro Kovalchuk
  • add compilation errors - (b1c7986) - Dmytro Kovalchuk
  • support local variables - (04f0b0e) - Dmytro Kovalchuk
  • support unary negation and boolean literals - (daae2b1) - Dmytro Kovalchuk
  • support comparisons - (c3b01fb) - Dmytro Kovalchuk
  • initialize and read global variables - (af334f8) - Dmytro Kovalchuk
  • declare global variables - (836543e) - Dmytro Kovalchuk
  • compile multiple statements - (4e60d5a) - Dmytro Kovalchuk
  • support print statements - (04d8c95) - Dmytro Kovalchuk
  • support comment - (f42a95f) - Dmytro Kovalchuk
  • track source positions in lexer and parser - (739ac6d) - Dmytro Kovalchuk
  • add interpreter binary - (43ed692) - Dmytro Kovalchuk
  • add floating point number literals - (b3c6a74) - Dmytro Kovalchuk
  • group expressions using parentheses - (7c7aa57) - Dmytro Kovalchuk
  • implement unary minus - (30bf787) - Dmytro Kovalchuk
  • implement multiplication and division - (4031555) - Dmytro Kovalchuk
  • parse operations of the same binding power - (e1a07a1) - Dmytro Kovalchuk
  • temporarily add ret instruction to expressions - (ac4312f) - Dmytro Kovalchuk
  • parse addition operation - (42fdb3a) - Dmytro Kovalchuk
  • compile simple arithmetic expression - (adf6a39) - Dmytro Kovalchuk
  • start lexer implementation - (662ee80) - Dmytro Kovalchuk
  • print last stack value on return - (e169c19) - Dmytro Kovalchuk
  • trace program execution - (bd9a6b1) - Dmytro Kovalchuk
  • add error reporting - (323eaf8) - Dmytro Kovalchuk