All Projects → iru- → nopforth

iru- / nopforth

Licence: MIT license
A dialect of the Forth programming language

Programming Languages

assembly
5116 projects
python
139335 projects - #7 most used programming language
GDB
78 projects
Makefile
30231 projects

Projects that are alternatives of or similar to nopforth

consize
Consize is a concatenative programming language
Stars: ✭ 27 (+22.73%)
Mutual labels:  interpreter
tiny-lang
tiny-lang — A different programming language. Supports a bunch of spoken languages.
Stars: ✭ 26 (+18.18%)
Mutual labels:  interpreter
MUA-Interpreter
MUA is a functional language for teaching use in Principles of Programming Languages course.
Stars: ✭ 16 (-27.27%)
Mutual labels:  interpreter
xstate
State machines and statecharts for the modern web.
Stars: ✭ 21,286 (+96654.55%)
Mutual labels:  interpreter
kpspemu
PSP Emulator written in Kotlin for JVM, JS and Native. Can work as PWA.
Stars: ✭ 57 (+159.09%)
Mutual labels:  interpreter
xin
Xin (신/心) is a flexible functional programming language with a tiny core, inspired by Lisp and CSP
Stars: ✭ 20 (-9.09%)
Mutual labels:  interpreter
klisp
A Lisp written in about 200 lines of Ink, featuring an interactive literate programming notebook
Stars: ✭ 28 (+27.27%)
Mutual labels:  interpreter
LambdaCore
An interpreted language written in Rust inspired by the Lisp family of languages.
Stars: ✭ 56 (+154.55%)
Mutual labels:  interpreter
Garam-Interpreter
"훈민정음은 디자인이다" 가람은 튜링 완전 프로그래밍 언어입니다.
Stars: ✭ 23 (+4.55%)
Mutual labels:  interpreter
foth
Tutorial-style FORTH implementation written in golang
Stars: ✭ 50 (+127.27%)
Mutual labels:  interpreter
whilelang
A small programming language created with ANTLR and Scala
Stars: ✭ 29 (+31.82%)
Mutual labels:  interpreter
clover2
Clover2 can be used as shell. The completion is powerfull like IDE. Also clover2 is a Ruby-like compiler language with static type like Java. This is high performnace. Please see the wiki for details
Stars: ✭ 100 (+354.55%)
Mutual labels:  interpreter
RSqueak
A Squeak/Smalltalk VM written in RPython.
Stars: ✭ 78 (+254.55%)
Mutual labels:  interpreter
thislang
A subset of javascript implemented in that subset of javascript. Yes, it can run itself.
Stars: ✭ 31 (+40.91%)
Mutual labels:  interpreter
ol
Otus Lisp (Ol in short) is a purely* functional dialect of Lisp.
Stars: ✭ 157 (+613.64%)
Mutual labels:  interpreter
mlang
My toy programming languages
Stars: ✭ 36 (+63.64%)
Mutual labels:  interpreter
bfloader
🧠 Brainfuck IDE and interpreter in 512 bytes. (boot sector)
Stars: ✭ 41 (+86.36%)
Mutual labels:  interpreter
nj
NJ is a simple script engine in golang with Lua-like syntax.
Stars: ✭ 19 (-13.64%)
Mutual labels:  interpreter
NPython
(Subset of) Python programming language implemented in Nim
Stars: ✭ 17 (-22.73%)
Mutual labels:  interpreter
pawn-3.2-plus
Pawn scripting language with runtime fixes and improvements
Stars: ✭ 14 (-36.36%)
Mutual labels:  interpreter

nop

Nop is a dialect of the Forth programming language. It provides an environment for the user to interact with and control computers.

It runs on x86_64 and arm64 CPUs on the following operating systems

OS/architecture Build+Boot Dynamic libraries
macOS/arm64
macOS/x86_64
Linux/x86_64
FreeBSD/x86_64
OpenBSD/x86_64
NetBSD/x86_64
Windows (cygwin)

Preparing nop for use

To run nop, you first need to build it using a straightforward

% make

(or gmake on BSDs).

This will build an executable in bin/nop and perform a smoke test of the bootstraping procedure. In principle, nop can already be used. However, to be sure the environment is behaving as it should, run the tests:

% make test

In case a test fails, the whole procedure is aborted and the last line of output will be similar to

make: *** [Makefile:54: test] Error 1

If this happens for a supported operating system, please file a bug in https://github.com/iru-/nopforth/issues. If all tests pass, nop is ready to be used.

Basic usage

Nop may be run with or without command line arguments. Without arguments, you should see

% nop
nop forth
ok 

The ok at the beginning of the line means nop is ready to accept your commands. It will read and evaluate a line of input at time, and no processing is done until the line is input. Note that nop will not output any results by itself, so if you are used to read-eval-print loops (REPL), nop may be seen as presenting a read-eval-loop. To exit, either run bye or use your terminal's end of transmission control sequence (Control-D on most unix terminals).

If instead of talking to nop directly you want to execute a nop source file, pass the file as a command line argument:

% nop myprogram.ns

Nop will execute the file and immediately exit. Note that only the first argument is taken as a source file, the rest are available for the program to use. As an example of the latter usage, output this very file with:

% nop examples/cat.ns README.md

Further considerations

Now that you know how to talk to nop, it is time to learn how to use the facilities provided. If you have already used Forth before, you can jump right to the glossary of words in doc/glossary.txt. If you are a newcomer to Forth, I strongly advise you first learn the basics of the language somewhere else and then come back as a more experienced forther.

Apart from the glossary, there are some rather incomplete documentation in the doc directory. In examples you will find some example nop programs.

For questions, suggestions and discussions, please open issues at https://github.com/iru-/nopforth/issues.

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].