All Projects → tkellehe → Noodel

tkellehe / Noodel

A programming language designed around supporting ASCII animation based code golfing challenges.

Programming Languages

javascript
184084 projects - #8 most used programming language
language
365 projects

Projects that are alternatives of or similar to Noodel

Hackbrowser
A hackable, cross-platform Chromium-based browser written in JS
Stars: ✭ 16 (+100%)
Mutual labels:  browser
Defiant.js
http://defiantjs.com
Stars: ✭ 907 (+11237.5%)
Mutual labels:  browser
Mean Angular5 Passport Authentication
Securing MEAN Stack (Angular 5) Web Application using Passport Authentication
Stars: ✭ 24 (+200%)
Mutual labels:  stack
Karma Event Driver Ext
use webdriverio like api in browser with karma lol
Stars: ✭ 17 (+112.5%)
Mutual labels:  browser
Text Layout
Fast implementation of a browser-like text layout engine, for Node and browsers
Stars: ✭ 19 (+137.5%)
Mutual labels:  browser
Christmas Tree
ASCII christmas-tree with animations for 256 colored terminals
Stars: ✭ 23 (+187.5%)
Mutual labels:  ascii-art
Qutebrowser
A keyboard-driven, vim-like browser based on PyQt5.
Stars: ✭ 7,401 (+92412.5%)
Mutual labels:  browser
Uzbl
A web browser that adheres to the unix philosophy.
Stars: ✭ 938 (+11625%)
Mutual labels:  browser
Webmidi
Tame the Web MIDI API. Send and receive MIDI messages with ease. Control instruments with user-friendly functions (playNote, sendPitchBend, etc.). React to MIDI input with simple event listeners (noteon, pitchbend, controlchange, etc.).
Stars: ✭ 906 (+11225%)
Mutual labels:  browser
Console.md
Ever dreamed of rendering Markdown in the console? No. Neither had I.
Stars: ✭ 24 (+200%)
Mutual labels:  browser
Is Online
Check if the internet connection is up
Stars: ✭ 894 (+11075%)
Mutual labels:  browser
Slack
🎉✨ Slack API client for Node and browsers.
Stars: ✭ 903 (+11187.5%)
Mutual labels:  browser
Figlet4go
A port of figlet to golang
Stars: ✭ 23 (+187.5%)
Mutual labels:  ascii-art
Gata
Bookmarks made better
Stars: ✭ 17 (+112.5%)
Mutual labels:  browser
Node Webshark
webShark UI + API for NodeJS
Stars: ✭ 26 (+225%)
Mutual labels:  browser
Tridentsandbox
An In-Browser Scripting IDE for HTML5/Javascript
Stars: ✭ 5 (-37.5%)
Mutual labels:  browser
Otplib
🔑 One Time Password (OTP) / 2FA for Node.js and Browser - Supports HOTP, TOTP and Google Authenticator
Stars: ✭ 916 (+11350%)
Mutual labels:  browser
Ascii Generator
ASCII generator (image to text, image to image, video to video)
Stars: ✭ 939 (+11637.5%)
Mutual labels:  ascii-art
Vue Stack
Minimalistic Boilerplate for FullStack Express and Vue.js applications
Stars: ✭ 26 (+225%)
Mutual labels:  stack
Logorain Ascii Art
Logorain-ASCII-Art: A simple Image to ASCII Art converter
Stars: ✭ 24 (+200%)
Mutual labels:  ascii-art

Noodel

<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script> <script src="noodel-latest.js"></script> <script type="text/javascript" src="docs.js"></script>

Noodel is a programming language that has the main focus of assisting ASCII Animation code golfing challenges. Noodel has its own 256 character set. There also is an editor designed for Noodel that utilizes its JavaScript parser here.



Since the language is for challenges visit the issues page and post challenges where Noodel was used. This will allow others to learn how to Noodel as well as notice features that could be added to assist with challenges (Learn more). This language is still under construction and since I like to code for Noodel from the online editor things may randomly break in the prototyping editor, features disappear/change, zero comments made on commits, or random issues appear for myself. If there is a need to use an older version of Noodel that was good enough before, visit the release directory for a list of all of the versions.

Introduction

Noodel has three main data types: NUMBER, STRING, and ARRAY. ARRAY objects are always passed-by-reference, but the others are passed-by-value (...)

A "Hello World" in Noodel is pretty simple: Hello,¤World!

The STRING literal is created and placed onto the stack which can be done with any of the printable characters. At the very end, whatever is on the top of the stack gets printed. Therein, the Hello,¤World! gets printed. But what happened to the ¤? The ¤ is used to represent a space when handling STRING types. This allows for the space character to act as a NOP to seperate commands. The same was done with the line feed character which is represented by (...)



The Memory Model

Noodel is a stack-based language with a slight twist. The perspective of the stack can be changed. A simple example of this is if you need to store an object for later but do not want it to be operated on, you can move the top of the stack down. For example: noodelʠsome¤workƥ



The literal noodel gets pushed onto the stack, then the top of the stack gets moved with the ʠ command. Then the STRING literal some¤work gets pushed onto the stack. The command ƥ moves the top of the stack back up, therein noodel is on top and is printed.

Now that is kind of cool, but it gets more interesting when there are arrays involved. Let us take this script: ¤noodel¤ȷçıḷẹḍe



It produces the same output as the script ¤noodel¤ḷçẹḍe, but takes advantage of the fact that ARRAY types are pass-by-reference. So, first ¤noodel¤ is pushed onto the stack. Since the stack is merely an ARRAY, we call the ȷ command which jumps out of the current stack and into the containing stack. The top of this new stack is the stack with the STRING literal. So, we print it to the screen using ç therein the ARRAY object is sitting in the stdout. Then we call ı command to jump into the ARRAY at the top of the stack to make it the current stack. This allows us to now start operating on the STRING live. Instead of jumping out, printing, and then jumping back we can use Ð which pushes the current stack to stdout: ¤noodel¤Ðḷẹḍe



Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].