Giter Site home page Giter Site logo

tomaszrewak / trepl Goto Github PK

View Code? Open in Web Editor NEW
75.0 9.0 7.0 1.15 MB

TRE is an object oriented, functional programming language, that enables user to view all processes happening inside a memory during program execution.

License: MIT License

JavaScript 56.50% CSS 4.03% TypeScript 33.62% Pug 1.67% Less 4.18%
programming-language teaching-materials object-oriented-programming interactive-visualizations memory-allocation

trepl's Introduction

Donate

TREPL

TRE is an object oriented, functional programming language, that enables user to view all processes happening inside a memory during program execution.

Working example can be found here: http://trepl.xyz/

Compilation

To restore node packages run

npm install

To compile .ts files run:

gulp typescript

and for .less files:

gulp less

To watch for changes (in .ts and .less files) you can use:

gulp watch

Execution

To prepare compiled website for execution you have to restore node_modules within Site directory.

cd Site
npm install

after doing so you can run the server:

node .\TREPL\Site\

Now your website should be available in your web browser under the address: http://localhost:3000/

Project structure

This project was my first contact with javascript and typescript (excluding scripts that consisted of 5 lines of code), so the overall architecture of this solution is not the greatest. I will try to reorganize it itno something better in the future, as I have gained "some" experience in this meantime

Beta

Note that this is an early version of this software. If you can see anything that doesn't work as expected, or maybe a way to improve it, please inform me.

trepl's People

Contributors

tomaszrewak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

trepl's Issues

The color contrast

"The color contrast on the text in the memory section makes it unreadable and misleading."
Proposed by @the_evergrowing_fool on reddit.

Share Code Snippets

We should have the ability to share examples a la jsFiddle. There are some examples that I would like to share with my students without having to recreate them each time.

Replacing code with values

When using a recursive fibonaci number calculation implementation to teach recursion, it might get a bit tricky to follow the execution in the program. It would be great, if there was a tracing mode, that after evaluating a value (or expression) inside a function, would replace it with the evaluated value. For example:
With initial values a = 1, b = 2:
step 1: a > b
step 2: 1 > b
step 3: 1 > 2
step 4: false
If the same function was called recursively, then multiple copies of the same function with different argument values would be kept in the trace. After returning from the function, it would be discarded. This would provide a more high-level overview of the program without having to understand concepts such as stack memory.

Proposed by @tux_mark_5 on reddit.

Memory highlighting

An indicator is needed that will highlight parts of memory that are being used. Something like a quick blink.

Better raw input

Enable users to input code in a more complex way, not only by using prefix notation.

C-like syntax

In the next iteration I will create a switch to enable user to change the syntax to that more C-like version.

Delete keyword

I need to add a delete keyword, so to enable users to get rid of objects storen on heap.

Labeled elements

Add en type-error-like labels to all elements that will include their names.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.