Switch to full stage
Loading Project
Loading project …

Instructions

Check out my (under development) Micron programming language ( https://scratch.mit.edu/projects/465672744/ ), featuring more advanced features and a faster runtime. CRIS is a powerful yet easy-to-use language for Scratch! The shown demo displays a 3D octahedron. It is similar to the previous 3D octahedron demos but significantly faster due to compiler and VM improvements. To start from a blank slate, visit this project: https://scratch.mit.edu/projects/471928182/ Features: > Very fast runtime > Built-in expressions and rich selection of operators > Data types: local variables, global variables, constants > Advanced control flow and ability to write own procedures > Namespaces for organization of large code > And much more! Check out the CRIS topic: https://scratch.mit.edu/discuss/topic/461060/?page=1#post-4634832 The best way to learn CRIS is to read the manual: https://sites.google.com/view/the-cris-programming-language/documentation Chapter 1 should be enough to get started. The next chapters explain CRIS in greater detail. CRIS is a work-in-progress. Questions and feedback are greatly appreciated. CRIS was formerly known as StackScript. However, CRIS is not a scripting language and the programmer can get by without understanding the concept of the stack, so the name was changed. Tags: #programming #coding #language #scripting

Notes and Credits

This is the final version of CRIS until further notice. Development history: 1.1: Added IDE buttons to simplify use of interface Fixed bug related to handling of random operator 1.0 (0.28) > Updated vector library > Argument separator '. ' may be processed differently depending on context > Introduced 'Input' keyword to simplify procedure input handling > Changed default context behavior of '. ' separator > Renamed to CRIS: "CRIS Runs In Scratch" 0.27: > Refactored compiler code for handling expressions > Added argument prefixing operator '->' >> before: fun(std.malloc(5)) >> after: 5 -> std.malloc() -> fun() 0.26: > Created manual > Replaced 'elif' with 'else if' > Allowed groups of operators to have equal rank > Replaced 'out.refresh' with 'out.msg' which allows a message to be specified > Added substring operator op.substr: >> op.substr('ABCDE'. 1. 4) == 'ABCD' >> op.in replaced with op.contains > Redesigned default font 0.25: > Significant improvements to VM: >> Optimized lookup of some VM opcodes >> Optimized implementation of commonly-used opcodes >> Implemented stack frame handling using opcodes >>> NOTE: exception handling may be messed up > 'Replaced binary string operator '<<' with '++' 0.24: > Added an experimental memory allocator which maintains a circular linked list of free nodes to improve performance > Compiler optimization: simple constant expressions (e.g. 5 * 3 + 1) are pre-computed > Made most operators evaluate the right hand side first for efficiency purposes 0.23: > Array improvements: Zero-based indexing and size not stored by default (improves performance and reduces memory footprint) > Added a module system: non-essential code is imported on request to save time > Small optimization in the case of accessing the zeroth element of an array 0.22: > Namespaces can now be nested > Replaced built-in pen operators with a system for integrating an output module. 0.21: > Added keyboard input > Added output handling 0.20: > Added the ability to integrate a text rendering engine > Created the StackScript rendering engine and font: >> The StackScript font is a monospace font. Each character, including spacing, fits inside a 6*11 box. It Supports every character on an English keyboard > Added shortcuts ] + [ + [S/H] to show/hide target code 0.19: > Added scope blocks { } > Added do-while loops > Fixed static variable initialization > Pressing the green flag just runs code as opposed to also compiling it > Added shortcuts for compiling and running code: >> ] + [ + C to compile >> ] + [ + R to run code >> Shortcuts can be disabled by changing 'StackScript: dev shortcuts?' to 0, and enabled by changing it to 1 0.18: 0.18.1: > Added 'op.len' operator for string length > Fixed detection of static arrays outside procedures > Fixed bugs found while developing 'hunt the wumpus': https://scratch.mit.edu/projects/436606316/ 0.18.0: > Try/Throw/Catch: mainly intended for exceptions but has several other uses as well > Fixed bug related to tail call optimization > Fixed bug where elif blocks in a chain without an else block would be skipped > Fixed bug in handling of else blocks > Namespace separator changed from '::' to '.'; ex. 'std::exception' becomes 'std.exception' > Added string operators op.in, op.at and random operator op.rand StackScript now supports every operator in the 'operators' section 0.17: > replaced '.' with '\' to improve compatibility with decimal numbers > Static variables are now initialized once at the start of the program > Automatic variables are scoped to their block by default > Added list library to stdlib

TurboWarp is a Scratch mod that compiles projects to JavaScript to make them run really fast. Try it out by inputting a project ID or URL above or choosing a featured project below.