All Projects → albertvanderhorst → ciforth

albertvanderhorst / ciforth

Licence: GPL-2.0 License
A generic system for creating i86 implementations of the language Forth.

Programming Languages

forth
179 projects
assembly
5116 projects
M4
1887 projects
HTML
75241 projects
Makefile
30231 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to ciforth

3bc-lang
Low level language, tiny virtual machine that works on computers and microcontrollers. (Friendly Punched cards)
Stars: ✭ 155 (+307.89%)
Mutual labels:  interpreter, compilers
i8080-Space-Invaders
Intel i8080 Space Invaders Arcade Emulator
Stars: ✭ 19 (-50%)
Mutual labels:  interpreter, intel
types-and-programming-languages
C++ Implementations of programming languages and type systems studied in "Types and Programming Languages" by Benjamin C. Pierce..
Stars: ✭ 32 (-15.79%)
Mutual labels:  interpreter, compilers
awesome-internals
A curated list of awesome resources and learning materials in the field of X internals
Stars: ✭ 78 (+105.26%)
Mutual labels:  interpreter, compilers
tiny-lang
tiny-lang — A different programming language. Supports a bunch of spoken languages.
Stars: ✭ 26 (-31.58%)
Mutual labels:  interpreter, compilers
hopes
Higher Order Prolog with Extensional Semantics
Stars: ✭ 43 (+13.16%)
Mutual labels:  interpreter
sebasic4
SE Basic IV 4.2 Cordelia - A free BASIC interpreter written in Z80 assembly language
Stars: ✭ 44 (+15.79%)
Mutual labels:  interpreter
cosy
A simple and pleasant programming language.
Stars: ✭ 21 (-44.74%)
Mutual labels:  interpreter
chickadee
Chickadee is a minimal programming language implemented in TypeScript for teaching purposes.
Stars: ✭ 13 (-65.79%)
Mutual labels:  interpreter
hedgehog
a toy programming language
Stars: ✭ 24 (-36.84%)
Mutual labels:  interpreter
gpu-passthrough
A GPU passthrough tutorial using libvirt and KVM on GNU/Linux
Stars: ✭ 57 (+50%)
Mutual labels:  intel
AOSV
Lecture notes for Advanced Operating Systems and Virtualization course at Sapienza University of Rome
Stars: ✭ 21 (-44.74%)
Mutual labels:  intel
retro12
This repo is retired. See http://forthworks.com:8000/
Stars: ✭ 18 (-52.63%)
Mutual labels:  interpreter
interp
Interpreter experiment. Testing dispatch methods: Switching, Direct/Indirect Threaded Code, Tail-Calls and Inlining
Stars: ✭ 32 (-15.79%)
Mutual labels:  interpreter
monkers
Bytecode compiler and VM for the Monkeylang language, written in Rust
Stars: ✭ 34 (-10.53%)
Mutual labels:  interpreter
frobtads
Linux and macOS development tools and text-mode interpreter for TADS adventure games.
Stars: ✭ 41 (+7.89%)
Mutual labels:  interpreter
go-jdk
Run JVM-based code in Go efficiently
Stars: ✭ 61 (+60.53%)
Mutual labels:  interpreter
pip
Pip: an imperative code-golf language
Stars: ✭ 22 (-42.11%)
Mutual labels:  interpreter
hardware-attacks-state-of-the-art
Microarchitectural exploitation and other hardware attacks.
Stars: ✭ 29 (-23.68%)
Mutual labels:  intel
Corium
Corium is a modern scripting language which combines simple, safe and efficient programming.
Stars: ✭ 18 (-52.63%)
Mutual labels:  interpreter
 Copyright (2017): Albert van der Horst (HCC FORTH The Netherlands) by GNU Public License.

CIFORTH

``ciforth'' is a factory for making implementations of Forth.
Forth is a standardized (ANS 94) computer language which is primarily
interactive, but has facilities for scripting and stand alone
executables.

The name ciforth derives from computer intelligence Forth, because
the original goal was to make a stand alone artificial intelligence
machine. Now you may think of it as common Intel Forth.
As long as your target is i86 based, you can pick your target to be:

    -16 32 or 64 bit

    -interfacing through BIOS, MSDOS INT 21, MSDOS DPMI, WIN32 dll,
      unix systemcalls (OSX, and LINUX) or dynamic (.so) libraries

    -can be assembled using masm, nasm, gas or fasm.

Few people want to use such a complicated system, but they still want
strict control over their Forth. The solution is a two tier system.
What ciforth will do for you is generate three files:
  - an assembler file
  - a source library
  - a generic documentation file

Of course not all combinations have been tried out, let alone tested.
Released versions have a regression test and have been through a
(sometimes considerable) burn in period. They contain not much more
than the above three files.

By modifying the assembler file you have in principle unlimited
control over your Forth In practice few are capable of doing extensive
modifications, but simple modifications are easy. There is no separate
documentation about how to build from assembler. The one or two line
instructions are contained in the source file.

The source library is Forth source. It is a text file divided
in blocks of 16 lines of 63 chars each. A simple text editor
and care will allow modifications.

The generic documentation is texinfo. This can be morphed into
PostScript, Pdf and info. Part of it is separately available
as html. Texinfo is text, and can be modified by hand too.

Releases are available for the three main OS'es: Linux, including
Android, MSWindows and OSX.
A file like READMElina.txt is associated with a release.
All tags starting with "REL" mark a release. The most important of
those are in the directory release. A report of tests is in
testreport.txt.

There is no end to the auxiliary tools that are needed to build all
versions and all other paraphernalia. cifgen.ps described the
generic system. howto.txt is a cookbook about things you may want
to do. A detailed history of ciforth since 2000 is contained in
logforth.txt.

You may want to read the other README's.
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].